diff options
author | Francisco Jerez <currojerez@riseup.net> | 2010-08-15 14:32:49 +0200 |
---|---|---|
committer | Ben Skeggs <bskeggs@redhat.com> | 2010-08-17 11:59:48 +1000 |
commit | 20d66daf0aeae4abd2f498d0cedf3e506946f3c2 (patch) | |
tree | e1711e8ebdd898355e8e68b769a834cc56ee821e | |
parent | 19bf5f7df918f86a1507389101b5eddcad983951 (diff) | |
download | linux-20d66daf0aeae4abd2f498d0cedf3e506946f3c2.tar.bz2 |
drm/nouveau: Workaround missing GPIO tables on an Apple iMac G4 NV18.
This should fix the reported TV-out load detection false positives
(fdo bug 29455).
Reported-by: Vlado Plaga <rechner@vlado-do.de>
Signed-off-by: Francisco Jerez <currojerez@riseup.net>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
-rw-r--r-- | drivers/gpu/drm/nouveau/nouveau_bios.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/drivers/gpu/drm/nouveau/nouveau_bios.c b/drivers/gpu/drm/nouveau/nouveau_bios.c index 9e7fc1d0321c..e144f7a38d81 100644 --- a/drivers/gpu/drm/nouveau/nouveau_bios.c +++ b/drivers/gpu/drm/nouveau/nouveau_bios.c @@ -5807,6 +5807,22 @@ parse_dcb_gpio_table(struct nvbios *bios) gpio->line = tvdac_gpio[1] >> 4; gpio->invert = tvdac_gpio[0] & 2; } + } else { + /* + * No systematic way to store GPIO info on pre-v2.2 + * DCBs, try to match the PCI device IDs. + */ + + /* Apple iMac G4 NV18 */ + if (dev->pdev->device == 0x0189 && + dev->pdev->subsystem_vendor == 0x10de && + dev->pdev->subsystem_device == 0x0010) { + struct dcb_gpio_entry *gpio = new_gpio_entry(bios); + + gpio->tag = DCB_GPIO_TVDAC0; + gpio->line = 4; + } + } if (!gpio_table_ptr) |