Thread (9 messages) read the whole thread 9 messages, 3 authors, 2026-03-31

RE: [PATCH v2] PCI: imx6: Don't remove MSI capability For i.MX7D/i.MX8M

From: Hongxing Zhu <hongxing.zhu@nxp.com>
Date: 2026-03-30 07:11:15
Also in: imx, linux-pci, lkml, stable

-----Original Message-----
From: Frank Li <frank.li@nxp.com>
Sent: 2026年3月28日 0:23
To: Hongxing Zhu <hongxing.zhu@nxp.com>
Cc: l.stach@pengutronix.de; lpieralisi@kernel.org; kwilczynski@kernel.org;
mani@kernel.org; robh@kernel.org; bhelgaas@google.com;
s.hauer@pengutronix.de; kernel@pengutronix.de; festevam@gmail.com;
linux-pci@vger.kernel.org; linux-arm-kernel@lists.infradead.org;
imx@lists.linux.dev; linux-kernel@vger.kernel.org; stable@vger.kernel.org
Subject: Re: [PATCH v2] PCI: imx6: Don't remove MSI capability For
i.MX7D/i.MX8M

On Fri, Mar 27, 2026 at 08:12:29AM +0000, Hongxing Zhu wrote:
quoted
quoted
-----Original Message-----
From: Frank Li <frank.li@nxp.com>
Sent: 2026年3月19日 22:17
To: Hongxing Zhu <hongxing.zhu@nxp.com>
Cc: l.stach@pengutronix.de; lpieralisi@kernel.org;
kwilczynski@kernel.org; mani@kernel.org; robh@kernel.org;
bhelgaas@google.com; s.hauer@pengutronix.de;
kernel@pengutronix.de;
quoted
quoted
festevam@gmail.com; linux-pci@vger.kernel.org;
linux-arm-kernel@lists.infradead.org;
imx@lists.linux.dev; linux-kernel@vger.kernel.org;
stable@vger.kernel.org
Subject: Re: [PATCH v2] PCI: imx6: Don't remove MSI capability For
i.MX7D/i.MX8M

On Thu, Mar 19, 2026 at 05:18:23PM +0800, Richard Zhu wrote:
quoted
The MSI trigger mechanism for endpoint devices connected to
i.MX7D, i.MX8MM, and i.MX8MQ PCIe root complex ports depends on
the MSI capability register settings in the root complex. Removing
the MSI capability breaks MSI functionality for these endpoints.

Preserve the MSI capability for i.MX7D/i.MX8M PCIe root complex to
maintain MSI functionality.

Cc: stable@vger.kernel.org
Fixes: f5cd8a929c825 ("PCI: dwc: Remove MSI/MSIX capability for
Root Port if iMSI-RX is used as MSI controller")
I think it'd better add another varible to check in f5cd8a929c825 if
(pp->has_msi_ctrl && !pp->xxx_broken) or direct use IP version,
which already auto detected.

Previous patch have not consider this old version controller.
Hi Frank:
From what I've observed, this behavior seems tied to the specific
controller design. For example, neither the i.MX6Q nor the i.MX6SX exhibit
this issue.

Yes, should rename has_msi_ctrl -> disable_msi_ctrl. Set it according to
difference condition, such as has_msi_ctrl or skip it for problem platform
such as i.MX8MM and i.MX8MQ.

Disable it and overwrite later will cause confuse.
How about adding a boolean field to dw_pcie_rp struct to indicate platforms
that should preserve the MSI capability during initialization.

struct dw_pcie_rp {
        bool                    use_imsi_rx:1;
+       bool                    preserve_msi_cap;  /* Don't remove MSI capability if true */
        bool                    cfg0_io_shared:1;
        u64                     cfg0_base;
        void __iomem            *va_cfg0_base;
quoted
The intention of commit f5cd8a929c825 is to remove the MSI capability
from the Root Complex (RC). From the author's perspective, this change
should not affect the  Endpoint's (EP) MSI functionality.
Yes, your patch fix  RC  mode?
My patch fixes the EP MSI broken issue after removing RC's MSI capability.

Best Regards
Richard Zhu
Frank
quoted
I'm not sure do this check (pp->has_msi_ctrl && !pp->msi_broken) is
proper or not.
quoted
Best Regards
Richard Zhu
quoted
quoted
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help