lkml.org 
[lkml]   [2022]   [Nov]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH v5 03/16] ufs: core: Introduce Multi-circular queue capability
    On Tue, Nov 22, 2022 at 08:10:16PM -0800, Asutosh Das wrote:
    > Add support to check for MCQ capability in the UFSHC.
    > Add a module parameter to disable MCQ if needed.
    >
    > Co-developed-by: Can Guo <quic_cang@quicinc.com>
    > Signed-off-by: Can Guo <quic_cang@quicinc.com>
    > Signed-off-by: Asutosh Das <quic_asutoshd@quicinc.com>

    Couple of nitpicks below, with those addressed:

    Reviewed-by: Manivannan Sadhasivam <mani@kernel.org>

    > ---
    > drivers/ufs/core/ufshcd.c | 31 +++++++++++++++++++++++++++++++
    > include/ufs/ufshcd.h | 2 ++
    > 2 files changed, 33 insertions(+)
    >
    > diff --git a/drivers/ufs/core/ufshcd.c b/drivers/ufs/core/ufshcd.c
    > index 66b797f..08be8ad 100644
    > --- a/drivers/ufs/core/ufshcd.c
    > +++ b/drivers/ufs/core/ufshcd.c
    > @@ -89,6 +89,33 @@
    > /* Polling time to wait for fDeviceInit */
    > #define FDEVICEINIT_COMPL_TIMEOUT 1500 /* millisecs */
    >
    > +/* UFSHC 4.0 compliant HC support this mode, refer param_set_mcq_mode() */
    > +static bool use_mcq_mode = true;
    > +
    > +static inline bool is_mcq_supported(struct ufs_hba *hba)

    Please get rid of inline keyword and let the compiler handle it.

    > +{
    > + return hba->mcq_sup && use_mcq_mode;
    > +}
    > +
    > +static int param_set_mcq_mode(const char *val, const struct kernel_param *kp)
    > +{
    > + int ret;
    > +
    > + ret = param_set_bool(val, kp);
    > + if (ret)
    > + return ret;
    > +
    > + return 0;
    > +}
    > +
    > +static const struct kernel_param_ops mcq_mode_ops = {
    > + .set = param_set_mcq_mode,
    > + .get = param_get_bool,
    > +};
    > +
    > +module_param_cb(use_mcq_mode, &mcq_mode_ops, &use_mcq_mode, 0644);
    > +MODULE_PARM_DESC(mcq_mode, "Control MCQ mode for UFSHCI 4.0 controllers");

    Is it ok to mention only 4.0? What about future revisions?

    Thanks,
    Mani
    > +
    > #define ufshcd_toggle_vreg(_dev, _vreg, _on) \
    > ({ \
    > int _ret; \
    > @@ -2258,6 +2285,10 @@ static inline int ufshcd_hba_capabilities(struct ufs_hba *hba)
    > if (err)
    > dev_err(hba->dev, "crypto setup failed\n");
    >
    > + hba->mcq_sup = FIELD_GET(MASK_MCQ_SUPPORT, hba->capabilities);
    > + if (!hba->mcq_sup)
    > + return err;
    > +
    > hba->mcq_capabilities = ufshcd_readl(hba, REG_MCQCAP);
    > hba->ext_iid_sup = FIELD_GET(MASK_EXT_IID_SUPPORT,
    > hba->mcq_capabilities);
    > diff --git a/include/ufs/ufshcd.h b/include/ufs/ufshcd.h
    > index aec37cb9..70c0f9f 100644
    > --- a/include/ufs/ufshcd.h
    > +++ b/include/ufs/ufshcd.h
    > @@ -832,6 +832,7 @@ struct ufs_hba_monitor {
    > * @complete_put: whether or not to call ufshcd_rpm_put() from inside
    > * ufshcd_resume_complete()
    > * @ext_iid_sup: is EXT_IID is supported by UFSHC
    > + * @mcq_sup: is mcq supported by UFSHC
    > */
    > struct ufs_hba {
    > void __iomem *mmio_base;
    > @@ -982,6 +983,7 @@ struct ufs_hba {
    > u32 luns_avail;
    > bool complete_put;
    > bool ext_iid_sup;
    > + bool mcq_sup;
    > };
    >
    > /* Returns true if clocks can be gated. Otherwise false */
    > --
    > 2.7.4
    >

    --
    மணிவண்ணன் சதாசிவம்

    \
     
     \ /
      Last update: 2022-11-28 15:31    [W:5.511 / U:0.004 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site