* [PATCH v4 1/2] PCI: layerscape: Add support for Link down notification
@ 2023-07-20 13:58 Frank Li
2023-07-20 13:58 ` [PATCH v4 2/2] PCI: layerscape: Add the workaround for lost link capabilities during reset Frank Li
` (2 more replies)
0 siblings, 3 replies; 7+ messages in thread
From: Frank Li @ 2023-07-20 13:58 UTC (permalink / raw)
To: frank.li, lpieralisi
Cc: Zhiqiang.Hou, bhelgaas, imx, kernel-janitors, kw,
linux-arm-kernel, linux-kernel, linux-pci, linuxppc-dev, mani,
markus.elfring, minghuan.Lian, mingkai.hu, robh, roy.zang,
xiaowei.bao
Add support to pass Link down notification to Endpoint function driver
so that the LINK_DOWN event can be processed by the function.
Acked-by: Manivannan Sadhasivam <mani@kernel.org>
Signed-off-by: Frank Li <Frank.Li@nxp.com>
---
Change from v2 to v4
- none
Change from v1 to v2
drivers/pci/controller/dwc/pci-layerscape-ep.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/pci/controller/dwc/pci-layerscape-ep.c b/drivers/pci/controller/dwc/pci-layerscape-ep.c
index de4c1758a6c3..e0969ff2ddf7 100644
--- a/drivers/pci/controller/dwc/pci-layerscape-ep.c
+++ b/drivers/pci/controller/dwc/pci-layerscape-ep.c
@@ -89,6 +89,7 @@ static irqreturn_t ls_pcie_ep_event_handler(int irq, void *dev_id)
dev_dbg(pci->dev, "Link up\n");
} else if (val & PEX_PF0_PME_MES_DR_LDD) {
dev_dbg(pci->dev, "Link down\n");
+ pci_epc_linkdown(pci->ep.epc);
} else if (val & PEX_PF0_PME_MES_DR_HRD) {
dev_dbg(pci->dev, "Hot reset\n");
}
--
2.34.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH v4 2/2] PCI: layerscape: Add the workaround for lost link capabilities during reset.
2023-07-20 13:58 [PATCH v4 1/2] PCI: layerscape: Add support for Link down notification Frank Li
@ 2023-07-20 13:58 ` Frank Li
2023-07-31 15:06 ` [PATCH v4 1/2] PCI: layerscape: Add support for Link down notification Frank Li
2023-08-24 8:14 ` Lorenzo Pieralisi
2 siblings, 0 replies; 7+ messages in thread
From: Frank Li @ 2023-07-20 13:58 UTC (permalink / raw)
To: frank.li, lpieralisi
Cc: Zhiqiang.Hou, bhelgaas, imx, kernel-janitors, kw,
linux-arm-kernel, linux-kernel, linux-pci, linuxppc-dev, mani,
markus.elfring, minghuan.Lian, mingkai.hu, robh, roy.zang,
xiaowei.bao
From: Xiaowei Bao <xiaowei.bao@nxp.com>
A workaround for the issue where the PCI Express Endpoint (EP) controller
loses the values of the Maximum Link Width and Supported Link Speed from
the Link Capabilities Register, which initially configured by the Reset
Configuration Word (RCW) during a link-down or hot reset event.
Fixes: a805770d8a22 ("PCI: layerscape: Add EP mode support")
Acked-by: Manivannan Sadhasivam <mani@kernel.org>
Signed-off-by: Xiaowei Bao <xiaowei.bao@nxp.com>
Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@nxp.com>
Signed-off-by: Frank Li <Frank.Li@nxp.com>
---
change from v3 to v4
- fix wrong commit a debug code, change pr_err to pr_dbg
change from v2 to v3
- fix subject typo capabilities
change from v1 to v2:
- add comments at restore register
- add fixes tag
- dw_pcie_writew_dbi to dw_pcie_writel_dbi
.../pci/controller/dwc/pci-layerscape-ep.c | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)
diff --git a/drivers/pci/controller/dwc/pci-layerscape-ep.c b/drivers/pci/controller/dwc/pci-layerscape-ep.c
index e0969ff2ddf7..b1faf41a2fae 100644
--- a/drivers/pci/controller/dwc/pci-layerscape-ep.c
+++ b/drivers/pci/controller/dwc/pci-layerscape-ep.c
@@ -45,6 +45,7 @@ struct ls_pcie_ep {
struct pci_epc_features *ls_epc;
const struct ls_pcie_ep_drvdata *drvdata;
int irq;
+ u32 lnkcap;
bool big_endian;
};
@@ -73,6 +74,7 @@ static irqreturn_t ls_pcie_ep_event_handler(int irq, void *dev_id)
struct ls_pcie_ep *pcie = dev_id;
struct dw_pcie *pci = pcie->pci;
u32 val, cfg;
+ u8 offset;
val = ls_lut_readl(pcie, PEX_PF0_PME_MES_DR);
ls_lut_writel(pcie, PEX_PF0_PME_MES_DR, val);
@@ -81,6 +83,19 @@ static irqreturn_t ls_pcie_ep_event_handler(int irq, void *dev_id)
return IRQ_NONE;
if (val & PEX_PF0_PME_MES_DR_LUD) {
+
+ offset = dw_pcie_find_capability(pci, PCI_CAP_ID_EXP);
+
+ /*
+ * The values of the Maximum Link Width and Supported Link
+ * Speed from the Link Capabilities Register will be lost
+ * during link down or hot reset. Restore initial value
+ * that configured by the Reset Configuration Word (RCW).
+ */
+ dw_pcie_dbi_ro_wr_en(pci);
+ dw_pcie_writel_dbi(pci, offset + PCI_EXP_LNKCAP, pcie->lnkcap);
+ dw_pcie_dbi_ro_wr_dis(pci);
+
cfg = ls_lut_readl(pcie, PEX_PF0_CONFIG);
cfg |= PEX_PF0_CFG_READY;
ls_lut_writel(pcie, PEX_PF0_CONFIG, cfg);
@@ -216,6 +231,7 @@ static int __init ls_pcie_ep_probe(struct platform_device *pdev)
struct ls_pcie_ep *pcie;
struct pci_epc_features *ls_epc;
struct resource *dbi_base;
+ u8 offset;
int ret;
pcie = devm_kzalloc(dev, sizeof(*pcie), GFP_KERNEL);
@@ -252,6 +268,9 @@ static int __init ls_pcie_ep_probe(struct platform_device *pdev)
platform_set_drvdata(pdev, pcie);
+ offset = dw_pcie_find_capability(pci, PCI_CAP_ID_EXP);
+ pcie->lnkcap = dw_pcie_readl_dbi(pci, offset + PCI_EXP_LNKCAP);
+
ret = dw_pcie_ep_init(&pci->ep);
if (ret)
return ret;
--
2.34.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH v4 1/2] PCI: layerscape: Add support for Link down notification
2023-07-20 13:58 [PATCH v4 1/2] PCI: layerscape: Add support for Link down notification Frank Li
2023-07-20 13:58 ` [PATCH v4 2/2] PCI: layerscape: Add the workaround for lost link capabilities during reset Frank Li
@ 2023-07-31 15:06 ` Frank Li
2023-08-16 15:53 ` Frank Li
2023-08-24 8:14 ` Lorenzo Pieralisi
2 siblings, 1 reply; 7+ messages in thread
From: Frank Li @ 2023-07-31 15:06 UTC (permalink / raw)
To: lpieralisi
Cc: Zhiqiang.Hou, bhelgaas, imx, kernel-janitors, kw,
linux-arm-kernel, linux-kernel, linux-pci, linuxppc-dev, mani,
markus.elfring, minghuan.Lian, mingkai.hu, robh, roy.zang,
xiaowei.bao
On Thu, Jul 20, 2023 at 09:58:33AM -0400, Frank Li wrote:
> Add support to pass Link down notification to Endpoint function driver
> so that the LINK_DOWN event can be processed by the function.
>
> Acked-by: Manivannan Sadhasivam <mani@kernel.org>
> Signed-off-by: Frank Li <Frank.Li@nxp.com>
> ---
@Lorenzo
Could you please consider pick both patches?
Manivannan already reviewed and only impact layerscape.
Frank
> Change from v2 to v4
> - none
> Change from v1 to v2
>
> drivers/pci/controller/dwc/pci-layerscape-ep.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/pci/controller/dwc/pci-layerscape-ep.c b/drivers/pci/controller/dwc/pci-layerscape-ep.c
> index de4c1758a6c3..e0969ff2ddf7 100644
> --- a/drivers/pci/controller/dwc/pci-layerscape-ep.c
> +++ b/drivers/pci/controller/dwc/pci-layerscape-ep.c
> @@ -89,6 +89,7 @@ static irqreturn_t ls_pcie_ep_event_handler(int irq, void *dev_id)
> dev_dbg(pci->dev, "Link up\n");
> } else if (val & PEX_PF0_PME_MES_DR_LDD) {
> dev_dbg(pci->dev, "Link down\n");
> + pci_epc_linkdown(pci->ep.epc);
> } else if (val & PEX_PF0_PME_MES_DR_HRD) {
> dev_dbg(pci->dev, "Hot reset\n");
> }
> --
> 2.34.1
>
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v4 1/2] PCI: layerscape: Add support for Link down notification
2023-07-31 15:06 ` [PATCH v4 1/2] PCI: layerscape: Add support for Link down notification Frank Li
@ 2023-08-16 15:53 ` Frank Li
2023-08-23 15:54 ` Frank Li
2023-08-23 16:11 ` Lorenzo Pieralisi
0 siblings, 2 replies; 7+ messages in thread
From: Frank Li @ 2023-08-16 15:53 UTC (permalink / raw)
To: lpieralisi
Cc: Zhiqiang.Hou, bhelgaas, imx, kernel-janitors, kw,
linux-arm-kernel, linux-kernel, linux-pci, linuxppc-dev, mani,
markus.elfring, minghuan.Lian, mingkai.hu, robh, roy.zang,
xiaowei.bao
On Mon, Jul 31, 2023 at 11:06:31AM -0400, Frank Li wrote:
> On Thu, Jul 20, 2023 at 09:58:33AM -0400, Frank Li wrote:
> > Add support to pass Link down notification to Endpoint function driver
> > so that the LINK_DOWN event can be processed by the function.
> >
> > Acked-by: Manivannan Sadhasivam <mani@kernel.org>
> > Signed-off-by: Frank Li <Frank.Li@nxp.com>
> > ---
>
> @Lorenzo
>
> Could you please consider pick both patches?
> Manivannan already reviewed and only impact layerscape.
@lorenzo:
ping
>
> Frank
>
> > Change from v2 to v4
> > - none
> > Change from v1 to v2
> >
> > drivers/pci/controller/dwc/pci-layerscape-ep.c | 1 +
> > 1 file changed, 1 insertion(+)
> >
> > diff --git a/drivers/pci/controller/dwc/pci-layerscape-ep.c b/drivers/pci/controller/dwc/pci-layerscape-ep.c
> > index de4c1758a6c3..e0969ff2ddf7 100644
> > --- a/drivers/pci/controller/dwc/pci-layerscape-ep.c
> > +++ b/drivers/pci/controller/dwc/pci-layerscape-ep.c
> > @@ -89,6 +89,7 @@ static irqreturn_t ls_pcie_ep_event_handler(int irq, void *dev_id)
> > dev_dbg(pci->dev, "Link up\n");
> > } else if (val & PEX_PF0_PME_MES_DR_LDD) {
> > dev_dbg(pci->dev, "Link down\n");
> > + pci_epc_linkdown(pci->ep.epc);
> > } else if (val & PEX_PF0_PME_MES_DR_HRD) {
> > dev_dbg(pci->dev, "Hot reset\n");
> > }
> > --
> > 2.34.1
> >
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v4 1/2] PCI: layerscape: Add support for Link down notification
2023-08-16 15:53 ` Frank Li
@ 2023-08-23 15:54 ` Frank Li
2023-08-23 16:11 ` Lorenzo Pieralisi
1 sibling, 0 replies; 7+ messages in thread
From: Frank Li @ 2023-08-23 15:54 UTC (permalink / raw)
To: lpieralisi
Cc: Zhiqiang.Hou, bhelgaas, imx, kernel-janitors, kw,
linux-arm-kernel, linux-kernel, linux-pci, linuxppc-dev, mani,
markus.elfring, minghuan.Lian, mingkai.hu, robh, roy.zang,
xiaowei.bao
On Wed, Aug 16, 2023 at 11:53:16AM -0400, Frank Li wrote:
> On Mon, Jul 31, 2023 at 11:06:31AM -0400, Frank Li wrote:
> > On Thu, Jul 20, 2023 at 09:58:33AM -0400, Frank Li wrote:
> > > Add support to pass Link down notification to Endpoint function driver
> > > so that the LINK_DOWN event can be processed by the function.
> > >
> > > Acked-by: Manivannan Sadhasivam <mani@kernel.org>
> > > Signed-off-by: Frank Li <Frank.Li@nxp.com>
> > > ---
> >
> > @Lorenzo
> >
> > Could you please consider pick both patches?
> > Manivannan already reviewed and only impact layerscape.
>
> @lorenzo:
> ping
>
> >
> > Frank
@lorenzo
ping
Frank
> >
> > > Change from v2 to v4
> > > - none
> > > Change from v1 to v2
> > >
> > > drivers/pci/controller/dwc/pci-layerscape-ep.c | 1 +
> > > 1 file changed, 1 insertion(+)
> > >
> > > diff --git a/drivers/pci/controller/dwc/pci-layerscape-ep.c b/drivers/pci/controller/dwc/pci-layerscape-ep.c
> > > index de4c1758a6c3..e0969ff2ddf7 100644
> > > --- a/drivers/pci/controller/dwc/pci-layerscape-ep.c
> > > +++ b/drivers/pci/controller/dwc/pci-layerscape-ep.c
> > > @@ -89,6 +89,7 @@ static irqreturn_t ls_pcie_ep_event_handler(int irq, void *dev_id)
> > > dev_dbg(pci->dev, "Link up\n");
> > > } else if (val & PEX_PF0_PME_MES_DR_LDD) {
> > > dev_dbg(pci->dev, "Link down\n");
> > > + pci_epc_linkdown(pci->ep.epc);
> > > } else if (val & PEX_PF0_PME_MES_DR_HRD) {
> > > dev_dbg(pci->dev, "Hot reset\n");
> > > }
> > > --
> > > 2.34.1
> > >
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v4 1/2] PCI: layerscape: Add support for Link down notification
2023-08-16 15:53 ` Frank Li
2023-08-23 15:54 ` Frank Li
@ 2023-08-23 16:11 ` Lorenzo Pieralisi
1 sibling, 0 replies; 7+ messages in thread
From: Lorenzo Pieralisi @ 2023-08-23 16:11 UTC (permalink / raw)
To: Frank Li
Cc: Zhiqiang.Hou, bhelgaas, imx, kernel-janitors, kw,
linux-arm-kernel, linux-kernel, linux-pci, linuxppc-dev, mani,
markus.elfring, minghuan.Lian, mingkai.hu, robh, roy.zang,
xiaowei.bao
On Wed, Aug 16, 2023 at 11:53:16AM -0400, Frank Li wrote:
> On Mon, Jul 31, 2023 at 11:06:31AM -0400, Frank Li wrote:
> > On Thu, Jul 20, 2023 at 09:58:33AM -0400, Frank Li wrote:
> > > Add support to pass Link down notification to Endpoint function driver
> > > so that the LINK_DOWN event can be processed by the function.
> > >
> > > Acked-by: Manivannan Sadhasivam <mani@kernel.org>
> > > Signed-off-by: Frank Li <Frank.Li@nxp.com>
> > > ---
> >
> > @Lorenzo
> >
> > Could you please consider pick both patches?
> > Manivannan already reviewed and only impact layerscape.
>
> @lorenzo:
> ping
I will have a look tomorrow.
Lorenzo
> >
> > Frank
> >
> > > Change from v2 to v4
> > > - none
> > > Change from v1 to v2
> > >
> > > drivers/pci/controller/dwc/pci-layerscape-ep.c | 1 +
> > > 1 file changed, 1 insertion(+)
> > >
> > > diff --git a/drivers/pci/controller/dwc/pci-layerscape-ep.c b/drivers/pci/controller/dwc/pci-layerscape-ep.c
> > > index de4c1758a6c3..e0969ff2ddf7 100644
> > > --- a/drivers/pci/controller/dwc/pci-layerscape-ep.c
> > > +++ b/drivers/pci/controller/dwc/pci-layerscape-ep.c
> > > @@ -89,6 +89,7 @@ static irqreturn_t ls_pcie_ep_event_handler(int irq, void *dev_id)
> > > dev_dbg(pci->dev, "Link up\n");
> > > } else if (val & PEX_PF0_PME_MES_DR_LDD) {
> > > dev_dbg(pci->dev, "Link down\n");
> > > + pci_epc_linkdown(pci->ep.epc);
> > > } else if (val & PEX_PF0_PME_MES_DR_HRD) {
> > > dev_dbg(pci->dev, "Hot reset\n");
> > > }
> > > --
> > > 2.34.1
> > >
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v4 1/2] PCI: layerscape: Add support for Link down notification
2023-07-20 13:58 [PATCH v4 1/2] PCI: layerscape: Add support for Link down notification Frank Li
2023-07-20 13:58 ` [PATCH v4 2/2] PCI: layerscape: Add the workaround for lost link capabilities during reset Frank Li
2023-07-31 15:06 ` [PATCH v4 1/2] PCI: layerscape: Add support for Link down notification Frank Li
@ 2023-08-24 8:14 ` Lorenzo Pieralisi
2 siblings, 0 replies; 7+ messages in thread
From: Lorenzo Pieralisi @ 2023-08-24 8:14 UTC (permalink / raw)
To: frank.li, Frank Li
Cc: Lorenzo Pieralisi, Zhiqiang.Hou, bhelgaas, imx, kernel-janitors,
kw, linux-arm-kernel, linux-kernel, linux-pci, linuxppc-dev, mani,
markus.elfring, minghuan.Lian, mingkai.hu, robh, roy.zang,
xiaowei.bao
On Thu, 20 Jul 2023 09:58:33 -0400, Frank Li wrote:
> Add support to pass Link down notification to Endpoint function driver
> so that the LINK_DOWN event can be processed by the function.
>
>
Applied to controller/layerscape, thanks!
[1/2] PCI: layerscape: Add support for Link down notification
https://git.kernel.org/pci/pci/c/d28c0d84ca40
[2/2] PCI: layerscape: Add the workaround for lost link capabilities during reset.
https://git.kernel.org/pci/pci/c/17cf8661ee0f
Thanks,
Lorenzo
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2023-08-24 8:15 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-07-20 13:58 [PATCH v4 1/2] PCI: layerscape: Add support for Link down notification Frank Li
2023-07-20 13:58 ` [PATCH v4 2/2] PCI: layerscape: Add the workaround for lost link capabilities during reset Frank Li
2023-07-31 15:06 ` [PATCH v4 1/2] PCI: layerscape: Add support for Link down notification Frank Li
2023-08-16 15:53 ` Frank Li
2023-08-23 15:54 ` Frank Li
2023-08-23 16:11 ` Lorenzo Pieralisi
2023-08-24 8:14 ` Lorenzo Pieralisi
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).