Fix phy_init not called when reset-gpios is absent - #875
Conversation
|
Merge Check Failed: No Change Task Found No associated change tasks found for CR 4604173 on any of the following entities: Entities:
CR: 4604173 Please ensure the CR has a change task associated with at least one of the entities for this branch. |
Fixed |
PR #875 — validate-patchPR: #875
Final Summary
|
PR #875 — checker-log-analyzerPR: #875
Detailed report: Full report
|
Test Matrix
|
Test jobs on f501fe1 |
Devicetree schema allows the PERST# GPIO to be present in all PCIe bridge nodes, not just in Root Port node. But the current logic parses PERST# only from the Root Port nodes. Though it is not causing any issue on the current platforms, the upcoming platforms will have PERST# in PCIe switch downstream ports also. So this requires parsing all the PCIe bridge nodes for the PERST# GPIO. Hence, rework the parsing logic to extend to all PCIe bridge nodes starting from the Root Port node. If the 'reset-gpios' property is found for a PCI bridge node, the GPIO descriptor will be stored in qcom_pcie_perst::desc and added to the qcom_pcie_port::perst list. It should be noted that if more than one bridge node has the same GPIO for PERST# (shared PERST#), the driver will error out. This is due to the limitation in the GPIOLIB subsystem that allows only exclusive (non-shared) access to GPIOs from consumers. But this is soon going to get fixed. Once that happens, it will get incorporated in this driver. So for now, PERST# sharing is not supported. Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@oss.qualcomm.com> Signed-off-by: Manivannan Sadhasivam <mani@kernel.org> Signed-off-by: Bjorn Helgaas <bhelgaas@google.com> Link: https://patch.msgid.link/20251216-pci-pwrctrl-rework-v2-1-745a563b9be6@oss.qualcomm.com
…vices Currently, the pcie-qcom driver recursively parses the PERST# GPIO from all child nodes defined in DT and acquires them. But this creates issues with PERST# GPIO provided by one of the child devices like the PCIe switch port. In this case, the RC driver cannot acquire the PERST# GPIO since it will be provided by the child PCIe device which was not yet enumerated during RC driver probe. Fix this by checking if the GPIO provider is a child of the RC's DT node (i.e., sits behind this PCIe controller). If so, skip it, as PERST# should be controlled by the respective PCIe client driver implementation. GPIOs provided by external GPIO controllers (e.g., TLMM in Qcom SoCs) continue to be handled normally. Fixes: 2fd60a2 ("PCI: qcom: Parse PERST# from all PCIe bridge nodes") Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@oss.qualcomm.com> Link: https://lore.kernel.org/all/20260616-pci-qcom-perst-fix-v1-1-27600d6ae357@oss.qualcomm.com/
f501fe1 to
cf30f5f
Compare
|
Merge Check Failed: CR Not Eligible for Merge CR 4604173 is not eligible for merge. The parent software image for kernel.qli.2.0 is not development complete. Entity: Please ensure the CR passes both CCT (ComponentChangeTasks) and ICT (Integration Change Tasks) validations. |
PR #875 — validate-patchPR: #875
Final Summary
|
PR #875 — checker-log-analyzerPR: #875
Detailed report: Full report
|
Test jobs on cf30f5f |
Test Matrix
|
Please fix this |
This series backports two upstream commits to fix an issue on kernel-6.18 where phy_init() is not called for a PCIe root port if reset-gpios is missing from its DT node.
CRs-fixed: 4604173