[PATCH v7 0/5] Add support to handle ZRX-DC Compliant PHYs

From: Shradha Todi
Date: Thu Jan 07 2021 - 11:11:22 EST


According the PCI Express base specification when PHY does not meet ZRX-DC
specification, after every 100ms timeout the link should transition to
recovery state when the link is in low power states.

Ports that meet the ZRX-DC specification for 2.5 GT/s while in the L1.Idle
state and are therefore not required to implement the 100 ms timeout and
transition to Recovery should avoid implementing it, since it will reduce
the power savings expected from the L1 state.

DesignWare controller provides GEN3_ZRXDC_NONCOMPL field in
GEN3_RELATED_OFF to specify about ZRX-DC compliant PHY.

We need to get the PHY property in controller driver. So, we are proposing
a new method phy_property_present() in the phy driver.

PCIe controller platform drivers should populate the phy_zrxdc_compliant
flag, which will be used by generic DesignWare driver.

pci->phy_zrxdc_compliant = phy_property_present(xxxx_ctrl->phy, "phy-zrxdc-compliant");

Patchset v2 can be found at:
- 1/2: https://lkml.org/lkml/2019/11/11/672
- 2/2: https://lkml.org/lkml/2019/10/28/285

Changes w.r.t v2:
- Addressed review comments
- Rebased on latest linus/master

Changes w.r.t v3:
- Added linux-pci@xxxxxxxxxxxxxxx as pointed by Gustavo, Sorry for annoying.

Changes w.r.t v4:
- Addressed review comments from Andrew Murray
- Rebased on latest linus/master

Changes w.r.t v5:
- Added check for NULL pointer

Changes w.r.t v6:
- Rebased on latest linus/master
- Used this feature in nvidia tegra files

Pankaj Dubey (3):
phy: core: add phy_property_present method
PCI: dwc: add support to handle ZRX-DC Compliant PHYs
PCI: tegra: Remove platform driver support for ZRX-DC compliant PHY

Shradha Todi (2):
dt-bindings: PHY: P2U: Add binding for ZRX-DC PHY property
arm64: tegra: Add support for ZRX DC PHY property

.../devicetree/bindings/phy/phy-tegra194-p2u.txt | 4 ++++
arch/arm64/boot/dts/nvidia/tegra194.dtsi | 20 ++++++++++++++++++++
drivers/pci/controller/dwc/pcie-designware.c | 6 ++++++
drivers/pci/controller/dwc/pcie-designware.h | 4 ++++
drivers/pci/controller/dwc/pcie-tegra194.c | 17 ++++++++---------
drivers/phy/phy-core.c | 20 ++++++++++++++++++++
include/linux/phy/phy.h | 6 ++++++
7 files changed, 68 insertions(+), 9 deletions(-)

--
2.7.4