Skip to content

Commit

Permalink
From patchwork series 400634
Browse files Browse the repository at this point in the history
  • Loading branch information
Fox Snowpatch committed Mar 27, 2024
1 parent 4db4221 commit c39adc4
Show file tree
Hide file tree
Showing 20 changed files with 338 additions and 111 deletions.
2 changes: 2 additions & 0 deletions drivers/pci/controller/cadence/pcie-cadence-ep.c
Expand Up @@ -746,6 +746,8 @@ int cdns_pcie_ep_setup(struct cdns_pcie_ep *ep)

spin_lock_init(&ep->lock);

pci_epc_init_notify(epc);

return 0;

free_epc_mem:
Expand Down
9 changes: 9 additions & 0 deletions drivers/pci/controller/dwc/pci-dra7xx.c
Expand Up @@ -467,6 +467,15 @@ static int dra7xx_add_pcie_ep(struct dra7xx_pcie *dra7xx,
return ret;
}

ret = dw_pcie_ep_init_registers(ep);
if (ret) {
dev_err(dev, "Failed to initialize DWC endpoint registers\n");
dw_pcie_ep_deinit(ep);
return ret;
}

dw_pcie_ep_init_notify(ep);

return 0;
}

Expand Down
10 changes: 10 additions & 0 deletions drivers/pci/controller/dwc/pci-imx6.c
Expand Up @@ -1123,6 +1123,16 @@ static int imx6_add_pcie_ep(struct imx6_pcie *imx6_pcie,
dev_err(dev, "failed to initialize endpoint\n");
return ret;
}

ret = dw_pcie_ep_init_registers(ep);
if (ret) {
dev_err(dev, "Failed to initialize DWC endpoint registers\n");
dw_pcie_ep_deinit(ep);
return ret;
}

dw_pcie_ep_init_notify(ep);

/* Start LTSSM. */
imx6_pcie_ltssm_enable(dev);

Expand Down
11 changes: 11 additions & 0 deletions drivers/pci/controller/dwc/pci-keystone.c
Expand Up @@ -1286,6 +1286,15 @@ static int ks_pcie_probe(struct platform_device *pdev)
ret = dw_pcie_ep_init(&pci->ep);
if (ret < 0)
goto err_get_sync;

ret = dw_pcie_ep_init_registers(&pci->ep);
if (ret) {
dev_err(dev, "Failed to initialize DWC endpoint registers\n");
goto err_ep_init;
}

dw_pcie_ep_init_notify(&pci->ep);

break;
default:
dev_err(dev, "INVALID device type %d\n", mode);
Expand All @@ -1295,6 +1304,8 @@ static int ks_pcie_probe(struct platform_device *pdev)

return 0;

err_ep_init:
dw_pcie_ep_deinit(&pci->ep);
err_get_sync:
pm_runtime_put(dev);
pm_runtime_disable(dev);
Expand Down
9 changes: 9 additions & 0 deletions drivers/pci/controller/dwc/pci-layerscape-ep.c
Expand Up @@ -279,6 +279,15 @@ static int __init ls_pcie_ep_probe(struct platform_device *pdev)
if (ret)
return ret;

ret = dw_pcie_ep_init_registers(&pci->ep);
if (ret) {
dev_err(dev, "Failed to initialize DWC endpoint registers\n");
dw_pcie_ep_deinit(&pci->ep);
return ret;
}

dw_pcie_ep_init_notify(&pci->ep);

return ls_pcie_ep_interrupt_init(pcie, pdev);
}

Expand Down
15 changes: 14 additions & 1 deletion drivers/pci/controller/dwc/pcie-artpec6.c
Expand Up @@ -441,7 +441,20 @@ static int artpec6_pcie_probe(struct platform_device *pdev)

pci->ep.ops = &pcie_ep_ops;

return dw_pcie_ep_init(&pci->ep);
ret = dw_pcie_ep_init(&pci->ep);
if (ret)
return ret;

ret = dw_pcie_ep_init_registers(&pci->ep);
if (ret) {
dev_err(dev, "Failed to initialize DWC endpoint registers\n");
dw_pcie_ep_deinit(&pci->ep);
return ret;
}

dw_pcie_ep_init_notify(&pci->ep);

break;
default:
dev_err(dev, "INVALID device type %d\n", artpec6_pcie->mode);
}
Expand Down

0 comments on commit c39adc4

Please sign in to comment.