diff mbox series

[v2,1/1] ufs: core: Expand MCQ queue slot to DeviceQueueDepth + 1

Message ID 20231101082402.20856-1-naomi.chu@mediatek.com (mailing list archive)
State New
Headers show
Series [v2,1/1] ufs: core: Expand MCQ queue slot to DeviceQueueDepth + 1 | expand

Commit Message

naomi.chu@mediatek.com Nov. 1, 2023, 8:24 a.m. UTC
From: Naomi Chu <naomi.chu@mediatek.com>

Allow UFSHCI 4.0 controllers to fully utilize MCQ queue slots.

Signed-off-by: Naomi Chu <naomi.chu@mediatek.com>
---
 drivers/ufs/core/ufs-mcq.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Bart Van Assche Nov. 1, 2023, 4:41 p.m. UTC | #1
On 11/1/23 01:24, naomi.chu@mediatek.com wrote:
> From: Naomi Chu <naomi.chu@mediatek.com>
> 
> Allow UFSHCI 4.0 controllers to fully utilize MCQ queue slots.
> 
> Signed-off-by: Naomi Chu <naomi.chu@mediatek.com>
> ---
>   drivers/ufs/core/ufs-mcq.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/ufs/core/ufs-mcq.c b/drivers/ufs/core/ufs-mcq.c
> index 2ba8ec254dce..5c75ab9d6bb5 100644
> --- a/drivers/ufs/core/ufs-mcq.c
> +++ b/drivers/ufs/core/ufs-mcq.c
> @@ -436,7 +436,7 @@ int ufshcd_mcq_init(struct ufs_hba *hba)
>   
>   	for (i = 0; i < hba->nr_hw_queues; i++) {
>   		hwq = &hba->uhq[i];
> -		hwq->max_entries = hba->nutrs;
> +		hwq->max_entries = hba->nutrs + 1;
>   		spin_lock_init(&hwq->sq_lock);
>   		spin_lock_init(&hwq->cq_lock);
>   		mutex_init(&hwq->sq_mutex);

Please add a Fixes: tag and expand the patch description. What should be
mentioned in the patch description is that the UFSHCI specification
requires that there is always at least one empty slot in each completion
queue. I think that is why the above change is necessary.

Thanks,

Bart.
diff mbox series

Patch

diff --git a/drivers/ufs/core/ufs-mcq.c b/drivers/ufs/core/ufs-mcq.c
index 2ba8ec254dce..5c75ab9d6bb5 100644
--- a/drivers/ufs/core/ufs-mcq.c
+++ b/drivers/ufs/core/ufs-mcq.c
@@ -436,7 +436,7 @@  int ufshcd_mcq_init(struct ufs_hba *hba)
 
 	for (i = 0; i < hba->nr_hw_queues; i++) {
 		hwq = &hba->uhq[i];
-		hwq->max_entries = hba->nutrs;
+		hwq->max_entries = hba->nutrs + 1;
 		spin_lock_init(&hwq->sq_lock);
 		spin_lock_init(&hwq->cq_lock);
 		mutex_init(&hwq->sq_mutex);