Re: [PATCH v1 1/1] ufs: core: Add host quirk QUIRK_MCQ_EXPAND_QUEUE_SLOT

From: Bart Van Assche
Date: Fri Oct 27 2023 - 16:55:30 EST


On 10/26/23 20:27, Chun-Hung Wu (巫駿宏) wrote:
From UFSHCI 4.0 spec "When the head and tail doorbells are equal, the
queue is empty. *Nothe that this definition means there will always be
one empty queue entry"
One of our platform does not keep one empty queue
entry for CQ full
case, that's why we need this patch to fix this corner case.

The UFSHCI driver should make sure that there is always one empty queue
entry. Does "platform" in the above text refer to the SoC that includes
the UFSHCI controller?

What is totally unclear to me is why the following code depends on the
UFSHCI controller type:

+ if (ufshcd_is_mcq_expand_queue_slot(hba))
+ hwq->max_entries = hba->nutrs + 1;
+ else
+ hwq->max_entries = hba->nutrs;

Shouldn't hwq->max_entries = hba->nutrs + 1 be used for all UFSHCI 4.0
controllers?

Thanks,

Bart.