From: Hou Zhiqiang <Zhiqiang.Hou@nxp.com>
The Freescale PCIe controller advertises the MSI/MSI-X capability
in both RC and Endpoint mode, but in RC mode it doesn't support
MSI/MSI-X by it self, it can only transfer MSI/MSI-X from downstream
devices. So add this quirk to prevent use of MSI/MSI-X in RC mode.
Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@nxp.com>
---
drivers/pci/quirks.c | 8 ++++++++
1 file changed, 8 insertions(+)
From: Minghuan Lian <Minghuan.Lian@nxp.com>
By default, when the PCIe controller experiences an erroneous
completion from an external completer for its outbound non-posted
request, it always sends an OKAY response to the device's internal
AXI slave system interface. However, such default system error
response behavior cannot be used for other types of outbound
non-posted requests. For example, the outbound memory read
transaction requires an actual ERROR response, like UR completion
or completion timeout. The patch is to fix it by forwarding
the error response of the non-posted request.
Signed-off-by: Minghuan Lian <Minghuan.Lian@nxp.com>
Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@nxp.com>
---
drivers/pci/dwc/pci-layerscape.c | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)
On Fri, Sep 22, 2017 at 03:25:21PM +0800, Zhiqiang Hou wrote:
From: Hou Zhiqiang <Zhiqiang.Hou@nxp.com>
The Freescale PCIe controller advertises the MSI/MSI-X capability
in both RC and Endpoint mode, but in RC mode it doesn't support
MSI/MSI-X by it self, it can only transfer MSI/MSI-X from downstream
s/it self,/itself;/
quoted hunk
devices. So add this quirk to prevent use of MSI/MSI-X in RC mode.
Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@nxp.com>
---
drivers/pci/quirks.c | 8 ++++++++
1 file changed, 8 insertions(+)
This disables MSI for all Freescale root ports, past, present, and
future. Is that really what you want? This is a bug (the root port
shouldn't advertise MSI if it doesn't support it), and presumably it
might be fixed in some future device?
This needs an ack from Minghuan or Mingkai (based on MAINTAINERS).
Bjorn
On Fri, Sep 22, 2017 at 03:25:22PM +0800, Zhiqiang Hou wrote:
quoted hunk
From: Minghuan Lian <Minghuan.Lian@nxp.com>
By default, when the PCIe controller experiences an erroneous
completion from an external completer for its outbound non-posted
request, it always sends an OKAY response to the device's internal
AXI slave system interface. However, such default system error
response behavior cannot be used for other types of outbound
non-posted requests. For example, the outbound memory read
transaction requires an actual ERROR response, like UR completion
or completion timeout. The patch is to fix it by forwarding
the error response of the non-posted request.
Signed-off-by: Minghuan Lian <Minghuan.Lian@nxp.com>
Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@nxp.com>
---
drivers/pci/dwc/pci-layerscape.c | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)
What's the point of this parameter? If it's for debugging, it's not
clear that we need it upstream. If it's for debugging and we *do*
need it upstream, there should be some sort of comment to that effect.
I assume you never expect an end user to need this parameter.
Hi Bjorn,
Thanks for your review.
Yes. All the freescale's PCIe controllers do not support to generate MSI interrupt.
The PCIe controllers developed for the next generation SoC do not support it either.
Acked-by: Minghuan Lian <minghuan.Lian@nxp.com>
-----Original Message-----
From: Bjorn Helgaas [mailto:helgaas at kernel.org]
Sent: Thursday, October 12, 2017 3:38 AM
To: Z.q. Hou <zhiqiang.hou@nxp.com>
Cc: linux-kernel at vger.kernel.org; linux-arm-kernel at lists.infradead.org; linux-
pci at vger.kernel.org; bhelgaas at google.com; Roy Zang [off-list ref];
Mingkai Hu [off-list ref]; M.h. Lian [off-list ref]
Subject: Re: [PATCH 1/2] PCI: Disable MSI for Freescale PCIe RC mode
On Fri, Sep 22, 2017 at 03:25:21PM +0800, Zhiqiang Hou wrote:
quoted
From: Hou Zhiqiang <Zhiqiang.Hou@nxp.com>
The Freescale PCIe controller advertises the MSI/MSI-X capability in
both RC and Endpoint mode, but in RC mode it doesn't support MSI/MSI-X
by it self, it can only transfer MSI/MSI-X from downstream
s/it self,/itself;/
quoted
devices. So add this quirk to prevent use of MSI/MSI-X in RC mode.
Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@nxp.com>
---
drivers/pci/quirks.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c index
This disables MSI for all Freescale root ports, past, present, and future. Is that
really what you want? This is a bug (the root port shouldn't advertise MSI if it
doesn't support it), and presumably it might be fixed in some future device?
This needs an ack from Minghuan or Mingkai (based on MAINTAINERS).
Bjorn
-----Original Message-----
From: Bjorn Helgaas [mailto:helgaas at kernel.org]
Sent: 2017?10?12? 3:38
To: Z.q. Hou <zhiqiang.hou@nxp.com>
Cc: linux-kernel at vger.kernel.org; linux-arm-kernel at lists.infradead.org;
linux-pci at vger.kernel.org; bhelgaas at google.com; Roy Zang
[off-list ref]; Mingkai Hu [off-list ref]; M.h. Lian
[off-list ref]
Subject: Re: [PATCH 1/2] PCI: Disable MSI for Freescale PCIe RC mode
On Fri, Sep 22, 2017 at 03:25:21PM +0800, Zhiqiang Hou wrote:
quoted
From: Hou Zhiqiang <Zhiqiang.Hou@nxp.com>
The Freescale PCIe controller advertises the MSI/MSI-X capability in
both RC and Endpoint mode, but in RC mode it doesn't support MSI/MSI-X
by it self, it can only transfer MSI/MSI-X from downstream
s/it self,/itself;/
I'll fix this typo in next version.
quoted
devices. So add this quirk to prevent use of MSI/MSI-X in RC mode.
Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@nxp.com>
---
drivers/pci/quirks.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c index
This disables MSI for all Freescale root ports, past, present, and future. Is
that really what you want? This is a bug (the root port shouldn't advertise
MSI if it doesn't support it), and presumably it might be fixed in some future
device?
For the past and present, there isn't Freescale root ports supporting MSI. If the future Freescale root port support MSI, I'll add a patch for it checking the PCI device ID to determine if apply the quirk.
And it should be ok for the root ports without this bug.
This needs an ack from Minghuan or Mingkai (based on MAINTAINERS).
-----Original Message-----
From: Bjorn Helgaas [mailto:helgaas at kernel.org]
Sent: 2017?10?12? 3:41
To: Z.q. Hou <zhiqiang.hou@nxp.com>
Cc: linux-kernel at vger.kernel.org; linux-arm-kernel at lists.infradead.org;
linux-pci at vger.kernel.org; bhelgaas at google.com; Roy Zang
[off-list ref]; Mingkai Hu [off-list ref]; M.h. Lian
[off-list ref]
Subject: Re: [PATCH 2/2] pci/layerscape: change the default error response
behavior
On Fri, Sep 22, 2017 at 03:25:22PM +0800, Zhiqiang Hou wrote:
quoted
From: Minghuan Lian <Minghuan.Lian@nxp.com>
By default, when the PCIe controller experiences an erroneous
completion from an external completer for its outbound non-posted
request, it always sends an OKAY response to the device's internal AXI
slave system interface. However, such default system error response
behavior cannot be used for other types of outbound non-posted
requests. For example, the outbound memory read transaction requires
an actual ERROR response, like UR completion or completion timeout.
The patch is to fix it by forwarding the error response of the
non-posted request.
Signed-off-by: Minghuan Lian <Minghuan.Lian@nxp.com>
Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@nxp.com>
---
drivers/pci/dwc/pci-layerscape.c | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)
diff --git a/drivers/pci/dwc/pci-layerscape.c
b/drivers/pci/dwc/pci-layerscape.c
index 3b01e309a55e..a647090c140e 100644
What's the point of this parameter? If it's for debugging, it's not clear that
we need it upstream. If it's for debugging and we *do* need it upstream,
there should be some sort of comment to that effect.
I assume you never expect an end user to need this parameter.
It is for debugging, will drop this parameter next version.