All of lore.kernel.org
 help / color / mirror / Atom feed
From: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
To: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Cc: martin.petersen@oracle.com, jejb@linux.ibm.com,
	andersson@kernel.org, vkoul@kernel.org,
	krzysztof.kozlowski+dt@linaro.org, konrad.dybcio@somainline.org,
	robh+dt@kernel.org, quic_cang@quicinc.com,
	linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-phy@lists.infradead.org,
	linux-scsi@vger.kernel.org
Subject: Re: [PATCH 10/15] scsi: ufs: ufs-qcom: Use bitfields where appropriate
Date: Mon, 31 Oct 2022 20:20:05 +0530	[thread overview]
Message-ID: <20221031145005.GA10515@thinkpad> (raw)
In-Reply-To: <01a01fb3-2520-58ce-6432-b278bb8118f5@linaro.org>

On Sun, Oct 30, 2022 at 12:58:57AM +0300, Dmitry Baryshkov wrote:
> On 29/10/2022 17:16, Manivannan Sadhasivam wrote:
> > Use bitfield macros where appropriate to simplify the driver.
> > 
> > Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
> > ---
> >   drivers/ufs/host/ufs-qcom.h | 58 ++++++++++++++++---------------------
> >   1 file changed, 25 insertions(+), 33 deletions(-)
> > 
> 
> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
> 
> > diff --git a/drivers/ufs/host/ufs-qcom.h b/drivers/ufs/host/ufs-qcom.h
> > index 44466a395bb5..6cb0776456b3 100644
> > --- a/drivers/ufs/host/ufs-qcom.h
> > +++ b/drivers/ufs/host/ufs-qcom.h
> > @@ -17,12 +17,9 @@
> >   #define DEFAULT_CLK_RATE_HZ     1000000
> >   #define BUS_VECTOR_NAME_LEN     32
> > -#define UFS_HW_VER_MAJOR_SHFT	(28)
> > -#define UFS_HW_VER_MAJOR_MASK	(0x000F << UFS_HW_VER_MAJOR_SHFT)
> > -#define UFS_HW_VER_MINOR_SHFT	(16)
> > -#define UFS_HW_VER_MINOR_MASK	(0x0FFF << UFS_HW_VER_MINOR_SHFT)
> > -#define UFS_HW_VER_STEP_SHFT	(0)
> > -#define UFS_HW_VER_STEP_MASK	(0xFFFF << UFS_HW_VER_STEP_SHFT)
> > +#define UFS_HW_VER_MAJOR_MASK	GENMASK(31, 28)
> > +#define UFS_HW_VER_MINOR_MASK	GENMASK(27, 16)
> > +#define UFS_HW_VER_STEP_MASK	GENMASK(15, 0)
> >   /* vendor specific pre-defined parameters */
> >   #define SLOW 1
> > @@ -76,24 +73,24 @@ enum {
> >   #define UFS_CNTLR_3_x_x_VEN_REGS_OFFSET(x)	(0x400 + x)
> >   /* bit definitions for REG_UFS_CFG1 register */
> > -#define QUNIPRO_SEL		0x1
> > -#define UTP_DBG_RAMS_EN		0x20000
> > +#define QUNIPRO_SEL		BIT(0)
> > +#define UTP_DBG_RAMS_EN		BIT(17)
> >   #define TEST_BUS_EN		BIT(18)
> >   #define TEST_BUS_SEL		GENMASK(22, 19)
> >   #define UFS_REG_TEST_BUS_EN	BIT(30)
> >   /* bit definitions for REG_UFS_CFG2 register */
> > -#define UAWM_HW_CGC_EN		(1 << 0)
> > -#define UARM_HW_CGC_EN		(1 << 1)
> > -#define TXUC_HW_CGC_EN		(1 << 2)
> > -#define RXUC_HW_CGC_EN		(1 << 3)
> > -#define DFC_HW_CGC_EN		(1 << 4)
> > -#define TRLUT_HW_CGC_EN		(1 << 5)
> > -#define TMRLUT_HW_CGC_EN	(1 << 6)
> > -#define OCSC_HW_CGC_EN		(1 << 7)
> > +#define UAWM_HW_CGC_EN		BIT(0)
> > +#define UARM_HW_CGC_EN		BIT(1)
> > +#define TXUC_HW_CGC_EN		BIT(2)
> > +#define RXUC_HW_CGC_EN		BIT(3)
> > +#define DFC_HW_CGC_EN		BIT(4)
> > +#define TRLUT_HW_CGC_EN		BIT(5)
> > +#define TMRLUT_HW_CGC_EN	BIT(6)
> > +#define OCSC_HW_CGC_EN		BIT(7)
> >   /* bit definition for UFS_UFS_TEST_BUS_CTRL_n */
> > -#define TEST_BUS_SUB_SEL_MASK	0x1F  /* All XXX_SEL fields are 5 bits wide */
> > +#define TEST_BUS_SUB_SEL_MASK	GENMASK(4, 0)  /* All XXX_SEL fields are 5 bits wide */
> >   #define REG_UFS_CFG2_CGC_EN_ALL (UAWM_HW_CGC_EN | UARM_HW_CGC_EN |\
> >   				 TXUC_HW_CGC_EN | RXUC_HW_CGC_EN |\
> > @@ -101,17 +98,12 @@ enum {
> >   				 TMRLUT_HW_CGC_EN | OCSC_HW_CGC_EN)
> >   /* bit offset */
> > -enum {
> > -	OFFSET_UFS_PHY_SOFT_RESET           = 1,
> > -	OFFSET_CLK_NS_REG                   = 10,
> > -};
> > +#define OFFSET_CLK_NS_REG		0xa
> >   /* bit masks */
> > -enum {
> > -	MASK_UFS_PHY_SOFT_RESET             = 0x2,
> > -	MASK_TX_SYMBOL_CLK_1US_REG          = 0x3FF,
> > -	MASK_CLK_NS_REG                     = 0xFFFC00,
> > -};
> > +#define MASK_UFS_PHY_SOFT_RESET		BIT(1)
> > +#define MASK_TX_SYMBOL_CLK_1US_REG	GENMASK(9, 0)
> > +#define MASK_CLK_NS_REG			GENMASK(23, 10)
> >   /* QCOM UFS debug print bit mask */
> >   #define UFS_QCOM_DBG_PRINT_REGS_EN	BIT(0)
> > @@ -135,15 +127,15 @@ ufs_qcom_get_controller_revision(struct ufs_hba *hba,
> >   {
> >   	u32 ver = ufshcd_readl(hba, REG_UFS_HW_VERSION);
> > -	*major = (ver & UFS_HW_VER_MAJOR_MASK) >> UFS_HW_VER_MAJOR_SHFT;
> > -	*minor = (ver & UFS_HW_VER_MINOR_MASK) >> UFS_HW_VER_MINOR_SHFT;
> > -	*step = (ver & UFS_HW_VER_STEP_MASK) >> UFS_HW_VER_STEP_SHFT;
> > +	*major = FIELD_GET(UFS_HW_VER_MAJOR_MASK, ver);
> > +	*minor = FIELD_GET(UFS_HW_VER_MINOR_MASK, ver);
> > +	*step = FIELD_GET(UFS_HW_VER_STEP_MASK, ver);
> >   };
> >   static inline void ufs_qcom_assert_reset(struct ufs_hba *hba)
> >   {
> > -	ufshcd_rmwl(hba, MASK_UFS_PHY_SOFT_RESET,
> > -			1 << OFFSET_UFS_PHY_SOFT_RESET, REG_UFS_CFG1);
> > +	ufshcd_rmwl(hba, MASK_UFS_PHY_SOFT_RESET, FIELD_PREP(MASK_UFS_PHY_SOFT_RESET, 1),
> 
> Nit: I'd just define the value too and use the defined name here.
> 
> > +		    REG_UFS_CFG1);
> >   	/*
> >   	 * Make sure assertion of ufs phy reset is written to
> > @@ -154,8 +146,8 @@ static inline void ufs_qcom_assert_reset(struct ufs_hba *hba)
> >   static inline void ufs_qcom_deassert_reset(struct ufs_hba *hba)
> >   {
> > -	ufshcd_rmwl(hba, MASK_UFS_PHY_SOFT_RESET,
> > -			0 << OFFSET_UFS_PHY_SOFT_RESET, REG_UFS_CFG1);
> > +	ufshcd_rmwl(hba, MASK_UFS_PHY_SOFT_RESET, FIELD_PREP(MASK_UFS_PHY_SOFT_RESET, 0),
> 
> Nit: FIELD_PREP is always 0.
> 

I know but this make the code in sync with reset assert.

Thanks,
Mani

> > +		    REG_UFS_CFG1);
> >   	/*
> >   	 * Make sure de-assertion of ufs phy reset is written to
> 
> -- 
> With best wishes
> Dmitry
> 

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

WARNING: multiple messages have this Message-ID (diff)
From: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
To: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Cc: martin.petersen@oracle.com, jejb@linux.ibm.com,
	andersson@kernel.org, vkoul@kernel.org,
	krzysztof.kozlowski+dt@linaro.org, konrad.dybcio@somainline.org,
	robh+dt@kernel.org, quic_cang@quicinc.com,
	linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-phy@lists.infradead.org,
	linux-scsi@vger.kernel.org
Subject: Re: [PATCH 10/15] scsi: ufs: ufs-qcom: Use bitfields where appropriate
Date: Mon, 31 Oct 2022 20:20:05 +0530	[thread overview]
Message-ID: <20221031145005.GA10515@thinkpad> (raw)
In-Reply-To: <01a01fb3-2520-58ce-6432-b278bb8118f5@linaro.org>

On Sun, Oct 30, 2022 at 12:58:57AM +0300, Dmitry Baryshkov wrote:
> On 29/10/2022 17:16, Manivannan Sadhasivam wrote:
> > Use bitfield macros where appropriate to simplify the driver.
> > 
> > Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
> > ---
> >   drivers/ufs/host/ufs-qcom.h | 58 ++++++++++++++++---------------------
> >   1 file changed, 25 insertions(+), 33 deletions(-)
> > 
> 
> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
> 
> > diff --git a/drivers/ufs/host/ufs-qcom.h b/drivers/ufs/host/ufs-qcom.h
> > index 44466a395bb5..6cb0776456b3 100644
> > --- a/drivers/ufs/host/ufs-qcom.h
> > +++ b/drivers/ufs/host/ufs-qcom.h
> > @@ -17,12 +17,9 @@
> >   #define DEFAULT_CLK_RATE_HZ     1000000
> >   #define BUS_VECTOR_NAME_LEN     32
> > -#define UFS_HW_VER_MAJOR_SHFT	(28)
> > -#define UFS_HW_VER_MAJOR_MASK	(0x000F << UFS_HW_VER_MAJOR_SHFT)
> > -#define UFS_HW_VER_MINOR_SHFT	(16)
> > -#define UFS_HW_VER_MINOR_MASK	(0x0FFF << UFS_HW_VER_MINOR_SHFT)
> > -#define UFS_HW_VER_STEP_SHFT	(0)
> > -#define UFS_HW_VER_STEP_MASK	(0xFFFF << UFS_HW_VER_STEP_SHFT)
> > +#define UFS_HW_VER_MAJOR_MASK	GENMASK(31, 28)
> > +#define UFS_HW_VER_MINOR_MASK	GENMASK(27, 16)
> > +#define UFS_HW_VER_STEP_MASK	GENMASK(15, 0)
> >   /* vendor specific pre-defined parameters */
> >   #define SLOW 1
> > @@ -76,24 +73,24 @@ enum {
> >   #define UFS_CNTLR_3_x_x_VEN_REGS_OFFSET(x)	(0x400 + x)
> >   /* bit definitions for REG_UFS_CFG1 register */
> > -#define QUNIPRO_SEL		0x1
> > -#define UTP_DBG_RAMS_EN		0x20000
> > +#define QUNIPRO_SEL		BIT(0)
> > +#define UTP_DBG_RAMS_EN		BIT(17)
> >   #define TEST_BUS_EN		BIT(18)
> >   #define TEST_BUS_SEL		GENMASK(22, 19)
> >   #define UFS_REG_TEST_BUS_EN	BIT(30)
> >   /* bit definitions for REG_UFS_CFG2 register */
> > -#define UAWM_HW_CGC_EN		(1 << 0)
> > -#define UARM_HW_CGC_EN		(1 << 1)
> > -#define TXUC_HW_CGC_EN		(1 << 2)
> > -#define RXUC_HW_CGC_EN		(1 << 3)
> > -#define DFC_HW_CGC_EN		(1 << 4)
> > -#define TRLUT_HW_CGC_EN		(1 << 5)
> > -#define TMRLUT_HW_CGC_EN	(1 << 6)
> > -#define OCSC_HW_CGC_EN		(1 << 7)
> > +#define UAWM_HW_CGC_EN		BIT(0)
> > +#define UARM_HW_CGC_EN		BIT(1)
> > +#define TXUC_HW_CGC_EN		BIT(2)
> > +#define RXUC_HW_CGC_EN		BIT(3)
> > +#define DFC_HW_CGC_EN		BIT(4)
> > +#define TRLUT_HW_CGC_EN		BIT(5)
> > +#define TMRLUT_HW_CGC_EN	BIT(6)
> > +#define OCSC_HW_CGC_EN		BIT(7)
> >   /* bit definition for UFS_UFS_TEST_BUS_CTRL_n */
> > -#define TEST_BUS_SUB_SEL_MASK	0x1F  /* All XXX_SEL fields are 5 bits wide */
> > +#define TEST_BUS_SUB_SEL_MASK	GENMASK(4, 0)  /* All XXX_SEL fields are 5 bits wide */
> >   #define REG_UFS_CFG2_CGC_EN_ALL (UAWM_HW_CGC_EN | UARM_HW_CGC_EN |\
> >   				 TXUC_HW_CGC_EN | RXUC_HW_CGC_EN |\
> > @@ -101,17 +98,12 @@ enum {
> >   				 TMRLUT_HW_CGC_EN | OCSC_HW_CGC_EN)
> >   /* bit offset */
> > -enum {
> > -	OFFSET_UFS_PHY_SOFT_RESET           = 1,
> > -	OFFSET_CLK_NS_REG                   = 10,
> > -};
> > +#define OFFSET_CLK_NS_REG		0xa
> >   /* bit masks */
> > -enum {
> > -	MASK_UFS_PHY_SOFT_RESET             = 0x2,
> > -	MASK_TX_SYMBOL_CLK_1US_REG          = 0x3FF,
> > -	MASK_CLK_NS_REG                     = 0xFFFC00,
> > -};
> > +#define MASK_UFS_PHY_SOFT_RESET		BIT(1)
> > +#define MASK_TX_SYMBOL_CLK_1US_REG	GENMASK(9, 0)
> > +#define MASK_CLK_NS_REG			GENMASK(23, 10)
> >   /* QCOM UFS debug print bit mask */
> >   #define UFS_QCOM_DBG_PRINT_REGS_EN	BIT(0)
> > @@ -135,15 +127,15 @@ ufs_qcom_get_controller_revision(struct ufs_hba *hba,
> >   {
> >   	u32 ver = ufshcd_readl(hba, REG_UFS_HW_VERSION);
> > -	*major = (ver & UFS_HW_VER_MAJOR_MASK) >> UFS_HW_VER_MAJOR_SHFT;
> > -	*minor = (ver & UFS_HW_VER_MINOR_MASK) >> UFS_HW_VER_MINOR_SHFT;
> > -	*step = (ver & UFS_HW_VER_STEP_MASK) >> UFS_HW_VER_STEP_SHFT;
> > +	*major = FIELD_GET(UFS_HW_VER_MAJOR_MASK, ver);
> > +	*minor = FIELD_GET(UFS_HW_VER_MINOR_MASK, ver);
> > +	*step = FIELD_GET(UFS_HW_VER_STEP_MASK, ver);
> >   };
> >   static inline void ufs_qcom_assert_reset(struct ufs_hba *hba)
> >   {
> > -	ufshcd_rmwl(hba, MASK_UFS_PHY_SOFT_RESET,
> > -			1 << OFFSET_UFS_PHY_SOFT_RESET, REG_UFS_CFG1);
> > +	ufshcd_rmwl(hba, MASK_UFS_PHY_SOFT_RESET, FIELD_PREP(MASK_UFS_PHY_SOFT_RESET, 1),
> 
> Nit: I'd just define the value too and use the defined name here.
> 
> > +		    REG_UFS_CFG1);
> >   	/*
> >   	 * Make sure assertion of ufs phy reset is written to
> > @@ -154,8 +146,8 @@ static inline void ufs_qcom_assert_reset(struct ufs_hba *hba)
> >   static inline void ufs_qcom_deassert_reset(struct ufs_hba *hba)
> >   {
> > -	ufshcd_rmwl(hba, MASK_UFS_PHY_SOFT_RESET,
> > -			0 << OFFSET_UFS_PHY_SOFT_RESET, REG_UFS_CFG1);
> > +	ufshcd_rmwl(hba, MASK_UFS_PHY_SOFT_RESET, FIELD_PREP(MASK_UFS_PHY_SOFT_RESET, 0),
> 
> Nit: FIELD_PREP is always 0.
> 

I know but this make the code in sync with reset assert.

Thanks,
Mani

> > +		    REG_UFS_CFG1);
> >   	/*
> >   	 * Make sure de-assertion of ufs phy reset is written to
> 
> -- 
> With best wishes
> Dmitry
> 

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

-- 
linux-phy mailing list
linux-phy@lists.infradead.org
https://lists.infradead.org/mailman/listinfo/linux-phy

  reply	other threads:[~2022-10-31 14:50 UTC|newest]

Thread overview: 74+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-10-29 14:16 [PATCH 00/15] ufs: qcom: Add HS-G4 support Manivannan Sadhasivam
2022-10-29 14:16 ` Manivannan Sadhasivam
2022-10-29 14:16 ` [PATCH 01/15] phy: qcom-qmp-ufs: Move register settings to qmp_phy_cfg_tables struct Manivannan Sadhasivam
2022-10-29 14:16   ` Manivannan Sadhasivam
2022-10-29 21:50   ` Dmitry Baryshkov
2022-10-29 21:50     ` Dmitry Baryshkov
2022-10-31 15:46     ` Manivannan Sadhasivam
2022-10-31 15:46       ` Manivannan Sadhasivam
2022-10-31 18:50       ` Dmitry Baryshkov
2022-10-31 18:50         ` Dmitry Baryshkov
2022-11-01 14:41         ` Manivannan Sadhasivam
2022-11-01 14:41           ` Manivannan Sadhasivam
2022-10-29 14:16 ` [PATCH 02/15] phy: qcom-qmp-ufs: Add support for configuring PHY in HS Series B mode Manivannan Sadhasivam
2022-10-29 14:16   ` Manivannan Sadhasivam
2022-10-29 21:51   ` Dmitry Baryshkov
2022-10-29 21:51     ` Dmitry Baryshkov
2022-10-29 14:16 ` [PATCH 03/15] phy: qcom-qmp-ufs: Add support for configuring PHY in HS G4 mode Manivannan Sadhasivam
2022-10-29 14:16   ` Manivannan Sadhasivam
2022-10-29 21:54   ` Dmitry Baryshkov
2022-10-29 21:54     ` Dmitry Baryshkov
2022-10-29 14:16 ` [PATCH 04/15] phy: qcom-qmp-ufs: Add HS G4 mode support to SM8250 SoC Manivannan Sadhasivam
2022-10-29 14:16   ` Manivannan Sadhasivam
2022-10-29 21:55   ` Dmitry Baryshkov
2022-10-29 21:55     ` Dmitry Baryshkov
2022-10-29 14:16 ` [PATCH 05/15] phy: qcom-qmp-ufs: Move HS Rate B register setting to tables_hs_b Manivannan Sadhasivam
2022-10-29 14:16   ` Manivannan Sadhasivam
2022-10-29 21:55   ` Dmitry Baryshkov
2022-10-29 21:55     ` Dmitry Baryshkov
2022-10-29 14:16 ` [PATCH 06/15] dt-bindings: ufs: Add "max-gear" property for UFS device Manivannan Sadhasivam
2022-10-29 14:16   ` Manivannan Sadhasivam
2022-10-31 21:35   ` Rob Herring
2022-10-31 21:35     ` Rob Herring
2022-10-29 14:16 ` [PATCH 07/15] arm64: dts: qcom: qrb5165-rb5: Add max-gear property to UFS node Manivannan Sadhasivam
2022-10-29 14:16   ` Manivannan Sadhasivam
2022-10-29 14:16 ` [PATCH 08/15] scsi: ufs: ufs-qcom: Remove un-necessary goto statements Manivannan Sadhasivam
2022-10-29 14:16   ` Manivannan Sadhasivam
2022-10-29 21:56   ` Dmitry Baryshkov
2022-10-29 21:56     ` Dmitry Baryshkov
2022-10-29 14:16 ` [PATCH 09/15] scsi: ufs: ufs-qcom: Remove un-necessary WARN_ON() Manivannan Sadhasivam
2022-10-29 14:16   ` Manivannan Sadhasivam
2022-10-29 14:16 ` [PATCH 10/15] scsi: ufs: ufs-qcom: Use bitfields where appropriate Manivannan Sadhasivam
2022-10-29 14:16   ` Manivannan Sadhasivam
2022-10-29 21:58   ` Dmitry Baryshkov
2022-10-29 21:58     ` Dmitry Baryshkov
2022-10-31 14:50     ` Manivannan Sadhasivam [this message]
2022-10-31 14:50       ` Manivannan Sadhasivam
2022-10-29 14:16 ` [PATCH 11/15] scsi: ufs: ufs-qcom: Use dev_err_probe() for printing probe error Manivannan Sadhasivam
2022-10-29 14:16   ` Manivannan Sadhasivam
2022-10-29 21:33   ` Dmitry Baryshkov
2022-10-29 21:33     ` Dmitry Baryshkov
2022-10-29 14:16 ` [PATCH 12/15] scsi: ufs: ufs-qcom: Fix the Qcom register name for offset 0xD0 Manivannan Sadhasivam
2022-10-29 14:16   ` Manivannan Sadhasivam
2022-10-29 22:06   ` Dmitry Baryshkov
2022-10-29 22:06     ` Dmitry Baryshkov
2022-10-31 14:50     ` Manivannan Sadhasivam
2022-10-31 14:50       ` Manivannan Sadhasivam
2022-10-29 14:16 ` [PATCH 13/15] scsi: ufs: ufs-qcom: Factor out the logic finding the HS Gear Manivannan Sadhasivam
2022-10-29 14:16   ` Manivannan Sadhasivam
2022-10-29 14:16 ` [PATCH 14/15] scsi: ufs: ufs-qcom: Add support for finding HS gear on new UFS versions Manivannan Sadhasivam
2022-10-29 14:16   ` Manivannan Sadhasivam
2022-10-29 21:48   ` Dmitry Baryshkov
2022-10-29 21:48     ` Dmitry Baryshkov
2022-10-31 14:56     ` Manivannan Sadhasivam
2022-10-31 14:56       ` Manivannan Sadhasivam
2022-10-31 18:52       ` Dmitry Baryshkov
2022-10-31 18:52         ` Dmitry Baryshkov
2022-11-02 20:05       ` Krzysztof Kozlowski
2022-11-02 20:05         ` Krzysztof Kozlowski
2022-11-03 12:18         ` Manivannan Sadhasivam
2022-11-03 12:18           ` Manivannan Sadhasivam
2022-10-31 15:39     ` Manivannan Sadhasivam
2022-10-31 15:39       ` Manivannan Sadhasivam
2022-10-29 14:16 ` [PATCH 15/15] MAINTAINERS: Add myself as the maintainer for Qcom UFS driver Manivannan Sadhasivam
2022-10-29 14:16   ` Manivannan Sadhasivam

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=20221031145005.GA10515@thinkpad \
    --to=manivannan.sadhasivam@linaro.org \
    --cc=andersson@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=dmitry.baryshkov@linaro.org \
    --cc=jejb@linux.ibm.com \
    --cc=konrad.dybcio@somainline.org \
    --cc=krzysztof.kozlowski+dt@linaro.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-phy@lists.infradead.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=martin.petersen@oracle.com \
    --cc=quic_cang@quicinc.com \
    --cc=robh+dt@kernel.org \
    --cc=vkoul@kernel.org \
    /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.