On 7/2/2025 9:03 PM, Manivannan Sadhasivam wrote:
On Wed, Jul 02, 2025 at 04:50:42PM GMT, Krishna Chaitanya Chundru wrote:
[...]
- ret = phy_init(pcie->phy);
- if (ret)
- goto err_pm_runtime_put;
+ for_each_available_child_of_node(dev->of_node, of_port) {
+ ret = qcom_pcie_parse_port(pcie, of_port);
+ of_node_put(of_port);
+ if (ret) {
+ if (ret != -ENOENT) {
+ dev_err_probe(pci->dev, ret,
+ "Failed to parse port nodes %d\n",
+ ret);
+ goto err_port_del;
+ }
+ break;
+ }
+ }
+
+ /*
+ * In the case of properties not populated in root port, fallback to the
+ * legacy method of parsing the host bridge node. This is to maintain DT
+ * backwards compatibility.
+ */
+ if (ret) {
+ pcie->phy = devm_phy_optional_get(dev, "pciephy");
+ if (IS_ERR(pcie->phy)) {
+ ret = PTR_ERR(pcie->phy);
+ goto err_pm_runtime_put;
Shouldn't this and below be err_port_del?
This is a legacy way of parsing property, if the execution
comes here means the port parsing has failed and ports are not created.
so err_port_del will not have any effect.
- Krishna Chaitanya.
- Mani