RE: [PATCH V2 6/6] mmc: cqhci: Fix task clearing in CQE error recovery

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]


> 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@xxxxxxxxxxxxxxx
> Reported-by: Kornel Dulęba <korneld@xxxxxxxxxxxx>
> Tested-by: Kornel Dulęba <korneld@xxxxxxxxxxxx>
> Co-developed-by: Kornel Dulęba <korneld@xxxxxxxxxxxx>
> Signed-off-by: Kornel Dulęba <korneld@xxxxxxxxxxxx>
> Signed-off-by: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Reviewed-by: Avri Altman <avri.altman@xxxxxxx>

[Index of Archives]     [Linux Memonry Technology]     [Linux USB Devel]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux