linux/drivers/phy/qualcomm
Johan Hovold 667347e338 phy: qcom-qmp-combo: fix broken power on
[ Upstream commit 7a7d86d14d ]

The PHY is powered on during phy-init by setting the SW_PWRDN bit in the
COM_POWER_DOWN_CTRL register and then setting the same bit in the in the
PCS_POWER_DOWN_CONTROL register that belongs to the USB part of the
PHY.

Currently, whether power on succeeds depends on probe order and having
the USB part of the PHY be initialised first. In case the DP part of the
PHY is instead initialised first, the intended power on of the USB block
results in a corrupted DP_PHY register (e.g. DP_PHY_AUX_CFG8).

Add a pointer to the USB part of the PHY to the driver data and use that
to power on the PHY also if the DP part of the PHY is initialised first.

Fixes: 52e013d0bf ("phy: qcom-qmp: Add support for DP in USB3+DP combo phy")
Cc: stable@vger.kernel.org	# 5.10
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
Link: https://lore.kernel.org/r/20221114081346.5116-5-johan+linaro@kernel.org
Signed-off-by: Vinod Koul <vkoul@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
History 2023-01-12 12:01:56 +01:00
..
Kconfig phy: qcom: Introduce new eDP PHY driver 2021-11-23 10:40:17 +05:30
Makefile phy: qcom-qmp: switch to new split QMP PHY driver 2022-06-09 23:49:41 +05:30
phy-ath79-usb.c phy: ath79-usb: Fix the main reset name to match the DT binding 2019-01-16 18:00:57 +05:30
phy-qcom-apq8064-sata.c phy: qualcomm: convert to devm_platform_ioremap_resource(_byname) 2020-11-16 12:47:47 +05:30
phy-qcom-edp.c phy: qcom: edp: Postpone clk_set_rate until the PLL is up 2022-09-02 22:27:12 +05:30
phy-qcom-ipq806x-sata.c phy: qualcomm: convert to devm_platform_ioremap_resource(_byname) 2020-11-16 12:47:47 +05:30
phy-qcom-ipq806x-usb.c drivers: phy: qcom: ipq806x-usb: conver latch function to pool macro 2022-01-24 09:58:12 +05:30
phy-qcom-ipq4019-usb.c phy: qualcomm: convert to devm_platform_ioremap_resource(_byname) 2020-11-16 12:47:47 +05:30
phy-qcom-pcie2.c phy: qualcomm: convert to devm_platform_ioremap_resource(_byname) 2020-11-16 12:47:47 +05:30
phy-qcom-qmp-combo.c phy: qcom-qmp-combo: fix broken power on 2023-01-12 12:01:56 +01:00
phy-qcom-qmp-pcie-msm8996.c phy: qcom-qmp-pcie-msm8996: Use dev_err_probe() to simplify code 2022-09-24 13:03:49 +05:30
phy-qcom-qmp-pcie-qhp.h phy: qcom-qmp: move PCIE QHP registers to separate header 2022-07-07 10:36:00 +05:30
phy-qcom-qmp-pcie.c phy: qcom-qmp-pcie: Fix sm8450_qmp_gen4x2_pcie_pcs_tbl[] register names 2022-12-31 13:32:48 +01:00
phy-qcom-qmp-pcs-misc-v3.h phy: qcom-qmp: move PCS V3 registers to separate headers 2022-07-07 10:35:59 +05:30
phy-qcom-qmp-pcs-pcie-v4.h phy: qcom-qmp: pcs-pcie-v4: add missing registers 2022-07-07 10:36:01 +05:30
phy-qcom-qmp-pcs-pcie-v4_20.h phy: qcom-qmp: split allegedly 4.20 and 5.20 PCS registers 2022-07-07 10:36:00 +05:30
phy-qcom-qmp-pcs-pcie-v5.h phy: qcom-qmp: move PCS V5 registers to separate headers 2022-07-07 10:36:00 +05:30
phy-qcom-qmp-pcs-pcie-v5_20.h phy: qcom-qmp-pcie: Fix high latency with 4x2 PHY when ASPM is enabled 2022-12-31 13:32:48 +01:00
phy-qcom-qmp-pcs-ufs-v3.h phy: qcom-qmp: split PCS_UFS V3 symbols to separate header 2022-07-07 10:36:00 +05:30
phy-qcom-qmp-pcs-ufs-v4.h phy: qcom-qmp: move PCS V4 registers to separate headers 2022-07-07 10:36:00 +05:30
phy-qcom-qmp-pcs-ufs-v5.h phy: qcom-qmp: move PCS V5 registers to separate headers 2022-07-07 10:36:00 +05:30
phy-qcom-qmp-pcs-usb-v4.h phy: qcom-qmp: move PCS V4 registers to separate headers 2022-07-07 10:36:00 +05:30
phy-qcom-qmp-pcs-usb-v5.h phy: qcom-qmp: move PCS V5 registers to separate headers 2022-07-07 10:36:00 +05:30
phy-qcom-qmp-pcs-v2.h phy: qcom-qmp-usb: define QPHY_V2_PCS_PLL_LOCK_CHK_DLY_TIME register 2022-07-07 10:36:01 +05:30
phy-qcom-qmp-pcs-v3.h phy: qcom-qmp: pcs-v3: add missing registers 2022-07-07 10:36:01 +05:30
phy-qcom-qmp-pcs-v4.h phy: qcom-qmp: move PCS V4 registers to separate headers 2022-07-07 10:36:00 +05:30
phy-qcom-qmp-pcs-v4_20.h phy: qcom-qmp: split allegedly 4.20 and 5.20 PCS registers 2022-07-07 10:36:00 +05:30
phy-qcom-qmp-pcs-v5.h phy: qcom-qmp-combo: Add sc8280xp USB/DP combo phys 2022-08-30 13:08:03 +05:30
phy-qcom-qmp-pcs-v5_20.h phy: qcom-qmp-pcie: Fix sm8450_qmp_gen4x2_pcie_pcs_tbl[] register names 2022-12-31 13:32:48 +01:00
phy-qcom-qmp-qserdes-com-v3.h phy: qcom-qmp: qserdes-com-v3: add missing registers 2022-07-07 10:36:00 +05:30
phy-qcom-qmp-qserdes-com-v4.h phy: qcom-qmp: qserdes-com-v4: add missing registers 2022-07-07 10:36:00 +05:30
phy-qcom-qmp-qserdes-com-v5.h phy: qcom-qmp: qserdes-com-v5: add missing registers 2022-07-07 10:36:00 +05:30
phy-qcom-qmp-qserdes-com.h phy: qcom-qmp: qserdes-com: add missing registers 2022-07-07 10:36:00 +05:30
phy-qcom-qmp-qserdes-pll.h phy: qcom-qmp: move QSERDES PLL registers to separate header 2022-07-07 10:35:59 +05:30
phy-qcom-qmp-qserdes-txrx-v3.h phy: qcom-qmp: qserdes-com-v3: add missing registers 2022-07-07 10:36:00 +05:30
phy-qcom-qmp-qserdes-txrx-v4.h phy: qcom-qmp: qserdes-com-v4: add missing registers 2022-07-07 10:36:00 +05:30
phy-qcom-qmp-qserdes-txrx-v4_20.h phy: qcom-qmp: split allegedly 4.20 and 5.20 TX/RX registers 2022-07-07 10:36:00 +05:30
phy-qcom-qmp-qserdes-txrx-v5.h phy: qcom-qmp: qserdes-com-v5: add missing registers 2022-07-07 10:36:00 +05:30
phy-qcom-qmp-qserdes-txrx-v5_5nm.h phy: qcom-qmp-combo: Add sc8280xp USB/DP combo phys 2022-08-30 13:08:03 +05:30
phy-qcom-qmp-qserdes-txrx-v5_20.h phy: qcom-qmp: split allegedly 4.20 and 5.20 TX/RX registers 2022-07-07 10:36:00 +05:30
phy-qcom-qmp-qserdes-txrx.h phy: qcom-qmp: qserdes-com: add missing registers 2022-07-07 10:36:00 +05:30
phy-qcom-qmp-ufs.c phy: qcom-qmp-ufs: Use dev_err_probe() to simplify code 2022-09-24 13:03:49 +05:30
phy-qcom-qmp-usb.c phy: qcom-qmp-usb: fix sc8280xp PCS_USB offset 2022-12-31 13:32:48 +01:00
phy-qcom-qmp.h phy: qcom-qmp-pcie: Fix sm8450_qmp_gen4x2_pcie_pcs_tbl[] register names 2022-12-31 13:32:48 +01:00
phy-qcom-qusb2.c phy: qcom-qusb2: Use dev_err_probe() to simplify code 2022-09-24 12:07:29 +05:30
phy-qcom-snps-femto-v2.c phy: qcom-snps: Use dev_err_probe() to simplify code 2022-09-24 12:07:30 +05:30
phy-qcom-usb-hs-28nm.c phy: qualcomm: usb28nm: Add MDM9607 init sequence 2021-02-04 13:35:39 +05:30
phy-qcom-usb-hs.c phy: qualcomm: phy-qcom-usb-hs: repair non-kernel-doc comment 2021-08-06 17:15:29 +05:30
phy-qcom-usb-hsic.c phy: qualcomm: call clk_disable_unprepare in the error handling 2022-09-24 12:48:10 +05:30
phy-qcom-usb-ss.c phy: qualcomm: usb: Add SuperSpeed PHY driver 2020-03-20 19:34:29 +05:30