* [PATCH v2 01/11] phy: qcom-qmp: fix obsolete lane comments
2022-09-29 9:29 [PATCH v2 00/11] phy: qcom-qmp: more fixes and cleanups Johan Hovold
@ 2022-09-29 9:29 ` Johan Hovold
2022-09-29 9:29 ` [PATCH v2 02/11] phy: qcom-qmp-combo: drop unused UFS reset Johan Hovold
` (10 subsequent siblings)
11 siblings, 0 replies; 24+ messages in thread
From: Johan Hovold @ 2022-09-29 9:29 UTC (permalink / raw)
To: Vinod Koul
Cc: Andy Gross, Bjorn Andersson, Konrad Dybcio,
Kishon Vijay Abraham I, Dmitry Baryshkov, Neil Armstrong,
linux-arm-msm, linux-phy, linux-kernel, Johan Hovold
All QMP drivers but the MSM8996 and combo ones handle exactly one PHY
and the corresponding memory resources are not per-lane, but per PHY.
Update the obsolete comments.
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
---
drivers/phy/qualcomm/phy-qcom-qmp-combo.c | 2 +-
drivers/phy/qualcomm/phy-qcom-qmp-pcie-msm8996.c | 2 +-
drivers/phy/qualcomm/phy-qcom-qmp-pcie.c | 2 +-
drivers/phy/qualcomm/phy-qcom-qmp-ufs.c | 2 +-
drivers/phy/qualcomm/phy-qcom-qmp-usb.c | 2 +-
5 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/drivers/phy/qualcomm/phy-qcom-qmp-combo.c b/drivers/phy/qualcomm/phy-qcom-qmp-combo.c
index ad3b0aa22048..0cf1eb8a62f6 100644
--- a/drivers/phy/qualcomm/phy-qcom-qmp-combo.c
+++ b/drivers/phy/qualcomm/phy-qcom-qmp-combo.c
@@ -2669,7 +2669,7 @@ static int qmp_combo_create(struct device *dev, struct device_node *np, int id,
qphy->cfg = cfg;
qphy->serdes = serdes;
/*
- * Get memory resources for each phy lane:
+ * Get memory resources for each PHY:
* Resources are indexed as: tx -> 0; rx -> 1; pcs -> 2.
* For dual lane PHYs: tx2 -> 3, rx2 -> 4, pcs_misc (optional) -> 5
* For single lane PHYs: pcs_misc (optional) -> 3.
diff --git a/drivers/phy/qualcomm/phy-qcom-qmp-pcie-msm8996.c b/drivers/phy/qualcomm/phy-qcom-qmp-pcie-msm8996.c
index 0f8e739936ab..d9646bf5dc91 100644
--- a/drivers/phy/qualcomm/phy-qcom-qmp-pcie-msm8996.c
+++ b/drivers/phy/qualcomm/phy-qcom-qmp-pcie-msm8996.c
@@ -777,7 +777,7 @@ static int qmp_pcie_msm8996_create(struct device *dev, struct device_node *np, i
qphy->cfg = cfg;
qphy->serdes = serdes;
/*
- * Get memory resources for each phy lane:
+ * Get memory resources for each PHY:
* Resources are indexed as: tx -> 0; rx -> 1; pcs -> 2.
*/
qphy->tx = devm_of_iomap(dev, np, 0, NULL);
diff --git a/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c b/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c
index 83fbbb446c9d..f4634af75890 100644
--- a/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c
+++ b/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c
@@ -2201,7 +2201,7 @@ static int qmp_pcie_create(struct device *dev, struct device_node *np, int id,
qphy->cfg = cfg;
qphy->serdes = serdes;
/*
- * Get memory resources for each phy lane:
+ * Get memory resources for the PHY:
* Resources are indexed as: tx -> 0; rx -> 1; pcs -> 2.
* For dual lane PHYs: tx2 -> 3, rx2 -> 4, pcs_misc (optional) -> 5
* For single lane PHYs: pcs_misc (optional) -> 3.
diff --git a/drivers/phy/qualcomm/phy-qcom-qmp-ufs.c b/drivers/phy/qualcomm/phy-qcom-qmp-ufs.c
index d21b977850b3..d7b35b715b95 100644
--- a/drivers/phy/qualcomm/phy-qcom-qmp-ufs.c
+++ b/drivers/phy/qualcomm/phy-qcom-qmp-ufs.c
@@ -1094,7 +1094,7 @@ static int qmp_ufs_create(struct device *dev, struct device_node *np, int id,
qphy->cfg = cfg;
qphy->serdes = serdes;
/*
- * Get memory resources for each phy lane:
+ * Get memory resources for the PHY:
* Resources are indexed as: tx -> 0; rx -> 1; pcs -> 2.
* For dual lane PHYs: tx2 -> 3, rx2 -> 4, pcs_misc (optional) -> 5
* For single lane PHYs: pcs_misc (optional) -> 3.
diff --git a/drivers/phy/qualcomm/phy-qcom-qmp-usb.c b/drivers/phy/qualcomm/phy-qcom-qmp-usb.c
index f01b3022a10d..f8685eddbf80 100644
--- a/drivers/phy/qualcomm/phy-qcom-qmp-usb.c
+++ b/drivers/phy/qualcomm/phy-qcom-qmp-usb.c
@@ -2581,7 +2581,7 @@ int qmp_usb_create(struct device *dev, struct device_node *np, int id,
qphy->cfg = cfg;
qphy->serdes = serdes;
/*
- * Get memory resources for each phy lane:
+ * Get memory resources for the PHY:
* Resources are indexed as: tx -> 0; rx -> 1; pcs -> 2.
* For dual lane PHYs: tx2 -> 3, rx2 -> 4, pcs_misc (optional) -> 5
* For single lane PHYs: pcs_misc (optional) -> 3.
--
2.35.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH v2 02/11] phy: qcom-qmp-combo: drop unused UFS reset
2022-09-29 9:29 [PATCH v2 00/11] phy: qcom-qmp: more fixes and cleanups Johan Hovold
2022-09-29 9:29 ` [PATCH v2 01/11] phy: qcom-qmp: fix obsolete lane comments Johan Hovold
@ 2022-09-29 9:29 ` Johan Hovold
2022-09-29 9:29 ` [PATCH v2 03/11] phy: qcom-qmp-pcie: drop unused common-block registers Johan Hovold
` (9 subsequent siblings)
11 siblings, 0 replies; 24+ messages in thread
From: Johan Hovold @ 2022-09-29 9:29 UTC (permalink / raw)
To: Vinod Koul
Cc: Andy Gross, Bjorn Andersson, Konrad Dybcio,
Kishon Vijay Abraham I, Dmitry Baryshkov, Neil Armstrong,
linux-arm-msm, linux-phy, linux-kernel, Johan Hovold
Drop the unused UFS reset code which isn't used since the QMP driver
split.
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
---
drivers/phy/qualcomm/phy-qcom-qmp-combo.c | 9 ---------
1 file changed, 9 deletions(-)
diff --git a/drivers/phy/qualcomm/phy-qcom-qmp-combo.c b/drivers/phy/qualcomm/phy-qcom-qmp-combo.c
index 0cf1eb8a62f6..e618e675e8ec 100644
--- a/drivers/phy/qualcomm/phy-qcom-qmp-combo.c
+++ b/drivers/phy/qualcomm/phy-qcom-qmp-combo.c
@@ -944,7 +944,6 @@ struct qmp_phy_dp_clks {
* @phys: array of per-lane phy descriptors
* @phy_mutex: mutex lock for PHY common block initialization
* @init_count: phy common block initialization count
- * @ufs_reset: optional UFS PHY reset handle
*/
struct qcom_qmp {
struct device *dev;
@@ -958,8 +957,6 @@ struct qcom_qmp {
struct mutex phy_mutex;
int init_count;
-
- struct reset_control *ufs_reset;
};
static void qcom_qmp_v3_phy_dp_aux_init(struct qmp_phy *qphy);
@@ -2027,8 +2024,6 @@ static int qmp_combo_com_exit(struct qmp_phy *qphy)
return 0;
}
- reset_control_assert(qmp->ufs_reset);
-
reset_control_bulk_assert(cfg->num_resets, qmp->resets);
clk_bulk_disable_unprepare(cfg->num_clks, qmp->clks);
@@ -2103,10 +2098,6 @@ static int qmp_combo_power_on(struct phy *phy)
else
qmp_combo_configure(pcs, cfg->regs, cfg->pcs_tbl, cfg->pcs_tbl_num);
- ret = reset_control_deassert(qmp->ufs_reset);
- if (ret)
- goto err_disable_pipe_clk;
-
if (cfg->has_pwrdn_delay)
usleep_range(cfg->pwrdn_delay_min, cfg->pwrdn_delay_max);
--
2.35.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH v2 03/11] phy: qcom-qmp-pcie: drop unused common-block registers
2022-09-29 9:29 [PATCH v2 00/11] phy: qcom-qmp: more fixes and cleanups Johan Hovold
2022-09-29 9:29 ` [PATCH v2 01/11] phy: qcom-qmp: fix obsolete lane comments Johan Hovold
2022-09-29 9:29 ` [PATCH v2 02/11] phy: qcom-qmp-combo: drop unused UFS reset Johan Hovold
@ 2022-09-29 9:29 ` Johan Hovold
2022-09-29 9:29 ` [PATCH v2 04/11] phy: qcom-qmp-pcie: clean up power-down handling Johan Hovold
` (8 subsequent siblings)
11 siblings, 0 replies; 24+ messages in thread
From: Johan Hovold @ 2022-09-29 9:29 UTC (permalink / raw)
To: Vinod Koul
Cc: Andy Gross, Bjorn Andersson, Konrad Dybcio,
Kishon Vijay Abraham I, Dmitry Baryshkov, Neil Armstrong,
linux-arm-msm, linux-phy, linux-kernel, Johan Hovold
Drop the common-block register defines that are unused since the QMP
driver split.
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
---
drivers/phy/qualcomm/phy-qcom-qmp-pcie.c | 9 ---------
1 file changed, 9 deletions(-)
diff --git a/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c b/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c
index f4634af75890..c9330b0f0fcf 100644
--- a/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c
+++ b/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c
@@ -77,11 +77,6 @@ struct qmp_phy_init_tbl {
/* set of registers with offsets different per-PHY */
enum qphy_reg_layout {
- /* Common block control registers */
- QPHY_COM_SW_RESET,
- QPHY_COM_POWER_DOWN_CONTROL,
- QPHY_COM_START_CONTROL,
- QPHY_COM_PCS_READY_STATUS,
/* PCS registers */
QPHY_SW_RESET,
QPHY_START_CTRL,
@@ -99,10 +94,6 @@ static const unsigned int ipq_pciephy_gen3_regs_layout[QPHY_LAYOUT_SIZE] = {
};
static const unsigned int pciephy_regs_layout[QPHY_LAYOUT_SIZE] = {
- [QPHY_COM_SW_RESET] = 0x400,
- [QPHY_COM_POWER_DOWN_CONTROL] = 0x404,
- [QPHY_COM_START_CONTROL] = 0x408,
- [QPHY_COM_PCS_READY_STATUS] = 0x448,
[QPHY_SW_RESET] = 0x00,
[QPHY_START_CTRL] = 0x08,
[QPHY_PCS_STATUS] = 0x174,
--
2.35.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH v2 04/11] phy: qcom-qmp-pcie: clean up power-down handling
2022-09-29 9:29 [PATCH v2 00/11] phy: qcom-qmp: more fixes and cleanups Johan Hovold
` (2 preceding siblings ...)
2022-09-29 9:29 ` [PATCH v2 03/11] phy: qcom-qmp-pcie: drop unused common-block registers Johan Hovold
@ 2022-09-29 9:29 ` Johan Hovold
2022-09-29 10:09 ` Dmitry Baryshkov
2022-09-29 9:29 ` [PATCH v2 05/11] phy: qcom-qmp-pcie: move power-down update Johan Hovold
` (7 subsequent siblings)
11 siblings, 1 reply; 24+ messages in thread
From: Johan Hovold @ 2022-09-29 9:29 UTC (permalink / raw)
To: Vinod Koul
Cc: Andy Gross, Bjorn Andersson, Konrad Dybcio,
Kishon Vijay Abraham I, Dmitry Baryshkov, Neil Armstrong,
linux-arm-msm, linux-phy, linux-kernel, Johan Hovold
Always define the POWER_DOWN_CONTROL register instead of falling back to
the v2 offset during power on and power off.
Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
---
drivers/phy/qualcomm/phy-qcom-qmp-pcie.c | 21 +++++++--------------
1 file changed, 7 insertions(+), 14 deletions(-)
diff --git a/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c b/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c
index c9330b0f0fcf..efffb77e8f45 100644
--- a/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c
+++ b/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c
@@ -97,18 +97,21 @@ static const unsigned int pciephy_regs_layout[QPHY_LAYOUT_SIZE] = {
[QPHY_SW_RESET] = 0x00,
[QPHY_START_CTRL] = 0x08,
[QPHY_PCS_STATUS] = 0x174,
+ [QPHY_PCS_POWER_DOWN_CONTROL] = 0x04,
};
static const unsigned int sdm845_qmp_pciephy_regs_layout[QPHY_LAYOUT_SIZE] = {
[QPHY_SW_RESET] = 0x00,
[QPHY_START_CTRL] = 0x08,
[QPHY_PCS_STATUS] = 0x174,
+ [QPHY_PCS_POWER_DOWN_CONTROL] = 0x04,
};
static const unsigned int sdm845_qhp_pciephy_regs_layout[QPHY_LAYOUT_SIZE] = {
[QPHY_SW_RESET] = 0x00,
[QPHY_START_CTRL] = 0x08,
[QPHY_PCS_STATUS] = 0x2ac,
+ [QPHY_PCS_POWER_DOWN_CONTROL] = 0x04,
};
static const unsigned int sm8250_pcie_regs_layout[QPHY_LAYOUT_SIZE] = {
@@ -1885,13 +1888,8 @@ static int qmp_pcie_init(struct phy *phy)
if (ret)
goto err_assert_reset;
- if (cfg->regs[QPHY_PCS_POWER_DOWN_CONTROL])
- qphy_setbits(pcs,
- cfg->regs[QPHY_PCS_POWER_DOWN_CONTROL],
- cfg->pwrdn_ctrl);
- else
- qphy_setbits(pcs, QPHY_V2_PCS_POWER_DOWN_CONTROL,
- cfg->pwrdn_ctrl);
+ qphy_setbits(pcs, cfg->regs[QPHY_PCS_POWER_DOWN_CONTROL],
+ cfg->pwrdn_ctrl);
return 0;
@@ -2014,13 +2012,8 @@ static int qmp_pcie_power_off(struct phy *phy)
qphy_clrbits(qphy->pcs, cfg->regs[QPHY_START_CTRL], cfg->start_ctrl);
/* Put PHY into POWER DOWN state: active low */
- if (cfg->regs[QPHY_PCS_POWER_DOWN_CONTROL]) {
- qphy_clrbits(qphy->pcs, cfg->regs[QPHY_PCS_POWER_DOWN_CONTROL],
- cfg->pwrdn_ctrl);
- } else {
- qphy_clrbits(qphy->pcs, QPHY_V2_PCS_POWER_DOWN_CONTROL,
- cfg->pwrdn_ctrl);
- }
+ qphy_clrbits(qphy->pcs, cfg->regs[QPHY_PCS_POWER_DOWN_CONTROL],
+ cfg->pwrdn_ctrl);
return 0;
}
--
2.35.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* Re: [PATCH v2 04/11] phy: qcom-qmp-pcie: clean up power-down handling
2022-09-29 9:29 ` [PATCH v2 04/11] phy: qcom-qmp-pcie: clean up power-down handling Johan Hovold
@ 2022-09-29 10:09 ` Dmitry Baryshkov
0 siblings, 0 replies; 24+ messages in thread
From: Dmitry Baryshkov @ 2022-09-29 10:09 UTC (permalink / raw)
To: Johan Hovold
Cc: Vinod Koul, Andy Gross, Bjorn Andersson, Konrad Dybcio,
Kishon Vijay Abraham I, Neil Armstrong, linux-arm-msm, linux-phy,
linux-kernel
On Thu, 29 Sept 2022 at 12:29, Johan Hovold <johan+linaro@kernel.org> wrote:
>
> Always define the POWER_DOWN_CONTROL register instead of falling back to
> the v2 offset during power on and power off.
>
> Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
> ---
> drivers/phy/qualcomm/phy-qcom-qmp-pcie.c | 21 +++++++--------------
> 1 file changed, 7 insertions(+), 14 deletions(-)
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 24+ messages in thread
* [PATCH v2 05/11] phy: qcom-qmp-pcie: move power-down update
2022-09-29 9:29 [PATCH v2 00/11] phy: qcom-qmp: more fixes and cleanups Johan Hovold
` (3 preceding siblings ...)
2022-09-29 9:29 ` [PATCH v2 04/11] phy: qcom-qmp-pcie: clean up power-down handling Johan Hovold
@ 2022-09-29 9:29 ` Johan Hovold
2022-09-29 19:05 ` Dmitry Baryshkov
2022-09-29 9:29 ` [PATCH v2 06/11] phy: qcom-qmp-pcie-msm8996: clean up power-down handling Johan Hovold
` (6 subsequent siblings)
11 siblings, 1 reply; 24+ messages in thread
From: Johan Hovold @ 2022-09-29 9:29 UTC (permalink / raw)
To: Vinod Koul
Cc: Andy Gross, Bjorn Andersson, Konrad Dybcio,
Kishon Vijay Abraham I, Dmitry Baryshkov, Neil Armstrong,
linux-arm-msm, linux-phy, linux-kernel, Johan Hovold
Move the power-down-control register update that powers on the PHY to
the power-on handler so that it matches the power-off handler.
Note that the power-on handler is currently always called directly
after init.
Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
---
drivers/phy/qualcomm/phy-qcom-qmp-pcie.c | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c b/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c
index efffb77e8f45..db78d2d76c03 100644
--- a/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c
+++ b/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c
@@ -1862,7 +1862,6 @@ static int qmp_pcie_init(struct phy *phy)
struct qmp_phy *qphy = phy_get_drvdata(phy);
struct qcom_qmp *qmp = qphy->qmp;
const struct qmp_phy_cfg *cfg = qphy->cfg;
- void __iomem *pcs = qphy->pcs;
int ret;
/* turn on regulator supplies */
@@ -1888,9 +1887,6 @@ static int qmp_pcie_init(struct phy *phy)
if (ret)
goto err_assert_reset;
- qphy_setbits(pcs, cfg->regs[QPHY_PCS_POWER_DOWN_CONTROL],
- cfg->pwrdn_ctrl);
-
return 0;
err_assert_reset:
@@ -1929,6 +1925,9 @@ static int qmp_pcie_power_on(struct phy *phy)
unsigned int mask, val, ready;
int ret;
+ qphy_setbits(pcs, cfg->regs[QPHY_PCS_POWER_DOWN_CONTROL],
+ cfg->pwrdn_ctrl);
+
qmp_pcie_serdes_init(qphy);
ret = clk_prepare_enable(qphy->pipe_clk);
--
2.35.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* Re: [PATCH v2 05/11] phy: qcom-qmp-pcie: move power-down update
2022-09-29 9:29 ` [PATCH v2 05/11] phy: qcom-qmp-pcie: move power-down update Johan Hovold
@ 2022-09-29 19:05 ` Dmitry Baryshkov
0 siblings, 0 replies; 24+ messages in thread
From: Dmitry Baryshkov @ 2022-09-29 19:05 UTC (permalink / raw)
To: Johan Hovold, Vinod Koul
Cc: Andy Gross, Bjorn Andersson, Konrad Dybcio,
Kishon Vijay Abraham I, Neil Armstrong, linux-arm-msm, linux-phy,
linux-kernel
On 29/09/2022 12:29, Johan Hovold wrote:
> Move the power-down-control register update that powers on the PHY to
> the power-on handler so that it matches the power-off handler.
>
> Note that the power-on handler is currently always called directly
> after init.
>
> Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
> ---
> drivers/phy/qualcomm/phy-qcom-qmp-pcie.c | 7 +++----
> 1 file changed, 3 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c b/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c
> index efffb77e8f45..db78d2d76c03 100644
> --- a/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c
> +++ b/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c
> @@ -1862,7 +1862,6 @@ static int qmp_pcie_init(struct phy *phy)
> struct qmp_phy *qphy = phy_get_drvdata(phy);
> struct qcom_qmp *qmp = qphy->qmp;
> const struct qmp_phy_cfg *cfg = qphy->cfg;
> - void __iomem *pcs = qphy->pcs;
> int ret;
>
> /* turn on regulator supplies */
> @@ -1888,9 +1887,6 @@ static int qmp_pcie_init(struct phy *phy)
> if (ret)
> goto err_assert_reset;
>
> - qphy_setbits(pcs, cfg->regs[QPHY_PCS_POWER_DOWN_CONTROL],
> - cfg->pwrdn_ctrl);
> -
> return 0;
>
> err_assert_reset:
> @@ -1929,6 +1925,9 @@ static int qmp_pcie_power_on(struct phy *phy)
> unsigned int mask, val, ready;
> int ret;
>
> + qphy_setbits(pcs, cfg->regs[QPHY_PCS_POWER_DOWN_CONTROL],
> + cfg->pwrdn_ctrl);
> +
> qmp_pcie_serdes_init(qphy);
>
> ret = clk_prepare_enable(qphy->pipe_clk);
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 24+ messages in thread
* [PATCH v2 06/11] phy: qcom-qmp-pcie-msm8996: clean up power-down handling
2022-09-29 9:29 [PATCH v2 00/11] phy: qcom-qmp: more fixes and cleanups Johan Hovold
` (4 preceding siblings ...)
2022-09-29 9:29 ` [PATCH v2 05/11] phy: qcom-qmp-pcie: move power-down update Johan Hovold
@ 2022-09-29 9:29 ` Johan Hovold
2022-09-29 10:07 ` Dmitry Baryshkov
2022-09-29 9:29 ` [PATCH v2 07/11] phy: qcom-qmp-combo: " Johan Hovold
` (5 subsequent siblings)
11 siblings, 1 reply; 24+ messages in thread
From: Johan Hovold @ 2022-09-29 9:29 UTC (permalink / raw)
To: Vinod Koul
Cc: Andy Gross, Bjorn Andersson, Konrad Dybcio,
Kishon Vijay Abraham I, Dmitry Baryshkov, Neil Armstrong,
linux-arm-msm, linux-phy, linux-kernel, Johan Hovold
This driver uses v2 registers only so drop the unnecessary
POWER_DOWN_CONTROL override.
Note that this register is already hard-coded when powering on the PHY.
Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
---
drivers/phy/qualcomm/phy-qcom-qmp-pcie-msm8996.c | 10 ++--------
1 file changed, 2 insertions(+), 8 deletions(-)
diff --git a/drivers/phy/qualcomm/phy-qcom-qmp-pcie-msm8996.c b/drivers/phy/qualcomm/phy-qcom-qmp-pcie-msm8996.c
index d9646bf5dc91..1960bd0513e9 100644
--- a/drivers/phy/qualcomm/phy-qcom-qmp-pcie-msm8996.c
+++ b/drivers/phy/qualcomm/phy-qcom-qmp-pcie-msm8996.c
@@ -91,7 +91,6 @@ enum qphy_reg_layout {
QPHY_SW_RESET,
QPHY_START_CTRL,
QPHY_PCS_STATUS,
- QPHY_PCS_POWER_DOWN_CONTROL,
/* Keep last to ensure regs_layout arrays are properly initialized */
QPHY_LAYOUT_SIZE
};
@@ -591,13 +590,8 @@ static int qmp_pcie_msm8996_power_off(struct phy *phy)
qphy_clrbits(qphy->pcs, cfg->regs[QPHY_START_CTRL], cfg->start_ctrl);
/* Put PHY into POWER DOWN state: active low */
- if (cfg->regs[QPHY_PCS_POWER_DOWN_CONTROL]) {
- qphy_clrbits(qphy->pcs, cfg->regs[QPHY_PCS_POWER_DOWN_CONTROL],
- cfg->pwrdn_ctrl);
- } else {
- qphy_clrbits(qphy->pcs, QPHY_V2_PCS_POWER_DOWN_CONTROL,
- cfg->pwrdn_ctrl);
- }
+ qphy_clrbits(qphy->pcs, QPHY_V2_PCS_POWER_DOWN_CONTROL,
+ cfg->pwrdn_ctrl);
return 0;
}
--
2.35.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* Re: [PATCH v2 06/11] phy: qcom-qmp-pcie-msm8996: clean up power-down handling
2022-09-29 9:29 ` [PATCH v2 06/11] phy: qcom-qmp-pcie-msm8996: clean up power-down handling Johan Hovold
@ 2022-09-29 10:07 ` Dmitry Baryshkov
0 siblings, 0 replies; 24+ messages in thread
From: Dmitry Baryshkov @ 2022-09-29 10:07 UTC (permalink / raw)
To: Johan Hovold
Cc: Vinod Koul, Andy Gross, Bjorn Andersson, Konrad Dybcio,
Kishon Vijay Abraham I, Neil Armstrong, linux-arm-msm, linux-phy,
linux-kernel
On Thu, 29 Sept 2022 at 12:29, Johan Hovold <johan+linaro@kernel.org> wrote:
>
> This driver uses v2 registers only so drop the unnecessary
> POWER_DOWN_CONTROL override.
>
> Note that this register is already hard-coded when powering on the PHY.
>
> Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
> ---
> drivers/phy/qualcomm/phy-qcom-qmp-pcie-msm8996.c | 10 ++--------
> 1 file changed, 2 insertions(+), 8 deletions(-)
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 24+ messages in thread
* [PATCH v2 07/11] phy: qcom-qmp-combo: clean up power-down handling
2022-09-29 9:29 [PATCH v2 00/11] phy: qcom-qmp: more fixes and cleanups Johan Hovold
` (5 preceding siblings ...)
2022-09-29 9:29 ` [PATCH v2 06/11] phy: qcom-qmp-pcie-msm8996: clean up power-down handling Johan Hovold
@ 2022-09-29 9:29 ` Johan Hovold
2022-09-29 10:08 ` Dmitry Baryshkov
2022-09-29 9:29 ` [PATCH v2 08/11] phy: qcom-qmp-ufs: " Johan Hovold
` (4 subsequent siblings)
11 siblings, 1 reply; 24+ messages in thread
From: Johan Hovold @ 2022-09-29 9:29 UTC (permalink / raw)
To: Vinod Koul
Cc: Andy Gross, Bjorn Andersson, Konrad Dybcio,
Kishon Vijay Abraham I, Dmitry Baryshkov, Neil Armstrong,
linux-arm-msm, linux-phy, linux-kernel, Johan Hovold
Always define the POWER_DOWN_CONTROL register instead of falling back to
the v2 (and v3) offset during power on and power off.
Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
---
drivers/phy/qualcomm/phy-qcom-qmp-combo.c | 19 +++++--------------
1 file changed, 5 insertions(+), 14 deletions(-)
diff --git a/drivers/phy/qualcomm/phy-qcom-qmp-combo.c b/drivers/phy/qualcomm/phy-qcom-qmp-combo.c
index e618e675e8ec..5665eb3c1556 100644
--- a/drivers/phy/qualcomm/phy-qcom-qmp-combo.c
+++ b/drivers/phy/qualcomm/phy-qcom-qmp-combo.c
@@ -121,6 +121,7 @@ static const unsigned int qmp_v3_usb3phy_regs_layout[QPHY_LAYOUT_SIZE] = {
[QPHY_SW_RESET] = 0x00,
[QPHY_START_CTRL] = 0x08,
[QPHY_PCS_STATUS] = 0x174,
+ [QPHY_PCS_POWER_DOWN_CONTROL] = 0x04,
[QPHY_PCS_AUTONOMOUS_MODE_CTRL] = 0x0d8,
[QPHY_PCS_LFPS_RXTERM_IRQ_CLEAR] = 0x0dc,
[QPHY_PCS_LFPS_RXTERM_IRQ_STATUS] = 0x170,
@@ -1991,13 +1992,8 @@ static int qmp_combo_com_init(struct qmp_phy *qphy)
qphy_clrbits(dp_com, QPHY_V3_DP_COM_SWI_CTRL, 0x03);
qphy_clrbits(dp_com, QPHY_V3_DP_COM_SW_RESET, SW_RESET);
- if (cfg->regs[QPHY_PCS_POWER_DOWN_CONTROL])
- qphy_setbits(pcs,
- cfg->regs[QPHY_PCS_POWER_DOWN_CONTROL],
- cfg->pwrdn_ctrl);
- else
- qphy_setbits(pcs, QPHY_V2_PCS_POWER_DOWN_CONTROL,
- cfg->pwrdn_ctrl);
+ qphy_setbits(pcs, cfg->regs[QPHY_PCS_POWER_DOWN_CONTROL],
+ cfg->pwrdn_ctrl);
mutex_unlock(&qmp->phy_mutex);
@@ -2144,13 +2140,8 @@ static int qmp_combo_power_off(struct phy *phy)
qphy_clrbits(qphy->pcs, cfg->regs[QPHY_START_CTRL], cfg->start_ctrl);
/* Put PHY into POWER DOWN state: active low */
- if (cfg->regs[QPHY_PCS_POWER_DOWN_CONTROL]) {
- qphy_clrbits(qphy->pcs, cfg->regs[QPHY_PCS_POWER_DOWN_CONTROL],
- cfg->pwrdn_ctrl);
- } else {
- qphy_clrbits(qphy->pcs, QPHY_V2_PCS_POWER_DOWN_CONTROL,
- cfg->pwrdn_ctrl);
- }
+ qphy_clrbits(qphy->pcs, cfg->regs[QPHY_PCS_POWER_DOWN_CONTROL],
+ cfg->pwrdn_ctrl);
}
return 0;
--
2.35.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* Re: [PATCH v2 07/11] phy: qcom-qmp-combo: clean up power-down handling
2022-09-29 9:29 ` [PATCH v2 07/11] phy: qcom-qmp-combo: " Johan Hovold
@ 2022-09-29 10:08 ` Dmitry Baryshkov
0 siblings, 0 replies; 24+ messages in thread
From: Dmitry Baryshkov @ 2022-09-29 10:08 UTC (permalink / raw)
To: Johan Hovold
Cc: Vinod Koul, Andy Gross, Bjorn Andersson, Konrad Dybcio,
Kishon Vijay Abraham I, Neil Armstrong, linux-arm-msm, linux-phy,
linux-kernel
On Thu, 29 Sept 2022 at 12:29, Johan Hovold <johan+linaro@kernel.org> wrote:
>
> Always define the POWER_DOWN_CONTROL register instead of falling back to
> the v2 (and v3) offset during power on and power off.
>
> Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
> ---
> drivers/phy/qualcomm/phy-qcom-qmp-combo.c | 19 +++++--------------
> 1 file changed, 5 insertions(+), 14 deletions(-)
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 24+ messages in thread
* [PATCH v2 08/11] phy: qcom-qmp-ufs: clean up power-down handling
2022-09-29 9:29 [PATCH v2 00/11] phy: qcom-qmp: more fixes and cleanups Johan Hovold
` (6 preceding siblings ...)
2022-09-29 9:29 ` [PATCH v2 07/11] phy: qcom-qmp-combo: " Johan Hovold
@ 2022-09-29 9:29 ` Johan Hovold
2022-09-29 10:18 ` Dmitry Baryshkov
2022-09-29 9:29 ` [PATCH v2 09/11] phy: qcom-qmp-usb: " Johan Hovold
` (3 subsequent siblings)
11 siblings, 1 reply; 24+ messages in thread
From: Johan Hovold @ 2022-09-29 9:29 UTC (permalink / raw)
To: Vinod Koul
Cc: Andy Gross, Bjorn Andersson, Konrad Dybcio,
Kishon Vijay Abraham I, Dmitry Baryshkov, Neil Armstrong,
linux-arm-msm, linux-phy, linux-kernel, Johan Hovold
Always define the POWER_DOWN_CONTROL register instead of falling back to
the v2 (and v4) offset during power on and power off.
Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
---
drivers/phy/qualcomm/phy-qcom-qmp-ufs.c | 22 ++++++++--------------
1 file changed, 8 insertions(+), 14 deletions(-)
diff --git a/drivers/phy/qualcomm/phy-qcom-qmp-ufs.c b/drivers/phy/qualcomm/phy-qcom-qmp-ufs.c
index d7b35b715b95..c8d86aecfe74 100644
--- a/drivers/phy/qualcomm/phy-qcom-qmp-ufs.c
+++ b/drivers/phy/qualcomm/phy-qcom-qmp-ufs.c
@@ -89,22 +89,26 @@ enum qphy_reg_layout {
static const unsigned int msm8996_ufsphy_regs_layout[QPHY_LAYOUT_SIZE] = {
[QPHY_START_CTRL] = 0x00,
[QPHY_PCS_READY_STATUS] = 0x168,
+ [QPHY_PCS_POWER_DOWN_CONTROL] = 0x04,
};
static const unsigned int sdm845_ufsphy_regs_layout[QPHY_LAYOUT_SIZE] = {
[QPHY_START_CTRL] = 0x00,
[QPHY_PCS_READY_STATUS] = 0x160,
+ [QPHY_PCS_POWER_DOWN_CONTROL] = 0x04,
};
static const unsigned int sm6115_ufsphy_regs_layout[QPHY_LAYOUT_SIZE] = {
[QPHY_START_CTRL] = 0x00,
[QPHY_PCS_READY_STATUS] = 0x168,
+ [QPHY_PCS_POWER_DOWN_CONTROL] = 0x04,
};
static const unsigned int sm8150_ufsphy_regs_layout[QPHY_LAYOUT_SIZE] = {
[QPHY_START_CTRL] = QPHY_V4_PCS_UFS_PHY_START,
[QPHY_PCS_READY_STATUS] = QPHY_V4_PCS_UFS_READY_STATUS,
[QPHY_SW_RESET] = QPHY_V4_PCS_UFS_SW_RESET,
+ [QPHY_PCS_POWER_DOWN_CONTROL] = QPHY_V4_PCS_UFS_POWER_DOWN_CONTROL,
};
static const struct qmp_phy_init_tbl msm8996_ufs_serdes_tbl[] = {
@@ -856,13 +860,8 @@ static int qmp_ufs_com_init(struct qmp_phy *qphy)
if (ret)
goto err_disable_regulators;
- if (cfg->regs[QPHY_PCS_POWER_DOWN_CONTROL])
- qphy_setbits(pcs,
- cfg->regs[QPHY_PCS_POWER_DOWN_CONTROL],
- cfg->pwrdn_ctrl);
- else
- qphy_setbits(pcs, QPHY_V2_PCS_POWER_DOWN_CONTROL,
- cfg->pwrdn_ctrl);
+ qphy_setbits(pcs, cfg->regs[QPHY_PCS_POWER_DOWN_CONTROL],
+ cfg->pwrdn_ctrl);
return 0;
@@ -996,13 +995,8 @@ static int qmp_ufs_power_off(struct phy *phy)
qphy_clrbits(qphy->pcs, cfg->regs[QPHY_START_CTRL], cfg->start_ctrl);
/* Put PHY into POWER DOWN state: active low */
- if (cfg->regs[QPHY_PCS_POWER_DOWN_CONTROL]) {
- qphy_clrbits(qphy->pcs, cfg->regs[QPHY_PCS_POWER_DOWN_CONTROL],
- cfg->pwrdn_ctrl);
- } else {
- qphy_clrbits(qphy->pcs, QPHY_V2_PCS_POWER_DOWN_CONTROL,
- cfg->pwrdn_ctrl);
- }
+ qphy_clrbits(qphy->pcs, cfg->regs[QPHY_PCS_POWER_DOWN_CONTROL],
+ cfg->pwrdn_ctrl);
return 0;
}
--
2.35.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* Re: [PATCH v2 08/11] phy: qcom-qmp-ufs: clean up power-down handling
2022-09-29 9:29 ` [PATCH v2 08/11] phy: qcom-qmp-ufs: " Johan Hovold
@ 2022-09-29 10:18 ` Dmitry Baryshkov
0 siblings, 0 replies; 24+ messages in thread
From: Dmitry Baryshkov @ 2022-09-29 10:18 UTC (permalink / raw)
To: Johan Hovold
Cc: Vinod Koul, Andy Gross, Bjorn Andersson, Konrad Dybcio,
Kishon Vijay Abraham I, Neil Armstrong, linux-arm-msm, linux-phy,
linux-kernel
On Thu, 29 Sept 2022 at 12:29, Johan Hovold <johan+linaro@kernel.org> wrote:
>
> Always define the POWER_DOWN_CONTROL register instead of falling back to
> the v2 (and v4) offset during power on and power off.
>
> Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
> ---
> drivers/phy/qualcomm/phy-qcom-qmp-ufs.c | 22 ++++++++--------------
> 1 file changed, 8 insertions(+), 14 deletions(-)
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 24+ messages in thread
* [PATCH v2 09/11] phy: qcom-qmp-usb: clean up power-down handling
2022-09-29 9:29 [PATCH v2 00/11] phy: qcom-qmp: more fixes and cleanups Johan Hovold
` (7 preceding siblings ...)
2022-09-29 9:29 ` [PATCH v2 08/11] phy: qcom-qmp-ufs: " Johan Hovold
@ 2022-09-29 9:29 ` Johan Hovold
2022-09-29 10:09 ` Dmitry Baryshkov
2022-09-29 9:29 ` [PATCH v2 10/11] phy: qcom-qmp-pcie: clean up clock lists Johan Hovold
` (2 subsequent siblings)
11 siblings, 1 reply; 24+ messages in thread
From: Johan Hovold @ 2022-09-29 9:29 UTC (permalink / raw)
To: Vinod Koul
Cc: Andy Gross, Bjorn Andersson, Konrad Dybcio,
Kishon Vijay Abraham I, Dmitry Baryshkov, Neil Armstrong,
linux-arm-msm, linux-phy, linux-kernel, Johan Hovold
Always define the POWER_DOWN_CONTROL register instead of falling back to
the v2 (and v3) offset during power on and power off.
Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
---
drivers/phy/qualcomm/phy-qcom-qmp-usb.c | 20 ++++++--------------
1 file changed, 6 insertions(+), 14 deletions(-)
diff --git a/drivers/phy/qualcomm/phy-qcom-qmp-usb.c b/drivers/phy/qualcomm/phy-qcom-qmp-usb.c
index f8685eddbf80..8acb5a3aeb95 100644
--- a/drivers/phy/qualcomm/phy-qcom-qmp-usb.c
+++ b/drivers/phy/qualcomm/phy-qcom-qmp-usb.c
@@ -126,6 +126,7 @@ static const unsigned int usb3phy_regs_layout[QPHY_LAYOUT_SIZE] = {
[QPHY_PCS_AUTONOMOUS_MODE_CTRL] = 0x0d4,
[QPHY_PCS_LFPS_RXTERM_IRQ_CLEAR] = 0x0d8,
[QPHY_PCS_LFPS_RXTERM_IRQ_STATUS] = 0x178,
+ [QPHY_PCS_POWER_DOWN_CONTROL] = 0x04,
};
static const unsigned int qmp_v3_usb3phy_regs_layout[QPHY_LAYOUT_SIZE] = {
@@ -135,6 +136,7 @@ static const unsigned int qmp_v3_usb3phy_regs_layout[QPHY_LAYOUT_SIZE] = {
[QPHY_PCS_AUTONOMOUS_MODE_CTRL] = 0x0d8,
[QPHY_PCS_LFPS_RXTERM_IRQ_CLEAR] = 0x0dc,
[QPHY_PCS_LFPS_RXTERM_IRQ_STATUS] = 0x170,
+ [QPHY_PCS_POWER_DOWN_CONTROL] = 0x04,
};
static const unsigned int qmp_v4_usb3phy_regs_layout[QPHY_LAYOUT_SIZE] = {
@@ -2164,13 +2166,8 @@ static int qmp_usb_init(struct phy *phy)
qphy_clrbits(dp_com, QPHY_V3_DP_COM_SW_RESET, SW_RESET);
}
- if (cfg->regs[QPHY_PCS_POWER_DOWN_CONTROL])
- qphy_setbits(pcs,
- cfg->regs[QPHY_PCS_POWER_DOWN_CONTROL],
- cfg->pwrdn_ctrl);
- else
- qphy_setbits(pcs, QPHY_V2_PCS_POWER_DOWN_CONTROL,
- cfg->pwrdn_ctrl);
+ qphy_setbits(pcs, cfg->regs[QPHY_PCS_POWER_DOWN_CONTROL],
+ cfg->pwrdn_ctrl);
return 0;
@@ -2277,13 +2274,8 @@ static int qmp_usb_power_off(struct phy *phy)
qphy_clrbits(qphy->pcs, cfg->regs[QPHY_START_CTRL], cfg->start_ctrl);
/* Put PHY into POWER DOWN state: active low */
- if (cfg->regs[QPHY_PCS_POWER_DOWN_CONTROL]) {
- qphy_clrbits(qphy->pcs, cfg->regs[QPHY_PCS_POWER_DOWN_CONTROL],
- cfg->pwrdn_ctrl);
- } else {
- qphy_clrbits(qphy->pcs, QPHY_V2_PCS_POWER_DOWN_CONTROL,
- cfg->pwrdn_ctrl);
- }
+ qphy_clrbits(qphy->pcs, cfg->regs[QPHY_PCS_POWER_DOWN_CONTROL],
+ cfg->pwrdn_ctrl);
return 0;
}
--
2.35.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* Re: [PATCH v2 09/11] phy: qcom-qmp-usb: clean up power-down handling
2022-09-29 9:29 ` [PATCH v2 09/11] phy: qcom-qmp-usb: " Johan Hovold
@ 2022-09-29 10:09 ` Dmitry Baryshkov
0 siblings, 0 replies; 24+ messages in thread
From: Dmitry Baryshkov @ 2022-09-29 10:09 UTC (permalink / raw)
To: Johan Hovold
Cc: Vinod Koul, Andy Gross, Bjorn Andersson, Konrad Dybcio,
Kishon Vijay Abraham I, Neil Armstrong, linux-arm-msm, linux-phy,
linux-kernel
On Thu, 29 Sept 2022 at 12:29, Johan Hovold <johan+linaro@kernel.org> wrote:
>
> Always define the POWER_DOWN_CONTROL register instead of falling back to
> the v2 (and v3) offset during power on and power off.
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
>
> Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 24+ messages in thread
* [PATCH v2 10/11] phy: qcom-qmp-pcie: clean up clock lists
2022-09-29 9:29 [PATCH v2 00/11] phy: qcom-qmp: more fixes and cleanups Johan Hovold
` (8 preceding siblings ...)
2022-09-29 9:29 ` [PATCH v2 09/11] phy: qcom-qmp-usb: " Johan Hovold
@ 2022-09-29 9:29 ` Johan Hovold
2022-09-29 10:08 ` Dmitry Baryshkov
2022-09-29 9:29 ` [PATCH v2 11/11] phy: qcom-qmp-pcie: drop bogus register update Johan Hovold
2022-09-29 9:47 ` [PATCH v2 00/11] phy: qcom-qmp: more fixes and cleanups Johan Hovold
11 siblings, 1 reply; 24+ messages in thread
From: Johan Hovold @ 2022-09-29 9:29 UTC (permalink / raw)
To: Vinod Koul
Cc: Andy Gross, Bjorn Andersson, Konrad Dybcio,
Kishon Vijay Abraham I, Dmitry Baryshkov, Neil Armstrong,
linux-arm-msm, linux-phy, linux-kernel, Johan Hovold
Keep the clock lists together and sorted by symbol name.
Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
---
drivers/phy/qualcomm/phy-qcom-qmp-pcie.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c b/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c
index db78d2d76c03..a0f62e9633d9 100644
--- a/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c
+++ b/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c
@@ -1423,6 +1423,10 @@ static inline void qphy_clrbits(void __iomem *base, u32 offset, u32 val)
}
/* list of clocks required by phy */
+static const char * const ipq8074_pciephy_clk_l[] = {
+ "aux", "cfg_ahb",
+};
+
static const char * const msm8996_phy_clk_l[] = {
"aux", "cfg_ahb", "ref",
};
@@ -1437,10 +1441,6 @@ static const char * const qmp_phy_vreg_l[] = {
"vdda-phy", "vdda-pll",
};
-static const char * const ipq8074_pciephy_clk_l[] = {
- "aux", "cfg_ahb",
-};
-
/* list of resets */
static const char * const ipq8074_pciephy_reset_l[] = {
"phy", "common",
--
2.35.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* Re: [PATCH v2 10/11] phy: qcom-qmp-pcie: clean up clock lists
2022-09-29 9:29 ` [PATCH v2 10/11] phy: qcom-qmp-pcie: clean up clock lists Johan Hovold
@ 2022-09-29 10:08 ` Dmitry Baryshkov
0 siblings, 0 replies; 24+ messages in thread
From: Dmitry Baryshkov @ 2022-09-29 10:08 UTC (permalink / raw)
To: Johan Hovold
Cc: Vinod Koul, Andy Gross, Bjorn Andersson, Konrad Dybcio,
Kishon Vijay Abraham I, Neil Armstrong, linux-arm-msm, linux-phy,
linux-kernel
On Thu, 29 Sept 2022 at 12:29, Johan Hovold <johan+linaro@kernel.org> wrote:
>
> Keep the clock lists together and sorted by symbol name.
>
> Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
> ---
> drivers/phy/qualcomm/phy-qcom-qmp-pcie.c | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 24+ messages in thread
* [PATCH v2 11/11] phy: qcom-qmp-pcie: drop bogus register update
2022-09-29 9:29 [PATCH v2 00/11] phy: qcom-qmp: more fixes and cleanups Johan Hovold
` (9 preceding siblings ...)
2022-09-29 9:29 ` [PATCH v2 10/11] phy: qcom-qmp-pcie: clean up clock lists Johan Hovold
@ 2022-09-29 9:29 ` Johan Hovold
2022-09-29 10:18 ` Dmitry Baryshkov
2022-09-30 10:57 ` Dmitry Baryshkov
2022-09-29 9:47 ` [PATCH v2 00/11] phy: qcom-qmp: more fixes and cleanups Johan Hovold
11 siblings, 2 replies; 24+ messages in thread
From: Johan Hovold @ 2022-09-29 9:29 UTC (permalink / raw)
To: Vinod Koul
Cc: Andy Gross, Bjorn Andersson, Konrad Dybcio,
Kishon Vijay Abraham I, Dmitry Baryshkov, Neil Armstrong,
linux-arm-msm, linux-phy, linux-kernel, Johan Hovold
Since commit 0d58280cf1e6 ("phy: Update PHY power control sequence") the
PHY is powered on before configuring the registers and only the MSM8996
PCIe PHY, which includes the POWER_DOWN_CONTROL register in its PCS
initialisation table, may possibly require a second update afterwards.
To make things worse, the POWER_DOWN_CONTROL register lies at a
different offset on more recent SoCs so that the second update, which
still used a hard-coded offset, would write to an unrelated register
(e.g. a revision-id register on SC8280XP).
As the MSM8996 PCIe PHY is now handled by a separate driver, simply drop
the bogus register update.
Fixes: e4d8b05ad5f9 ("phy: qcom-qmp: Use proper PWRDOWN offset for sm8150 USB") added support
Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
---
drivers/phy/qualcomm/phy-qcom-qmp-pcie.c | 6 ------
1 file changed, 6 deletions(-)
diff --git a/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c b/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c
index a0f62e9633d9..90bdbeee8372 100644
--- a/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c
+++ b/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c
@@ -1963,12 +1963,6 @@ static int qmp_pcie_power_on(struct phy *phy)
qmp_pcie_configure(pcs_misc, cfg->regs, cfg->pcs_misc_tbl, cfg->pcs_misc_tbl_num);
qmp_pcie_configure(pcs_misc, cfg->regs, cfg->pcs_misc_tbl_sec, cfg->pcs_misc_tbl_num_sec);
- /*
- * Pull out PHY from POWER DOWN state.
- * This is active low enable signal to power-down PHY.
- */
- qphy_setbits(pcs, QPHY_V2_PCS_POWER_DOWN_CONTROL, cfg->pwrdn_ctrl);
-
if (cfg->has_pwrdn_delay)
usleep_range(cfg->pwrdn_delay_min, cfg->pwrdn_delay_max);
--
2.35.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* Re: [PATCH v2 11/11] phy: qcom-qmp-pcie: drop bogus register update
2022-09-29 9:29 ` [PATCH v2 11/11] phy: qcom-qmp-pcie: drop bogus register update Johan Hovold
@ 2022-09-29 10:18 ` Dmitry Baryshkov
2022-09-29 12:39 ` Johan Hovold
2022-09-30 10:57 ` Dmitry Baryshkov
1 sibling, 1 reply; 24+ messages in thread
From: Dmitry Baryshkov @ 2022-09-29 10:18 UTC (permalink / raw)
To: Johan Hovold
Cc: Vinod Koul, Andy Gross, Bjorn Andersson, Konrad Dybcio,
Kishon Vijay Abraham I, Neil Armstrong, linux-arm-msm, linux-phy,
linux-kernel
On Thu, 29 Sept 2022 at 12:29, Johan Hovold <johan+linaro@kernel.org> wrote:
>
> Since commit 0d58280cf1e6 ("phy: Update PHY power control sequence") the
> PHY is powered on before configuring the registers and only the MSM8996
> PCIe PHY, which includes the POWER_DOWN_CONTROL register in its PCS
> initialisation table, may possibly require a second update afterwards.
>
> To make things worse, the POWER_DOWN_CONTROL register lies at a
> different offset on more recent SoCs so that the second update, which
> still used a hard-coded offset, would write to an unrelated register
> (e.g. a revision-id register on SC8280XP).
>
> As the MSM8996 PCIe PHY is now handled by a separate driver, simply drop
> the bogus register update.
>
> Fixes: e4d8b05ad5f9 ("phy: qcom-qmp: Use proper PWRDOWN offset for sm8150 USB") added support
Unless somebody confirms that this write is not needed on 8998 and
sdm845, I'd prefer a two stage fix here:
- changing this to write to proper register (and maybe moving to the
top of patch series, as we'd want to backport this to the last few
kernels)
- dropping the write completely.
Meanwhile I'll try testing this patchset on rb3 and checking whether
it makes any difference or not.
> Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
> ---
> drivers/phy/qualcomm/phy-qcom-qmp-pcie.c | 6 ------
> 1 file changed, 6 deletions(-)
>
> diff --git a/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c b/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c
> index a0f62e9633d9..90bdbeee8372 100644
> --- a/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c
> +++ b/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c
> @@ -1963,12 +1963,6 @@ static int qmp_pcie_power_on(struct phy *phy)
> qmp_pcie_configure(pcs_misc, cfg->regs, cfg->pcs_misc_tbl, cfg->pcs_misc_tbl_num);
> qmp_pcie_configure(pcs_misc, cfg->regs, cfg->pcs_misc_tbl_sec, cfg->pcs_misc_tbl_num_sec);
>
> - /*
> - * Pull out PHY from POWER DOWN state.
> - * This is active low enable signal to power-down PHY.
> - */
> - qphy_setbits(pcs, QPHY_V2_PCS_POWER_DOWN_CONTROL, cfg->pwrdn_ctrl);
> -
> if (cfg->has_pwrdn_delay)
> usleep_range(cfg->pwrdn_delay_min, cfg->pwrdn_delay_max);
>
> --
> 2.35.1
>
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH v2 11/11] phy: qcom-qmp-pcie: drop bogus register update
2022-09-29 10:18 ` Dmitry Baryshkov
@ 2022-09-29 12:39 ` Johan Hovold
0 siblings, 0 replies; 24+ messages in thread
From: Johan Hovold @ 2022-09-29 12:39 UTC (permalink / raw)
To: Dmitry Baryshkov
Cc: Johan Hovold, Vinod Koul, Andy Gross, Bjorn Andersson,
Konrad Dybcio, Kishon Vijay Abraham I, Neil Armstrong,
linux-arm-msm, linux-phy, linux-kernel
On Thu, Sep 29, 2022 at 01:18:05PM +0300, Dmitry Baryshkov wrote:
> On Thu, 29 Sept 2022 at 12:29, Johan Hovold <johan+linaro@kernel.org> wrote:
> >
> > Since commit 0d58280cf1e6 ("phy: Update PHY power control sequence") the
> > PHY is powered on before configuring the registers and only the MSM8996
> > PCIe PHY, which includes the POWER_DOWN_CONTROL register in its PCS
> > initialisation table, may possibly require a second update afterwards.
> >
> > To make things worse, the POWER_DOWN_CONTROL register lies at a
> > different offset on more recent SoCs so that the second update, which
> > still used a hard-coded offset, would write to an unrelated register
> > (e.g. a revision-id register on SC8280XP).
> >
> > As the MSM8996 PCIe PHY is now handled by a separate driver, simply drop
> > the bogus register update.
> >
> > Fixes: e4d8b05ad5f9 ("phy: qcom-qmp: Use proper PWRDOWN offset for sm8150 USB") added support
>
> Unless somebody confirms that this write is not needed on 8998 and
> sdm845, I'd prefer a two stage fix here:
> - changing this to write to proper register (and maybe moving to the
> top of patch series, as we'd want to backport this to the last few
> kernels)
It already is the "proper" register for the v2 platforms that may
conceivably need it it. For the rest it is clearly just broken.
And I don't think this needs to block the rest of the series. That's
why I moved it last. If we decide to backport this we have other context
changes in -next to handle anyway.
> - dropping the write completely.
But sure, doing it in two steps is a possibility.
> Meanwhile I'll try testing this patchset on rb3 and checking whether
> it makes any difference or not.
Thanks for doing that.
Johan
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH v2 11/11] phy: qcom-qmp-pcie: drop bogus register update
2022-09-29 9:29 ` [PATCH v2 11/11] phy: qcom-qmp-pcie: drop bogus register update Johan Hovold
2022-09-29 10:18 ` Dmitry Baryshkov
@ 2022-09-30 10:57 ` Dmitry Baryshkov
2022-09-30 11:25 ` Johan Hovold
1 sibling, 1 reply; 24+ messages in thread
From: Dmitry Baryshkov @ 2022-09-30 10:57 UTC (permalink / raw)
To: Johan Hovold, Vinod Koul
Cc: Andy Gross, Bjorn Andersson, Konrad Dybcio,
Kishon Vijay Abraham I, Neil Armstrong, linux-arm-msm, linux-phy,
linux-kernel
On 29/09/2022 12:29, Johan Hovold wrote:
> Since commit 0d58280cf1e6 ("phy: Update PHY power control sequence") the
> PHY is powered on before configuring the registers and only the MSM8996
> PCIe PHY, which includes the POWER_DOWN_CONTROL register in its PCS
> initialisation table, may possibly require a second update afterwards.
>
> To make things worse, the POWER_DOWN_CONTROL register lies at a
> different offset on more recent SoCs so that the second update, which
> still used a hard-coded offset, would write to an unrelated register
> (e.g. a revision-id register on SC8280XP).
>
> As the MSM8996 PCIe PHY is now handled by a separate driver, simply drop
> the bogus register update.
>
> Fixes: e4d8b05ad5f9 ("phy: qcom-qmp: Use proper PWRDOWN offset for sm8150 USB") added support
> Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Tested-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> #RB3
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH v2 11/11] phy: qcom-qmp-pcie: drop bogus register update
2022-09-30 10:57 ` Dmitry Baryshkov
@ 2022-09-30 11:25 ` Johan Hovold
0 siblings, 0 replies; 24+ messages in thread
From: Johan Hovold @ 2022-09-30 11:25 UTC (permalink / raw)
To: Dmitry Baryshkov
Cc: Johan Hovold, Vinod Koul, Andy Gross, Bjorn Andersson,
Konrad Dybcio, Kishon Vijay Abraham I, Neil Armstrong,
linux-arm-msm, linux-phy, linux-kernel
On Fri, Sep 30, 2022 at 01:57:46PM +0300, Dmitry Baryshkov wrote:
> On 29/09/2022 12:29, Johan Hovold wrote:
> > Since commit 0d58280cf1e6 ("phy: Update PHY power control sequence") the
> > PHY is powered on before configuring the registers and only the MSM8996
> > PCIe PHY, which includes the POWER_DOWN_CONTROL register in its PCS
> > initialisation table, may possibly require a second update afterwards.
> >
> > To make things worse, the POWER_DOWN_CONTROL register lies at a
> > different offset on more recent SoCs so that the second update, which
> > still used a hard-coded offset, would write to an unrelated register
> > (e.g. a revision-id register on SC8280XP).
> >
> > As the MSM8996 PCIe PHY is now handled by a separate driver, simply drop
> > the bogus register update.
> >
> > Fixes: e4d8b05ad5f9 ("phy: qcom-qmp: Use proper PWRDOWN offset for sm8150 USB") added support
> > Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
>
> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
> Tested-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> #RB3
Thanks for confirming.
Johan
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH v2 00/11] phy: qcom-qmp: more fixes and cleanups
2022-09-29 9:29 [PATCH v2 00/11] phy: qcom-qmp: more fixes and cleanups Johan Hovold
` (10 preceding siblings ...)
2022-09-29 9:29 ` [PATCH v2 11/11] phy: qcom-qmp-pcie: drop bogus register update Johan Hovold
@ 2022-09-29 9:47 ` Johan Hovold
11 siblings, 0 replies; 24+ messages in thread
From: Johan Hovold @ 2022-09-29 9:47 UTC (permalink / raw)
To: Johan Hovold
Cc: Vinod Koul, Andy Gross, Bjorn Andersson, Konrad Dybcio,
Kishon Vijay Abraham I, Dmitry Baryshkov, Neil Armstrong,
linux-arm-msm, linux-phy, linux-kernel
On Thu, Sep 29, 2022 at 11:29:05AM +0200, Johan Hovold wrote:
> Here's the next batch of QMP driver fixes and cleanups.
> Johan Hovold (11):
> phy: qcom-qmp: fix obsolete lane comments
> phy: qcom-qmp-combo: drop unused UFS reset
> phy: qcom-qmp-pcie: drop unused common-block registers
> phy: qcom-qmp-pcie: clean up power-down handling
> phy: qcom-qmp-pcie: move power-down update
> phy: qcom-qmp-pcie-msm8996: clean up power-down handling
> phy: qcom-qmp-combo: clean up power-down handling
> phy: qcom-qmp-ufs: clean up power-down handling
> phy: qcom-qmp-usb: clean up power-down handling
> phy: qcom-qmp-pcie: clean up clock lists
I forgot to add Dmitry's reviewed-by tag to patches 6 through 10 when
resending. Sorry about that.
> phy: qcom-qmp-pcie: drop bogus register update
>
> drivers/phy/qualcomm/phy-qcom-qmp-combo.c | 30 +++---------
> .../phy/qualcomm/phy-qcom-qmp-pcie-msm8996.c | 12 ++---
> drivers/phy/qualcomm/phy-qcom-qmp-pcie.c | 49 +++++--------------
> drivers/phy/qualcomm/phy-qcom-qmp-ufs.c | 24 ++++-----
> drivers/phy/qualcomm/phy-qcom-qmp-usb.c | 22 +++------
> 5 files changed, 38 insertions(+), 99 deletions(-)
Johan
^ permalink raw reply [flat|nested] 24+ messages in thread