* [PATCH v2 1/2] phy: qcom-qusb2: Use HSTX_TRIM fused value as is
@ 2018-10-16 7:22 Manu Gautam
2018-10-16 7:22 ` [PATCH v2 2/2] phy: qcom-qusb2: Fix HSTX_TRIM tuning with fused value for SDM845 Manu Gautam
` (2 more replies)
0 siblings, 3 replies; 5+ messages in thread
From: Manu Gautam @ 2018-10-16 7:22 UTC (permalink / raw)
To: Kishon Vijay Abraham I
Cc: linux-arm-msm, Manu Gautam, Vivek Gautam, Douglas Anderson,
Evan Green, open list:GENERIC PHY FRAMEWORK
Fix HSTX_TRIM tuning logic which instead of using fused value
as HSTX_TRIM, incorrectly performs bitwise OR operation with
existing default value.
Fixes: ca04d9d3e1b1 ("phy: qcom-qusb2: New driver for QUSB2 PHY on Qcom chips")
Signed-off-by: Manu Gautam <mgautam@codeaurora.org>
Reviewed-by: Douglas Anderson <dianders@chromium.org>
---
drivers/phy/qualcomm/phy-qcom-qusb2.c | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/drivers/phy/qualcomm/phy-qcom-qusb2.c b/drivers/phy/qualcomm/phy-qcom-qusb2.c
index e70e425f26f5..9d6c88064158 100644
--- a/drivers/phy/qualcomm/phy-qcom-qusb2.c
+++ b/drivers/phy/qualcomm/phy-qcom-qusb2.c
@@ -402,10 +402,10 @@ static void qusb2_phy_set_tune2_param(struct qusb2_phy *qphy)
/*
* Read efuse register having TUNE2/1 parameter's high nibble.
- * If efuse register shows value as 0x0, or if we fail to find
- * a valid efuse register settings, then use default value
- * as 0xB for high nibble that we have already set while
- * configuring phy.
+ * If efuse register shows value as 0x0 (indicating value is not
+ * fused), or if we fail to find a valid efuse register setting,
+ * then use default value for high nibble that we have already
+ * set while configuring the phy.
*/
val = nvmem_cell_read(qphy->cell, NULL);
if (IS_ERR(val) || !val[0]) {
@@ -415,12 +415,13 @@ static void qusb2_phy_set_tune2_param(struct qusb2_phy *qphy)
/* Fused TUNE1/2 value is the higher nibble only */
if (cfg->update_tune1_with_efuse)
- qusb2_setbits(qphy->base, cfg->regs[QUSB2PHY_PORT_TUNE1],
- val[0] << 0x4);
+ qusb2_write_mask(qphy->base, cfg->regs[QUSB2PHY_PORT_TUNE1],
+ val[0] << HSTX_TRIM_SHIFT,
+ HSTX_TRIM_MASK);
else
- qusb2_setbits(qphy->base, cfg->regs[QUSB2PHY_PORT_TUNE2],
- val[0] << 0x4);
-
+ qusb2_write_mask(qphy->base, cfg->regs[QUSB2PHY_PORT_TUNE2],
+ val[0] << HSTX_TRIM_SHIFT,
+ HSTX_TRIM_MASK);
}
static int qusb2_phy_set_mode(struct phy *phy, enum phy_mode mode)
--
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH v2 2/2] phy: qcom-qusb2: Fix HSTX_TRIM tuning with fused value for SDM845
2018-10-16 7:22 [PATCH v2 1/2] phy: qcom-qusb2: Use HSTX_TRIM fused value as is Manu Gautam
@ 2018-10-16 7:22 ` Manu Gautam
2018-10-16 18:24 ` Stephen Boyd
2018-10-16 18:24 ` [PATCH v2 1/2] phy: qcom-qusb2: Use HSTX_TRIM fused value as is Stephen Boyd
[not found] ` <719bbfbe-808e-4757-a8ad-dab7cf348ea7@codeaurora.org>
2 siblings, 1 reply; 5+ messages in thread
From: Manu Gautam @ 2018-10-16 7:22 UTC (permalink / raw)
To: Kishon Vijay Abraham I
Cc: linux-arm-msm, Manu Gautam, Vivek Gautam, Douglas Anderson,
Evan Green, open list:GENERIC PHY FRAMEWORK
Tune1 register on sdm845 is used to update HSTX_TRIM with fused
setting. Enable same by specifying update_tune1_with_efuse flag
for sdm845, otherwise driver ends up programming tune2 register.
Fixes: ef17f6e212ca ("phy: qcom-qusb2: Add QUSB2 PHYs support for sdm845")
Signed-off-by: Manu Gautam <mgautam@codeaurora.org>
Reviewed-by: Douglas Anderson <dianders@chromium.org>
---
drivers/phy/qualcomm/phy-qcom-qusb2.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/phy/qualcomm/phy-qcom-qusb2.c b/drivers/phy/qualcomm/phy-qcom-qusb2.c
index 9d6c88064158..69c92843eb3b 100644
--- a/drivers/phy/qualcomm/phy-qcom-qusb2.c
+++ b/drivers/phy/qualcomm/phy-qcom-qusb2.c
@@ -231,6 +231,7 @@ static const struct qusb2_phy_cfg sdm845_phy_cfg = {
.mask_core_ready = CORE_READY_STATUS,
.has_pll_override = true,
.autoresume_en = BIT(0),
+ .update_tune1_with_efuse = true,
};
static const char * const qusb2_phy_vreg_names[] = {
--
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH v2 2/2] phy: qcom-qusb2: Fix HSTX_TRIM tuning with fused value for SDM845
2018-10-16 7:22 ` [PATCH v2 2/2] phy: qcom-qusb2: Fix HSTX_TRIM tuning with fused value for SDM845 Manu Gautam
@ 2018-10-16 18:24 ` Stephen Boyd
0 siblings, 0 replies; 5+ messages in thread
From: Stephen Boyd @ 2018-10-16 18:24 UTC (permalink / raw)
To: Kishon Vijay Abraham I, Manu Gautam
Cc: linux-arm-msm, Manu Gautam, Vivek Gautam, Douglas Anderson,
Evan Green, open list:GENERIC PHY FRAMEWORK
Quoting Manu Gautam (2018-10-16 00:22:07)
> Tune1 register on sdm845 is used to update HSTX_TRIM with fused
> setting. Enable same by specifying update_tune1_with_efuse flag
> for sdm845, otherwise driver ends up programming tune2 register.
>
> Fixes: ef17f6e212ca ("phy: qcom-qusb2: Add QUSB2 PHYs support for sdm845")
> Signed-off-by: Manu Gautam <mgautam@codeaurora.org>
> Reviewed-by: Douglas Anderson <dianders@chromium.org>
> ---
Reviewed-by: Stephen Boyd <swboyd@chromium.org>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v2 1/2] phy: qcom-qusb2: Use HSTX_TRIM fused value as is
2018-10-16 7:22 [PATCH v2 1/2] phy: qcom-qusb2: Use HSTX_TRIM fused value as is Manu Gautam
2018-10-16 7:22 ` [PATCH v2 2/2] phy: qcom-qusb2: Fix HSTX_TRIM tuning with fused value for SDM845 Manu Gautam
@ 2018-10-16 18:24 ` Stephen Boyd
[not found] ` <719bbfbe-808e-4757-a8ad-dab7cf348ea7@codeaurora.org>
2 siblings, 0 replies; 5+ messages in thread
From: Stephen Boyd @ 2018-10-16 18:24 UTC (permalink / raw)
To: Kishon Vijay Abraham I, Manu Gautam
Cc: linux-arm-msm, Manu Gautam, Vivek Gautam, Douglas Anderson,
Evan Green, open list:GENERIC PHY FRAMEWORK
Quoting Manu Gautam (2018-10-16 00:22:06)
> Fix HSTX_TRIM tuning logic which instead of using fused value
> as HSTX_TRIM, incorrectly performs bitwise OR operation with
> existing default value.
>
> Fixes: ca04d9d3e1b1 ("phy: qcom-qusb2: New driver for QUSB2 PHY on Qcom chips")
> Signed-off-by: Manu Gautam <mgautam@codeaurora.org>
> Reviewed-by: Douglas Anderson <dianders@chromium.org>
> ---
Reviewed-by: Stephen Boyd <swboyd@chromium.org>
^ permalink raw reply [flat|nested] 5+ messages in thread
[parent not found: <719bbfbe-808e-4757-a8ad-dab7cf348ea7@codeaurora.org>]
* Re: [PATCH v2 1/2] phy: qcom-qusb2: Use HSTX_TRIM fused value as is
[not found] ` <719bbfbe-808e-4757-a8ad-dab7cf348ea7@codeaurora.org>
@ 2018-10-25 6:21 ` Vivek Gautam
0 siblings, 0 replies; 5+ messages in thread
From: Vivek Gautam @ 2018-10-25 6:21 UTC (permalink / raw)
To: Manu Gautam, Kishon Vijay Abraham I
Cc: linux-arm-msm, Douglas Anderson, Evan Green,
open list:GENERIC PHY FRAMEWORK
On 2018-10-25 11:46, Vivek Gautam wrote:
> Hi Manu,
>
> On 10/16/2018 12:52 PM, Manu Gautam wrote:
>
>> Fix HSTX_TRIM tuning logic which instead of using fused value
>> as HSTX_TRIM, incorrectly performs bitwise OR operation with
>> existing default value.
>>
>> Fixes: ca04d9d3e1b1 ("phy: qcom-qusb2: New driver for QUSB2 PHY on
>> Qcom chips")
>> Signed-off-by: Manu Gautam <mgautam@codeaurora.org>
>> Reviewed-by: Douglas Anderson <dianders@chromium.org>
>> ---
>> drivers/phy/qualcomm/phy-qcom-qusb2.c | 19 ++++++++++---------
>> 1 file changed, 10 insertions(+), 9 deletions(-)
>>
>> diff --git a/drivers/phy/qualcomm/phy-qcom-qusb2.c
>> b/drivers/phy/qualcomm/phy-qcom-qusb2.c
>> index e70e425f26f5..9d6c88064158 100644
>> --- a/drivers/phy/qualcomm/phy-qcom-qusb2.c
>> +++ b/drivers/phy/qualcomm/phy-qcom-qusb2.c
>> @@ -402,10 +402,10 @@ static void qusb2_phy_set_tune2_param(struct
>> qusb2_phy *qphy)
>>
>> /*
>> * Read efuse register having TUNE2/1 parameter's high nibble.
>> - * If efuse register shows value as 0x0, or if we fail to find
>> - * a valid efuse register settings, then use default value
>> - * as 0xB for high nibble that we have already set while
>> - * configuring phy.
>> + * If efuse register shows value as 0x0 (indicating value is
>> not
>> + * fused), or if we fail to find a valid efuse register
>> setting,
>> + * then use default value for high nibble that we have already
>> + * set while configuring the phy.
>> */
>> val = nvmem_cell_read(qphy->cell, NULL);
>> if (IS_ERR(val) || !val[0]) {
>> @@ -415,12 +415,13 @@ static void qusb2_phy_set_tune2_param(struct
>> qusb2_phy *qphy)
>>
>> /* Fused TUNE1/2 value is the higher nibble only */
>> if (cfg->update_tune1_with_efuse)
>> - qusb2_setbits(qphy->base, cfg->regs[QUSB2PHY_PORT_TUNE1],
>> - val[0] << 0x4);
>> + qusb2_write_mask(qphy->base,
>> cfg->regs[QUSB2PHY_PORT_TUNE1],
>> + val[0] << HSTX_TRIM_SHIFT,
>> + HSTX_TRIM_MASK);
>> else
>> - qusb2_setbits(qphy->base, cfg->regs[QUSB2PHY_PORT_TUNE2],
>> - val[0] << 0x4);
>> -
>> + qusb2_write_mask(qphy->base,
>> cfg->regs[QUSB2PHY_PORT_TUNE2],
>> + val[0] << HSTX_TRIM_SHIFT,
>> + HSTX_TRIM_MASK);
>> }
>>
>> static int qusb2_phy_set_mode(struct phy *phy, enum phy_mode mode)
>
> Thanks for the patch.
> Acked-by: Vivek Gautam <vivek.gautam@codeaurora.org>
>
My bad. Didn't notice the HTML mode. Resending, so that it reaches to
lists as well.
Thanks
Vivek
> Regards
> Vivek
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2018-10-25 6:21 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-10-16 7:22 [PATCH v2 1/2] phy: qcom-qusb2: Use HSTX_TRIM fused value as is Manu Gautam
2018-10-16 7:22 ` [PATCH v2 2/2] phy: qcom-qusb2: Fix HSTX_TRIM tuning with fused value for SDM845 Manu Gautam
2018-10-16 18:24 ` Stephen Boyd
2018-10-16 18:24 ` [PATCH v2 1/2] phy: qcom-qusb2: Use HSTX_TRIM fused value as is Stephen Boyd
[not found] ` <719bbfbe-808e-4757-a8ad-dab7cf348ea7@codeaurora.org>
2018-10-25 6:21 ` Vivek Gautam
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).