Message ID | 20231102052426.12006-2-naomi.chu@mediatek.com |
---|---|
State | New |
Headers | show |
Series | ufs: core: Expand MCQ queue slot to DeviceQueueDepth + 1 | expand |
On Thu, Nov 2, 2023 at 2:26 PM <naomi.chu@mediatek.com> wrote: > > From: Naomi Chu <naomi.chu@mediatek.com> > > The UFSHCI 4.0 specification mandates that there should always be at > least one empty slot in each queue for distinguishing between full and > empty states. Enlarge the `hwq->max_entries` to `DeviceQueueDepth +1` > to allow UFSHCI 4.0 controllers to fully utilize MCQ queue slots. > > Fixes: 4682abfae2eb ("scsi: ufs: core: mcq: Allocate memory for MCQ mode") > Signed-off-by: Naomi Chu <naomi.chu@mediatek.com> > --- > drivers/ufs/core/ufs-mcq.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) Reviewed-by: Stanley Chu <stanley.chu@mediatek.com>
On 11/2/23 09:37, Manivannan Sadhasivam wrote:
> Where is the changelog?
I think it's here:
https://lore.kernel.org/linux-scsi/20231102052426.12006-1-naomi.chu@mediatek.com/
Bart.
On Thu, 2023-11-02 at 13:24 +0800, naomi.chu@mediatek.com wrote: > From: Naomi Chu <naomi.chu@mediatek.com> > > The UFSHCI 4.0 specification mandates that there should always be at > least one empty slot in each queue for distinguishing between full > and > empty states. Enlarge the `hwq->max_entries` to `DeviceQueueDepth +1` > to allow UFSHCI 4.0 controllers to fully utilize MCQ queue slots. > > Reviewed-by: Peter Wang <peter.wang@mediatek.com>
On Thu, 2023-11-02 at 13:24 +0800, naomi.chu@mediatek.com wrote: > From: Naomi Chu <naomi.chu@mediatek.com> > > The UFSHCI 4.0 specification mandates that there should always be at > least one empty slot in each queue for distinguishing between full > and > empty states. Enlarge the `hwq->max_entries` to `DeviceQueueDepth +1` > to allow UFSHCI 4.0 controllers to fully utilize MCQ queue slots. > > Fixes: 4682abfae2eb ("scsi: ufs: core: mcq: Allocate memory for MCQ > mode") > 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); > -- > 2.18.0 > Reviewed-by: Chun-Hung<chun-hung.wu@mediatek.com>
> The UFSHCI 4.0 specification mandates that there should always be at > least one empty slot in each queue for distinguishing between full and > empty states. Enlarge the `hwq->max_entries` to `DeviceQueueDepth +1` > to allow UFSHCI 4.0 controllers to fully utilize MCQ queue slots. Applied to 6.7/scsi-staging, thanks!
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);