[PATCH] PCI: Add new PCI id for Intel GPU interrupt quirk
Daniel Vetter
daniel at ffwll.ch
Fri Apr 25 11:13:40 PDT 2014
On Fri, Apr 25, 2014 at 11:37:18AM -0600, Bjorn Helgaas wrote:
> On Fri, Apr 25, 2014 at 11:35:21AM -0600, Bjorn Helgaas wrote:
> > [+cc Daniel, Jani, intel-gfx, dri-devel, -cc stable]
> >
> > On Mon, Apr 07, 2014 at 03:10:32PM +0200, Thomas Jarosch wrote:
> > > After a CPU upgrade while keeping the same mainboard,
> > > we faced "spurious interrupt" problems again.
> > >
> > > It turned out that the new CPU also featured a
> > > new GPU with a different PCI id.
> > >
> > > -> Add this PCI id to the quirk table. Probably all other
> > > Intel GPU PCI ids are affected, too, but I don't want
> > > to add them without a test system.
> >
> > Daniel, Jani, et al, do we need a better solution to this? Is there
> > a more general way to solve this than by tripping over affected machines
> > one-by-one? Could this be done in the driver rather than in a quirk?
>
> I guess it can't be done in the driver because the problem happens even if
> the driver isn't loaded, per f67fd55fa96f ("PCI: Add quirk for still
> enabled interrupts on Intel Sandy Bridge GPUs").
Hm, this is new to me. The only thing wrt spurious interrupts I was aware
of is on g4x platforms which also fire legacy interrupts (but only for
some chip functions) when we use msi. See
commit 4e6b788c3f2388c519ab6ed7fe59f372c85d26e9
Author: Daniel Vetter <daniel.vetter at ffwll.ch>
Date: Fri Feb 7 16:33:20 2014 +0100
drm/i915: Disable dp aux irq on g4x
we simply opted to not enable those interrupts on g4x to keep things
quiet. For other platforms I'm not aware of any such issues.
I guess you could just match on all of them, but the master irq control
bit moves around a _lot_. We already have a differen early platform quirk
and for that exposed pci ids as macros in include/drm/i915_pciids.h
-Daniel
>
> > > Signed-off-by: Thomas Jarosch <thomas.jarosch at intra2net.com>
> > > Tested-by: Thomas Jarosch <thomas.jarosch at intra2net.com>
> > > ---
> > > drivers/pci/quirks.c | 1 +
> > > 1 file changed, 1 insertion(+)
> > >
> > > diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
> > > index e729206..0feb4a3 100644
> > > --- a/drivers/pci/quirks.c
> > > +++ b/drivers/pci/quirks.c
> > > @@ -2954,6 +2954,7 @@ static void disable_igfx_irq(struct pci_dev *dev)
> > > }
> > > DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x0102, disable_igfx_irq);
> > > DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x010a, disable_igfx_irq);
> > > +DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x0152, disable_igfx_irq);
> > >
> > > /*
> > > * PCI devices which are on Intel chips can skip the 10ms delay
> > > --
> > > 1.8.1.4
> > >
> > > --
> > > To unsubscribe from this list: send the line "unsubscribe linux-pci" in
> > > the body of a message to majordomo at vger.kernel.org
> > > More majordomo info at http://vger.kernel.org/majordomo-info.html
--
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch
More information about the dri-devel
mailing list