]> git.baikalelectronics.ru Git - kernel.git/commit
PCI quirk: RS780/RS880: work around missing MSI initialization
authorClemens Ladisch <clemens@ladisch.de>
Mon, 22 Mar 2010 08:52:16 +0000 (09:52 +0100)
committerJesse Barnes <jbarnes@virtuousgeek.org>
Wed, 24 Mar 2010 20:21:38 +0000 (13:21 -0700)
commit71ab462afbec3375c97fa549844c9cab88bd6742
tree721f45ddafb0934dcd445de47bea9c1d0ad3efe2
parentdd8a39a06526a4e0ad43c09a7fb4d2dc7737caf2
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>
drivers/gpu/drm/radeon/radeon_irq_kms.c
drivers/pci/quirks.c