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

Hongxing Zhu hongxing.zhu at nxp.com
Mon Mar 30 00:11:12 PDT 2026


> -----Original Message-----
> From: Frank Li <frank.li at nxp.com>
> Sent: 2026年3月28日 0:23
> To: Hongxing Zhu <hongxing.zhu at nxp.com>
> Cc: l.stach at pengutronix.de; lpieralisi at kernel.org; kwilczynski at kernel.org;
> mani at kernel.org; robh at kernel.org; bhelgaas at google.com;
> s.hauer at pengutronix.de; kernel at pengutronix.de; festevam at gmail.com;
> linux-pci at vger.kernel.org; linux-arm-kernel at lists.infradead.org;
> imx at lists.linux.dev; linux-kernel at vger.kernel.org; stable at 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:
> > > -----Original Message-----
> > > From: Frank Li <frank.li at nxp.com>
> > > Sent: 2026年3月19日 22:17
> > > To: Hongxing Zhu <hongxing.zhu at nxp.com>
> > > Cc: l.stach at pengutronix.de; lpieralisi at kernel.org;
> > > kwilczynski at kernel.org; mani at kernel.org; robh at kernel.org;
> > > bhelgaas at google.com; s.hauer at pengutronix.de;
> kernel at pengutronix.de;
> > > festevam at gmail.com; linux-pci at vger.kernel.org;
> > > linux-arm-kernel at lists.infradead.org;
> > > imx at lists.linux.dev; linux-kernel at vger.kernel.org;
> > > stable at 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:
> > > > 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 at 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;
> >
> > 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
> >
> > I'm not sure do this check (pp->has_msi_ctrl && !pp->msi_broken) is
> proper or not.
> > Best Regards
> > Richard Zhu
> > > >


More information about the linux-arm-kernel mailing list