mbox series

[RFC,v3,00/30] phy: qcom-qmp: split the QMP PHY driver

Message ID 20220602070909.1666068-1-dmitry.baryshkov@linaro.org
Headers show
Series phy: qcom-qmp: split the QMP PHY driver | expand

Message

Dmitry Baryshkov June 2, 2022, 7:08 a.m. UTC
While adding support for the PCIe EP mode support to the QMP driver I
couldn't help but notice that the QMP PHY driver has slowly become the a
beast with tons of conditions and corner cases being inserted here and
there.r

This an RFC for an attempt to to cleanup the QMP driver by splitting the
QMP PHY driver into five smaller drivers, each targeting a particular
family of PHY backends (DP/combo, PCIe, UFS, USB and a separate driver
for the MSM8996 PCIe PHY). Yes, this results in some code duplication,
but I hope that the end result is still better than the current
situation.

Changes since RFC v2:
 - After dicussion with Vinod, revert back to the approach from RFC v1:
   copy the source and clean it up rather than creating new drivers from
   the blank space. This lowers the risc of breaking any of the platforms.
 - Drop common phy-qcom-qmp-lib.c for now. The goal of this patchseries
   is to be merged early during the development cycle to unblock further
   QMP driver development. Additional cleanups and code unification can
   come up later.

Changes since RFC v1:
 - Split the patchset to be able to get through the email size
   limitations
 - Minor correcions to the split drivers

Dmitry Baryshkov (30):
  phy: qcom-qmp: create copies of QMP PHY driver
  phy: qcom-qmp-combo: drop all non-combo compatibles support
  phy: qcom-qmp-pcie: drop all non-PCIe compatibles support
  phy: qcom-qmp-pcie-msm8996: drop all compatibles except
    msm8996-pcie-phy
  phy: qcom-qmp-ufs: drop all non-UFS compatibles support
  phy: qcom-qmp-usb: drop all non-USB compatibles support
  phy: qcom-qmp-combo: change symbol prefix to qcom_qmp_phy_combo
  phy: qcom-qmp-pcie: change symbol prefix to qcom_qmp_phy_pcie
  phy: qcom-qmp-pcie: change symbol prefix to qcom_qmp_phy_pcie_msm8996
  phy: qcom-qmp-ufs: change symbol prefix to qcom_qmp_phy_ufs
  phy: qcom-qmp-usb: change symbol prefix to qcom_qmp_phy_usb
  phy: qcom-qmp: switch to new split QMP PHY driver
  phy: qcom-qmp: drop old QMP PHY driver source
  phy: qcom-qmp-combo: drop support for PCIe,UFS PHY types
  phy: qcom-qmp-pcie: drop support for non-PCIe PHY types
  phy: qcom-qmp-pcie-msm8996: drop support for non-PCIe PHY types
  phy: qcom-qmp-ufs: drop support for non-UFS PHY types
  phy: qcom-qmp-usb: drop support for non-USB PHY types
  phy: qcom-qmp-combo: cleanup the driver
  phy: qcom-qmp-pcie: cleanup the driver
  phy: qcom-qmp-pcie-msm8996: cleanup the driver
  phy: qcom-qmp-ufs: cleanup the driver
  phy: qcom-qmp-usb: cleanup the driver
  phy: qcom-qmp-pcie: drop multi-PHY support
  phy: qcom-qmp-ufs: drop multi-PHY support
  phy: qcom-qmp-usb: drop multi-PHY support
  phy: qcom-qmp-combo: use bulk reset_control API
  phy: qcom-qmp-pcie: use bulk reset_control API
  phy: qcom-qmp-pcie-msm8996: use bulk reset_control API
  phy: qcom-qmp-usb: use bulk reset_control API

 drivers/phy/qualcomm/Makefile                 |    8 +-
 drivers/phy/qualcomm/phy-qcom-qmp-combo.c     | 2579 +++++++
 .../phy/qualcomm/phy-qcom-qmp-pcie-msm8996.c  | 1081 +++
 drivers/phy/qualcomm/phy-qcom-qmp-pcie.c      | 2404 +++++++
 drivers/phy/qualcomm/phy-qcom-qmp-ufs.c       | 1390 ++++
 drivers/phy/qualcomm/phy-qcom-qmp-usb.c       | 2751 +++++++
 drivers/phy/qualcomm/phy-qcom-qmp.c           | 6350 -----------------
 7 files changed, 10212 insertions(+), 6351 deletions(-)
 create mode 100644 drivers/phy/qualcomm/phy-qcom-qmp-combo.c
 create mode 100644 drivers/phy/qualcomm/phy-qcom-qmp-pcie-msm8996.c
 create mode 100644 drivers/phy/qualcomm/phy-qcom-qmp-pcie.c
 create mode 100644 drivers/phy/qualcomm/phy-qcom-qmp-ufs.c
 create mode 100644 drivers/phy/qualcomm/phy-qcom-qmp-usb.c
 delete mode 100644 drivers/phy/qualcomm/phy-qcom-qmp.c

Comments

Bjorn Andersson June 6, 2022, 8:56 p.m. UTC | #1
On Thu 02 Jun 00:08 PDT 2022, Dmitry Baryshkov wrote:

