[PATCH v5 0/5] PCI: qcom: Support using the same PHY for both RC and EP
Lorenzo Pieralisi
lpieralisi at kernel.org
Tue Sep 27 01:55:15 PDT 2022
On Mon, Sep 26, 2022 at 08:34:30PM +0300, Dmitry Baryshkov wrote:
> Programming of QMP PCIe PHYs slightly differs between RC and EP modes.
>
> Currently both qcom and qcom-ep PCIe controllers setup the PHY in the
> default mode, making it impossible to select at runtime whether the PHY
> should be running in RC or in EP modes. Usually this is not an issue,
> since for most devices only the RC mode is used. Some devices (SDX55)
> currently support only the EP mode without supporting the RC mode (at
> this moment).
>
> Nevertheless some of the Qualcomm platforms (e.g. the aforementioned
> SDX55) would still benefit from being able to switch between RC and EP
> depending on the driver being used. While it is possible to use
> different compat strings for the PHY depending on the mode, it seems
> like an incorrect approach, since the PHY doesn't differ between
> usecases. It's the PCIe controller, who should decide how to configure
> the PHY.
>
> This patch series implements the ability to select between RC and EP
> modes, by allowing the PCIe QMP PHY driver to switch between
> programming tables.
>
> This patchseries depends on the header from the pre-6.1 phy/next. Thus
> after the 6.1 the PCIe patches can be applied independently of the PHY
> part.
I assume then it is better for me to ACK the PCI patches so
that they can be pulled into the PHY tree, right ?
Lorenzo
> Changes since v4:
> - Fixed the possible oops in probe (Johan)
> - Renamed the tables struct and individual table fields (Johan)
> - Squashed the 'separate funtions' patch to lower the possible
> confusion.
>
> Changes since v3:
> - Rebased on top of phy/next to pick in newly defined
> PHY_MODE_PCIE_RC/EP.
> - Renamed 'main' to 'common' and 'secondary' to 'extra' to reflect the
> intention of the split (the 'common' tables and the 'extra for the ...
> mode' tables).
> - Merged the 'pointer' patch into first and second patches to make them
> more obvious.
>
> Changes since v2:
> - Added PHY_SUBMODE_PCIE_RC/EP defines (Vinod),
> - Changed `primary' table name to `main', added extra comments
> describing that `secondary' are the additional tables, not required in
> most of the cases (following the suggestion by Johan to rename
> `primary' table),
> - Changed secondary tables into the pointers to stop wasting extra
> memory (Vinod),
> - Split several functions for programming the PHY using these tables.
>
> Changes since v1:
> - Split the if(table) removal to the separate patch
> - Expanded commit messages and comments to provide additional details
> - Fixed build error on pcie-qcom.c
> - Added support for EP mode on sm8450 to demonstrate the usage of this
> patchset
>
> Changes since RFC:
> - Fixed the compilation of PCIe EP driver,
> - Changed pri/sec names to primary and secondary,
> - Added comments regarding usage of secondary_rc/_ep fields.
>
> Dmitry Baryshkov (5):
> phy: qcom-qmp-pcie: split register tables into common and extra parts
> phy: qcom-qmp-pcie: support separate tables for EP mode
> phy: qcom-qmp-pcie: Support SM8450 PCIe1 PHY in EP mode
> PCI: qcom: Setup PHY to work in RC mode
> PCI: qcom-ep: Setup PHY to work in EP mode
>
> drivers/pci/controller/dwc/pcie-qcom-ep.c | 5 +
> drivers/pci/controller/dwc/pcie-qcom.c | 5 +
> drivers/phy/qualcomm/phy-qcom-qmp-pcie.c | 523 +++++++++++-------
> .../qualcomm/phy-qcom-qmp-pcs-pcie-v5_20.h | 1 +
> 4 files changed, 335 insertions(+), 199 deletions(-)
>
> --
> 2.35.1
>
More information about the linux-phy
mailing list