On Fri, May 17, 2019 at 06:08:33PM +0530, Vidya Sagar wrote: > Tegra194 rootports don't generate MSI interrupts for PME events and hence > MSI needs to be disabled for them to avoid root ports service drivers > registering their respective ISRs with MSI interrupt. > > Signed-off-by: Vidya Sagar <vidyas@xxxxxxxxxx> > --- > Changes since [v6]: > * This is a new patch > > drivers/pci/quirks.c | 14 ++++++++++++++ > 1 file changed, 14 insertions(+) > > diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c > index 0f16acc323c6..28f9a0380df5 100644 > --- a/drivers/pci/quirks.c > +++ b/drivers/pci/quirks.c > @@ -2592,6 +2592,20 @@ DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_NVIDIA, > PCI_DEVICE_ID_NVIDIA_NVENET_15, > nvenet_msi_disable); > > +/* > + * Tegra194's PCIe root ports don't generate MSI interrupts for PME events > + * instead legacy interrupts are generated. Hence, to avoid service drivers > + * registering their respective ISRs for MSIs, need to disable MSI interrupts > + * for root ports. > + */ > +static void disable_tegra194_rp_msi(struct pci_dev *dev) > +{ > + dev->no_msi = 1; > +} > +DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_NVIDIA, 0x1ad0, disable_tegra194_rp_msi); > +DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_NVIDIA, 0x1ad1, disable_tegra194_rp_msi); > +DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_NVIDIA, 0x1ad2, disable_tegra194_rp_msi); > + Later functions in this file seem to use a more consistent naming pattern, according to which the name for this would become: pci_quirk_nvidia_tegra194_disable_rp_msi Might be worth considering making this consistent. This could also be moved to the DWC driver to restrict this to where it is needed. In either case, this seems like a good solution, so: Reviewed-by: Thierry Reding <treding@xxxxxxxxxx>
Attachment:
signature.asc
Description: PGP signature