From: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
To: Bart Van Assche <bvanassche@acm.org>, quic_cang@quicinc.com
Cc: "Martin K . Petersen" <martin.petersen@oracle.com>,
linux-scsi@vger.kernel.org,
"James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
Minwoo Im <minwoo.im@samsung.com>,
Peter Wang <peter.wang@mediatek.com>,
ChanWoo Lee <cw9316.lee@samsung.com>,
Yang Li <yang.lee@linux.alibaba.com>,
Po-Wen Kao <powen.kao@mediatek.com>,
Avri Altman <avri.altman@wdc.com>,
Maramaina Naresh <quic_mnaresh@quicinc.com>,
Akinobu Mita <akinobu.mita@gmail.com>,
Bean Huo <beanhuo@micron.com>
Subject: Re: [PATCH 4/8] scsi: ufs: Make .get_hba_mac() optional
Date: Wed, 19 Jun 2024 13:27:31 +0530 [thread overview]
Message-ID: <20240619075731.GB8089@thinkpad> (raw)
In-Reply-To: <20240619071329.GD6056@thinkpad>
+ Can
On Wed, Jun 19, 2024 at 12:43:29PM +0530, Manivannan Sadhasivam wrote:
> On Mon, Jun 17, 2024 at 02:07:43PM -0700, Bart Van Assche wrote:
> > UFSHCI controllers that are compliant with the UFSHCI 4.0 standard report
> > the maximum number of supported commands in the controller capabilities
> > register. Use that value if .get_hba_mac == NULL.
> >
> > Signed-off-by: Bart Van Assche <bvanassche@acm.org>
> > ---
> > drivers/ufs/core/ufs-mcq.c | 12 +++++++-----
> > include/ufs/ufshcd.h | 4 +++-
> > include/ufs/ufshci.h | 2 +-
> > 3 files changed, 11 insertions(+), 7 deletions(-)
> >
> > diff --git a/drivers/ufs/core/ufs-mcq.c b/drivers/ufs/core/ufs-mcq.c
> > index 0482c7a1e419..d6f966f4abef 100644
> > --- a/drivers/ufs/core/ufs-mcq.c
> > +++ b/drivers/ufs/core/ufs-mcq.c
> > @@ -138,7 +138,6 @@ EXPORT_SYMBOL_GPL(ufshcd_mcq_queue_cfg_addr);
> > *
> > * MAC - Max. Active Command of the Host Controller (HC)
> > * HC wouldn't send more than this commands to the device.
> > - * It is mandatory to implement get_hba_mac() to enable MCQ mode.
> > * Calculates and adjusts the queue depth based on the depth
> > * supported by the HC and ufs device.
> > */
> > @@ -146,10 +145,13 @@ int ufshcd_mcq_decide_queue_depth(struct ufs_hba *hba)
> > {
> > int mac = -EOPNOTSUPP;
> >
> > - if (!hba->vops || !hba->vops->get_hba_mac)
> > - goto err;
> > -
> > - mac = hba->vops->get_hba_mac(hba);
> > + if (!hba->vops || !hba->vops->get_hba_mac) {
> > + hba->capabilities =
> > + ufshcd_readl(hba, REG_CONTROLLER_CAPABILITIES);
> > + mac = (hba->capabilities & MASK_TRANSFER_REQUESTS_SLOTS) + 1;
> > + } else {
> > + mac = hba->vops->get_hba_mac(hba);
> > + }
> > if (mac < 0)
> > goto err;
> >
> > diff --git a/include/ufs/ufshcd.h b/include/ufs/ufshcd.h
> > index d4d63507d090..d32637d267f3 100644
> > --- a/include/ufs/ufshcd.h
> > +++ b/include/ufs/ufshcd.h
> > @@ -325,7 +325,9 @@ struct ufs_pwr_mode_info {
> > * @event_notify: called to notify important events
> > * @reinit_notify: called to notify reinit of UFSHCD during max gear switch
> > * @mcq_config_resource: called to configure MCQ platform resources
> > - * @get_hba_mac: called to get vendor specific mac value, mandatory for mcq mode
> > + * @get_hba_mac: reports maximum number of outstanding commands supported by
> > + * the controller. Should be implemented for UFSHCI 4.0 or later
> > + * controllers that are not compliant with the UFSHCI 4.0 specification.
> > * @op_runtime_config: called to config Operation and runtime regs Pointers
> > * @get_outstanding_cqs: called to get outstanding completion queues
> > * @config_esi: called to config Event Specific Interrupt
> > diff --git a/include/ufs/ufshci.h b/include/ufs/ufshci.h
> > index c50f92bf2e1d..899077bba2d2 100644
> > --- a/include/ufs/ufshci.h
> > +++ b/include/ufs/ufshci.h
> > @@ -67,7 +67,7 @@ enum {
> >
> > /* Controller capability masks */
> > enum {
> > - MASK_TRANSFER_REQUESTS_SLOTS = 0x0000001F,
> > + MASK_TRANSFER_REQUESTS_SLOTS = 0x000000FF,
>
> This should be a separate fix that comes before this patch. But I believe this
> came up during MCQ review as well and I don't remember what was the reply from
> Can. 0x1F is the mask for SDB mode and 0xFF is the mask for MCQ mode.
>
> Can, can you comment more?
>
Oops. Can is not CCed. Added now.
- Mani
> - Mani
>
> --
> மணிவண்ணன் சதாசிவம்
--
மணிவண்ணன் சதாசிவம்
next prev parent reply other threads:[~2024-06-19 7:57 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-06-17 21:07 [PATCH 0/8] UFS patches for kernel 6.11 Bart Van Assche
2024-06-17 21:07 ` [PATCH 1/8] scsi: ufs: Initialize struct uic_command once Bart Van Assche
2024-06-18 1:25 ` Daejun Park
2024-06-18 16:15 ` Bart Van Assche
2024-06-18 6:18 ` Avri Altman
2024-06-19 6:55 ` Manivannan Sadhasivam
2024-06-17 21:07 ` [PATCH 2/8] scsi: ufs: Remove two constants Bart Van Assche
2024-06-19 6:58 ` Manivannan Sadhasivam
2024-06-17 21:07 ` [PATCH 3/8] scsi: ufs: Inline ufshcd_mcq_vops_get_hba_mac() Bart Van Assche
2024-06-18 6:23 ` Avri Altman
2024-06-18 16:14 ` Bart Van Assche
2024-06-17 21:07 ` [PATCH 4/8] scsi: ufs: Make .get_hba_mac() optional Bart Van Assche
2024-06-18 1:28 ` Daejun Park
2024-06-18 16:17 ` Bart Van Assche
2024-06-19 7:13 ` Manivannan Sadhasivam
2024-06-19 7:57 ` Manivannan Sadhasivam [this message]
2024-06-21 3:32 ` Peter Wang (王信友)
2024-06-23 13:33 ` manivannan.sadhasivam
2024-06-24 8:39 ` Peter Wang (王信友)
2024-06-24 17:30 ` Bart Van Assche
2024-06-17 21:07 ` [PATCH 5/8] scsi: ufs: Declare ufshcd_mcq_poll_cqe_lock() once Bart Van Assche
2024-06-18 11:01 ` Avri Altman
2024-06-17 21:07 ` [PATCH 6/8] scsi: ufs: Make ufshcd_poll() complain about unsupported arguments Bart Van Assche
2024-06-19 7:32 ` Manivannan Sadhasivam
2024-06-20 20:13 ` Bart Van Assche
2024-06-23 13:39 ` Manivannan Sadhasivam
2024-06-17 21:07 ` [PATCH 7/8] scsi: ufs: Make the polling code report which command has been completed Bart Van Assche
2024-06-17 21:07 ` [PATCH 8/8] scsi: ufs: Check for completion from the timeout handler Bart Van Assche
2024-06-21 6:54 ` Peter Wang (王信友)
2024-06-21 17:23 ` Bart Van Assche
2024-06-24 8:54 ` Peter Wang (王信友)
2024-06-24 18:12 ` Bart Van Assche
2024-06-25 10:04 ` Peter Wang (王信友)
2024-06-25 16:33 ` Bart Van Assche
2024-06-26 3:54 ` Peter Wang (王信友)
2024-06-26 21:54 ` Bart Van Assche
2024-06-27 10:56 ` Peter Wang (王信友)
2024-06-27 16:33 ` Bart Van Assche
2024-06-27 3:50 ` Wenchao Hao
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240619075731.GB8089@thinkpad \
--to=manivannan.sadhasivam@linaro.org \
--cc=James.Bottomley@HansenPartnership.com \
--cc=akinobu.mita@gmail.com \
--cc=avri.altman@wdc.com \
--cc=beanhuo@micron.com \
--cc=bvanassche@acm.org \
--cc=cw9316.lee@samsung.com \
--cc=linux-scsi@vger.kernel.org \
--cc=martin.petersen@oracle.com \
--cc=minwoo.im@samsung.com \
--cc=peter.wang@mediatek.com \
--cc=powen.kao@mediatek.com \
--cc=quic_cang@quicinc.com \
--cc=quic_mnaresh@quicinc.com \
--cc=yang.lee@linux.alibaba.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.