Re: [PATCH] DRM: add missing pci_enable_device()

From: Bjorn Helgaas
Date: Tue Sep 14 2004 - 09:49:23 EST


On Monday 13 September 2004 5:28 pm, Dave Airlie wrote:
> This causes problems when DRI and fb are loaded and you unload dri.. guess
> what happens your fb??, or it does in theory I might have time to practice
> later,
>
> now the quick fix is to take the stealth/non-stealth code from CVS which
> we know works or we wait for Alan to finish his vga device code and we fix
> up the DRM and fb to use it ... this patch won't help anyways...

OK, I'll assume you understand the issue and will resolve it. In the
meantime, users of DRM will have to supply "pci=routeirq".

> On Mon, 13 Sep 2004, Bjorn Helgaas wrote:
>
> > Add pci_enable_device()/pci_disable_device. In the past, drivers often worked
> > without this, but it is now required in order to route PCI interrupts
> > correctly.
> >
> > Evan Paul Fletcher found this problem with 2.6.9-rc1-mm4 and X.org 6.8.0
> > and verified that this patch fixes it.
> >
> > Signed-off-by: Bjorn Helgaas <bjorn.helgaas@xxxxxx>
> >
> > ===== drivers/char/drm/drm_drv.h 1.47 vs edited =====
> > --- 1.47/drivers/char/drm/drm_drv.h 2004-09-08 03:41:23 -06:00
> > +++ edited/drivers/char/drm/drm_drv.h 2004-09-13 12:27:16 -06:00
> > @@ -443,6 +443,8 @@
> > }
> > up( &dev->struct_sem );
> >
> > + pci_disable_device( dev->pdev );
> > +
> > return 0;
> > }
> >
> > @@ -492,6 +494,9 @@
> > return -EPERM;
> > dev->device = MKDEV(DRM_MAJOR, dev->minor );
> > dev->name = DRIVER_NAME;
> > +
> > + if ((retcode = pci_enable_device(pdev)))
> > + return retcode;
> >
> > dev->pdev = pdev;
> > #ifdef __alpha__
> >
>
> --
> David Airlie, Software Engineer
> http://www.skynet.ie/~airlied / airlied at skynet.ie
> pam_smb / Linux DECstation / Linux VAX / ILUG person
>
>
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/