Re: [PATCH] mailbox: bcm-flexrm-mailbox: Fix FlexRM ring flush timeout issue

From: Ray Jui
Date: Thu Feb 14 2019 - 13:01:03 EST


Hi Jassi,

Have you had a chance to review this fix? This is a critical fix for a
crash during driver shutdown.

Regards,

Ray

On 2/4/2019 11:22 AM, Scott Branden wrote:
> Fix looks good.
>
> On 2019-02-04 11:21 a.m., Ray Jui wrote:
>> From: Rayagonda Kokatanur <rayagonda.kokatanur@xxxxxxxxxxxx>
>>
>> RING_CONTROL reg was not written due to wrong address, hence all
>> the subsequent ring flush was timing out.
>>
>> Fixes: a371c10ea4b3 ("mailbox: bcm-flexrm-mailbox: Fix FlexRM ring
>> flush sequence")
>>
>> Signed-off-by: Rayagonda Kokatanur <rayagonda.kokatanur@xxxxxxxxxxxx>
>> Signed-off-by: Ray Jui <ray.jui@xxxxxxxxxxxx>
> Reviewed-by: Scott Branden <scott.branden@xxxxxxxxxxxx>
>> ---
>> Â drivers/mailbox/bcm-flexrm-mailbox.c | 4 ++--
>> Â 1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/mailbox/bcm-flexrm-mailbox.c
>> b/drivers/mailbox/bcm-flexrm-mailbox.c
>> index d713271ebf7c..a64116586b4c 100644
>> --- a/drivers/mailbox/bcm-flexrm-mailbox.c
>> +++ b/drivers/mailbox/bcm-flexrm-mailbox.c
>> @@ -1396,9 +1396,9 @@ static void flexrm_shutdown(struct mbox_chan *chan)
>> Â ÂÂÂÂÂ /* Clear ring flush state */
>> ÂÂÂÂÂ timeout = 1000; /* timeout of 1s */
>> -ÂÂÂ writel_relaxed(0x0, ring + RING_CONTROL);
>> +ÂÂÂ writel_relaxed(0x0, ring->regs + RING_CONTROL);
>> ÂÂÂÂÂ do {
>> -ÂÂÂÂÂÂÂ if (!(readl_relaxed(ring + RING_FLUSH_DONE) &
>> +ÂÂÂÂÂÂÂ if (!(readl_relaxed(ring->regs + RING_FLUSH_DONE) &
>> ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ FLUSH_DONE_MASK))
>> ÂÂÂÂÂÂÂÂÂÂÂÂÂ break;
>> ÂÂÂÂÂÂÂÂÂ mdelay(1);