diff options
author | Ben Skeggs <bskeggs@redhat.com> | 2010-03-04 05:12:22 +0300 |
---|---|---|
committer | Ben Skeggs <bskeggs@redhat.com> | 2010-03-10 09:07:14 +0300 |
commit | 53c44c3a065ac48c4ccb38f811cf7c5d305c9d4e (patch) | |
tree | 2c98bb280f8a2100f39925e4f0b32d12944fda2f | |
parent | da647d5bf3c0a4b7ad150803910cb1d737ac522e (diff) | |
download | linux-53c44c3a065ac48c4ccb38f811cf7c5d305c9d4e.tar.xz |
drm/nouveau: Gigabyte NX85T connector table lies, it has DVI-I not HDMI
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
-rw-r--r-- | drivers/gpu/drm/nouveau/nouveau_bios.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/drivers/gpu/drm/nouveau/nouveau_bios.c b/drivers/gpu/drm/nouveau/nouveau_bios.c index 75388f73cd26..e5f0ec23d91f 100644 --- a/drivers/gpu/drm/nouveau/nouveau_bios.c +++ b/drivers/gpu/drm/nouveau/nouveau_bios.c @@ -5211,6 +5211,21 @@ divine_connector_type(struct nvbios *bios, int index) } static void +apply_dcb_connector_quirks(struct nvbios *bios, int idx) +{ + struct dcb_connector_table_entry *cte = &bios->dcb.connector.entry[idx]; + struct drm_device *dev = bios->dev; + + /* Gigabyte NX85T */ + if ((dev->pdev->device == 0x0421) && + (dev->pdev->subsystem_vendor == 0x1458) && + (dev->pdev->subsystem_device == 0x344c)) { + if (cte->type == DCB_CONNECTOR_HDMI_1) + cte->type = DCB_CONNECTOR_DVI_I; + } +} + +static void parse_dcb_connector_table(struct nvbios *bios) { struct drm_device *dev = bios->dev; @@ -5266,6 +5281,8 @@ parse_dcb_connector_table(struct nvbios *bios) if (cte->type == 0xff) continue; + apply_dcb_connector_quirks(bios, i); + NV_INFO(dev, " %d: 0x%08x: type 0x%02x idx %d tag 0x%02x\n", i, cte->entry, cte->type, cte->index, cte->gpio_tag); |