> While adding support for the PCIe EP mode support to the QMP driver I
> couldn't help but notice that the QMP PHY driver has slowly become the a
> beast with tons of conditions and corner cases being inserted here and
> there.r
> 
> This an RFC for an attempt to to cleanup the QMP driver by splitting the
> QMP PHY driver into five smaller drivers, each targeting a particular
> family of PHY backends (DP/combo, PCIe, UFS, USB and a separate driver
> for the MSM8996 PCIe PHY). Yes, this results in some code duplication,
> but I hope that the end result is still better than the current
> situation.
> 

With the MODULE_DEVICE_TABLE of the combo PHY corrected, this looks good
to me.

Acked-by: Bjorn Andersson <bjorn.andersson@linaro.org>

Tested-by: Bjorn Andersson <bjorn.andersson@linaro.org> # UFS, PCIe and USB on SC8180X

Regards,
Bjorn

> Changes since RFC v2:
>  - After dicussion with Vinod, revert back to the approach from RFC v1:
>    copy the source and clean it up rather than creating new drivers from
>    the blank space. This lowers the risc of breaking any of the platforms.
>  - Drop common phy-qcom-qmp-lib.c for now. The goal of this patchseries
>    is to be merged early during the development cycle to unblock further
>    QMP driver development. Additional cleanups and code unification can
>    come up later.
> 
> Changes since RFC v1:
>  - Split the patchset to be able to get through the email size
>    limitations
>  - Minor correcions to the split drivers
> 
> Dmitry Baryshkov (30):
>   phy: qcom-qmp: create copies of QMP PHY driver
>   phy: qcom-qmp-combo: drop all non-combo compatibles support
>   phy: qcom-qmp-pcie: drop all non-PCIe compatibles support
>   phy: qcom-qmp-pcie-msm8996: drop all compatibles except
>     msm8996-pcie-phy
>   phy: qcom-qmp-ufs: drop all non-UFS compatibles support
>   phy: qcom-qmp-usb: drop all non-USB compatibles support
>   phy: qcom-qmp-combo: change symbol prefix to qcom_qmp_phy_combo
>   phy: qcom-qmp-pcie: change symbol prefix to qcom_qmp_phy_pcie
>   phy: qcom-qmp-pcie: change symbol prefix to qcom_qmp_phy_pcie_msm8996
>   phy: qcom-qmp-ufs: change symbol prefix to qcom_qmp_phy_ufs
>   phy: qcom-qmp-usb: change symbol prefix to qcom_qmp_phy_usb
>   phy: qcom-qmp: switch to new split QMP PHY driver
>   phy: qcom-qmp: drop old QMP PHY driver source
>   phy: qcom-qmp-combo: drop support for PCIe,UFS PHY types
>   phy: qcom-qmp-pcie: drop support for non-PCIe PHY types
>   phy: qcom-qmp-pcie-msm8996: drop support for non-PCIe PHY types
>   phy: qcom-qmp-ufs: drop support for non-UFS PHY types
>   phy: qcom-qmp-usb: drop support for non-USB PHY types
>   phy: qcom-qmp-combo: cleanup the driver
>   phy: qcom-qmp-pcie: cleanup the driver
>   phy: qcom-qmp-pcie-msm8996: cleanup the driver
>   phy: qcom-qmp-ufs: cleanup the driver
>   phy: qcom-qmp-usb: cleanup the driver
>   phy: qcom-qmp-pcie: drop multi-PHY support
>   phy: qcom-qmp-ufs: drop multi-PHY support
>   phy: qcom-qmp-usb: drop multi-PHY support
>   phy: qcom-qmp-combo: use bulk reset_control API
>   phy: qcom-qmp-pcie: use bulk reset_control API
>   phy: qcom-qmp-pcie-msm8996: use bulk reset_control API
>   phy: qcom-qmp-usb: use bulk reset_control API
> 
>  drivers/phy/qualcomm/Makefile                 |    8 +-
>  drivers/phy/qualcomm/phy-qcom-qmp-combo.c     | 2579 +++++++
>  .../phy/qualcomm/phy-qcom-qmp-pcie-msm8996.c  | 1081 +++
>  drivers/phy/qualcomm/phy-qcom-qmp-pcie.c      | 2404 +++++++
>  drivers/phy/qualcomm/phy-qcom-qmp-ufs.c       | 1390 ++++
>  drivers/phy/qualcomm/phy-qcom-qmp-usb.c       | 2751 +++++++
>  drivers/phy/qualcomm/phy-qcom-qmp.c           | 6350 -----------------
>  7 files changed, 10212 insertions(+), 6351 deletions(-)
>  create mode 100644 drivers/phy/qualcomm/phy-qcom-qmp-combo.c
>  create mode 100644 drivers/phy/qualcomm/phy-qcom-qmp-pcie-msm8996.c
>  create mode 100644 drivers/phy/qualcomm/phy-qcom-qmp-pcie.c
>  create mode 100644 drivers/phy/qualcomm/phy-qcom-qmp-ufs.c
>  create mode 100644 drivers/phy/qualcomm/phy-qcom-qmp-usb.c
>  delete mode 100644 drivers/phy/qualcomm/phy-qcom-qmp.c
> 
> -- 
> 2.35.1
>