diff options
author | Francisco Jerez <currojerez@riseup.net> | 2010-08-15 08:32:49 -0400 |
---|---|---|
committer | Ben Skeggs <bskeggs@redhat.com> | 2010-08-16 21:59:48 -0400 |
commit | 20d66daf0aeae4abd2f498d0cedf3e506946f3c2 (patch) | |
tree | e1711e8ebdd898355e8e68b769a834cc56ee821e /drivers/gpu/drm/nouveau | |
parent | 19bf5f7df918f86a1507389101b5eddcad983951 (diff) |
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>
Diffstat (limited to 'drivers/gpu/drm/nouveau')
-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) | |||
5807 | gpio->line = tvdac_gpio[1] >> 4; | 5807 | gpio->line = tvdac_gpio[1] >> 4; |
5808 | gpio->invert = tvdac_gpio[0] & 2; | 5808 | gpio->invert = tvdac_gpio[0] & 2; |
5809 | } | 5809 | } |
5810 | } else { | ||
5811 | /* | ||
5812 | * No systematic way to store GPIO info on pre-v2.2 | ||
5813 | * DCBs, try to match the PCI device IDs. | ||
5814 | */ | ||
5815 | |||
5816 | /* Apple iMac G4 NV18 */ | ||
5817 | if (dev->pdev->device == 0x0189 && | ||
5818 | dev->pdev->subsystem_vendor == 0x10de && | ||
5819 | dev->pdev->subsystem_device == 0x0010) { | ||
5820 | struct dcb_gpio_entry *gpio = new_gpio_entry(bios); | ||
5821 | |||
5822 | gpio->tag = DCB_GPIO_TVDAC0; | ||
5823 | gpio->line = 4; | ||
5824 | } | ||
5825 | |||
5810 | } | 5826 | } |
5811 | 5827 | ||
5812 | if (!gpio_table_ptr) | 5828 | if (!gpio_table_ptr) |