* [PATCH v7 0/7] Add support for PCIe3 on x1e80100
@ 2024-10-17 3:04 Qiang Yu
2024-10-17 3:04 ` [PATCH v7 1/7] dt-bindings: phy: qcom,sc8280xp-qmp-pcie-phy: Document the X1E80100 QMP PCIe PHY Gen4 x8 Qiang Yu
` (7 more replies)
0 siblings, 8 replies; 22+ messages in thread
From: Qiang Yu @ 2024-10-17 3:04 UTC (permalink / raw)
To: manivannan.sadhasivam, vkoul, kishon, robh, andersson,
konradybcio, krzk+dt, conor+dt, mturquette, sboyd, abel.vesa,
quic_msarkar, quic_devipriy
Cc: dmitry.baryshkov, kw, lpieralisi, neil.armstrong, linux-arm-msm,
linux-phy, linux-kernel, linux-pci, devicetree, linux-clk,
johan+linaro, Qiang Yu
This series add support for PCIe3 on x1e80100.
PCIe3 needs additional set of clocks, regulators and new set of PCIe QMP
PHY configuration compare other PCIe instances on x1e80100. Hence add
required resource configuration and usage for PCIe3.
v6->v7:
1. Add Acked-by and Reviewed-by tags
2. Use 70574511f3f ("PCI: qcom: Add support for SC8280XP") in Fixes tag
3. Keep minItem of interrupt as 8 in buindings
4. Reword commit msg
5. Remove [PATCH v6 5/8] clk: qcom: gcc-x1e80100: Fix halt_check for
pipediv2 clocks as it was applied
6. Link to v6: https://lore.kernel.org/linux-pci/20241011104142.1181773-1-quic_qianyu@quicinc.com/
v5->v6:
1. Add Fixes tag
2. Split [PATCH v5 6/7] into two patches
3. Reword commit msg
4. Link to v5: https://lore.kernel.org/linux-pci/20241009091540.1446-1-quic_qianyu@quicinc.com/
v4->v5:
1. Add Reviewed-by tag
2. Expand and clarify usage of txz/rxz in commit message
3. Add comments that txz/rxz must be programmed before tx/rx
4. Change the sort order for phy register tbls
5. Use the order defined in struct qmp_phy_cfg_tbls for phy register tbls
presented in x1e80100_qmp_gen4x8_pciephy_cfg
6. Add Fixes and CC stable tag
7. Fix ops for SC8280X and X1E80100
8. Document global interrupt in bindings
9. Link to v4: https://lore.kernel.org/all/20240924101444.3933828-1-quic_qianyu@quicinc.com/
v3->v4:
1. Reword commit msg of [PATCH v3 5/6]
2. Drop opp-table property from qcom,pcie-sm8450.yaml
3. Add Reviewed-by tag
4. Link to v3: https://lore.kernel.org/all/20240923125713.3411487-1-quic_qianyu@quicinc.com/
v2->v3:
1. Use 'Gen 4 x8' in commit msg
2. Move opp-table property to qcom,pcie-common.yaml
3. Add Reviewed-by tag
4. Add global interrupt and use GIC_SPI for the parent interrupt specifier
5. Use 0x0 in reg property and use pcie@ for pcie3 device node
6. Show different IP version v6.30 in commit msg
7. Add logic in controller driver to have new ops for x1e80100
8. Link to v2: https://lore.kernel.org/all/20240913083724.1217691-1-quic_qianyu@quicinc.com/
v2->v1:
1. Squash [PATCH 1/8], [PATCH 2/8],[PATCH 3/8] into one patch and make the
indentation consistent.
2. Put dts patch at the end of the patchset.
3. Put dt-binding patch at the first of the patchset.
4. Add a new patch where opp-table is added in dt-binding to avoid dtbs
checking error.
5. Remove GCC_PCIE_3_AUX_CLK, RPMH_CXO_CLK, put in TCSR_PCIE_8L_CLKREF_EN
as ref.
6. Remove lane_broadcasting.
7. Add 64 bit bar, Remove GCC_PCIE_3_PIPE_CLK_SRC,
GCC_CFG_NOC_PCIE_ANOC_SOUTH_AHB_CLK is changed to
GCC_CFG_NOC_PCIE_ANOC_NORTH_AHB_CLK.
8. Add Reviewed-by tag.
9. Remove [PATCH 7/8], [PATCH 8/8].
10. Link to v1: https://lore.kernel.org/all/20240827063631.3932971-1-quic_qianyu@quicinc.com/
Qiang Yu (7):
dt-bindings: phy: qcom,sc8280xp-qmp-pcie-phy: Document the X1E80100
QMP PCIe PHY Gen4 x8
dt-bindings: PCI: qcom: Move OPP table to qcom,pcie-common.yaml
dt-bindings: PCI: qcom,pcie-x1e80100: Add 'global' interrupt
phy: qcom: qmp: Add phy register and clk setting for x1e80100 PCIe3
PCI: qcom: Remove BDF2SID mapping config for SC8280X family SoC
PCI: qcom: Disable ASPM L0s and remove BDF2SID mapping config for
X1E80100 SoC
arm64: dts: qcom: x1e80100: Add support for PCIe3 on x1e80100
.../bindings/pci/qcom,pcie-common.yaml | 4 +
.../bindings/pci/qcom,pcie-sm8450.yaml | 4 -
.../bindings/pci/qcom,pcie-x1e80100.yaml | 9 +-
.../phy/qcom,sc8280xp-qmp-pcie-phy.yaml | 3 +
arch/arm64/boot/dts/qcom/x1e80100.dtsi | 204 ++++++++++++++++-
drivers/pci/controller/dwc/pcie-qcom.c | 14 +-
drivers/phy/qualcomm/phy-qcom-qmp-pcie.c | 214 ++++++++++++++++++
.../qualcomm/phy-qcom-qmp-pcs-pcie-v6_30.h | 25 ++
drivers/phy/qualcomm/phy-qcom-qmp-pcs-v6_30.h | 19 ++
9 files changed, 486 insertions(+), 10 deletions(-)
create mode 100644 drivers/phy/qualcomm/phy-qcom-qmp-pcs-pcie-v6_30.h
create mode 100644 drivers/phy/qualcomm/phy-qcom-qmp-pcs-v6_30.h
--
2.34.1
^ permalink raw reply [flat|nested] 22+ messages in thread* [PATCH v7 1/7] dt-bindings: phy: qcom,sc8280xp-qmp-pcie-phy: Document the X1E80100 QMP PCIe PHY Gen4 x8 2024-10-17 3:04 [PATCH v7 0/7] Add support for PCIe3 on x1e80100 Qiang Yu @ 2024-10-17 3:04 ` Qiang Yu 2024-10-17 3:04 ` [PATCH v7 2/7] dt-bindings: PCI: qcom: Move OPP table to qcom,pcie-common.yaml Qiang Yu ` (6 subsequent siblings) 7 siblings, 0 replies; 22+ messages in thread From: Qiang Yu @ 2024-10-17 3:04 UTC (permalink / raw) To: manivannan.sadhasivam, vkoul, kishon, robh, andersson, konradybcio, krzk+dt, conor+dt, mturquette, sboyd, abel.vesa, quic_msarkar, quic_devipriy Cc: dmitry.baryshkov, kw, lpieralisi, neil.armstrong, linux-arm-msm, linux-phy, linux-kernel, linux-pci, devicetree, linux-clk, johan+linaro, Qiang Yu, Krzysztof Kozlowski PCIe 3rd instance of X1E80100 supports Gen 4 x8 which needs different 8 lane capable QMP PCIe PHY with hardware revision v6.30. Document Gen 4 x8 PHY as separate module. Signed-off-by: Qiang Yu <quic_qianyu@quicinc.com> Reviewed-by: Krzysztof Kozlowski <krzk@kernel.org> Acked-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> --- .../devicetree/bindings/phy/qcom,sc8280xp-qmp-pcie-phy.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Documentation/devicetree/bindings/phy/qcom,sc8280xp-qmp-pcie-phy.yaml b/Documentation/devicetree/bindings/phy/qcom,sc8280xp-qmp-pcie-phy.yaml index dcf4fa55fbba..680ec3113c2b 100644 --- a/Documentation/devicetree/bindings/phy/qcom,sc8280xp-qmp-pcie-phy.yaml +++ b/Documentation/devicetree/bindings/phy/qcom,sc8280xp-qmp-pcie-phy.yaml @@ -41,6 +41,7 @@ properties: - qcom,x1e80100-qmp-gen3x2-pcie-phy - qcom,x1e80100-qmp-gen4x2-pcie-phy - qcom,x1e80100-qmp-gen4x4-pcie-phy + - qcom,x1e80100-qmp-gen4x8-pcie-phy reg: minItems: 1 @@ -172,6 +173,7 @@ allOf: - qcom,sc8280xp-qmp-gen3x2-pcie-phy - qcom,sc8280xp-qmp-gen3x4-pcie-phy - qcom,x1e80100-qmp-gen4x4-pcie-phy + - qcom,x1e80100-qmp-gen4x8-pcie-phy then: properties: clocks: @@ -201,6 +203,7 @@ allOf: - qcom,sm8550-qmp-gen4x2-pcie-phy - qcom,sm8650-qmp-gen4x2-pcie-phy - qcom,x1e80100-qmp-gen4x2-pcie-phy + - qcom,x1e80100-qmp-gen4x8-pcie-phy then: properties: resets: -- 2.34.1 ^ permalink raw reply related [flat|nested] 22+ messages in thread
* [PATCH v7 2/7] dt-bindings: PCI: qcom: Move OPP table to qcom,pcie-common.yaml 2024-10-17 3:04 [PATCH v7 0/7] Add support for PCIe3 on x1e80100 Qiang Yu 2024-10-17 3:04 ` [PATCH v7 1/7] dt-bindings: phy: qcom,sc8280xp-qmp-pcie-phy: Document the X1E80100 QMP PCIe PHY Gen4 x8 Qiang Yu @ 2024-10-17 3:04 ` Qiang Yu 2024-10-17 3:04 ` [PATCH v7 3/7] dt-bindings: PCI: qcom,pcie-x1e80100: Add 'global' interrupt Qiang Yu ` (5 subsequent siblings) 7 siblings, 0 replies; 22+ messages in thread From: Qiang Yu @ 2024-10-17 3:04 UTC (permalink / raw) To: manivannan.sadhasivam, vkoul, kishon, robh, andersson, konradybcio, krzk+dt, conor+dt, mturquette, sboyd, abel.vesa, quic_msarkar, quic_devipriy Cc: dmitry.baryshkov, kw, lpieralisi, neil.armstrong, linux-arm-msm, linux-phy, linux-kernel, linux-pci, devicetree, linux-clk, johan+linaro, Qiang Yu, Krzysztof Kozlowski OPP table is a generic property that is also required by other qcom platforms. Hence move this property to qcom,pcie-common.yaml so that PCIe on other qcom platforms is able to adjust power domain performance state and ICC peak bw according to PCIe gen speed and link width. Signed-off-by: Qiang Yu <quic_qianyu@quicinc.com> Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> Reviewed-by: Krzysztof Kozlowski <krzk@kernel.org> --- Documentation/devicetree/bindings/pci/qcom,pcie-common.yaml | 4 ++++ Documentation/devicetree/bindings/pci/qcom,pcie-sm8450.yaml | 4 ---- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Documentation/devicetree/bindings/pci/qcom,pcie-common.yaml b/Documentation/devicetree/bindings/pci/qcom,pcie-common.yaml index 704c0f58eea5..3c6430fe9331 100644 --- a/Documentation/devicetree/bindings/pci/qcom,pcie-common.yaml +++ b/Documentation/devicetree/bindings/pci/qcom,pcie-common.yaml @@ -78,6 +78,10 @@ properties: description: GPIO controlled connection to WAKE# signal maxItems: 1 + operating-points-v2: true + opp-table: + type: object + required: - reg - reg-names diff --git a/Documentation/devicetree/bindings/pci/qcom,pcie-sm8450.yaml b/Documentation/devicetree/bindings/pci/qcom,pcie-sm8450.yaml index 46bd59eefadb..6e0a6d8f0ed0 100644 --- a/Documentation/devicetree/bindings/pci/qcom,pcie-sm8450.yaml +++ b/Documentation/devicetree/bindings/pci/qcom,pcie-sm8450.yaml @@ -70,10 +70,6 @@ properties: - const: msi7 - const: global - operating-points-v2: true - opp-table: - type: object - resets: maxItems: 1 -- 2.34.1 ^ permalink raw reply related [flat|nested] 22+ messages in thread
* [PATCH v7 3/7] dt-bindings: PCI: qcom,pcie-x1e80100: Add 'global' interrupt 2024-10-17 3:04 [PATCH v7 0/7] Add support for PCIe3 on x1e80100 Qiang Yu 2024-10-17 3:04 ` [PATCH v7 1/7] dt-bindings: phy: qcom,sc8280xp-qmp-pcie-phy: Document the X1E80100 QMP PCIe PHY Gen4 x8 Qiang Yu 2024-10-17 3:04 ` [PATCH v7 2/7] dt-bindings: PCI: qcom: Move OPP table to qcom,pcie-common.yaml Qiang Yu @ 2024-10-17 3:04 ` Qiang Yu 2024-10-17 7:58 ` Krzysztof Kozlowski 2024-10-17 3:04 ` [PATCH v7 4/7] phy: qcom: qmp: Add phy register and clk setting for x1e80100 PCIe3 Qiang Yu ` (4 subsequent siblings) 7 siblings, 1 reply; 22+ messages in thread From: Qiang Yu @ 2024-10-17 3:04 UTC (permalink / raw) To: manivannan.sadhasivam, vkoul, kishon, robh, andersson, konradybcio, krzk+dt, conor+dt, mturquette, sboyd, abel.vesa, quic_msarkar, quic_devipriy Cc: dmitry.baryshkov, kw, lpieralisi, neil.armstrong, linux-arm-msm, linux-phy, linux-kernel, linux-pci, devicetree, linux-clk, johan+linaro, Qiang Yu Qcom PCIe RC controllers are capable of generating 'global' SPI interrupt to the host CPU. This interrupt can be used by the device driver to handle PCIe link specific events such as Link up and Link down, which give the driver a chance to start bus enumeration on its own when link is up and initiate link training if link goes to a bad state. The PCIe driver can still work without this interrupt but it will provide a nice user experience when device gets plugged and removed. Hence, document it in the binding along with the existing MSI interrupts. Global interrupt is parsed as optional in driver, so adding it in bindings will not break the ABI. Signed-off-by: Qiang Yu <quic_qianyu@quicinc.com> --- .../devicetree/bindings/pci/qcom,pcie-x1e80100.yaml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/Documentation/devicetree/bindings/pci/qcom,pcie-x1e80100.yaml b/Documentation/devicetree/bindings/pci/qcom,pcie-x1e80100.yaml index a9db0a231563..257068a18264 100644 --- a/Documentation/devicetree/bindings/pci/qcom,pcie-x1e80100.yaml +++ b/Documentation/devicetree/bindings/pci/qcom,pcie-x1e80100.yaml @@ -47,9 +47,10 @@ properties: interrupts: minItems: 8 - maxItems: 8 + maxItems: 9 interrupt-names: + minItems: 8 items: - const: msi0 - const: msi1 @@ -59,6 +60,7 @@ properties: - const: msi5 - const: msi6 - const: msi7 + - const: global resets: minItems: 1 @@ -130,9 +132,10 @@ examples: <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>, - <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>; + <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>; interrupt-names = "msi0", "msi1", "msi2", "msi3", - "msi4", "msi5", "msi6", "msi7"; + "msi4", "msi5", "msi6", "msi7", "global"; #interrupt-cells = <1>; interrupt-map-mask = <0 0 0 0x7>; interrupt-map = <0 0 0 1 &intc 0 0 0 149 IRQ_TYPE_LEVEL_HIGH>, /* int_a */ -- 2.34.1 ^ permalink raw reply related [flat|nested] 22+ messages in thread
* Re: [PATCH v7 3/7] dt-bindings: PCI: qcom,pcie-x1e80100: Add 'global' interrupt 2024-10-17 3:04 ` [PATCH v7 3/7] dt-bindings: PCI: qcom,pcie-x1e80100: Add 'global' interrupt Qiang Yu @ 2024-10-17 7:58 ` Krzysztof Kozlowski 0 siblings, 0 replies; 22+ messages in thread From: Krzysztof Kozlowski @ 2024-10-17 7:58 UTC (permalink / raw) To: Qiang Yu Cc: manivannan.sadhasivam, vkoul, kishon, robh, andersson, konradybcio, krzk+dt, conor+dt, mturquette, sboyd, abel.vesa, quic_msarkar, quic_devipriy, dmitry.baryshkov, kw, lpieralisi, neil.armstrong, linux-arm-msm, linux-phy, linux-kernel, linux-pci, devicetree, linux-clk, johan+linaro On Wed, Oct 16, 2024 at 08:04:08PM -0700, Qiang Yu wrote: > Qcom PCIe RC controllers are capable of generating 'global' SPI interrupt > to the host CPU. This interrupt can be used by the device driver to handle > PCIe link specific events such as Link up and Link down, which give the > driver a chance to start bus enumeration on its own when link is up and > initiate link training if link goes to a bad state. The PCIe driver can > still work without this interrupt but it will provide a nice user > experience when device gets plugged and removed. > > Hence, document it in the binding along with the existing MSI interrupts. > Global interrupt is parsed as optional in driver, so adding it in bindings > will not break the ABI. > > Signed-off-by: Qiang Yu <quic_qianyu@quicinc.com> > --- > .../devicetree/bindings/pci/qcom,pcie-x1e80100.yaml | 9 ++++++--- > 1 file changed, 6 insertions(+), 3 deletions(-) Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Best regards, Krzysztof ^ permalink raw reply [flat|nested] 22+ messages in thread
* [PATCH v7 4/7] phy: qcom: qmp: Add phy register and clk setting for x1e80100 PCIe3 2024-10-17 3:04 [PATCH v7 0/7] Add support for PCIe3 on x1e80100 Qiang Yu ` (2 preceding siblings ...) 2024-10-17 3:04 ` [PATCH v7 3/7] dt-bindings: PCI: qcom,pcie-x1e80100: Add 'global' interrupt Qiang Yu @ 2024-10-17 3:04 ` Qiang Yu 2024-10-17 3:04 ` [PATCH v7 5/7] PCI: qcom: Remove BDF2SID mapping config for SC8280X family SoC Qiang Yu ` (3 subsequent siblings) 7 siblings, 0 replies; 22+ messages in thread From: Qiang Yu @ 2024-10-17 3:04 UTC (permalink / raw) To: manivannan.sadhasivam, vkoul, kishon, robh, andersson, konradybcio, krzk+dt, conor+dt, mturquette, sboyd, abel.vesa, quic_msarkar, quic_devipriy Cc: dmitry.baryshkov, kw, lpieralisi, neil.armstrong, linux-arm-msm, linux-phy, linux-kernel, linux-pci, devicetree, linux-clk, johan+linaro, Qiang Yu Currently driver supports only x4 lane based functionality using tx/rx and tx2/rx2 pair of register sets. To support 8 lane functionality with PCIe3, PCIe3 related QMP PHY provides additional programming which are available as txz and rxz based register set. Hence add txz and rxz based registers usage and programming sequences. As soon as software programs the txz and rxz based register set, hardware shall "broadcast" the same settings to the tx/rx pair of registers for all the 8 lanes, which saves the effort of software programming them one by one. There might be some tx and/or rx registers on some lanes need minor tweaks, program them after programming the txz and rxz reigster set. In addition, x1e80100 uses QMP PHY ver 6.30 for PCIe Gen4 x8, hence add two new header files to reflect the new register offsets. Signed-off-by: Qiang Yu <quic_qianyu@quicinc.com> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> Reviewed-by: Konrad Dybcio <konradybcio@kernel.org> --- drivers/phy/qualcomm/phy-qcom-qmp-pcie.c | 214 ++++++++++++++++++ .../qualcomm/phy-qcom-qmp-pcs-pcie-v6_30.h | 25 ++ drivers/phy/qualcomm/phy-qcom-qmp-pcs-v6_30.h | 19 ++ 3 files changed, 258 insertions(+) create mode 100644 drivers/phy/qualcomm/phy-qcom-qmp-pcs-pcie-v6_30.h create mode 100644 drivers/phy/qualcomm/phy-qcom-qmp-pcs-v6_30.h diff --git a/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c b/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c index f71787fb4d7e..e7e2d69b68d6 100644 --- a/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c +++ b/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c @@ -34,6 +34,8 @@ #include "phy-qcom-qmp-pcs-pcie-v5_20.h" #include "phy-qcom-qmp-pcs-pcie-v6.h" #include "phy-qcom-qmp-pcs-pcie-v6_20.h" +#include "phy-qcom-qmp-pcs-pcie-v6_30.h" +#include "phy-qcom-qmp-pcs-v6_30.h" #include "phy-qcom-qmp-pcie-qhp.h" #define PHY_INIT_COMPLETE_TIMEOUT 10000 @@ -1344,6 +1346,154 @@ static const struct qmp_phy_init_tbl x1e80100_qmp_gen4x2_pcie_pcs_misc_tbl[] = { QMP_PHY_INIT_CFG(QPHY_PCIE_V6_20_PCS_G4_FOM_EQ_CONFIG5, 0x8a), }; +static const struct qmp_phy_init_tbl x1e80100_qmp_gen4x8_pcie_serdes_tbl[] = { + QMP_PHY_INIT_CFG(QSERDES_V6_COM_SSC_STEP_SIZE1_MODE1, 0x26), + QMP_PHY_INIT_CFG(QSERDES_V6_COM_SSC_STEP_SIZE2_MODE1, 0x03), + QMP_PHY_INIT_CFG(QSERDES_V6_COM_CP_CTRL_MODE1, 0x06), + QMP_PHY_INIT_CFG(QSERDES_V6_COM_PLL_RCTRL_MODE1, 0x16), + QMP_PHY_INIT_CFG(QSERDES_V6_COM_PLL_CCTRL_MODE1, 0x36), + QMP_PHY_INIT_CFG(QSERDES_V6_COM_CORECLK_DIV_MODE1, 0x08), + QMP_PHY_INIT_CFG(QSERDES_V6_COM_LOCK_CMP1_MODE1, 0x04), + QMP_PHY_INIT_CFG(QSERDES_V6_COM_LOCK_CMP2_MODE1, 0x0d), + QMP_PHY_INIT_CFG(QSERDES_V6_COM_DEC_START_MODE1, 0x68), + QMP_PHY_INIT_CFG(QSERDES_V6_COM_DIV_FRAC_START1_MODE1, 0xab), + QMP_PHY_INIT_CFG(QSERDES_V6_COM_DIV_FRAC_START2_MODE1, 0xaa), + QMP_PHY_INIT_CFG(QSERDES_V6_COM_DIV_FRAC_START3_MODE1, 0x02), + QMP_PHY_INIT_CFG(QSERDES_V6_COM_HSCLK_SEL_1, 0x12), + QMP_PHY_INIT_CFG(QSERDES_V6_COM_SSC_STEP_SIZE1_MODE0, 0xf8), + QMP_PHY_INIT_CFG(QSERDES_V6_COM_SSC_STEP_SIZE2_MODE0, 0x01), + QMP_PHY_INIT_CFG(QSERDES_V6_COM_CP_CTRL_MODE0, 0x06), + QMP_PHY_INIT_CFG(QSERDES_V6_COM_PLL_RCTRL_MODE0, 0x16), + QMP_PHY_INIT_CFG(QSERDES_V6_COM_PLL_CCTRL_MODE0, 0x36), + QMP_PHY_INIT_CFG(QSERDES_V6_COM_PLL_CORE_CLK_DIV_MODE0, 0x0a), + QMP_PHY_INIT_CFG(QSERDES_V6_COM_LOCK_CMP1_MODE0, 0x04), + QMP_PHY_INIT_CFG(QSERDES_V6_COM_LOCK_CMP2_MODE0, 0x0d), + QMP_PHY_INIT_CFG(QSERDES_V6_COM_DEC_START_MODE0, 0x41), + QMP_PHY_INIT_CFG(QSERDES_V6_COM_DIV_FRAC_START1_MODE0, 0xab), + QMP_PHY_INIT_CFG(QSERDES_V6_COM_DIV_FRAC_START2_MODE0, 0xaa), + QMP_PHY_INIT_CFG(QSERDES_V6_COM_DIV_FRAC_START3_MODE0, 0x01), + QMP_PHY_INIT_CFG(QSERDES_V6_COM_HSCLK_HS_SWITCH_SEL_1, 0x00), + QMP_PHY_INIT_CFG(QSERDES_V6_COM_BG_TIMER, 0x0a), + QMP_PHY_INIT_CFG(QSERDES_V6_COM_SSC_EN_CENTER, 0x01), + QMP_PHY_INIT_CFG(QSERDES_V6_COM_SSC_PER1, 0x62), + QMP_PHY_INIT_CFG(QSERDES_V6_COM_SSC_PER2, 0x02), + QMP_PHY_INIT_CFG(QSERDES_V6_COM_PLL_POST_DIV_MUX, 0x40), + QMP_PHY_INIT_CFG(QSERDES_V6_COM_PLL_BIAS_EN_CLK_BUFLR_EN, 0x1c), + QMP_PHY_INIT_CFG(QSERDES_V6_COM_CLK_ENABLE1, 0x90), + QMP_PHY_INIT_CFG(QSERDES_V6_COM_SYS_CLK_CTRL, 0x82), + QMP_PHY_INIT_CFG(QSERDES_V6_COM_PLL_IVCO, 0x0f), + QMP_PHY_INIT_CFG(QSERDES_V6_COM_SYSCLK_EN_SEL, 0x08), + QMP_PHY_INIT_CFG(QSERDES_V6_COM_LOCK_CMP_EN, 0x46), + QMP_PHY_INIT_CFG(QSERDES_V6_COM_LOCK_CMP_CFG, 0x04), + QMP_PHY_INIT_CFG(QSERDES_V6_COM_VCO_TUNE_MAP, 0x14), + QMP_PHY_INIT_CFG(QSERDES_V6_COM_CLK_SELECT, 0x34), + QMP_PHY_INIT_CFG(QSERDES_V6_COM_CORE_CLK_EN, 0x20), + QMP_PHY_INIT_CFG(QSERDES_V6_COM_CMN_CONFIG_1, 0x06), + QMP_PHY_INIT_CFG(QSERDES_V6_COM_CMN_MISC_1, 0x88), + QMP_PHY_INIT_CFG(QSERDES_V6_COM_CMN_MODE, 0x14), + QMP_PHY_INIT_CFG(QSERDES_V6_COM_PLL_VCO_DC_LEVEL_CTRL, 0x0f), +}; + +static const struct qmp_phy_init_tbl x1e80100_qmp_gen4x8_pcie_ln_shrd_tbl[] = { + QMP_PHY_INIT_CFG(QSERDES_V6_LN_SHRD_RXCLK_DIV2_CTRL, 0x01), + QMP_PHY_INIT_CFG(QSERDES_V6_LN_SHRD_RX_SUMMER_CAL_SPD_MODE, 0x5b), + QMP_PHY_INIT_CFG(QSERDES_V6_LN_SHRD_DFE_DAC_ENABLE1, 0x88), + QMP_PHY_INIT_CFG(QSERDES_V6_LN_SHRD_TX_ADAPT_POST_THRESH1, 0x02), + QMP_PHY_INIT_CFG(QSERDES_V6_LN_SHRD_TX_ADAPT_POST_THRESH2, 0x0d), + QMP_PHY_INIT_CFG(QSERDES_V6_LN_SHRD_RX_MODE_RATE_0_1_B0, 0x12), + QMP_PHY_INIT_CFG(QSERDES_V6_LN_SHRD_RX_MODE_RATE_0_1_B1, 0x12), + QMP_PHY_INIT_CFG(QSERDES_V6_LN_SHRD_RX_MODE_RATE_0_1_B2, 0xdb), + QMP_PHY_INIT_CFG(QSERDES_V6_LN_SHRD_RX_MODE_RATE_0_1_B3, 0x9a), + QMP_PHY_INIT_CFG(QSERDES_V6_LN_SHRD_RX_MODE_RATE_0_1_B4, 0x38), + QMP_PHY_INIT_CFG(QSERDES_V6_LN_SHRD_RX_MODE_RATE_0_1_B5, 0xb6), + QMP_PHY_INIT_CFG(QSERDES_V6_LN_SHRD_RX_MODE_RATE_0_1_B6, 0x64), + QMP_PHY_INIT_CFG(QSERDES_V6_LN_SHRD_RX_MARG_COARSE_THRESH1_RATE210, 0x1f), + QMP_PHY_INIT_CFG(QSERDES_V6_LN_SHRD_RX_MARG_COARSE_THRESH1_RATE3, 0x1f), + QMP_PHY_INIT_CFG(QSERDES_V6_LN_SHRD_RX_MARG_COARSE_THRESH2_RATE210, 0x1f), + QMP_PHY_INIT_CFG(QSERDES_V6_LN_SHRD_RX_MARG_COARSE_THRESH2_RATE3, 0x1f), + QMP_PHY_INIT_CFG(QSERDES_V6_LN_SHRD_RX_MARG_COARSE_THRESH3_RATE210, 0x1f), + QMP_PHY_INIT_CFG(QSERDES_V6_LN_SHRD_RX_MARG_COARSE_THRESH3_RATE3, 0x1f), + QMP_PHY_INIT_CFG(QSERDES_V6_LN_SHRD_RX_MARG_COARSE_THRESH4_RATE3, 0x1f), + QMP_PHY_INIT_CFG(QSERDES_V6_LN_SHRD_RX_MARG_COARSE_THRESH5_RATE3, 0x1f), + QMP_PHY_INIT_CFG(QSERDES_V6_LN_SHRD_RX_MARG_COARSE_THRESH6_RATE3, 0x1f), +}; + +static const struct qmp_phy_init_tbl x1e80100_qmp_gen4x8_pcie_txz_tbl[] = { + QMP_PHY_INIT_CFG(QSERDES_V6_20_TX_RES_CODE_LANE_OFFSET_TX, 0x1a), + QMP_PHY_INIT_CFG(QSERDES_V6_20_TX_RES_CODE_LANE_OFFSET_RX, 0x05), + QMP_PHY_INIT_CFG(QSERDES_V6_20_TX_LANE_MODE_1, 0x01), + QMP_PHY_INIT_CFG(QSERDES_V6_20_TX_LANE_MODE_2, 0x10), + QMP_PHY_INIT_CFG(QSERDES_V6_20_TX_LANE_MODE_3, 0x51), + QMP_PHY_INIT_CFG(QSERDES_V6_20_TX_TRAN_DRVR_EMP_EN, 0x34), +}; + +static const struct qmp_phy_init_tbl x1e80100_qmp_gen4x8_pcie_rxz_tbl[] = { + QMP_PHY_INIT_CFG(QSERDES_V6_20_RX_UCDR_FO_GAIN_RATE_2, 0x0c), + QMP_PHY_INIT_CFG(QSERDES_V6_20_RX_UCDR_SO_GAIN_RATE_2, 0x04), + QMP_PHY_INIT_CFG(QSERDES_V6_20_RX_UCDR_FO_GAIN_RATE_3, 0x0a), + QMP_PHY_INIT_CFG(QSERDES_V6_20_RX_UCDR_PI_CONTROLS, 0x16), + QMP_PHY_INIT_CFG(QSERDES_V6_20_RX_UCDR_SO_ACC_DEFAULT_VAL_RATE3, 0x00), + QMP_PHY_INIT_CFG(QSERDES_V6_20_RX_IVCM_CAL_CTRL2, 0x80), + QMP_PHY_INIT_CFG(QSERDES_V6_20_RX_IVCM_POSTCAL_OFFSET, 0x00), + QMP_PHY_INIT_CFG(QSERDES_V6_20_RX_BKUP_CTRL1, 0x15), + QMP_PHY_INIT_CFG(QSERDES_V6_20_RX_DFE_3, 0x45), + QMP_PHY_INIT_CFG(QSERDES_V6_20_RX_VGA_CAL_MAN_VAL, 0x0c), + QMP_PHY_INIT_CFG(QSERDES_V6_20_VGA_CAL_CNTRL1, 0x00), + QMP_PHY_INIT_CFG(QSERDES_V6_20_RX_GM_CAL, 0x0d), + QMP_PHY_INIT_CFG(QSERDES_V6_20_RX_EQU_ADAPTOR_CNTRL4, 0x0b), + QMP_PHY_INIT_CFG(QSERDES_V6_20_RX_SIGDET_ENABLES, 0x1c), + QMP_PHY_INIT_CFG(QSERDES_V6_20_RX_PHPRE_CTRL, 0x20), + QMP_PHY_INIT_CFG(QSERDES_V6_20_RX_DFE_CTLE_POST_CAL_OFFSET, 0x38), + QMP_PHY_INIT_CFG(QSERDES_V6_20_RX_Q_PI_INTRINSIC_BIAS_RATE32, 0x39), + QMP_PHY_INIT_CFG(QSERDES_V6_20_RX_MODE_RATE2_B0, 0xd4), + QMP_PHY_INIT_CFG(QSERDES_V6_20_RX_MODE_RATE2_B1, 0x23), + QMP_PHY_INIT_CFG(QSERDES_V6_20_RX_MODE_RATE2_B2, 0x58), + QMP_PHY_INIT_CFG(QSERDES_V6_20_RX_MODE_RATE2_B3, 0x9a), + QMP_PHY_INIT_CFG(QSERDES_V6_20_RX_MODE_RATE2_B4, 0x38), + QMP_PHY_INIT_CFG(QSERDES_V6_20_RX_MODE_RATE2_B5, 0xb6), + QMP_PHY_INIT_CFG(QSERDES_V6_20_RX_MODE_RATE2_B6, 0xee), + QMP_PHY_INIT_CFG(QSERDES_V6_20_RX_MODE_RATE3_B0, 0x1c), + QMP_PHY_INIT_CFG(QSERDES_V6_20_RX_MODE_RATE3_B1, 0xe4), + QMP_PHY_INIT_CFG(QSERDES_V6_20_RX_MODE_RATE3_B2, 0x60), + QMP_PHY_INIT_CFG(QSERDES_V6_20_RX_MODE_RATE3_B3, 0xdf), + QMP_PHY_INIT_CFG(QSERDES_V6_20_RX_MODE_RATE3_B4, 0x69), + QMP_PHY_INIT_CFG(QSERDES_V6_20_RX_MODE_RATE3_B5, 0x76), + QMP_PHY_INIT_CFG(QSERDES_V6_20_RX_MODE_RATE3_B6, 0xff), + QMP_PHY_INIT_CFG(QSERDES_V6_20_RX_TX_ADPT_CTRL, 0x10), +}; + +static const struct qmp_phy_init_tbl x1e80100_qmp_gen4x8_pcie_rx_tbl[] = { + QMP_PHY_INIT_CFG_LANE(QSERDES_V6_20_RX_DFE_CTLE_POST_CAL_OFFSET, 0x3a, BIT(0)), +}; + +static const struct qmp_phy_init_tbl x1e80100_qmp_gen4x8_pcie_pcs_tbl[] = { + QMP_PHY_INIT_CFG(QPHY_V6_30_PCS_LOCK_DETECT_CONFIG2, 0x00), + QMP_PHY_INIT_CFG(QPHY_V6_30_PCS_G3S2_PRE_GAIN, 0x2e), + QMP_PHY_INIT_CFG(QPHY_V6_30_PCS_RX_SIGDET_LVL, 0x99), + QMP_PHY_INIT_CFG(QPHY_V6_30_PCS_ALIGN_DETECT_CONFIG7, 0x00), + QMP_PHY_INIT_CFG(QPHY_V6_30_PCS_EQ_CONFIG4, 0x00), + QMP_PHY_INIT_CFG(QPHY_V6_30_PCS_EQ_CONFIG5, 0x22), + QMP_PHY_INIT_CFG(QPHY_V6_30_PCS_TX_RX_CONFIG, 0x04), + QMP_PHY_INIT_CFG(QPHY_V6_30_PCS_TX_RX_CONFIG2, 0x02), +}; + +static const struct qmp_phy_init_tbl x1e80100_qmp_gen4x8_pcie_pcs_misc_tbl[] = { + QMP_PHY_INIT_CFG(QPHY_PCIE_V6_30_PCS_ENDPOINT_REFCLK_DRIVE, 0xc1), + QMP_PHY_INIT_CFG(QPHY_PCIE_V6_30_PCS_OSC_DTCT_ACTIONS, 0x00), + QMP_PHY_INIT_CFG(QPHY_PCIE_V6_30_PCS_EQ_CONFIG1, 0x16), + QMP_PHY_INIT_CFG(QPHY_PCIE_V6_30_PCS_G4_EQ_CONFIG5, 0x02), + QMP_PHY_INIT_CFG(QPHY_PCIE_V6_30_PCS_G4_PRE_GAIN, 0x2e), + QMP_PHY_INIT_CFG(QPHY_PCIE_V6_30_PCS_RX_MARGINING_CONFIG1, 0x03), + QMP_PHY_INIT_CFG(QPHY_PCIE_V6_30_PCS_RX_MARGINING_CONFIG3, 0x28), + QMP_PHY_INIT_CFG(QPHY_PCIE_V6_30_PCS_RX_MARGINING_CONFIG5, 0x18), + QMP_PHY_INIT_CFG(QPHY_PCIE_V6_30_PCS_G3_FOM_EQ_CONFIG5, 0x7a), + QMP_PHY_INIT_CFG(QPHY_PCIE_V6_30_PCS_G4_FOM_EQ_CONFIG5, 0x8a), + QMP_PHY_INIT_CFG(QPHY_PCIE_V6_30_PCS_G3_RXEQEVAL_TIME, 0x27), + QMP_PHY_INIT_CFG(QPHY_PCIE_V6_30_PCS_G4_RXEQEVAL_TIME, 0x27), + QMP_PHY_INIT_CFG(QPHY_PCIE_V6_30_PCS_TX_RX_CONFIG, 0xc0), + QMP_PHY_INIT_CFG(QPHY_PCIE_V6_30_PCS_POWER_STATE_CONFIG2, 0x1d), +}; + static const struct qmp_phy_init_tbl sm8250_qmp_pcie_serdes_tbl[] = { QMP_PHY_INIT_CFG(QSERDES_V4_COM_SYSCLK_EN_SEL, 0x08), QMP_PHY_INIT_CFG(QSERDES_V4_COM_CLK_SELECT, 0x34), @@ -2582,6 +2732,8 @@ struct qmp_pcie_offsets { u16 rx; u16 tx2; u16 rx2; + u16 txz; + u16 rxz; u16 ln_shrd; }; @@ -2592,6 +2744,10 @@ struct qmp_phy_cfg_tbls { int tx_num; const struct qmp_phy_init_tbl *rx; int rx_num; + const struct qmp_phy_init_tbl *txz; + int txz_num; + const struct qmp_phy_init_tbl *rxz; + int rxz_num; const struct qmp_phy_init_tbl *pcs; int pcs_num; const struct qmp_phy_init_tbl *pcs_misc; @@ -2659,6 +2815,8 @@ struct qmp_pcie { void __iomem *rx; void __iomem *tx2; void __iomem *rx2; + void __iomem *txz; + void __iomem *rxz; void __iomem *ln_shrd; void __iomem *port_b; @@ -2826,6 +2984,17 @@ static const struct qmp_pcie_offsets qmp_pcie_offsets_v6_20 = { .ln_shrd = 0x0e00, }; +static const struct qmp_pcie_offsets qmp_pcie_offsets_v6_30 = { + .serdes = 0x8800, + .pcs = 0x9000, + .pcs_misc = 0x9800, + .tx = 0x0000, + .rx = 0x0200, + .txz = 0xe000, + .rxz = 0xe200, + .ln_shrd = 0x8000, +}; + static const struct qmp_phy_cfg ipq8074_pciephy_cfg = { .lanes = 1, @@ -3704,6 +3873,38 @@ static const struct qmp_phy_cfg x1e80100_qmp_gen4x4_pciephy_cfg = { .has_nocsr_reset = true, }; +static const struct qmp_phy_cfg x1e80100_qmp_gen4x8_pciephy_cfg = { + .lanes = 8, + + .offsets = &qmp_pcie_offsets_v6_30, + .tbls = { + .serdes = x1e80100_qmp_gen4x8_pcie_serdes_tbl, + .serdes_num = ARRAY_SIZE(x1e80100_qmp_gen4x8_pcie_serdes_tbl), + .rx = x1e80100_qmp_gen4x8_pcie_rx_tbl, + .rx_num = ARRAY_SIZE(x1e80100_qmp_gen4x8_pcie_rx_tbl), + .txz = x1e80100_qmp_gen4x8_pcie_txz_tbl, + .txz_num = ARRAY_SIZE(x1e80100_qmp_gen4x8_pcie_txz_tbl), + .rxz = x1e80100_qmp_gen4x8_pcie_rxz_tbl, + .rxz_num = ARRAY_SIZE(x1e80100_qmp_gen4x8_pcie_rxz_tbl), + .pcs = x1e80100_qmp_gen4x8_pcie_pcs_tbl, + .pcs_num = ARRAY_SIZE(x1e80100_qmp_gen4x8_pcie_pcs_tbl), + .pcs_misc = x1e80100_qmp_gen4x8_pcie_pcs_misc_tbl, + .pcs_misc_num = ARRAY_SIZE(x1e80100_qmp_gen4x8_pcie_pcs_misc_tbl), + .ln_shrd = x1e80100_qmp_gen4x8_pcie_ln_shrd_tbl, + .ln_shrd_num = ARRAY_SIZE(x1e80100_qmp_gen4x8_pcie_ln_shrd_tbl), + }, + + .reset_list = sdm845_pciephy_reset_l, + .num_resets = ARRAY_SIZE(sdm845_pciephy_reset_l), + .vreg_list = sm8550_qmp_phy_vreg_l, + .num_vregs = ARRAY_SIZE(sm8550_qmp_phy_vreg_l), + .regs = pciephy_v6_regs_layout, + + .pwrdn_ctrl = SW_PWRDN | REFCLK_DRV_DSBL, + .phy_status = PHYSTATUS_4_20, + .has_nocsr_reset = true, +}; + static void qmp_pcie_init_port_b(struct qmp_pcie *qmp, const struct qmp_phy_cfg_tbls *tbls) { const struct qmp_phy_cfg *cfg = qmp->cfg; @@ -3751,6 +3952,13 @@ static void qmp_pcie_init_registers(struct qmp_pcie *qmp, const struct qmp_phy_c qmp_configure(qmp->dev, serdes, tbls->serdes, tbls->serdes_num); + /* + * Tx/Rx registers that require different settings than + * txz/rxz must be programmed after txz/rxz. + */ + qmp_configure(qmp->dev, qmp->txz, tbls->txz, tbls->txz_num); + qmp_configure(qmp->dev, qmp->rxz, tbls->rxz, tbls->rxz_num); + qmp_configure_lane(qmp->dev, tx, tbls->tx, tbls->tx_num, 1); qmp_configure_lane(qmp->dev, rx, tbls->rx, tbls->rx_num, 1); @@ -4293,6 +4501,9 @@ static int qmp_pcie_parse_dt(struct qmp_pcie *qmp) return PTR_ERR(qmp->port_b); } + qmp->txz = base + offs->txz; + qmp->rxz = base + offs->rxz; + if (cfg->tbls.ln_shrd) qmp->ln_shrd = base + offs->ln_shrd; @@ -4478,6 +4689,9 @@ static const struct of_device_id qmp_pcie_of_match_table[] = { }, { .compatible = "qcom,x1e80100-qmp-gen4x4-pcie-phy", .data = &x1e80100_qmp_gen4x4_pciephy_cfg, + }, { + .compatible = "qcom,x1e80100-qmp-gen4x8-pcie-phy", + .data = &x1e80100_qmp_gen4x8_pciephy_cfg, }, { }, }; diff --git a/drivers/phy/qualcomm/phy-qcom-qmp-pcs-pcie-v6_30.h b/drivers/phy/qualcomm/phy-qcom-qmp-pcs-pcie-v6_30.h new file mode 100644 index 000000000000..5a58ff197e6e --- /dev/null +++ b/drivers/phy/qualcomm/phy-qcom-qmp-pcs-pcie-v6_30.h @@ -0,0 +1,25 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +/* + * Copyright (c) 2024 Qualcomm Innovation Center. All rights reserved. + */ + +#ifndef QCOM_PHY_QMP_PCS_PCIE_V6_30_H_ +#define QCOM_PHY_QMP_PCS_PCIE_V6_30_H_ + +/* Only for QMP V6_30 PHY - PCIE have different offsets than V6 */ +#define QPHY_PCIE_V6_30_PCS_POWER_STATE_CONFIG2 0x014 +#define QPHY_PCIE_V6_30_PCS_TX_RX_CONFIG 0x020 +#define QPHY_PCIE_V6_30_PCS_ENDPOINT_REFCLK_DRIVE 0x024 +#define QPHY_PCIE_V6_30_PCS_OSC_DTCT_ACTIONS 0x098 +#define QPHY_PCIE_V6_30_PCS_EQ_CONFIG1 0x0a8 +#define QPHY_PCIE_V6_30_PCS_G3_RXEQEVAL_TIME 0x0f8 +#define QPHY_PCIE_V6_30_PCS_G4_RXEQEVAL_TIME 0x0fc +#define QPHY_PCIE_V6_30_PCS_G4_EQ_CONFIG5 0x110 +#define QPHY_PCIE_V6_30_PCS_G4_PRE_GAIN 0x164 +#define QPHY_PCIE_V6_30_PCS_RX_MARGINING_CONFIG1 0x184 +#define QPHY_PCIE_V6_30_PCS_RX_MARGINING_CONFIG3 0x18c +#define QPHY_PCIE_V6_30_PCS_RX_MARGINING_CONFIG5 0x194 +#define QPHY_PCIE_V6_30_PCS_G3_FOM_EQ_CONFIG5 0x1b4 +#define QPHY_PCIE_V6_30_PCS_G4_FOM_EQ_CONFIG5 0x1c8 + +#endif diff --git a/drivers/phy/qualcomm/phy-qcom-qmp-pcs-v6_30.h b/drivers/phy/qualcomm/phy-qcom-qmp-pcs-v6_30.h new file mode 100644 index 000000000000..369120d88bc2 --- /dev/null +++ b/drivers/phy/qualcomm/phy-qcom-qmp-pcs-v6_30.h @@ -0,0 +1,19 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +/* + * Copyright (c) 2024 Qualcomm Innovation Center. All rights reserved. + */ + +#ifndef QCOM_PHY_QMP_PCS_V6_30_H_ +#define QCOM_PHY_QMP_PCS_V6_30_H_ + +/* Only for QMP V6_30 PHY - PCIe PCS registers */ +#define QPHY_V6_30_PCS_LOCK_DETECT_CONFIG2 0x0cc +#define QPHY_V6_30_PCS_G3S2_PRE_GAIN 0x17c +#define QPHY_V6_30_PCS_RX_SIGDET_LVL 0x194 +#define QPHY_V6_30_PCS_ALIGN_DETECT_CONFIG7 0x1dc +#define QPHY_V6_30_PCS_TX_RX_CONFIG 0x1e0 +#define QPHY_V6_30_PCS_TX_RX_CONFIG2 0x1e4 +#define QPHY_V6_30_PCS_EQ_CONFIG4 0x1fc +#define QPHY_V6_30_PCS_EQ_CONFIG5 0x200 + +#endif -- 2.34.1 ^ permalink raw reply related [flat|nested] 22+ messages in thread
* [PATCH v7 5/7] PCI: qcom: Remove BDF2SID mapping config for SC8280X family SoC 2024-10-17 3:04 [PATCH v7 0/7] Add support for PCIe3 on x1e80100 Qiang Yu ` (3 preceding siblings ...) 2024-10-17 3:04 ` [PATCH v7 4/7] phy: qcom: qmp: Add phy register and clk setting for x1e80100 PCIe3 Qiang Yu @ 2024-10-17 3:04 ` Qiang Yu 2024-10-18 13:51 ` Johan Hovold 2024-10-17 3:04 ` [PATCH v7 6/7] PCI: qcom: Disable ASPM L0s and remove BDF2SID mapping config for X1E80100 SoC Qiang Yu ` (2 subsequent siblings) 7 siblings, 1 reply; 22+ messages in thread From: Qiang Yu @ 2024-10-17 3:04 UTC (permalink / raw) To: manivannan.sadhasivam, vkoul, kishon, robh, andersson, konradybcio, krzk+dt, conor+dt, mturquette, sboyd, abel.vesa, quic_msarkar, quic_devipriy Cc: dmitry.baryshkov, kw, lpieralisi, neil.armstrong, linux-arm-msm, linux-phy, linux-kernel, linux-pci, devicetree, linux-clk, johan+linaro, Qiang Yu On SC8280X family SoC, PCIe controllers are connected to SMMUv3, hence they don't need the config_sid() callback in ops_1_9_0 struct. Fix it by introducing a new ops struct, namely ops_1_21_0 which is same as ops_1_9_0 without config_sid() callback so that BDF2SID mapping won't be configured during init. Fixes: 70574511f3fc ("PCI: qcom: Add support for SC8280XP") Signed-off-by: Qiang Yu <quic_qianyu@quicinc.com> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> --- drivers/pci/controller/dwc/pcie-qcom.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/drivers/pci/controller/dwc/pcie-qcom.c b/drivers/pci/controller/dwc/pcie-qcom.c index 88a98be930e3..468bd4242e61 100644 --- a/drivers/pci/controller/dwc/pcie-qcom.c +++ b/drivers/pci/controller/dwc/pcie-qcom.c @@ -1367,6 +1367,16 @@ static const struct qcom_pcie_ops ops_2_9_0 = { .ltssm_enable = qcom_pcie_2_3_2_ltssm_enable, }; +/* Qcom IP rev.: 1.21.0 */ +static const struct qcom_pcie_ops ops_1_21_0 = { + .get_resources = qcom_pcie_get_resources_2_7_0, + .init = qcom_pcie_init_2_7_0, + .post_init = qcom_pcie_post_init_2_7_0, + .host_post_init = qcom_pcie_host_post_init_2_7_0, + .deinit = qcom_pcie_deinit_2_7_0, + .ltssm_enable = qcom_pcie_2_3_2_ltssm_enable, +}; + static const struct qcom_pcie_cfg cfg_1_0_0 = { .ops = &ops_1_0_0, }; @@ -1405,7 +1415,7 @@ static const struct qcom_pcie_cfg cfg_2_9_0 = { }; static const struct qcom_pcie_cfg cfg_sc8280xp = { - .ops = &ops_1_9_0, + .ops = &ops_1_21_0, .no_l0s = true, }; -- 2.34.1 ^ permalink raw reply related [flat|nested] 22+ messages in thread
* Re: [PATCH v7 5/7] PCI: qcom: Remove BDF2SID mapping config for SC8280X family SoC 2024-10-17 3:04 ` [PATCH v7 5/7] PCI: qcom: Remove BDF2SID mapping config for SC8280X family SoC Qiang Yu @ 2024-10-18 13:51 ` Johan Hovold 2024-10-24 6:39 ` Qiang Yu 0 siblings, 1 reply; 22+ messages in thread From: Johan Hovold @ 2024-10-18 13:51 UTC (permalink / raw) To: Qiang Yu Cc: manivannan.sadhasivam, vkoul, kishon, robh, andersson, konradybcio, krzk+dt, conor+dt, mturquette, sboyd, abel.vesa, quic_msarkar, quic_devipriy, dmitry.baryshkov, kw, lpieralisi, neil.armstrong, linux-arm-msm, linux-phy, linux-kernel, linux-pci, devicetree, linux-clk, johan+linaro On Wed, Oct 16, 2024 at 08:04:10PM -0700, Qiang Yu wrote: > On SC8280X family SoC, PCIe controllers are connected to SMMUv3, hence > they don't need the config_sid() callback in ops_1_9_0 struct. Fix it by > introducing a new ops struct, namely ops_1_21_0 which is same as ops_1_9_0 > without config_sid() callback so that BDF2SID mapping won't be configured > during init. The sc8280xp PCIe devicetree nodes do not specify an 'iommu-map' so the config_sid() callback is effectively a no-op. Please rephrase this so that it becomes obvious that this is a clean up rather than fix. > Fixes: 70574511f3fc ("PCI: qcom: Add support for SC8280XP") And drop the Fixes tag. > Signed-off-by: Qiang Yu <quic_qianyu@quicinc.com> > Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> > Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> > --- > drivers/pci/controller/dwc/pcie-qcom.c | 12 +++++++++++- > 1 file changed, 11 insertions(+), 1 deletion(-) > > diff --git a/drivers/pci/controller/dwc/pcie-qcom.c b/drivers/pci/controller/dwc/pcie-qcom.c > index 88a98be930e3..468bd4242e61 100644 > --- a/drivers/pci/controller/dwc/pcie-qcom.c > +++ b/drivers/pci/controller/dwc/pcie-qcom.c > @@ -1367,6 +1367,16 @@ static const struct qcom_pcie_ops ops_2_9_0 = { > .ltssm_enable = qcom_pcie_2_3_2_ltssm_enable, > }; > > +/* Qcom IP rev.: 1.21.0 */ Is this the actual IP revision on sc8280xp (and not just the revision used on x1e80100)? Please also provide the Synopsis IP rev like the other configs do. > +static const struct qcom_pcie_ops ops_1_21_0 = { > + .get_resources = qcom_pcie_get_resources_2_7_0, > + .init = qcom_pcie_init_2_7_0, > + .post_init = qcom_pcie_post_init_2_7_0, > + .host_post_init = qcom_pcie_host_post_init_2_7_0, > + .deinit = qcom_pcie_deinit_2_7_0, > + .ltssm_enable = qcom_pcie_2_3_2_ltssm_enable, > +}; > + > static const struct qcom_pcie_cfg cfg_1_0_0 = { > .ops = &ops_1_0_0, > }; And try to keep these structs sorted by revision. At least put this one after ops_1_9_0. Johan ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH v7 5/7] PCI: qcom: Remove BDF2SID mapping config for SC8280X family SoC 2024-10-18 13:51 ` Johan Hovold @ 2024-10-24 6:39 ` Qiang Yu 0 siblings, 0 replies; 22+ messages in thread From: Qiang Yu @ 2024-10-24 6:39 UTC (permalink / raw) To: Johan Hovold Cc: manivannan.sadhasivam, vkoul, kishon, robh, andersson, konradybcio, krzk+dt, conor+dt, mturquette, sboyd, abel.vesa, quic_msarkar, quic_devipriy, dmitry.baryshkov, kw, lpieralisi, neil.armstrong, linux-arm-msm, linux-phy, linux-kernel, linux-pci, devicetree, linux-clk, johan+linaro On 10/18/2024 9:51 PM, Johan Hovold wrote: > On Wed, Oct 16, 2024 at 08:04:10PM -0700, Qiang Yu wrote: >> On SC8280X family SoC, PCIe controllers are connected to SMMUv3, hence >> they don't need the config_sid() callback in ops_1_9_0 struct. Fix it by >> introducing a new ops struct, namely ops_1_21_0 which is same as ops_1_9_0 >> without config_sid() callback so that BDF2SID mapping won't be configured >> during init. > The sc8280xp PCIe devicetree nodes do not specify an 'iommu-map' so the > config_sid() callback is effectively a no-op. Please rephrase this so > that it becomes obvious that this is a clean up rather than fix. > >> Fixes: 70574511f3fc ("PCI: qcom: Add support for SC8280XP") > And drop the Fixes tag. > >> Signed-off-by: Qiang Yu <quic_qianyu@quicinc.com> >> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> >> Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> >> --- >> drivers/pci/controller/dwc/pcie-qcom.c | 12 +++++++++++- >> 1 file changed, 11 insertions(+), 1 deletion(-) >> >> diff --git a/drivers/pci/controller/dwc/pcie-qcom.c b/drivers/pci/controller/dwc/pcie-qcom.c >> index 88a98be930e3..468bd4242e61 100644 >> --- a/drivers/pci/controller/dwc/pcie-qcom.c >> +++ b/drivers/pci/controller/dwc/pcie-qcom.c >> @@ -1367,6 +1367,16 @@ static const struct qcom_pcie_ops ops_2_9_0 = { >> .ltssm_enable = qcom_pcie_2_3_2_ltssm_enable, >> }; >> >> +/* Qcom IP rev.: 1.21.0 */ > Is this the actual IP revision on sc8280xp (and not just the revision > used on x1e80100)? Get confirmation from HW team. 1.21.0 is Qcom IP rev of sc8280xp, Synopsis IP rev is 5.60a. Thanks, Qiang > Please also provide the Synopsis IP rev like the other configs do. > >> +static const struct qcom_pcie_ops ops_1_21_0 = { >> + .get_resources = qcom_pcie_get_resources_2_7_0, >> + .init = qcom_pcie_init_2_7_0, >> + .post_init = qcom_pcie_post_init_2_7_0, >> + .host_post_init = qcom_pcie_host_post_init_2_7_0, >> + .deinit = qcom_pcie_deinit_2_7_0, >> + .ltssm_enable = qcom_pcie_2_3_2_ltssm_enable, >> +}; >> + >> static const struct qcom_pcie_cfg cfg_1_0_0 = { >> .ops = &ops_1_0_0, >> }; > And try to keep these structs sorted by revision. At least put this one > after ops_1_9_0. > > Johan ^ permalink raw reply [flat|nested] 22+ messages in thread
* [PATCH v7 6/7] PCI: qcom: Disable ASPM L0s and remove BDF2SID mapping config for X1E80100 SoC 2024-10-17 3:04 [PATCH v7 0/7] Add support for PCIe3 on x1e80100 Qiang Yu ` (4 preceding siblings ...) 2024-10-17 3:04 ` [PATCH v7 5/7] PCI: qcom: Remove BDF2SID mapping config for SC8280X family SoC Qiang Yu @ 2024-10-17 3:04 ` Qiang Yu 2024-10-18 14:06 ` Johan Hovold 2024-10-18 14:25 ` Bjorn Andersson 2024-10-17 3:04 ` [PATCH v7 7/7] arm64: dts: qcom: x1e80100: Add support for PCIe3 on x1e80100 Qiang Yu 2024-10-17 15:35 ` (subset) [PATCH v7 0/7] " Vinod Koul 7 siblings, 2 replies; 22+ messages in thread From: Qiang Yu @ 2024-10-17 3:04 UTC (permalink / raw) To: manivannan.sadhasivam, vkoul, kishon, robh, andersson, konradybcio, krzk+dt, conor+dt, mturquette, sboyd, abel.vesa, quic_msarkar, quic_devipriy Cc: dmitry.baryshkov, kw, lpieralisi, neil.armstrong, linux-arm-msm, linux-phy, linux-kernel, linux-pci, devicetree, linux-clk, johan+linaro, Qiang Yu, stable Currently, the cfg_1_9_0 which is being used for X1E80100 has config_sid callback in its ops and doesn't disable ASPM L0s. However, as same as SC8280X, PCIe controllers on X1E80100 are connected to SMMUv3, hence don't need config_sid() callback and hardware team has recommended to disable L0s as it is broken in the controller. Hence reuse cfg_sc8280xp for X1E80100. Fixes: 6d0c39324c5f ("PCI: qcom: Add X1E80100 PCIe support") Cc: stable@vger.kernel.org Signed-off-by: Qiang Yu <quic_qianyu@quicinc.com> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> --- drivers/pci/controller/dwc/pcie-qcom.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/pci/controller/dwc/pcie-qcom.c b/drivers/pci/controller/dwc/pcie-qcom.c index 468bd4242e61..c533e6024ba2 100644 --- a/drivers/pci/controller/dwc/pcie-qcom.c +++ b/drivers/pci/controller/dwc/pcie-qcom.c @@ -1847,7 +1847,7 @@ static const struct of_device_id qcom_pcie_match[] = { { .compatible = "qcom,pcie-sm8450-pcie0", .data = &cfg_1_9_0 }, { .compatible = "qcom,pcie-sm8450-pcie1", .data = &cfg_1_9_0 }, { .compatible = "qcom,pcie-sm8550", .data = &cfg_1_9_0 }, - { .compatible = "qcom,pcie-x1e80100", .data = &cfg_1_9_0 }, + { .compatible = "qcom,pcie-x1e80100", .data = &cfg_sc8280xp }, { } }; -- 2.34.1 ^ permalink raw reply related [flat|nested] 22+ messages in thread
* Re: [PATCH v7 6/7] PCI: qcom: Disable ASPM L0s and remove BDF2SID mapping config for X1E80100 SoC 2024-10-17 3:04 ` [PATCH v7 6/7] PCI: qcom: Disable ASPM L0s and remove BDF2SID mapping config for X1E80100 SoC Qiang Yu @ 2024-10-18 14:06 ` Johan Hovold 2024-10-24 6:42 ` Qiang Yu 2024-10-18 14:25 ` Bjorn Andersson 1 sibling, 1 reply; 22+ messages in thread From: Johan Hovold @ 2024-10-18 14:06 UTC (permalink / raw) To: Qiang Yu Cc: manivannan.sadhasivam, vkoul, kishon, robh, andersson, konradybcio, krzk+dt, conor+dt, mturquette, sboyd, abel.vesa, quic_msarkar, quic_devipriy, dmitry.baryshkov, kw, lpieralisi, neil.armstrong, linux-arm-msm, linux-phy, linux-kernel, linux-pci, devicetree, linux-clk, johan+linaro, stable Please use a more concise subject (e.g. try to stay within 72 chars) than: PCI: qcom: Disable ASPM L0s and remove BDF2SID mapping config for X1E80100 SoC Here you could drop "SoC", maybe "ASPM" and "config" for example. On Wed, Oct 16, 2024 at 08:04:11PM -0700, Qiang Yu wrote: > Currently, the cfg_1_9_0 which is being used for X1E80100 has config_sid > callback in its ops and doesn't disable ASPM L0s. However, as same as > SC8280X, PCIe controllers on X1E80100 are connected to SMMUv3, hence don't > need config_sid() callback and hardware team has recommended to disable > L0s as it is broken in the controller. Hence reuse cfg_sc8280xp for > X1E80100. Since the x1e80100 dtsi, like sc8280xp, do not specify an iommu-map, that bit is effectively just a cleanup and all this patch does is to disable L0s. Please rephrase to make this clear. This will also allow you to make the Subject even shorter (no need to mention the SID bit in Subject). Also say something about how L0s is broken so that it is more clear what the effect of this patch is. On sc8280xp enabling L0s lead to correctable errors for example. > Fixes: 6d0c39324c5f ("PCI: qcom: Add X1E80100 PCIe support") > Cc: stable@vger.kernel.org Johan ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH v7 6/7] PCI: qcom: Disable ASPM L0s and remove BDF2SID mapping config for X1E80100 SoC 2024-10-18 14:06 ` Johan Hovold @ 2024-10-24 6:42 ` Qiang Yu 2024-10-30 5:54 ` Qiang Yu 0 siblings, 1 reply; 22+ messages in thread From: Qiang Yu @ 2024-10-24 6:42 UTC (permalink / raw) To: Johan Hovold Cc: manivannan.sadhasivam, vkoul, kishon, robh, andersson, konradybcio, krzk+dt, conor+dt, mturquette, sboyd, abel.vesa, quic_msarkar, quic_devipriy, dmitry.baryshkov, kw, lpieralisi, neil.armstrong, linux-arm-msm, linux-phy, linux-kernel, linux-pci, devicetree, linux-clk, johan+linaro, stable On 10/18/2024 10:06 PM, Johan Hovold wrote: > Please use a more concise subject (e.g. try to stay within 72 chars) > than: > > PCI: qcom: Disable ASPM L0s and remove BDF2SID mapping config for X1E80100 SoC > > Here you could drop "SoC", maybe "ASPM" and "config" for example. > > On Wed, Oct 16, 2024 at 08:04:11PM -0700, Qiang Yu wrote: >> Currently, the cfg_1_9_0 which is being used for X1E80100 has config_sid >> callback in its ops and doesn't disable ASPM L0s. However, as same as >> SC8280X, PCIe controllers on X1E80100 are connected to SMMUv3, hence don't >> need config_sid() callback and hardware team has recommended to disable >> L0s as it is broken in the controller. Hence reuse cfg_sc8280xp for >> X1E80100. > Since the x1e80100 dtsi, like sc8280xp, do not specify an iommu-map, > that bit is effectively just a cleanup and all this patch does is to > disable L0s. > > Please rephrase to make this clear. This will also allow you to make the > Subject even shorter (no need to mention the SID bit in Subject). > > Also say something about how L0s is broken so that it is more clear what > the effect of this patch is. On sc8280xp enabling L0s lead to > correctable errors for example. Need more time to confirm the exact reason about disabling L0s. Will update if get any progress Thanks, Qiang > >> Fixes: 6d0c39324c5f ("PCI: qcom: Add X1E80100 PCIe support") >> Cc: stable@vger.kernel.org > Johan ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH v7 6/7] PCI: qcom: Disable ASPM L0s and remove BDF2SID mapping config for X1E80100 SoC 2024-10-24 6:42 ` Qiang Yu @ 2024-10-30 5:54 ` Qiang Yu 2024-10-30 7:15 ` Johan Hovold 0 siblings, 1 reply; 22+ messages in thread From: Qiang Yu @ 2024-10-30 5:54 UTC (permalink / raw) To: Johan Hovold Cc: manivannan.sadhasivam, vkoul, kishon, robh, andersson, konradybcio, krzk+dt, conor+dt, mturquette, sboyd, abel.vesa, quic_msarkar, quic_devipriy, dmitry.baryshkov, kw, lpieralisi, neil.armstrong, linux-arm-msm, linux-phy, linux-kernel, linux-pci, devicetree, linux-clk, johan+linaro, stable On 10/24/2024 2:42 PM, Qiang Yu wrote: > > On 10/18/2024 10:06 PM, Johan Hovold wrote: >> Please use a more concise subject (e.g. try to stay within 72 chars) >> than: >> >> PCI: qcom: Disable ASPM L0s and remove BDF2SID mapping config for >> X1E80100 SoC >> >> Here you could drop "SoC", maybe "ASPM" and "config" for example. >> >> On Wed, Oct 16, 2024 at 08:04:11PM -0700, Qiang Yu wrote: >>> Currently, the cfg_1_9_0 which is being used for X1E80100 has >>> config_sid >>> callback in its ops and doesn't disable ASPM L0s. However, as same as >>> SC8280X, PCIe controllers on X1E80100 are connected to SMMUv3, hence >>> don't >>> need config_sid() callback and hardware team has recommended to disable >>> L0s as it is broken in the controller. Hence reuse cfg_sc8280xp for >>> X1E80100. >> Since the x1e80100 dtsi, like sc8280xp, do not specify an iommu-map, >> that bit is effectively just a cleanup and all this patch does is to >> disable L0s. >> >> Please rephrase to make this clear. This will also allow you to make the >> Subject even shorter (no need to mention the SID bit in Subject). >> >> Also say something about how L0s is broken so that it is more clear what >> the effect of this patch is. On sc8280xp enabling L0s lead to >> correctable errors for example. > Need more time to confirm the exact reason about disabling L0s. > Will update if get any progress Hi Johan Hovold I confirmed with HW team and SW team. L0s is not supported on X1E80100, it is not fully verified. So we don't want to enable it. Thanks, Qiang Yu > > Thanks, > Qiang >> >>> Fixes: 6d0c39324c5f ("PCI: qcom: Add X1E80100 PCIe support") >>> Cc: stable@vger.kernel.org >> Johan ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH v7 6/7] PCI: qcom: Disable ASPM L0s and remove BDF2SID mapping config for X1E80100 SoC 2024-10-30 5:54 ` Qiang Yu @ 2024-10-30 7:15 ` Johan Hovold 2024-10-30 7:18 ` Manivannan Sadhasivam 0 siblings, 1 reply; 22+ messages in thread From: Johan Hovold @ 2024-10-30 7:15 UTC (permalink / raw) To: Qiang Yu, Manivannan Sadhasivam Cc: vkoul, kishon, robh, andersson, konradybcio, krzk+dt, conor+dt, mturquette, sboyd, abel.vesa, quic_msarkar, quic_devipriy, dmitry.baryshkov, kw, lpieralisi, neil.armstrong, linux-arm-msm, linux-phy, linux-kernel, linux-pci, devicetree, linux-clk, johan+linaro, stable On Wed, Oct 30, 2024 at 01:54:59PM +0800, Qiang Yu wrote: > On 10/24/2024 2:42 PM, Qiang Yu wrote: > > On 10/18/2024 10:06 PM, Johan Hovold wrote: > >> Also say something about how L0s is broken so that it is more clear what > >> the effect of this patch is. On sc8280xp enabling L0s lead to > >> correctable errors for example. > > Need more time to confirm the exact reason about disabling L0s. > > Will update if get any progress > I confirmed with HW team and SW team. L0s is not supported on X1E80100, > it is not fully verified. So we don't want to enable it. Thanks for checking. A word about what can happen if not disabling it may still be in place (e.g. the link state transition stats in debugfs on x1e80100 looked pretty erratic with L0s enabled IIRC). Also, are there any Qualcomm platforms that actually support L0s? Perhaps we should just disable it everywhere? Johan ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH v7 6/7] PCI: qcom: Disable ASPM L0s and remove BDF2SID mapping config for X1E80100 SoC 2024-10-30 7:15 ` Johan Hovold @ 2024-10-30 7:18 ` Manivannan Sadhasivam 2024-10-30 7:42 ` Johan Hovold 0 siblings, 1 reply; 22+ messages in thread From: Manivannan Sadhasivam @ 2024-10-30 7:18 UTC (permalink / raw) To: Johan Hovold Cc: Qiang Yu, vkoul, kishon, robh, andersson, konradybcio, krzk+dt, conor+dt, mturquette, sboyd, abel.vesa, quic_msarkar, quic_devipriy, dmitry.baryshkov, kw, lpieralisi, neil.armstrong, linux-arm-msm, linux-phy, linux-kernel, linux-pci, devicetree, linux-clk, johan+linaro, stable On Wed, Oct 30, 2024 at 08:15:05AM +0100, Johan Hovold wrote: > On Wed, Oct 30, 2024 at 01:54:59PM +0800, Qiang Yu wrote: > > On 10/24/2024 2:42 PM, Qiang Yu wrote: > > > On 10/18/2024 10:06 PM, Johan Hovold wrote: > > > >> Also say something about how L0s is broken so that it is more clear what > > >> the effect of this patch is. On sc8280xp enabling L0s lead to > > >> correctable errors for example. > > > > Need more time to confirm the exact reason about disabling L0s. > > > Will update if get any progress > > > I confirmed with HW team and SW team. L0s is not supported on X1E80100, > > it is not fully verified. So we don't want to enable it. > > Thanks for checking. A word about what can happen if not disabling it > may still be in place (e.g. the link state transition stats in debugfs > on x1e80100 looked pretty erratic with L0s enabled IIRC). > > Also, are there any Qualcomm platforms that actually support L0s? > Perhaps we should just disable it everywhere? > Most of the mobile chipsets from Qcom support L0s. It is not supported only on the compute ones. So we cannot disable it everywhere. Again, it is not the hw issue but the PHY init sequence not tuned support L0s. - Mani -- மணிவண்ணன் சதாசிவம் ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH v7 6/7] PCI: qcom: Disable ASPM L0s and remove BDF2SID mapping config for X1E80100 SoC 2024-10-30 7:18 ` Manivannan Sadhasivam @ 2024-10-30 7:42 ` Johan Hovold 2024-10-30 7:56 ` Qiang Yu 0 siblings, 1 reply; 22+ messages in thread From: Johan Hovold @ 2024-10-30 7:42 UTC (permalink / raw) To: Manivannan Sadhasivam Cc: Qiang Yu, vkoul, kishon, robh, andersson, konradybcio, krzk+dt, conor+dt, mturquette, sboyd, abel.vesa, quic_msarkar, quic_devipriy, dmitry.baryshkov, kw, lpieralisi, neil.armstrong, linux-arm-msm, linux-phy, linux-kernel, linux-pci, devicetree, linux-clk, johan+linaro, stable On Wed, Oct 30, 2024 at 12:48:51PM +0530, Manivannan Sadhasivam wrote: > On Wed, Oct 30, 2024 at 08:15:05AM +0100, Johan Hovold wrote: > > Also, are there any Qualcomm platforms that actually support L0s? > > Perhaps we should just disable it everywhere? > > Most of the mobile chipsets from Qcom support L0s. It is not supported only on > the compute ones. So we cannot disable it everywhere. > > Again, it is not the hw issue but the PHY init sequence not tuned support L0s. Right, this should be mentioned in the commit message. Johan ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH v7 6/7] PCI: qcom: Disable ASPM L0s and remove BDF2SID mapping config for X1E80100 SoC 2024-10-30 7:42 ` Johan Hovold @ 2024-10-30 7:56 ` Qiang Yu 0 siblings, 0 replies; 22+ messages in thread From: Qiang Yu @ 2024-10-30 7:56 UTC (permalink / raw) To: Johan Hovold, Manivannan Sadhasivam Cc: vkoul, kishon, robh, andersson, konradybcio, krzk+dt, conor+dt, mturquette, sboyd, abel.vesa, quic_msarkar, quic_devipriy, dmitry.baryshkov, kw, lpieralisi, neil.armstrong, linux-arm-msm, linux-phy, linux-kernel, linux-pci, devicetree, linux-clk, johan+linaro, stable On 10/30/2024 3:42 PM, Johan Hovold wrote: > On Wed, Oct 30, 2024 at 12:48:51PM +0530, Manivannan Sadhasivam wrote: >> On Wed, Oct 30, 2024 at 08:15:05AM +0100, Johan Hovold wrote: >>> Also, are there any Qualcomm platforms that actually support L0s? >>> Perhaps we should just disable it everywhere? >> Most of the mobile chipsets from Qcom support L0s. It is not supported only on >> the compute ones. So we cannot disable it everywhere. >> >> Again, it is not the hw issue but the PHY init sequence not tuned support L0s. > Right, this should be mentioned in the commit message. OK, I got it. Will write this into commit message. Thanks, Qiang Yu > > Johan ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH v7 6/7] PCI: qcom: Disable ASPM L0s and remove BDF2SID mapping config for X1E80100 SoC 2024-10-17 3:04 ` [PATCH v7 6/7] PCI: qcom: Disable ASPM L0s and remove BDF2SID mapping config for X1E80100 SoC Qiang Yu 2024-10-18 14:06 ` Johan Hovold @ 2024-10-18 14:25 ` Bjorn Andersson 2024-10-24 6:46 ` Qiang Yu 1 sibling, 1 reply; 22+ messages in thread From: Bjorn Andersson @ 2024-10-18 14:25 UTC (permalink / raw) To: Qiang Yu Cc: manivannan.sadhasivam, vkoul, kishon, robh, andersson, konradybcio, krzk+dt, conor+dt, mturquette, sboyd, abel.vesa, quic_msarkar, quic_devipriy, dmitry.baryshkov, kw, lpieralisi, neil.armstrong, linux-arm-msm, linux-phy, linux-kernel, linux-pci, devicetree, linux-clk, johan+linaro, stable On Wed, Oct 16, 2024 at 08:04:11PM -0700, Qiang Yu wrote: > Currently, the cfg_1_9_0 which is being used for X1E80100 has config_sid > callback in its ops and doesn't disable ASPM L0s. However, as same as > SC8280X, PCIe controllers on X1E80100 are connected to SMMUv3, hence don't Would be nice to document the connection between SMMUv3 and "don't need config_sid()" is because we don't have support for the SMMUv3. > need config_sid() callback and hardware team has recommended to disable > L0s as it is broken in the controller. Hence reuse cfg_sc8280xp for I expect that config_sid() and "disable L0s" are two separate issues. I'm fine with you solving both in a single commit, but I'd prefer the two subjects to be covered in at least two separate sentences. Regards, Bjorn > X1E80100. > > Fixes: 6d0c39324c5f ("PCI: qcom: Add X1E80100 PCIe support") > Cc: stable@vger.kernel.org > Signed-off-by: Qiang Yu <quic_qianyu@quicinc.com> > Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> > Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> > --- > drivers/pci/controller/dwc/pcie-qcom.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/pci/controller/dwc/pcie-qcom.c b/drivers/pci/controller/dwc/pcie-qcom.c > index 468bd4242e61..c533e6024ba2 100644 > --- a/drivers/pci/controller/dwc/pcie-qcom.c > +++ b/drivers/pci/controller/dwc/pcie-qcom.c > @@ -1847,7 +1847,7 @@ static const struct of_device_id qcom_pcie_match[] = { > { .compatible = "qcom,pcie-sm8450-pcie0", .data = &cfg_1_9_0 }, > { .compatible = "qcom,pcie-sm8450-pcie1", .data = &cfg_1_9_0 }, > { .compatible = "qcom,pcie-sm8550", .data = &cfg_1_9_0 }, > - { .compatible = "qcom,pcie-x1e80100", .data = &cfg_1_9_0 }, > + { .compatible = "qcom,pcie-x1e80100", .data = &cfg_sc8280xp }, > { } > }; > > -- > 2.34.1 > > > -- > linux-phy mailing list > linux-phy@lists.infradead.org > https://lists.infradead.org/mailman/listinfo/linux-phy ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH v7 6/7] PCI: qcom: Disable ASPM L0s and remove BDF2SID mapping config for X1E80100 SoC 2024-10-18 14:25 ` Bjorn Andersson @ 2024-10-24 6:46 ` Qiang Yu 0 siblings, 0 replies; 22+ messages in thread From: Qiang Yu @ 2024-10-24 6:46 UTC (permalink / raw) To: Bjorn Andersson Cc: manivannan.sadhasivam, vkoul, kishon, robh, andersson, konradybcio, krzk+dt, conor+dt, mturquette, sboyd, abel.vesa, quic_msarkar, quic_devipriy, dmitry.baryshkov, kw, lpieralisi, neil.armstrong, linux-arm-msm, linux-phy, linux-kernel, linux-pci, devicetree, linux-clk, johan+linaro, stable On 10/18/2024 10:25 PM, Bjorn Andersson wrote: > On Wed, Oct 16, 2024 at 08:04:11PM -0700, Qiang Yu wrote: >> Currently, the cfg_1_9_0 which is being used for X1E80100 has config_sid >> callback in its ops and doesn't disable ASPM L0s. However, as same as >> SC8280X, PCIe controllers on X1E80100 are connected to SMMUv3, hence don't > Would be nice to document the connection between SMMUv3 and "don't need > config_sid()" is because we don't have support for the SMMUv3. We don't need config_sid because we have support for SMMUv3 on HW. SMMUv3 is able to use BDF as SID, so BDF2SID mapping is not required and removed on HW. Thanks, Qiang >> need config_sid() callback and hardware team has recommended to disable >> L0s as it is broken in the controller. Hence reuse cfg_sc8280xp for > I expect that config_sid() and "disable L0s" are two separate issues. > I'm fine with you solving both in a single commit, but I'd prefer the > two subjects to be covered in at least two separate sentences. > > Regards, > Bjorn > >> X1E80100. >> >> Fixes: 6d0c39324c5f ("PCI: qcom: Add X1E80100 PCIe support") >> Cc: stable@vger.kernel.org >> Signed-off-by: Qiang Yu <quic_qianyu@quicinc.com> >> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> >> Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> >> --- >> drivers/pci/controller/dwc/pcie-qcom.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/drivers/pci/controller/dwc/pcie-qcom.c b/drivers/pci/controller/dwc/pcie-qcom.c >> index 468bd4242e61..c533e6024ba2 100644 >> --- a/drivers/pci/controller/dwc/pcie-qcom.c >> +++ b/drivers/pci/controller/dwc/pcie-qcom.c >> @@ -1847,7 +1847,7 @@ static const struct of_device_id qcom_pcie_match[] = { >> { .compatible = "qcom,pcie-sm8450-pcie0", .data = &cfg_1_9_0 }, >> { .compatible = "qcom,pcie-sm8450-pcie1", .data = &cfg_1_9_0 }, >> { .compatible = "qcom,pcie-sm8550", .data = &cfg_1_9_0 }, >> - { .compatible = "qcom,pcie-x1e80100", .data = &cfg_1_9_0 }, >> + { .compatible = "qcom,pcie-x1e80100", .data = &cfg_sc8280xp }, >> { } >> }; >> >> -- >> 2.34.1 >> >> >> -- >> linux-phy mailing list >> linux-phy@lists.infradead.org >> https://lists.infradead.org/mailman/listinfo/linux-phy ^ permalink raw reply [flat|nested] 22+ messages in thread
* [PATCH v7 7/7] arm64: dts: qcom: x1e80100: Add support for PCIe3 on x1e80100 2024-10-17 3:04 [PATCH v7 0/7] Add support for PCIe3 on x1e80100 Qiang Yu ` (5 preceding siblings ...) 2024-10-17 3:04 ` [PATCH v7 6/7] PCI: qcom: Disable ASPM L0s and remove BDF2SID mapping config for X1E80100 SoC Qiang Yu @ 2024-10-17 3:04 ` Qiang Yu 2024-10-18 14:08 ` Johan Hovold 2024-10-17 15:35 ` (subset) [PATCH v7 0/7] " Vinod Koul 7 siblings, 1 reply; 22+ messages in thread From: Qiang Yu @ 2024-10-17 3:04 UTC (permalink / raw) To: manivannan.sadhasivam, vkoul, kishon, robh, andersson, konradybcio, krzk+dt, conor+dt, mturquette, sboyd, abel.vesa, quic_msarkar, quic_devipriy Cc: dmitry.baryshkov, kw, lpieralisi, neil.armstrong, linux-arm-msm, linux-phy, linux-kernel, linux-pci, devicetree, linux-clk, johan+linaro, Qiang Yu Describe PCIe3 controller and PHY. Also add required system resources like regulators, clocks, interrupts and registers configuration for PCIe3. Signed-off-by: Qiang Yu <quic_qianyu@quicinc.com> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> --- arch/arm64/boot/dts/qcom/x1e80100.dtsi | 204 ++++++++++++++++++++++++- 1 file changed, 203 insertions(+), 1 deletion(-) diff --git a/arch/arm64/boot/dts/qcom/x1e80100.dtsi b/arch/arm64/boot/dts/qcom/x1e80100.dtsi index a36076e3c56b..c615c930cf0c 100644 --- a/arch/arm64/boot/dts/qcom/x1e80100.dtsi +++ b/arch/arm64/boot/dts/qcom/x1e80100.dtsi @@ -744,7 +744,7 @@ gcc: clock-controller@100000 { clocks = <&bi_tcxo_div2>, <&sleep_clk>, - <0>, + <&pcie3_phy>, <&pcie4_phy>, <&pcie5_phy>, <&pcie6a_phy>, @@ -2907,6 +2907,208 @@ mmss_noc: interconnect@1780000 { #interconnect-cells = <2>; }; + pcie3: pcie@1bd0000 { + device_type = "pci"; + compatible = "qcom,pcie-x1e80100"; + reg = <0x0 0x01bd0000 0x0 0x3000>, + <0x0 0x78000000 0x0 0xf1d>, + <0x0 0x78000f40 0x0 0xa8>, + <0x0 0x78001000 0x0 0x1000>, + <0x0 0x78100000 0x0 0x100000>, + <0x0 0x01bd3000 0x0 0x1000>; + reg-names = "parf", + "dbi", + "elbi", + "atu", + "config", + "mhi"; + #address-cells = <3>; + #size-cells = <2>; + ranges = <0x01000000 0x0 0x00000000 0x0 0x78200000 0x0 0x100000>, + <0x02000000 0x0 0x78300000 0x0 0x78300000 0x0 0x3d00000>, + <0x03000000 0x7 0x40000000 0x7 0x40000000 0x0 0x40000000>; + bus-range = <0x00 0xff>; + + dma-coherent; + + linux,pci-domain = <3>; + num-lanes = <8>; + + interrupts = <GIC_SPI 158 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 166 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 769 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 836 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 671 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 200 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 218 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 219 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>; + interrupt-names = "msi0", + "msi1", + "msi2", + "msi3", + "msi4", + "msi5", + "msi6", + "msi7", + "global"; + + #interrupt-cells = <1>; + interrupt-map-mask = <0 0 0 0x7>; + interrupt-map = <0 0 0 1 &intc 0 0 GIC_SPI 220 IRQ_TYPE_LEVEL_HIGH>, + <0 0 0 2 &intc 0 0 GIC_SPI 221 IRQ_TYPE_LEVEL_HIGH>, + <0 0 0 3 &intc 0 0 GIC_SPI 237 IRQ_TYPE_LEVEL_HIGH>, + <0 0 0 4 &intc 0 0 GIC_SPI 238 IRQ_TYPE_LEVEL_HIGH>; + + clocks = <&gcc GCC_PCIE_3_AUX_CLK>, + <&gcc GCC_PCIE_3_CFG_AHB_CLK>, + <&gcc GCC_PCIE_3_MSTR_AXI_CLK>, + <&gcc GCC_PCIE_3_SLV_AXI_CLK>, + <&gcc GCC_PCIE_3_SLV_Q2A_AXI_CLK>, + <&gcc GCC_CFG_NOC_PCIE_ANOC_NORTH_AHB_CLK>, + <&gcc GCC_CNOC_PCIE_NORTH_SF_AXI_CLK>; + clock-names = "aux", + "cfg", + "bus_master", + "bus_slave", + "slave_q2a", + "noc_aggr", + "cnoc_sf_axi"; + + assigned-clocks = <&gcc GCC_PCIE_3_AUX_CLK>; + assigned-clock-rates = <19200000>; + + interconnects = <&pcie_south_anoc MASTER_PCIE_3 QCOM_ICC_TAG_ALWAYS + &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>, + <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS + &cnoc_main SLAVE_PCIE_3 QCOM_ICC_TAG_ALWAYS>; + interconnect-names = "pcie-mem", + "cpu-pcie"; + + resets = <&gcc GCC_PCIE_3_BCR>, + <&gcc GCC_PCIE_3_LINK_DOWN_BCR>; + reset-names = "pci", + "link_down"; + + power-domains = <&gcc GCC_PCIE_3_GDSC>; + + phys = <&pcie3_phy>; + phy-names = "pciephy"; + + operating-points-v2 = <&pcie3_opp_table>; + + status = "disabled"; + + pcie3_opp_table: opp-table { + compatible = "operating-points-v2"; + + /* GEN 1 x1 */ + opp-2500000 { + opp-hz = /bits/ 64 <2500000>; + required-opps = <&rpmhpd_opp_low_svs>; + opp-peak-kBps = <250000 1>; + }; + + /* GEN 1 x2 and GEN 2 x1 */ + opp-5000000 { + opp-hz = /bits/ 64 <5000000>; + required-opps = <&rpmhpd_opp_low_svs>; + opp-peak-kBps = <500000 1>; + }; + + /* GEN 1 x4 and GEN 2 x2 */ + opp-10000000 { + opp-hz = /bits/ 64 <10000000>; + required-opps = <&rpmhpd_opp_low_svs>; + opp-peak-kBps = <1000000 1>; + }; + + /* GEN 1 x8 and GEN 2 x4 */ + opp-20000000 { + opp-hz = /bits/ 64 <20000000>; + required-opps = <&rpmhpd_opp_low_svs>; + opp-peak-kBps = <2000000 1>; + }; + + /* GEN 2 x8 */ + opp-40000000 { + opp-hz = /bits/ 64 <40000000>; + required-opps = <&rpmhpd_opp_low_svs>; + opp-peak-kBps = <4000000 1>; + }; + + /* GEN 3 x1 */ + opp-8000000 { + opp-hz = /bits/ 64 <8000000>; + required-opps = <&rpmhpd_opp_svs>; + opp-peak-kBps = <984500 1>; + }; + + /* GEN 3 x2 and GEN 4 x1 */ + opp-16000000 { + opp-hz = /bits/ 64 <16000000>; + required-opps = <&rpmhpd_opp_svs>; + opp-peak-kBps = <1969000 1>; + }; + + /* GEN 3 x4 and GEN 4 x2 */ + opp-32000000 { + opp-hz = /bits/ 64 <32000000>; + required-opps = <&rpmhpd_opp_svs>; + opp-peak-kBps = <3938000 1>; + }; + + /* GEN 3 x8 and GEN 4 x4 */ + opp-64000000 { + opp-hz = /bits/ 64 <64000000>; + required-opps = <&rpmhpd_opp_svs>; + opp-peak-kBps = <7876000 1>; + }; + + /* GEN 4 x8 */ + opp-128000000 { + opp-hz = /bits/ 64 <128000000>; + required-opps = <&rpmhpd_opp_svs>; + opp-peak-kBps = <15753000 1>; + }; + }; + }; + + pcie3_phy: phy@1be0000 { + compatible = "qcom,x1e80100-qmp-gen4x8-pcie-phy"; + reg = <0 0x01be0000 0 0x10000>; + + clocks = <&gcc GCC_PCIE_3_PHY_AUX_CLK>, + <&gcc GCC_PCIE_3_CFG_AHB_CLK>, + <&tcsr TCSR_PCIE_8L_CLKREF_EN>, + <&gcc GCC_PCIE_3_PHY_RCHNG_CLK>, + <&gcc GCC_PCIE_3_PIPE_CLK>, + <&gcc GCC_PCIE_3_PIPEDIV2_CLK>; + clock-names = "aux", + "cfg_ahb", + "ref", + "rchng", + "pipe", + "pipediv2"; + + resets = <&gcc GCC_PCIE_3_PHY_BCR>, + <&gcc GCC_PCIE_3_NOCSR_COM_PHY_BCR>; + reset-names = "phy", + "phy_nocsr"; + + assigned-clocks = <&gcc GCC_PCIE_3_PHY_RCHNG_CLK>; + assigned-clock-rates = <100000000>; + + power-domains = <&gcc GCC_PCIE_3_PHY_GDSC>; + + #clock-cells = <0>; + clock-output-names = "pcie3_pipe_clk"; + + #phy-cells = <0>; + + status = "disabled"; + }; + pcie6a: pci@1bf8000 { device_type = "pci"; compatible = "qcom,pcie-x1e80100"; -- 2.34.1 ^ permalink raw reply related [flat|nested] 22+ messages in thread
* Re: [PATCH v7 7/7] arm64: dts: qcom: x1e80100: Add support for PCIe3 on x1e80100 2024-10-17 3:04 ` [PATCH v7 7/7] arm64: dts: qcom: x1e80100: Add support for PCIe3 on x1e80100 Qiang Yu @ 2024-10-18 14:08 ` Johan Hovold 0 siblings, 0 replies; 22+ messages in thread From: Johan Hovold @ 2024-10-18 14:08 UTC (permalink / raw) To: Qiang Yu Cc: manivannan.sadhasivam, vkoul, kishon, robh, andersson, konradybcio, krzk+dt, conor+dt, mturquette, sboyd, abel.vesa, quic_msarkar, quic_devipriy, dmitry.baryshkov, kw, lpieralisi, neil.armstrong, linux-arm-msm, linux-phy, linux-kernel, linux-pci, devicetree, linux-clk, johan+linaro On Wed, Oct 16, 2024 at 08:04:12PM -0700, Qiang Yu wrote: > Describe PCIe3 controller and PHY. Also add required system resources like > regulators, clocks, interrupts and registers configuration for PCIe3. > > Signed-off-by: Qiang Yu <quic_qianyu@quicinc.com> > Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> > Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> Looks good to me now: Reviewed-by: Johan Hovold <johan+linaro@kernel.org> ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: (subset) [PATCH v7 0/7] Add support for PCIe3 on x1e80100 2024-10-17 3:04 [PATCH v7 0/7] Add support for PCIe3 on x1e80100 Qiang Yu ` (6 preceding siblings ...) 2024-10-17 3:04 ` [PATCH v7 7/7] arm64: dts: qcom: x1e80100: Add support for PCIe3 on x1e80100 Qiang Yu @ 2024-10-17 15:35 ` Vinod Koul 7 siblings, 0 replies; 22+ messages in thread From: Vinod Koul @ 2024-10-17 15:35 UTC (permalink / raw) To: manivannan.sadhasivam, kishon, robh, andersson, konradybcio, krzk+dt, conor+dt, mturquette, sboyd, abel.vesa, quic_msarkar, quic_devipriy, Qiang Yu Cc: dmitry.baryshkov, kw, lpieralisi, neil.armstrong, linux-arm-msm, linux-phy, linux-kernel, linux-pci, devicetree, linux-clk, johan+linaro On Wed, 16 Oct 2024 20:04:05 -0700, Qiang Yu wrote: > This series add support for PCIe3 on x1e80100. > > PCIe3 needs additional set of clocks, regulators and new set of PCIe QMP > PHY configuration compare other PCIe instances on x1e80100. Hence add > required resource configuration and usage for PCIe3. > > v6->v7: > 1. Add Acked-by and Reviewed-by tags > 2. Use 70574511f3f ("PCI: qcom: Add support for SC8280XP") in Fixes tag > 3. Keep minItem of interrupt as 8 in buindings > 4. Reword commit msg > 5. Remove [PATCH v6 5/8] clk: qcom: gcc-x1e80100: Fix halt_check for > pipediv2 clocks as it was applied > 6. Link to v6: https://lore.kernel.org/linux-pci/20241011104142.1181773-1-quic_qianyu@quicinc.com/ > > [...] Applied, thanks! [1/7] dt-bindings: phy: qcom,sc8280xp-qmp-pcie-phy: Document the X1E80100 QMP PCIe PHY Gen4 x8 commit: 26fb23ce35e2d2233f810069ab11210851acbf54 [4/7] phy: qcom: qmp: Add phy register and clk setting for x1e80100 PCIe3 commit: e961ec81a39bc57119f165cf2e994fc29637fd97 Best regards, -- ~Vinod ^ permalink raw reply [flat|nested] 22+ messages in thread
end of thread, other threads:[~2024-10-30 7:57 UTC | newest] Thread overview: 22+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2024-10-17 3:04 [PATCH v7 0/7] Add support for PCIe3 on x1e80100 Qiang Yu 2024-10-17 3:04 ` [PATCH v7 1/7] dt-bindings: phy: qcom,sc8280xp-qmp-pcie-phy: Document the X1E80100 QMP PCIe PHY Gen4 x8 Qiang Yu 2024-10-17 3:04 ` [PATCH v7 2/7] dt-bindings: PCI: qcom: Move OPP table to qcom,pcie-common.yaml Qiang Yu 2024-10-17 3:04 ` [PATCH v7 3/7] dt-bindings: PCI: qcom,pcie-x1e80100: Add 'global' interrupt Qiang Yu 2024-10-17 7:58 ` Krzysztof Kozlowski 2024-10-17 3:04 ` [PATCH v7 4/7] phy: qcom: qmp: Add phy register and clk setting for x1e80100 PCIe3 Qiang Yu 2024-10-17 3:04 ` [PATCH v7 5/7] PCI: qcom: Remove BDF2SID mapping config for SC8280X family SoC Qiang Yu 2024-10-18 13:51 ` Johan Hovold 2024-10-24 6:39 ` Qiang Yu 2024-10-17 3:04 ` [PATCH v7 6/7] PCI: qcom: Disable ASPM L0s and remove BDF2SID mapping config for X1E80100 SoC Qiang Yu 2024-10-18 14:06 ` Johan Hovold 2024-10-24 6:42 ` Qiang Yu 2024-10-30 5:54 ` Qiang Yu 2024-10-30 7:15 ` Johan Hovold 2024-10-30 7:18 ` Manivannan Sadhasivam 2024-10-30 7:42 ` Johan Hovold 2024-10-30 7:56 ` Qiang Yu 2024-10-18 14:25 ` Bjorn Andersson 2024-10-24 6:46 ` Qiang Yu 2024-10-17 3:04 ` [PATCH v7 7/7] arm64: dts: qcom: x1e80100: Add support for PCIe3 on x1e80100 Qiang Yu 2024-10-18 14:08 ` Johan Hovold 2024-10-17 15:35 ` (subset) [PATCH v7 0/7] " Vinod Koul
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox