linux/drivers/gpu/drm/radeon
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
..
reg_srcs drm/radeon/kms: r600/r700 command stream checker 2010-02-11 19:03:45 +10:00
.gitignore drm: create gitignore file for radeon 2009-09-25 13:08:21 +10:00
Kconfig drm/radeon/kms: change Kconfig text to reflect the new option. 2010-02-08 15:05:58 +10:00
Makefile drm/radeon: fix typo in Makefile 2010-03-02 06:32:47 +10:00
ObjectID.h drm/radeon/kms: pull in the latest upstream ObjectID.h changes 2010-01-08 13:03:57 +10:00
atom-bits.h drm/radeon: introduce kernel modesetting for radeon hardware 2009-06-15 12:01:53 +10:00
atom-names.h drm/radeon: introduce kernel modesetting for radeon hardware 2009-06-15 12:01:53 +10:00
atom-types.h drm/radeon: introduce kernel modesetting for radeon hardware 2009-06-15 12:01:53 +10:00
atom.c Merge remote branch 'korg/drm-core-next' into drm-next-stage 2010-02-25 13:39:29 +10:00
atom.h drm/radeon/kms/atom: upstream parser updates 2010-01-21 08:20:28 +10:00
atombios.h No need to patch AMD-provided drivers/gpu/drm/radeon/atombios.h 2010-02-12 10:31:37 +01:00
atombios_crtc.c drm/radeon/kms: update new pll algo 2010-02-25 11:38:06 +10:00
atombios_dp.c Merge remote branch 'korg/drm-radeon-testing' into drm-next-stage 2010-02-26 16:23:23 +10:00
avivod.h [rfc] drm/radeon/kms: pm debugging check for vbl. 2010-02-23 09:46:21 +10:00
evergreen.c drm/radeon/kms: force pinning buffer into visible VRAM 2010-02-25 11:32:36 +10:00
evergreen_reg.h drm/radeon/kms: add initial Evergreen support (Radeon HD 5xxx) 2010-02-09 09:44:02 +10:00
mkregtable.c drm/radeon: mkregtable.c: close a file before exit 2010-01-08 13:11:55 +10:00
r100.c drm/radeon/kms: force pinning buffer into visible VRAM 2010-02-25 11:32:36 +10:00
r100_track.h drm/radeon/kms: allow rendering while no colorbuffer is set on r300 2009-12-23 11:14:04 +10:00
r100d.h drm/radeon/kms: Convert R100 to new init path (V2) 2009-10-02 08:51:49 +10:00
r200.c drm/radeon: Add asic hook for dma copy to r200 cards. 2010-02-18 14:47:54 +10:00
r300.c drm/radeon/kms: add support for square microtiles on r3xx-r5xx 2010-02-25 11:36:12 +10:00
r300_cmdbuf.c drm/radeon: Fix printf type warning in 64bit system. 2010-03-01 22:21:37 +11:00
r300_reg.h drm/radeon/kms: add support for square microtiles on r3xx-r5xx 2010-02-25 11:36:12 +10:00
r300d.h drm/radeon/kms: Convert R300 to new init path 2009-10-02 08:51:48 +10:00
r420.c drm/radeon/kms: simplify memory controller setup V2 2010-02-18 14:49:35 +10:00
r420d.h drm/radeon/kms: Convert RS400/RS480 to new init path & fix legacy VGA (V3) 2009-10-02 08:51:46 +10:00
r500_reg.h drm/radeon/kms: add support for hw i2c on r1xx-r5xx 2010-02-09 09:31:10 +10:00
r520.c drm/radeon/kms: simplify memory controller setup V2 2010-02-18 14:49:35 +10:00
r520d.h drm/radeon/kms: Convert R520 to new init path and associated cleanup 2009-09-29 11:15:56 +10:00
r600.c Merge remote branch 'korg/drm-radeon-testing' into drm-next-stage 2010-02-26 16:23:23 +10:00
r600_audio.c drm/radeon/kms: do not disable audio engine twice 2010-03-01 16:09:43 +10:00
r600_blit.c drm/radeon: use ALIGN instead of open coding it 2010-03-01 15:56:41 +10:00
r600_blit_kms.c drm/radeon: use ALIGN instead of open coding it 2010-03-01 15:56:41 +10:00
r600_blit_shaders.c drm/radeon/kms/r600: reduce gpu cache flushing 2010-02-09 09:32:24 +10:00
r600_blit_shaders.h drm/radeon/kms: add r600 KMS support 2009-09-08 11:15:52 +10:00
r600_cp.c drm/radeon: fixes for r6xx/r7xx gfx init 2010-02-23 09:46:23 +10:00
r600_cs.c drm/radeon/r600: fix warnings in CS checker 2010-02-18 14:20:58 +10:00
r600_hdmi.c drm/radeon/kms: HDMI support for R600 KMS 2009-12-16 15:46:48 +10:00
r600_reg.h drm/radeon/kms: HDMI support for R600 KMS 2009-12-16 15:46:48 +10:00
r600d.h drm/radeon/kms: r600/r700 command stream checker 2010-02-11 19:03:45 +10:00
radeon.h vga_switcheroo: fix build on platforms with no ACPI 2010-03-01 22:21:58 +11:00
radeon_agp.c drm/radeon/kms: simplify memory controller setup V2 2010-02-18 14:49:35 +10:00
radeon_asic.h drm/radeon/kms: initialize set_surface_reg reg for rs600 asic 2010-03-01 15:50:37 +10:00
radeon_atombios.c Merge remote branch 'korg/drm-radeon-testing' into drm-next-stage 2010-02-26 16:23:23 +10:00
radeon_atpx_handler.c vga_switcheroo: fix build on platforms with no ACPI 2010-03-01 22:21:58 +11:00
radeon_benchmark.c drm/radeon: Skip dma copy test in benchmark if card doesn't have dma engine. 2010-02-11 13:13:25 +10:00
radeon_bios.c Merge branch 'gpu-switcher' of /ssd/git//linux-2.6 into drm-next-stage 2010-03-01 16:22:38 +10:00
radeon_clocks.c drm/radeon/kms: add initial Evergreen support (Radeon HD 5xxx) 2010-02-09 09:44:02 +10:00
radeon_combios.c Merge branch 'drm-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6 2010-03-04 07:49:37 -08:00
radeon_connectors.c Merge remote branch 'korg/drm-radeon-testing' into drm-next-stage 2010-02-26 16:23:23 +10:00
radeon_cp.c drm/radeon: r100/r200 ums: block ability for userspace app to trash 0 page and beyond 2010-03-01 16:08:22 +10:00
radeon_cs.c Merge remote branch 'korg/drm-core-next' into drm-next-stage 2010-02-25 13:39:29 +10:00
radeon_cursor.c Merge remote branch 'korg/drm-radeon-testing' into drm-next-stage 2010-02-26 16:23:23 +10:00
radeon_device.c Merge branch 'gpu-switcher' of /ssd/git//linux-2.6 into drm-next-stage 2010-03-01 16:22:38 +10:00
radeon_display.c Merge remote branch 'korg/drm-radeon-testing' into drm-next-stage 2010-02-26 16:23:23 +10:00
radeon_drv.c drm/radeon/kms: bump the KMS version number for square tiling support. 2010-03-01 16:32:15 +10:00
radeon_drv.h vga_switcheroo: fix build on platforms with no ACPI 2010-03-01 22:21:58 +11:00
radeon_encoders.c drm/radeon/kms: add initial Evergreen support (Radeon HD 5xxx) 2010-02-09 09:44:02 +10:00
radeon_family.h drm/radeon/kms: add initial Evergreen support (Radeon HD 5xxx) 2010-02-09 09:44:02 +10:00
radeon_fb.c Merge branch 'gpu-switcher' of /ssd/git//linux-2.6 into drm-next-stage 2010-03-01 16:22:38 +10:00
radeon_fence.c drm/radeon/radeon_fence.c: move a dereference below the NULL test 2010-01-07 13:54:39 +10:00
radeon_fixed.h drm/radeon/kms/avivo: fix some bugs in the display bandwidth setup 2009-12-10 15:09:05 +10:00
radeon_gart.c drm/radeon/kms: set gart pages to invalid on unbind and point to dummy page 2010-02-11 19:11:32 +10:00
radeon_gem.c Use drm_gem_object_[handle_]unreference_unlocked where possible 2010-02-11 14:22:34 +10:00
radeon_i2c.c drm/radeon/kms/evergreen: adapt to i2c changes 2010-02-11 13:39:12 +10:00
radeon_ioc32.c drm: convert drm_ioctl to unlocked_ioctl 2009-12-18 11:22:31 +10:00
radeon_irq.c gpu/drm/radeon/radeon_irq.c: move a dereference below a NULL test 2010-01-07 13:56:32 +10:00
radeon_irq_kms.c PCI quirk: RS780/RS880: work around missing MSI initialization 2010-03-24 13:21:38 -07:00
radeon_kms.c Merge branch 'gpu-switcher' of /ssd/git//linux-2.6 into drm-next-stage 2010-03-01 16:22:38 +10:00
radeon_legacy_crtc.c drm/radeon/kms: update new pll algo 2010-02-25 11:38:06 +10:00
radeon_legacy_encoders.c drm/radeon/kms: add dynamic engine reclocking (V9) 2010-02-09 09:32:26 +10:00
radeon_legacy_tv.c drm/radeon: fix a couple of array index errors 2010-01-08 13:05:16 +10:00
radeon_mem.c drm: Remove memory debugging infrastructure. 2009-06-18 13:00:33 -07:00
radeon_mode.h drm/radeon/kms: update new pll algo 2010-02-25 11:38:06 +10:00
radeon_object.c drm/radeon/kms: force pinning buffer into visible VRAM 2010-02-25 11:32:36 +10:00
radeon_object.h drm/radeon/kms: fix bo's fence association 2010-02-18 15:07:04 +10:00
radeon_pm.c drm/radeon/kms: implement reading active PCIE lanes on R600+ 2010-02-23 09:48:56 +10:00
radeon_reg.h drm/radeon/kms: add initial Evergreen support (Radeon HD 5xxx) 2010-02-09 09:44:02 +10:00
radeon_ring.c Merge remote branch 'korg/drm-radeon-testing' into drm-next-stage 2010-02-26 16:23:23 +10:00
radeon_state.c Merge branch 'for-next' into for-linus 2010-03-08 16:55:37 +01:00
radeon_test.c drm/radeon/kms: simplify memory controller setup V2 2010-02-18 14:49:35 +10:00
radeon_ttm.c Merge remote branch 'korg/drm-radeon-testing' into drm-next-stage 2010-02-26 16:23:23 +10:00
rs100d.h drm/radeon/kms: Convert R100 to new init path (V2) 2009-10-02 08:51:49 +10:00
rs400.c drm/radeon/kms: simplify memory controller setup V2 2010-02-18 14:49:35 +10:00
rs400d.h drm/radeon/kms: Convert RS400/RS480 to new init path & fix legacy VGA (V3) 2009-10-02 08:51:46 +10:00
rs600.c drm/radeon/kms: force pinning buffer into visible VRAM 2010-02-25 11:32:36 +10:00
rs600d.h drm/radeon/kms: add regs and irq tracking bits for hpd 2009-12-08 10:46:34 +10:00
rs690.c drm/radeon/kms: force pinning buffer into visible VRAM 2010-02-25 11:32:36 +10:00
rs690d.h drm/radeon/kms: Convert RS690/RS740 to new init path (V2). 2009-10-02 08:51:50 +10:00
rv200d.h drm/radeon/kms: Convert R100 to new init path (V2) 2009-10-02 08:51:49 +10:00
rv250d.h drm/radeon/kms: Convert R100 to new init path (V2) 2009-10-02 08:51:49 +10:00
rv350d.h drm/radeon/kms: Convert RS400/RS480 to new init path & fix legacy VGA (V3) 2009-10-02 08:51:46 +10:00
rv515.c drm/radeon/kms: simplify memory controller setup V2 2010-02-18 14:49:35 +10:00
rv515d.h drm/radeon/kms: Convert RV515 to new init path and associated cleanup 2009-09-29 11:15:54 +10:00
rv770.c drm/radeon/kms: force pinning buffer into visible VRAM 2010-02-25 11:32:36 +10:00
rv770d.h drm/radeon/kms: add initial Evergreen support (Radeon HD 5xxx) 2010-02-09 09:44:02 +10:00