* [PATCH v3 1/2] PCI: layerscape: Add support for Link down notification
@ 2023-07-19 15:57 Frank Li
2023-07-19 15:57 ` [PATCH v3 2/2] PCI: layerscape: Add the workaround for lost link capabilities during reset Frank Li
2023-07-19 19:27 ` [PATCH v3 1/2] PCI: layerscape: Add support for Link down notification Markus Elfring
0 siblings, 2 replies; 7+ messages in thread
From: Frank Li @ 2023-07-19 15:57 UTC (permalink / raw)
To: markus.elfring, lpieralisi
Cc: imx, xiaowei.bao, kw, Frank.Li, Zhiqiang.Hou, mani,
kernel-janitors, linux-kernel, minghuan.Lian, mingkai.hu,
linux-pci, bhelgaas, roy.zang, linuxppc-dev, robh,
linux-arm-kernel
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 v3
- none
Change from v1 to v2
- move pci_epc_linkdown() after dev_dbg()
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
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH v3 2/2] PCI: layerscape: Add the workaround for lost link capabilities during reset.
2023-07-19 15:57 [PATCH v3 1/2] PCI: layerscape: Add support for Link down notification Frank Li
@ 2023-07-19 15:57 ` Frank Li
2023-07-19 22:23 ` Frank Li
2023-07-19 19:27 ` [PATCH v3 1/2] PCI: layerscape: Add support for Link down notification Markus Elfring
1 sibling, 1 reply; 7+ messages in thread
From: Frank Li @ 2023-07-19 15:57 UTC (permalink / raw)
To: markus.elfring, lpieralisi
Cc: imx, xiaowei.bao, kw, Frank.Li, Zhiqiang.Hou, mani,
kernel-janitors, linux-kernel, minghuan.Lian, mingkai.hu,
linux-pci, bhelgaas, roy.zang, linuxppc-dev, robh,
linux-arm-kernel
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 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 | 21 ++++++++++++++++++-
1 file changed, 20 insertions(+), 1 deletion(-)
diff --git a/drivers/pci/controller/dwc/pci-layerscape-ep.c b/drivers/pci/controller/dwc/pci-layerscape-ep.c
index e0969ff2ddf7..39dbd911c3f8 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,12 +83,25 @@ 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);
dw_pcie_ep_linkup(&pci->ep);
- dev_dbg(pci->dev, "Link up\n");
+ dev_err(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);
@@ -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
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH v3 1/2] PCI: layerscape: Add support for Link down notification
2023-07-19 15:57 [PATCH v3 1/2] PCI: layerscape: Add support for Link down notification Frank Li
2023-07-19 15:57 ` [PATCH v3 2/2] PCI: layerscape: Add the workaround for lost link capabilities during reset Frank Li
@ 2023-07-19 19:27 ` Markus Elfring
2023-07-19 19:44 ` Frank Li
1 sibling, 1 reply; 7+ messages in thread
From: Markus Elfring @ 2023-07-19 19:27 UTC (permalink / raw)
To: Frank Li, Hou Zhiqiang, Xiaowei Bao, linux-pci, linuxppc-dev,
linux-arm-kernel, kernel-janitors
Cc: imx, Manivannan Sadhasivam, Lorenzo Pieralisi,
Krzysztof Wilczyński, LKML, Minghuan Lian, Roy Zang,
Bjorn Helgaas, Rob Herring, Mingkai Hu
> Add support to pass …
Why did you omit a cover letter for the discussed patch series once more?
Do you care for consequences according to message threading?
Regards,
Markus
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v3 1/2] PCI: layerscape: Add support for Link down notification
2023-07-19 19:27 ` [PATCH v3 1/2] PCI: layerscape: Add support for Link down notification Markus Elfring
@ 2023-07-19 19:44 ` Frank Li
2023-07-19 20:08 ` [v3 " Markus Elfring
0 siblings, 1 reply; 7+ messages in thread
From: Frank Li @ 2023-07-19 19:44 UTC (permalink / raw)
To: Markus Elfring
Cc: Rob Herring, imx, Xiaowei Bao, Krzysztof Wilczyński,
linux-pci, Hou Zhiqiang, Manivannan Sadhasivam, kernel-janitors,
LKML, Minghuan Lian, Mingkai Hu, Roy Zang, Bjorn Helgaas,
linuxppc-dev, Lorenzo Pieralisi, linux-arm-kernel
On Wed, Jul 19, 2023 at 09:27:23PM +0200, Markus Elfring wrote:
> > Add support to pass …
>
> Why did you omit a cover letter for the discussed patch series once more?
Your comments is
"Will a cover letter become helpful also for the presented small patch series?"
According to my understand it is optional. I don't think cover letter will
help this case. Patch 1 and 2 is that independent at all.
I sent these together just because easy to test once.
Maintainer can pick any one individually.
Cover letter just annoise people here.
Frank
>
> Do you care for consequences according to message threading?
>
> Regards,
> Markus
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [v3 1/2] PCI: layerscape: Add support for Link down notification
2023-07-19 19:44 ` Frank Li
@ 2023-07-19 20:08 ` Markus Elfring
2023-07-19 21:14 ` Frank Li
0 siblings, 1 reply; 7+ messages in thread
From: Markus Elfring @ 2023-07-19 20:08 UTC (permalink / raw)
To: Frank Li, Hou Zhiqiang, Xiaowei Bao, linux-pci, linuxppc-dev,
linux-arm-kernel, kernel-janitors
Cc: imx, Manivannan Sadhasivam, Lorenzo Pieralisi,
Krzysztof Wilczyński, LKML, Minghuan Lian, Roy Zang,
Bjorn Helgaas, Rob Herring, Mingkai Hu
> Cover letter just annoise people here.
How do you think about advices from another information source?
See also:
https://kernelnewbies.org/PatchSeries
Regards,
Markus
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [v3 1/2] PCI: layerscape: Add support for Link down notification
2023-07-19 20:08 ` [v3 " Markus Elfring
@ 2023-07-19 21:14 ` Frank Li
0 siblings, 0 replies; 7+ messages in thread
From: Frank Li @ 2023-07-19 21:14 UTC (permalink / raw)
To: Markus Elfring
Cc: Rob Herring, imx, Xiaowei Bao, Krzysztof Wilczyński,
linux-pci, Hou Zhiqiang, Manivannan Sadhasivam, kernel-janitors,
LKML, Minghuan Lian, Mingkai Hu, Roy Zang, Bjorn Helgaas,
linuxppc-dev, Lorenzo Pieralisi, linux-arm-kernel
On Wed, Jul 19, 2023 at 10:08:16PM +0200, Markus Elfring wrote:
> > Cover letter just annoise people here.
>
> How do you think about advices from another information source?
>
> See also:
> https://kernelnewbies.org/PatchSeries
"You may like to include a cover letter with your patch series."
Generally, I think cover letter will be needed only if it really
help reviewer to get main idea about patches.
Such as my on going pathes(with cover letter):
https://lore.kernel.org/imx/ZLglBiSz0meJm5os@lizhi-Precision-Tower-5810/T/#t
Similar case without(cover leter) and accepted.
https://lore.kernel.org/imx/20230719063425.GE151430@dragon/T/#t
I don't think cover letter real help reviewer to review these two patches.
I more like to get "real problem"(such as comments about "typo").
It is just waste time to discuss if need add cover letter here.
Frank
>
> Regards,
> Markus
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v3 2/2] PCI: layerscape: Add the workaround for lost link capabilities during reset.
2023-07-19 15:57 ` [PATCH v3 2/2] PCI: layerscape: Add the workaround for lost link capabilities during reset Frank Li
@ 2023-07-19 22:23 ` Frank Li
0 siblings, 0 replies; 7+ messages in thread
From: Frank Li @ 2023-07-19 22:23 UTC (permalink / raw)
To: markus.elfring, lpieralisi
Cc: imx, xiaowei.bao, kw, linux-pci, Zhiqiang.Hou, mani,
kernel-janitors, linux-kernel, minghuan.Lian, mingkai.hu,
roy.zang, bhelgaas, linuxppc-dev, robh, linux-arm-kernel
On Wed, Jul 19, 2023 at 11:57:07AM -0400, Frank Li wrote:
> 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 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 | 21 ++++++++++++++++++-
> 1 file changed, 20 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/pci/controller/dwc/pci-layerscape-ep.c b/drivers/pci/controller/dwc/pci-layerscape-ep.c
> index e0969ff2ddf7..39dbd911c3f8 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,12 +83,25 @@ 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);
> dw_pcie_ep_linkup(&pci->ep);
>
> - dev_dbg(pci->dev, "Link up\n");
> + dev_err(pci->dev, "Link up\n");
Sorry, Just found that. mistake merge a debug code.
It should be dev_dbg here, will send update patch soon
Frank
> } else if (val & PEX_PF0_PME_MES_DR_LDD) {
> dev_dbg(pci->dev, "Link down\n");
> pci_epc_linkdown(pci->ep.epc);
> @@ -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
>
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2023-07-19 22:25 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-07-19 15:57 [PATCH v3 1/2] PCI: layerscape: Add support for Link down notification Frank Li
2023-07-19 15:57 ` [PATCH v3 2/2] PCI: layerscape: Add the workaround for lost link capabilities during reset Frank Li
2023-07-19 22:23 ` Frank Li
2023-07-19 19:27 ` [PATCH v3 1/2] PCI: layerscape: Add support for Link down notification Markus Elfring
2023-07-19 19:44 ` Frank Li
2023-07-19 20:08 ` [v3 " Markus Elfring
2023-07-19 21:14 ` Frank Li
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).