> -----Original Message-----
> From: Ang, Chee Hong <[email protected]>
> Sent: Wednesday, August 12, 2020 9:56 AM
> To: [email protected]
> Cc: Marek Vasut <[email protected]>; Simon Goldschmidt
> <[email protected]>; Tom Rini <[email protected]>; See,
> Chin Liang <[email protected]>; Tan, Ley Foon
> <[email protected]>; Ang, Chee Hong <[email protected]>;
> Chee, Tien Fong <[email protected]>; Lim, Elly Siew Chin
> <[email protected]>
> Subject: [PATCH v1 1/5] arm: socfpga: mailbox: Refactor mailbox timeout
> event handling
> 
> Add miliseconds delay when waiting for mailbox event to happen before
> timeout. This will ensure the timeout duration is predictive.
> 
> Signed-off-by: Chee Hong Ang <[email protected]>
> ---
>  arch/arm/mach-socfpga/mailbox_s10.c | 13 +++++++++----
>  1 file changed, 9 insertions(+), 4 deletions(-)
> 
> diff --git a/arch/arm/mach-socfpga/mailbox_s10.c b/arch/arm/mach-
> socfpga/mailbox_s10.c
> index f30e7f80a2..729d9b04fa 100644
> --- a/arch/arm/mach-socfpga/mailbox_s10.c
> +++ b/arch/arm/mach-socfpga/mailbox_s10.c
> @@ -29,13 +29,14 @@ DECLARE_GLOBAL_DATA_PTR;  static
> __always_inline int mbox_polling_resp(u32 rout)  {
>       u32 rin;
> -     unsigned long i = ~0;
> +     unsigned long i = 2000;
> 
>       while (i) {
>               rin = MBOX_READL(MBOX_RIN);
>               if (rout != rin)
>                       return 0;
> 
> +             udelay(1000);
>               i--;
>       }
> 
> @@ -176,11 +177,15 @@ static __always_inline int
> mbox_send_cmd_common(u8 id, u32 cmd, u8 is_indirect,
>       MBOX_WRITEL(1, MBOX_DOORBELL_TO_SDM);
> 
>       while (1) {
> -             ret = ~0;
> +             ret = 1000;
> 
>               /* Wait for doorbell from SDM */
> -             while (!MBOX_READL(MBOX_DOORBELL_FROM_SDM) &&
> ret--)
> -                     ;
> +             do {
> +                     if (MBOX_READL(MBOX_DOORBELL_FROM_SDM))
> +                             break;
> +                     udelay(1000);
> +             } while (--ret);
> +
>               if (!ret)
>                       return -ETIMEDOUT;
> 

Reviewed-by: Ley Foon Tan <[email protected]>

Reply via email to