Re: iommu breaks usb after resume

From: Andi Kleen
Date: Thu Mar 27 2008 - 09:33:52 EST


On Thu, Mar 27, 2008 at 02:29:23PM +0100, Pavel Machek wrote:
> Hi!
>
> > > ...this sounds like it needs to be done during resume, too, no?
> >
> > This is only a workaround for BIOS that don't set up an aperture,
> > but yes if they don't do that it is likely needed on resume too.
> >
> > You would need to add a resume handler to aperture.c
>
> Probably this needs to be redone during resume, right?

Yes, but using the standard pci access functions to avoid races which
the early boot code can ignore.

>
> /* Fix up the north bridges */
> for (num = 24; num < 32; num++) {
> if (!early_is_k8_nb(read_pci_config(0, num, 3, 0x00)))
> continue;
>
> /*
> * Don't enable translation yet. That is done later.
> * Assume this BIOS didn't initialise the GART so
> * just overwrite all previous bits
> */
> write_pci_config(0, num, 3, 0x90, aper_order<<1);
> write_pci_config(0, num, 3, 0x94, aper_alloc>>25);
> }
>
> ....plus the "enable translation" part... but where is that hiding?

Both pci-gart and the AGP driver have code for this.

-Andi

--
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/