VGA and pci_enable_device (was Re: Linux 2.4.0test1-ac6)

From: Jeff Garzik (jgarzik@mandrakesoft.com)
Date: Tue May 30 2000 - 18:18:01 EST


Alan Cox wrote:
> o PCI resource cleanups for (Francois Romieu)
> eni nicstar zatm stradis
> aec62xx ali15x3 amd7409 cs5530
> hpt34x hpt366 ide-dma pdc202xx
> piix trm290 pcilynx de4x5
> iph5526 rtl8129 skfddi lanstreamer
> olympic yenta 3ware 53c7,8xx
> AM53C974 buslogic advansys aic7xxx
> atp870u eata_dma eata_pio fdomain
> ips qlogicfc qlogicisp tmscsim
> cmpci emu10k trident ixj
> usb-ohci clgengfb matroxfb pm2fb
> riva fb
>
> [A few haven't been merged. In paticular I belive it isnt required
> to pci_enable_device the video card is it ? - can a PCI guy answer
> that detail]

pci_enable_device is a good idea for PCI VGA devices, because of its
fixups and ACPI support, but you can run into trouble.

When you have two PCI VGA cards, and the first one cannot turn off its
I/O decoding (generally because it doesn't support MMIO to VGA
registers), then you will have a conflict where two PCI VGA cards are
trying to decode the same VGA space, because both cards are attempting
to decode the same legacy ISA region.

In practise, very few fbdev drivers support multi-head, so an
fbdev-correct hardware setup should never have this conflict occur.
However users who don't know this will get bitten if they stick two PCI
VGA cards into the computer, and try to get both going with fbdev
drivers.

The correct solution is to implement PCI VGA region sharing, a la
XFree4's resource access control (RAC). Until fbdev gets that, problems
related to sharing the VGA region will continue to crop up.

        Jeff

-- 
Jeff Garzik              | Liberty is always dangerous, but
Building 1024            | it is the safest thing we have.
MandrakeSoft, Inc.       |      -- Harry Emerson Fosdick

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Wed May 31 2000 - 21:00:25 EST