RE: [PATCH v2] PCI: imx6: Don't remove MSI capability For i.MX7D/i.MX8M
From: Hongxing Zhu
Date: Mon Mar 30 2026 - 03:11:35 EST
> -----Original Message-----
> From: Frank Li <frank.li@xxxxxxx>
> Sent: 2026年3月28日 0:23
> To: Hongxing Zhu <hongxing.zhu@xxxxxxx>
> Cc: l.stach@xxxxxxxxxxxxxx; lpieralisi@xxxxxxxxxx; kwilczynski@xxxxxxxxxx;
> mani@xxxxxxxxxx; robh@xxxxxxxxxx; bhelgaas@xxxxxxxxxx;
> s.hauer@xxxxxxxxxxxxxx; kernel@xxxxxxxxxxxxxx; festevam@xxxxxxxxx;
> linux-pci@xxxxxxxxxxxxxxx; linux-arm-kernel@xxxxxxxxxxxxxxxxxxx;
> imx@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; stable@xxxxxxxxxxxxxxx
> 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@xxxxxxx>
> > > Sent: 2026年3月19日 22:17
> > > To: Hongxing Zhu <hongxing.zhu@xxxxxxx>
> > > Cc: l.stach@xxxxxxxxxxxxxx; lpieralisi@xxxxxxxxxx;
> > > kwilczynski@xxxxxxxxxx; mani@xxxxxxxxxx; robh@xxxxxxxxxx;
> > > bhelgaas@xxxxxxxxxx; s.hauer@xxxxxxxxxxxxxx;
> kernel@xxxxxxxxxxxxxx;
> > > festevam@xxxxxxxxx; linux-pci@xxxxxxxxxxxxxxx;
> > > linux-arm-kernel@xxxxxxxxxxxxxxxxxxx;
> > > imx@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx;
> > > stable@xxxxxxxxxxxxxxx
> > > 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@xxxxxxxxxxxxxxx
> > > > 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
> > > >