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 exhibitthis 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
Frankquoted
I'm not sure do this check (pp->has_msi_ctrl && !pp->msi_broken) isproper or not.quoted
Best Regards Richard Zhuquoted
quoted