* [PATCH V5 0/4] Add DT-based gear and rate limiting support
@ 2025-09-02 16:48 ` Ram Kumar Dwivedi
2025-09-02 16:48 ` [PATCH V5 1/4] ufs: dt-bindings: Document gear and rate limit properties Ram Kumar Dwivedi
` (4 more replies)
0 siblings, 5 replies; 9+ messages in thread
From: Ram Kumar Dwivedi @ 2025-09-02 16:48 UTC (permalink / raw)
To: alim.akhtar, avri.altman, bvanassche, robh, krzk+dt, conor+dt,
mani, James.Bottomley, martin.petersen
Cc: linux-scsi, devicetree, linux-kernel, linux-arm-msm
This patch series adds support for limiting the maximum high-speed
gear and rate used by the UFS controller via device tree properties.
Some platforms may have signal integrity, clock configuration, or
layout issues that prevent reliable operation at higher gears or rates.
This is especially critical in automotive and other platforms where
stability is prioritized over peak performance.
The series follows this logical progression:
1. Document the new DT properties in the common UFS binding
2. Clean up existing redundant code in the qcom driver
3. Add platform-level parsing support for the new properties
4. Integrate the platform support in the qcom driver
This approach makes the functionality available to other UFS host
drivers and provides a cleaner, more maintainable implementation.
Changes from V1:
- Restructured patch series for better logical flow and maintainability.
- Moved DT bindings to ufs-common.yaml making it available for all UFS
controllers.
- Added platform-level support in ufshcd-pltfrm.c for code reusability.
- Separated the cleanup patch to remove redundant hs_rate assignment in
qcom driver.
- Removed SA8155 DTS changes to keep the series focused on core
functionality.
- Improved commit messages with better technical rationale.
Changes from V2:
- Documented default values of limit-rate and limit-hs-gear in DT bindings
as per Krzysztof's suggestion.
Changes from V3:
- Changed limit-rate property from numeric values 1 and 2 to string values
Rate-A and Rate-B for better readability and clarity as suggested by
Bart and Krzysztof.
- Added Co-developed-by tag for Nitin Rawat in 3rd patch.
Changes from V4:
- Added the missing argument to the error message while parsing
limit-rate property.
- Updated the maximum supported value and default for limit-gear
property to gear 6, as per Krzysztof's and Bart's recommendation.
- Renamed Rate-A and Rate-B to lowercase (rate-a, rate-b) as suggested
by Krzysztof.
Ram Kumar Dwivedi (4):
ufs: dt-bindings: Document gear and rate limit properties
ufs: ufs-qcom: Remove redundant re-assignment to hs_rate
ufs: pltfrm: Allow limiting HS gear and rate via DT
ufs: ufs-qcom: Add support for limiting HS gear and rate
.../devicetree/bindings/ufs/ufs-common.yaml | 16 +++++++++
drivers/ufs/host/ufs-qcom.c | 21 +++++++----
drivers/ufs/host/ufshcd-pltfrm.c | 36 +++++++++++++++++++
drivers/ufs/host/ufshcd-pltfrm.h | 1 +
4 files changed, 68 insertions(+), 6 deletions(-)
--
2.50.1
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH V5 1/4] ufs: dt-bindings: Document gear and rate limit properties
2025-09-02 16:48 ` [PATCH V5 0/4] Add DT-based gear and rate limiting support Ram Kumar Dwivedi
@ 2025-09-02 16:48 ` Ram Kumar Dwivedi
2025-09-03 6:44 ` Krzysztof Kozlowski
2025-09-02 16:48 ` [PATCH V5 2/4] ufs: ufs-qcom: Remove redundant re-assignment to hs_rate Ram Kumar Dwivedi
` (3 subsequent siblings)
4 siblings, 1 reply; 9+ messages in thread
From: Ram Kumar Dwivedi @ 2025-09-02 16:48 UTC (permalink / raw)
To: alim.akhtar, avri.altman, bvanassche, robh, krzk+dt, conor+dt,
mani, James.Bottomley, martin.petersen
Cc: linux-scsi, devicetree, linux-kernel, linux-arm-msm
Add optional "limit-hs-gear" and "limit-rate" properties to the
UFS controller common binding. These properties allow limiting
the maximum HS gear and rate.
This is useful in cases where the customer board may have signal
integrity, clock configuration or layout issues that prevent reliable
operation at higher gears. Such limitations are especially critical in
those platforms, where stability is prioritized over peak performance.
Signed-off-by: Ram Kumar Dwivedi <quic_rdwivedi@quicinc.com>
---
.../devicetree/bindings/ufs/ufs-common.yaml | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/Documentation/devicetree/bindings/ufs/ufs-common.yaml b/Documentation/devicetree/bindings/ufs/ufs-common.yaml
index 31fe7f30ff5b..8ffed71c5f6a 100644
--- a/Documentation/devicetree/bindings/ufs/ufs-common.yaml
+++ b/Documentation/devicetree/bindings/ufs/ufs-common.yaml
@@ -89,6 +89,22 @@ properties:
msi-parent: true
+ limit-hs-gear:
+ $ref: /schemas/types.yaml#/definitions/uint32
+ minimum: 1
+ maximum: 6
+ default: 6
+ description:
+ Restricts the maximum HS gear used in both TX and RX directions.
+
+ limit-rate:
+ $ref: /schemas/types.yaml#/definitions/string
+ enum: [rate-a, rate-b]
+ default: rate-b
+ description:
+ Restricts the UFS controller to rate-a or rate-b for both TX and
+ RX directions.
+
dependencies:
freq-table-hz: [ clocks ]
operating-points-v2: [ clocks, clock-names ]
--
2.50.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH V5 2/4] ufs: ufs-qcom: Remove redundant re-assignment to hs_rate
2025-09-02 16:48 ` [PATCH V5 0/4] Add DT-based gear and rate limiting support Ram Kumar Dwivedi
2025-09-02 16:48 ` [PATCH V5 1/4] ufs: dt-bindings: Document gear and rate limit properties Ram Kumar Dwivedi
@ 2025-09-02 16:48 ` Ram Kumar Dwivedi
2025-09-03 4:53 ` Alim Akhtar
2025-09-02 16:48 ` [PATCH V5 3/4] ufs: pltfrm: Allow limiting HS gear and rate via DT Ram Kumar Dwivedi
` (2 subsequent siblings)
4 siblings, 1 reply; 9+ messages in thread
From: Ram Kumar Dwivedi @ 2025-09-02 16:48 UTC (permalink / raw)
To: alim.akhtar, avri.altman, bvanassche, robh, krzk+dt, conor+dt,
mani, James.Bottomley, martin.petersen
Cc: linux-scsi, devicetree, linux-kernel, linux-arm-msm
Remove the redundant else block that assigns PA_HS_MODE_B to hs_rate,
as it is already assigned in ufshcd_init_host_params(). This avoids
unnecessary reassignment and prevents overwriting hs_rate when it is
explicitly set to a different value.
Signed-off-by: Ram Kumar Dwivedi <quic_rdwivedi@quicinc.com>
---
drivers/ufs/host/ufs-qcom.c | 8 ++------
1 file changed, 2 insertions(+), 6 deletions(-)
diff --git a/drivers/ufs/host/ufs-qcom.c b/drivers/ufs/host/ufs-qcom.c
index 9574fdc2bb0f..1a93351fb70e 100644
--- a/drivers/ufs/host/ufs-qcom.c
+++ b/drivers/ufs/host/ufs-qcom.c
@@ -494,12 +494,8 @@ static int ufs_qcom_power_up_sequence(struct ufs_hba *hba)
* If the HS-G5 PHY gear is used, update host_params->hs_rate to Rate-A,
* so that the subsequent power mode change shall stick to Rate-A.
*/
- if (host->hw_ver.major == 0x5) {
- if (host->phy_gear == UFS_HS_G5)
- host_params->hs_rate = PA_HS_MODE_A;
- else
- host_params->hs_rate = PA_HS_MODE_B;
- }
+ if (host->hw_ver.major == 0x5 && host->phy_gear == UFS_HS_G5)
+ host_params->hs_rate = PA_HS_MODE_A;
mode = host_params->hs_rate == PA_HS_MODE_B ? PHY_MODE_UFS_HS_B : PHY_MODE_UFS_HS_A;
--
2.50.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH V5 3/4] ufs: pltfrm: Allow limiting HS gear and rate via DT
2025-09-02 16:48 ` [PATCH V5 0/4] Add DT-based gear and rate limiting support Ram Kumar Dwivedi
2025-09-02 16:48 ` [PATCH V5 1/4] ufs: dt-bindings: Document gear and rate limit properties Ram Kumar Dwivedi
2025-09-02 16:48 ` [PATCH V5 2/4] ufs: ufs-qcom: Remove redundant re-assignment to hs_rate Ram Kumar Dwivedi
@ 2025-09-02 16:48 ` Ram Kumar Dwivedi
2025-09-03 4:28 ` Alim Akhtar
2025-09-02 16:49 ` [PATCH V5 4/4] ufs: ufs-qcom: Add support for limiting HS gear and rate Ram Kumar Dwivedi
2025-09-03 4:48 ` [PATCH V5 0/4] Add DT-based gear and rate limiting support Alim Akhtar
4 siblings, 1 reply; 9+ messages in thread
From: Ram Kumar Dwivedi @ 2025-09-02 16:48 UTC (permalink / raw)
To: alim.akhtar, avri.altman, bvanassche, robh, krzk+dt, conor+dt,
mani, James.Bottomley, martin.petersen
Cc: linux-scsi, devicetree, linux-kernel, linux-arm-msm, Nitin Rawat
Add support for parsing 'limit-hs-gear' and 'limit-rate' device tree
properties to restrict high-speed gear and rate during initialization.
This is useful in cases where the customer board may have signal
integrity, clock configuration or layout issues that prevent reliable
operation at higher gears. Such limitations are especially critical in
those platforms, where stability is prioritized over peak performance.
Co-developed-by: Nitin Rawat <quic_nitirawa@quicinc.com>
Signed-off-by: Nitin Rawat <quic_nitirawa@quicinc.com>
Signed-off-by: Ram Kumar Dwivedi <quic_rdwivedi@quicinc.com>
---
drivers/ufs/host/ufshcd-pltfrm.c | 36 ++++++++++++++++++++++++++++++++
drivers/ufs/host/ufshcd-pltfrm.h | 1 +
2 files changed, 37 insertions(+)
diff --git a/drivers/ufs/host/ufshcd-pltfrm.c b/drivers/ufs/host/ufshcd-pltfrm.c
index ffe5d1d2b215..4df6885f0dc0 100644
--- a/drivers/ufs/host/ufshcd-pltfrm.c
+++ b/drivers/ufs/host/ufshcd-pltfrm.c
@@ -430,6 +430,42 @@ int ufshcd_negotiate_pwr_params(const struct ufs_host_params *host_params,
}
EXPORT_SYMBOL_GPL(ufshcd_negotiate_pwr_params);
+/**
+ * ufshcd_parse_limits - Parse DT-based gear and rate limits for UFS
+ * @hba: Pointer to UFS host bus adapter instance
+ * @host_params: Pointer to UFS host parameters structure to be updated
+ *
+ * This function reads optional device tree properties to apply
+ * platform-specific constraints.
+ *
+ * "limit-hs-gear": Specifies the max HS gear.
+ * "limit-rate": Specifies the max High-Speed rate.
+ */
+void ufshcd_parse_limits(struct ufs_hba *hba, struct ufs_host_params *host_params)
+{
+ struct device_node *np = hba->dev->of_node;
+ u32 hs_gear;
+ const char *hs_rate;
+
+ if (!np)
+ return;
+
+ if (!of_property_read_u32(np, "limit-hs-gear", &hs_gear)) {
+ host_params->hs_tx_gear = hs_gear;
+ host_params->hs_rx_gear = hs_gear;
+ }
+
+ if (!of_property_read_string(np, "limit-rate", &hs_rate)) {
+ if (!strcmp(hs_rate, "rate-a"))
+ host_params->hs_rate = PA_HS_MODE_A;
+ else if (!strcmp(hs_rate, "rate-b"))
+ host_params->hs_rate = PA_HS_MODE_B;
+ else
+ dev_warn(hba->dev, "Invalid limit-rate: %s\n", hs_rate);
+ }
+}
+EXPORT_SYMBOL_GPL(ufshcd_parse_limits);
+
void ufshcd_init_host_params(struct ufs_host_params *host_params)
{
*host_params = (struct ufs_host_params){
diff --git a/drivers/ufs/host/ufshcd-pltfrm.h b/drivers/ufs/host/ufshcd-pltfrm.h
index 3017f8e8f93c..1617f2541273 100644
--- a/drivers/ufs/host/ufshcd-pltfrm.h
+++ b/drivers/ufs/host/ufshcd-pltfrm.h
@@ -29,6 +29,7 @@ int ufshcd_negotiate_pwr_params(const struct ufs_host_params *host_params,
const struct ufs_pa_layer_attr *dev_max,
struct ufs_pa_layer_attr *agreed_pwr);
void ufshcd_init_host_params(struct ufs_host_params *host_params);
+void ufshcd_parse_limits(struct ufs_hba *hba, struct ufs_host_params *host_params);
int ufshcd_pltfrm_init(struct platform_device *pdev,
const struct ufs_hba_variant_ops *vops);
void ufshcd_pltfrm_remove(struct platform_device *pdev);
--
2.50.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH V5 4/4] ufs: ufs-qcom: Add support for limiting HS gear and rate
2025-09-02 16:48 ` [PATCH V5 0/4] Add DT-based gear and rate limiting support Ram Kumar Dwivedi
` (2 preceding siblings ...)
2025-09-02 16:48 ` [PATCH V5 3/4] ufs: pltfrm: Allow limiting HS gear and rate via DT Ram Kumar Dwivedi
@ 2025-09-02 16:49 ` Ram Kumar Dwivedi
2025-09-03 4:48 ` [PATCH V5 0/4] Add DT-based gear and rate limiting support Alim Akhtar
4 siblings, 0 replies; 9+ messages in thread
From: Ram Kumar Dwivedi @ 2025-09-02 16:49 UTC (permalink / raw)
To: alim.akhtar, avri.altman, bvanassche, robh, krzk+dt, conor+dt,
mani, James.Bottomley, martin.petersen
Cc: linux-scsi, devicetree, linux-kernel, linux-arm-msm
Add support to limit Tx/Rx gear and rate during UFS initialization
based on DT property.
Also update the phy_gear to ensure PHY calibrations align with
the required gear and rate.
Signed-off-by: Ram Kumar Dwivedi <quic_rdwivedi@quicinc.com>
---
drivers/ufs/host/ufs-qcom.c | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/drivers/ufs/host/ufs-qcom.c b/drivers/ufs/host/ufs-qcom.c
index 1a93351fb70e..53c64d5fb95d 100644
--- a/drivers/ufs/host/ufs-qcom.c
+++ b/drivers/ufs/host/ufs-qcom.c
@@ -1092,6 +1092,18 @@ static void ufs_qcom_set_phy_gear(struct ufs_qcom_host *host)
}
}
+static void ufs_qcom_parse_limits(struct ufs_hba *hba)
+{
+ struct ufs_qcom_host *host = ufshcd_get_variant(hba);
+ struct ufs_host_params *host_params = &host->host_params;
+ u32 hs_gear_old = host_params->hs_tx_gear;
+
+ ufshcd_parse_limits(hba, host_params);
+ if (host_params->hs_tx_gear != hs_gear_old) {
+ host->phy_gear = host_params->hs_tx_gear;
+ }
+}
+
static void ufs_qcom_set_host_params(struct ufs_hba *hba)
{
struct ufs_qcom_host *host = ufshcd_get_variant(hba);
@@ -1333,6 +1345,7 @@ static int ufs_qcom_init(struct ufs_hba *hba)
ufs_qcom_advertise_quirks(hba);
ufs_qcom_set_host_params(hba);
ufs_qcom_set_phy_gear(host);
+ ufs_qcom_parse_limits(hba);
err = ufs_qcom_ice_init(host);
if (err)
--
2.50.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* RE: [PATCH V5 3/4] ufs: pltfrm: Allow limiting HS gear and rate via DT
2025-09-02 16:48 ` [PATCH V5 3/4] ufs: pltfrm: Allow limiting HS gear and rate via DT Ram Kumar Dwivedi
@ 2025-09-03 4:28 ` Alim Akhtar
0 siblings, 0 replies; 9+ messages in thread
From: Alim Akhtar @ 2025-09-03 4:28 UTC (permalink / raw)
To: 'Ram Kumar Dwivedi', avri.altman, bvanassche, robh,
krzk+dt, conor+dt, mani, James.Bottomley, martin.petersen
Cc: linux-scsi, devicetree, linux-kernel, linux-arm-msm,
'Nitin Rawat'
> -----Original Message-----
> From: Ram Kumar Dwivedi <quic_rdwivedi@quicinc.com>
> Sent: Tuesday, September 2, 2025 10:19 PM
> To: alim.akhtar@samsung.com; avri.altman@wdc.com;
> bvanassche@acm.org; robh@kernel.org; krzk+dt@kernel.org;
> conor+dt@kernel.org; mani@kernel.org;
> James.Bottomley@HansenPartnership.com; martin.petersen@oracle.com
> Cc: linux-scsi@vger.kernel.org; devicetree@vger.kernel.org; linux-
> kernel@vger.kernel.org; linux-arm-msm@vger.kernel.org; Nitin Rawat
> <quic_nitirawa@quicinc.com>
> Subject: [PATCH V5 3/4] ufs: pltfrm: Allow limiting HS gear and rate via
DT
>
> Add support for parsing 'limit-hs-gear' and 'limit-rate' device tree
properties
> to restrict high-speed gear and rate during initialization.
>
> This is useful in cases where the customer board may have signal
integrity,
> clock configuration or layout issues that prevent reliable operation at
higher
> gears. Such limitations are especially critical in those platforms, where
> stability is prioritized over peak performance.
>
> Co-developed-by: Nitin Rawat <quic_nitirawa@quicinc.com>
> Signed-off-by: Nitin Rawat <quic_nitirawa@quicinc.com>
> Signed-off-by: Ram Kumar Dwivedi <quic_rdwivedi@quicinc.com>
> ---
> drivers/ufs/host/ufshcd-pltfrm.c | 36
> ++++++++++++++++++++++++++++++++ drivers/ufs/host/ufshcd-pltfrm.h
> | 1 +
> 2 files changed, 37 insertions(+)
>
> diff --git a/drivers/ufs/host/ufshcd-pltfrm.c b/drivers/ufs/host/ufshcd-
> pltfrm.c
> index ffe5d1d2b215..4df6885f0dc0 100644
> --- a/drivers/ufs/host/ufshcd-pltfrm.c
> +++ b/drivers/ufs/host/ufshcd-pltfrm.c
> @@ -430,6 +430,42 @@ int ufshcd_negotiate_pwr_params(const struct
> ufs_host_params *host_params, }
> EXPORT_SYMBOL_GPL(ufshcd_negotiate_pwr_params);
>
> +/**
> + * ufshcd_parse_limits - Parse DT-based gear and rate limits for UFS
> + * @hba: Pointer to UFS host bus adapter instance
> + * @host_params: Pointer to UFS host parameters structure to be updated
> + *
> + * This function reads optional device tree properties to apply
> + * platform-specific constraints.
> + *
> + * "limit-hs-gear": Specifies the max HS gear.
> + * "limit-rate": Specifies the max High-Speed rate.
> + */
> +void ufshcd_parse_limits(struct ufs_hba *hba, struct ufs_host_params
May be s/ufshcd_parse_limits/ ufshcd_parse_gear_limits()
"Limits" is very generic and also not aligning with the property names.
Also suggest to change limit-rate to limit-gear-rate.
> +*host_params) {
> + struct device_node *np = hba->dev->of_node;
> + u32 hs_gear;
> + const char *hs_rate;
> +
> + if (!np)
> + return;
Probably a overkill here, please check if this will ever hit?
> +
> + if (!of_property_read_u32(np, "limit-hs-gear", &hs_gear)) {
> + host_params->hs_tx_gear = hs_gear;
> + host_params->hs_rx_gear = hs_gear;
> + }
> +
> + if (!of_property_read_string(np, "limit-rate", &hs_rate)) {
> + if (!strcmp(hs_rate, "rate-a"))
> + host_params->hs_rate = PA_HS_MODE_A;
> + else if (!strcmp(hs_rate, "rate-b"))
> + host_params->hs_rate = PA_HS_MODE_B;
> + else
> + dev_warn(hba->dev, "Invalid limit-rate: %s\n",
> hs_rate);
> + }
> +}
> +EXPORT_SYMBOL_GPL(ufshcd_parse_limits);
> +
> void ufshcd_init_host_params(struct ufs_host_params *host_params) {
> *host_params = (struct ufs_host_params){ diff --git
> a/drivers/ufs/host/ufshcd-pltfrm.h b/drivers/ufs/host/ufshcd-pltfrm.h
> index 3017f8e8f93c..1617f2541273 100644
> --- a/drivers/ufs/host/ufshcd-pltfrm.h
> +++ b/drivers/ufs/host/ufshcd-pltfrm.h
> @@ -29,6 +29,7 @@ int ufshcd_negotiate_pwr_params(const struct
> ufs_host_params *host_params,
> const struct ufs_pa_layer_attr *dev_max,
> struct ufs_pa_layer_attr *agreed_pwr); void
> ufshcd_init_host_params(struct ufs_host_params *host_params);
> +void ufshcd_parse_limits(struct ufs_hba *hba, struct ufs_host_params
> +*host_params);
> int ufshcd_pltfrm_init(struct platform_device *pdev,
> const struct ufs_hba_variant_ops *vops); void
> ufshcd_pltfrm_remove(struct platform_device *pdev);
> --
> 2.50.1
^ permalink raw reply [flat|nested] 9+ messages in thread
* RE: [PATCH V5 0/4] Add DT-based gear and rate limiting support
2025-09-02 16:48 ` [PATCH V5 0/4] Add DT-based gear and rate limiting support Ram Kumar Dwivedi
` (3 preceding siblings ...)
2025-09-02 16:49 ` [PATCH V5 4/4] ufs: ufs-qcom: Add support for limiting HS gear and rate Ram Kumar Dwivedi
@ 2025-09-03 4:48 ` Alim Akhtar
4 siblings, 0 replies; 9+ messages in thread
From: Alim Akhtar @ 2025-09-03 4:48 UTC (permalink / raw)
To: 'Ram Kumar Dwivedi', avri.altman, bvanassche, robh,
krzk+dt, conor+dt, mani, James.Bottomley, martin.petersen
Cc: linux-scsi, devicetree, linux-kernel, linux-arm-msm
Hi Ram
> -----Original Message-----
> From: Ram Kumar Dwivedi <quic_rdwivedi@quicinc.com>
> Sent: Tuesday, September 2, 2025 10:19 PM
> To: alim.akhtar@samsung.com; avri.altman@wdc.com;
> bvanassche@acm.org; robh@kernel.org; krzk+dt@kernel.org;
> conor+dt@kernel.org; mani@kernel.org;
> James.Bottomley@HansenPartnership.com; martin.petersen@oracle.com
> Cc: linux-scsi@vger.kernel.org; devicetree@vger.kernel.org; linux-
> kernel@vger.kernel.org; linux-arm-msm@vger.kernel.org
> Subject: [PATCH V5 0/4] Add DT-based gear and rate limiting support
>
> This patch series adds support for limiting the maximum high-speed gear
and
> rate used by the UFS controller via device tree properties.
>
> Some platforms may have signal integrity, clock configuration, or layout
> issues that prevent reliable operation at higher gears or rates.
> This is especially critical in automotive and other platforms where
stability is
> prioritized over peak performance.
>
> The series follows this logical progression:
> 1. Document the new DT properties in the common UFS binding 2. Clean up
> existing redundant code in the qcom driver 3. Add platform-level parsing
> support for the new properties 4. Integrate the platform support in the
qcom
> driver
>
> This approach makes the functionality available to other UFS host drivers
and
> provides a cleaner, more maintainable implementation.
>
> Changes from V1:
> - Restructured patch series for better logical flow and maintainability.
> - Moved DT bindings to ufs-common.yaml making it available for all UFS
> controllers.
> - Added platform-level support in ufshcd-pltfrm.c for code reusability.
> - Separated the cleanup patch to remove redundant hs_rate assignment in
> qcom driver.
> - Removed SA8155 DTS changes to keep the series focused on core
> functionality.
> - Improved commit messages with better technical rationale.
>
> Changes from V2:
> - Documented default values of limit-rate and limit-hs-gear in DT bindings
> as per Krzysztof's suggestion.
>
> Changes from V3:
> - Changed limit-rate property from numeric values 1 and 2 to string values
> Rate-A and Rate-B for better readability and clarity as suggested by
> Bart and Krzysztof.
> - Added Co-developed-by tag for Nitin Rawat in 3rd patch.
>
> Changes from V4:
> - Added the missing argument to the error message while parsing
> limit-rate property.
> - Updated the maximum supported value and default for limit-gear
> property to gear 6, as per Krzysztof's and Bart's recommendation.
> - Renamed Rate-A and Rate-B to lowercase (rate-a, rate-b) as suggested
> by Krzysztof.
>
Please allow minimum 4 ~ 5 days for reviewers to complete the review before
posting next version.
That will also help to reduce the number of iteration a patch goes through.
Thanks
^ permalink raw reply [flat|nested] 9+ messages in thread
* RE: [PATCH V5 2/4] ufs: ufs-qcom: Remove redundant re-assignment to hs_rate
2025-09-02 16:48 ` [PATCH V5 2/4] ufs: ufs-qcom: Remove redundant re-assignment to hs_rate Ram Kumar Dwivedi
@ 2025-09-03 4:53 ` Alim Akhtar
0 siblings, 0 replies; 9+ messages in thread
From: Alim Akhtar @ 2025-09-03 4:53 UTC (permalink / raw)
To: 'Ram Kumar Dwivedi', avri.altman, bvanassche, robh,
krzk+dt, conor+dt, mani, James.Bottomley, martin.petersen
Cc: linux-scsi, devicetree, linux-kernel, linux-arm-msm
> -----Original Message-----
> From: Ram Kumar Dwivedi <quic_rdwivedi@quicinc.com>
> Sent: Tuesday, September 2, 2025 10:19 PM
> To: alim.akhtar@samsung.com; avri.altman@wdc.com;
> bvanassche@acm.org; robh@kernel.org; krzk+dt@kernel.org;
> conor+dt@kernel.org; mani@kernel.org;
> James.Bottomley@HansenPartnership.com; martin.petersen@oracle.com
> Cc: linux-scsi@vger.kernel.org; devicetree@vger.kernel.org; linux-
> kernel@vger.kernel.org; linux-arm-msm@vger.kernel.org
> Subject: [PATCH V5 2/4] ufs: ufs-qcom: Remove redundant re-assignment to
> hs_rate
>
> Remove the redundant else block that assigns PA_HS_MODE_B to hs_rate,
> as it is already assigned in ufshcd_init_host_params(). This avoids
> unnecessary reassignment and prevents overwriting hs_rate when it is
> explicitly set to a different value.
>
> Signed-off-by: Ram Kumar Dwivedi <quic_rdwivedi@quicinc.com>
> ---
Better to send non-dependent patches separately.
Feel free to add:
Reviewed-by: Alim Akhtar <alim.akhtar@samsung.com>
> drivers/ufs/host/ufs-qcom.c | 8 ++------
> 1 file changed, 2 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/ufs/host/ufs-qcom.c b/drivers/ufs/host/ufs-qcom.c
index
> 9574fdc2bb0f..1a93351fb70e 100644
> --- a/drivers/ufs/host/ufs-qcom.c
> +++ b/drivers/ufs/host/ufs-qcom.c
> @@ -494,12 +494,8 @@ static int ufs_qcom_power_up_sequence(struct
> ufs_hba *hba)
> * If the HS-G5 PHY gear is used, update host_params->hs_rate to
> Rate-A,
> * so that the subsequent power mode change shall stick to Rate-A.
> */
> - if (host->hw_ver.major == 0x5) {
> - if (host->phy_gear == UFS_HS_G5)
> - host_params->hs_rate = PA_HS_MODE_A;
> - else
> - host_params->hs_rate = PA_HS_MODE_B;
> - }
> + if (host->hw_ver.major == 0x5 && host->phy_gear == UFS_HS_G5)
> + host_params->hs_rate = PA_HS_MODE_A;
>
> mode = host_params->hs_rate == PA_HS_MODE_B ?
> PHY_MODE_UFS_HS_B : PHY_MODE_UFS_HS_A;
>
> --
> 2.50.1
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH V5 1/4] ufs: dt-bindings: Document gear and rate limit properties
2025-09-02 16:48 ` [PATCH V5 1/4] ufs: dt-bindings: Document gear and rate limit properties Ram Kumar Dwivedi
@ 2025-09-03 6:44 ` Krzysztof Kozlowski
0 siblings, 0 replies; 9+ messages in thread
From: Krzysztof Kozlowski @ 2025-09-03 6:44 UTC (permalink / raw)
To: Ram Kumar Dwivedi
Cc: alim.akhtar, avri.altman, bvanassche, robh, krzk+dt, conor+dt,
mani, James.Bottomley, martin.petersen, linux-scsi, devicetree,
linux-kernel, linux-arm-msm
On Tue, Sep 02, 2025 at 10:18:57PM +0530, Ram Kumar Dwivedi wrote:
> Add optional "limit-hs-gear" and "limit-rate" properties to the
> UFS controller common binding. These properties allow limiting
> the maximum HS gear and rate.
>
> This is useful in cases where the customer board may have signal
> integrity, clock configuration or layout issues that prevent reliable
> operation at higher gears. Such limitations are especially critical in
> those platforms, where stability is prioritized over peak performance.
>
> Signed-off-by: Ram Kumar Dwivedi <quic_rdwivedi@quicinc.com>
> ---
> .../devicetree/bindings/ufs/ufs-common.yaml | 16 ++++++++++++++++
> 1 file changed, 16 insertions(+)
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2025-09-03 6:44 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <CGME20250902164927epcas5p459352c28c0d5c5a4c04bd88345a049f0@epcas5p4.samsung.com>
2025-09-02 16:48 ` [PATCH V5 0/4] Add DT-based gear and rate limiting support Ram Kumar Dwivedi
2025-09-02 16:48 ` [PATCH V5 1/4] ufs: dt-bindings: Document gear and rate limit properties Ram Kumar Dwivedi
2025-09-03 6:44 ` Krzysztof Kozlowski
2025-09-02 16:48 ` [PATCH V5 2/4] ufs: ufs-qcom: Remove redundant re-assignment to hs_rate Ram Kumar Dwivedi
2025-09-03 4:53 ` Alim Akhtar
2025-09-02 16:48 ` [PATCH V5 3/4] ufs: pltfrm: Allow limiting HS gear and rate via DT Ram Kumar Dwivedi
2025-09-03 4:28 ` Alim Akhtar
2025-09-02 16:49 ` [PATCH V5 4/4] ufs: ufs-qcom: Add support for limiting HS gear and rate Ram Kumar Dwivedi
2025-09-03 4:48 ` [PATCH V5 0/4] Add DT-based gear and rate limiting support Alim Akhtar
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).