aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/nouveau/nouveau_bios.c
diff options
context:
space:
mode:
authorBen Skeggs <bskeggs@redhat.com>2010-03-10 00:52:43 -0500
committerBen Skeggs <bskeggs@redhat.com>2010-03-10 01:11:11 -0500
commitd544d623c5ef3ca14407e8bc042fdf938a966b04 (patch)
treec9ee0c9151ed866c460fdd9446a140dc1bd226d6 /drivers/gpu/drm/nouveau/nouveau_bios.c
parentce48fa93a6f5cadd4141a921dfb4129c8850374e (diff)
drm/nv50: fix connector table parsing for some cards
The connector table index in the DCB entry for each output type is an index into the connector table, and does *not* necessarily match up with what was previously called "index" in the connector table entries themselves. Not real sure what that index is exactly, renamed to "index2" as we still use it to prevent creating multiple TV connectors. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/nouveau/nouveau_bios.c')
-rw-r--r--drivers/gpu/drm/nouveau/nouveau_bios.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/gpu/drm/nouveau/nouveau_bios.c b/drivers/gpu/drm/nouveau/nouveau_bios.c
index e5f0ec23d91f..aed6068a6ca5 100644
--- a/drivers/gpu/drm/nouveau/nouveau_bios.c
+++ b/drivers/gpu/drm/nouveau/nouveau_bios.c
@@ -5253,13 +5253,14 @@ parse_dcb_connector_table(struct nvbios *bios)
5253 entry = conntab + conntab[1]; 5253 entry = conntab + conntab[1];
5254 cte = &ct->entry[0]; 5254 cte = &ct->entry[0];
5255 for (i = 0; i < conntab[2]; i++, entry += conntab[3], cte++) { 5255 for (i = 0; i < conntab[2]; i++, entry += conntab[3], cte++) {
5256 cte->index = i;
5256 if (conntab[3] == 2) 5257 if (conntab[3] == 2)
5257 cte->entry = ROM16(entry[0]); 5258 cte->entry = ROM16(entry[0]);
5258 else 5259 else
5259 cte->entry = ROM32(entry[0]); 5260 cte->entry = ROM32(entry[0]);
5260 5261
5261 cte->type = (cte->entry & 0x000000ff) >> 0; 5262 cte->type = (cte->entry & 0x000000ff) >> 0;
5262 cte->index = (cte->entry & 0x00000f00) >> 8; 5263 cte->index2 = (cte->entry & 0x00000f00) >> 8;
5263 switch (cte->entry & 0x00033000) { 5264 switch (cte->entry & 0x00033000) {
5264 case 0x00001000: 5265 case 0x00001000:
5265 cte->gpio_tag = 0x07; 5266 cte->gpio_tag = 0x07;