lkml.org 
[lkml]   [2023]   [Nov]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
SubjectRE: [PATCH V2 6/6] mmc: cqhci: Fix task clearing in CQE error recovery
Date
> If a task completion notification (TCN) is received when there is no
> outstanding task, the cqhci driver issues a "spurious TCN" warning. This was
> observed to happen right after CQE error recovery.
>
> When an error interrupt is received the driver runs recovery logic.
> It halts the controller, clears all pending tasks, and then re-enables it. On
> some platforms, like Intel Jasper Lake, a stale task completion event was
> observed, regardless of the CQHCI_CLEAR_ALL_TASKS bit being set.
>
> This results in either:
> a) Spurious TC completion event for an empty slot.
> b) Corrupted data being passed up the stack, as a result of premature
> completion for a newly added task.
>
> Rather than add a quirk for affected controllers, ensure tasks are cleared by
> toggling CQHCI_ENABLE, which would happen anyway if
> cqhci_clear_all_tasks() timed out. This is simpler and should be safe and
> effective for all controllers.
>
> Fixes: a4080225f51d ("mmc: cqhci: support for command queue enabled
> host")
> Cc: stable@vger.kernel.org
> Reported-by: Kornel Dulęba <korneld@chromium.org>
> Tested-by: Kornel Dulęba <korneld@chromium.org>
> Co-developed-by: Kornel Dulęba <korneld@chromium.org>
> Signed-off-by: Kornel Dulęba <korneld@chromium.org>
> Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Reviewed-by: Avri Altman <avri.altman@wdc.com>
\
 
 \ /
  Last update: 2023-11-20 13:53    [W:0.184 / U:1.220 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site