linux/drivers/pci
Clemens Ladisch a5ee4eb754 PCI quirk: RS780/RS880: work around missing MSI initialization
AMD says in section 2.5.4 (GFX MSI Enable) of #43291 (AMD 780G Family
Register Programming Requirements):

  The SBIOS must enable internal graphics MSI capability in GCCFG by
  setting the following: NBCFG.NB_CNTL.STRAP_MSI_ENABLE='1'

Quite a few BIOS writers misinterpret this sentence and think that
enabling MSI is an optional feature.  However, clearing that bit just
prevents delivery of MSI messages but does not remove the MSI PCI
capabilities registers, and so leaves these devices unusable for any
driver that attempts to use MSI.

Setting that bit is not possible after the BIOS has locked down the
configuration registers, so we have to manually disable MSI for the
affected devices.

This fixes the codec communication errors in the HDA driver when
accessing the HDMI audio device, and allows us to get rid of the
overcautious quirk in radeon_irq_kms.c.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Tested-by: Alex Deucher <alexdeucher@gamil.com>
Cc: <stable@kernel.org>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
2010-03-24 13:21:38 -07:00
..
hotplug PCI: print resources consistently with %pR 2010-03-24 13:21:36 -07:00
pcie PM: Allow PCI devices to suspend/resume asynchronously 2010-02-26 20:39:12 +01:00
.gitignore
access.c
bus.c Driver core: create lock/unlock functions for struct device 2010-03-07 17:04:52 -08:00
dmar.c Merge git://git.infradead.org/iommu-2.6 2009-12-16 10:11:38 -08:00
hotplug-pci.c
hotplug.c
htirq.c
intel-iommu.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6 2009-12-30 13:13:24 -08:00
intr_remapping.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6 2009-12-30 13:13:24 -08:00
intr_remapping.h
ioapic.c PCI: print resources consistently with %pR 2010-03-24 13:21:36 -07:00
iov.c pci: Add SR-IOV convenience functions and macros 2010-02-12 16:56:07 -08:00
iova.c
irq.c
Kconfig PCI: push deprecated pci_find_device() function to last user 2010-02-22 16:17:01 -08:00
Makefile microblaze: Enable PCI, missing files 2010-03-11 14:04:27 +01:00
msi.c
msi.h
pci-acpi.c Merge branch 'acpica' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6 2010-03-01 10:36:22 -08:00
pci-driver.c PCI PM: Run-time callbacks for PCI bus type 2010-02-22 16:21:19 -08:00
pci-stub.c
pci-sysfs.c sysfs: fix for thinko with sysfs_bin_attr_init() 2010-03-07 17:04:52 -08:00
pci.c PCI: cleanup error return for pcix get and set mmrbc functions 2010-03-19 12:41:48 -07:00
pci.h PCI PM: Run-time callbacks for PCI bus type 2010-02-22 16:21:19 -08:00
probe.c PCI: complain about devices that seem to be broken 2010-03-24 13:21:36 -07:00
proc.c
quirks.c PCI quirk: RS780/RS880: work around missing MSI initialization 2010-03-24 13:21:38 -07:00
remove.c
rom.c
search.c PCI: change PCI nomenclature in drivers/pci/ (comment changes) 2009-12-16 13:37:53 -08:00
setup-bus.c pci: don't reassign to ROM res if it is not going to be enabled 2010-03-01 07:41:55 -08:00
setup-irq.c
setup-res.c PCI: for address space collisions, show conflicting resource 2010-03-24 13:21:34 -07:00
slot.c Driver core: Constify struct sysfs_ops in struct kobj_type 2010-03-07 17:04:49 -08:00
syscall.c
vpd.c pci: Add helper to search for VPD keywords 2010-02-28 00:43:33 -08:00