Lines Matching refs:dcb
1254 u8 *dcb = NULL; in olddcb_table() local
1257 dcb = ROMPTR(dev, drm->vbios.data[0x36]); in olddcb_table()
1258 if (!dcb) { in olddcb_table()
1263 if (dcb[0] >= 0x41) { in olddcb_table()
1264 NV_WARN(drm, "DCB version 0x%02x unknown\n", dcb[0]); in olddcb_table()
1267 if (dcb[0] >= 0x30) { in olddcb_table()
1268 if (ROM32(dcb[6]) == 0x4edcbdcb) in olddcb_table()
1269 return dcb; in olddcb_table()
1271 if (dcb[0] >= 0x20) { in olddcb_table()
1272 if (ROM32(dcb[4]) == 0x4edcbdcb) in olddcb_table()
1273 return dcb; in olddcb_table()
1275 if (dcb[0] >= 0x15) { in olddcb_table()
1276 if (!memcmp(&dcb[-7], "DEV_REC", 7)) in olddcb_table()
1277 return dcb; in olddcb_table()
1307 u8 *dcb = olddcb_table(dev); in olddcb_outp() local
1308 if (dcb && dcb[0] >= 0x30) { in olddcb_outp()
1309 if (idx < dcb[2]) in olddcb_outp()
1310 return dcb + dcb[1] + (idx * dcb[3]); in olddcb_outp()
1312 if (dcb && dcb[0] >= 0x20) { in olddcb_outp()
1313 u8 *i2c = ROMPTR(dev, dcb[2]); in olddcb_outp()
1314 u8 *ent = dcb + 8 + (idx * 8); in olddcb_outp()
1318 if (dcb && dcb[0] >= 0x15) { in olddcb_outp()
1319 u8 *i2c = ROMPTR(dev, dcb[2]); in olddcb_outp()
1320 u8 *ent = dcb + 4 + (idx * 10); in olddcb_outp()
1356 u8 *dcb = olddcb_table(dev); in olddcb_conntab() local
1357 if (dcb && dcb[0] >= 0x30 && dcb[1] >= 0x16) { in olddcb_conntab()
1358 u8 *conntab = ROMPTR(dev, dcb[0x14]); in olddcb_conntab()
1374 static struct dcb_output *new_dcb_entry(struct dcb_table *dcb) in new_dcb_entry() argument
1376 struct dcb_output *entry = &dcb->entry[dcb->entries]; in new_dcb_entry()
1379 entry->index = dcb->entries++; in new_dcb_entry()
1384 static void fabricate_dcb_output(struct dcb_table *dcb, int type, int i2c, in fabricate_dcb_output() argument
1387 struct dcb_output *entry = new_dcb_entry(dcb); in fabricate_dcb_output()
1398 parse_dcb20_entry(struct drm_device *dev, struct dcb_table *dcb, in parse_dcb20_entry() argument
1417 entry->crtconf.maxfreq = (dcb->version < 0x30) ? in parse_dcb20_entry()
1426 if (dcb->version < 0x22) { in parse_dcb20_entry()
1453 if (dcb->version >= 0x40) in parse_dcb20_entry()
1463 if (dcb->version >= 0x30) in parse_dcb20_entry()
1494 if (dcb->version >= 0x40) { in parse_dcb20_entry()
1498 else if (dcb->version >= 0x30) in parse_dcb20_entry()
1500 else if (dcb->version >= 0x22) in parse_dcb20_entry()
1506 dcb->entries--; in parse_dcb20_entry()
1512 if (dcb->version < 0x40) { in parse_dcb20_entry()
1530 parse_dcb15_entry(struct drm_device *dev, struct dcb_table *dcb, in parse_dcb15_entry() argument
1584 void merge_like_dcb_entries(struct drm_device *dev, struct dcb_table *dcb) in merge_like_dcb_entries() argument
1595 for (i = 0; i < dcb->entries; i++) { in merge_like_dcb_entries()
1596 struct dcb_output *ient = &dcb->entry[i]; in merge_like_dcb_entries()
1599 for (j = i + 1; j < dcb->entries; j++) { in merge_like_dcb_entries()
1600 struct dcb_output *jent = &dcb->entry[j]; in merge_like_dcb_entries()
1619 for (i = 0; i < dcb->entries; i++) { in merge_like_dcb_entries()
1620 if (dcb->entry[i].type == 100) in merge_like_dcb_entries()
1624 dcb->entry[newentries] = dcb->entry[i]; in merge_like_dcb_entries()
1625 dcb->entry[newentries].index = newentries; in merge_like_dcb_entries()
1630 dcb->entries = newentries; in merge_like_dcb_entries()
1637 struct dcb_table *dcb = &drm->vbios.dcb; in apply_dcb_encoder_quirks() local
1663 fabricate_dcb_output(dcb, DCB_OUTPUT_TMDS, 1, 1, 1); in apply_dcb_encoder_quirks()
1743 struct dcb_table *dcb = &bios->dcb; in fabricate_dcb_encoder_table() local
1749 fabricate_dcb_output(dcb, DCB_OUTPUT_TMDS, 0, all_heads, 1); in fabricate_dcb_encoder_table()
1750 fabricate_dcb_output(dcb, DCB_OUTPUT_ANALOG, 1, all_heads, 2); in fabricate_dcb_encoder_table()
1756 fabricate_dcb_output(dcb, DCB_OUTPUT_ANALOG, in fabricate_dcb_encoder_table()
1760 fabricate_dcb_output(dcb, DCB_OUTPUT_TV, in fabricate_dcb_encoder_table()
1766 fabricate_dcb_output(dcb, DCB_OUTPUT_TMDS, in fabricate_dcb_encoder_table()
1775 struct dcb_table *dcb = &drm->vbios.dcb; in parse_dcb_entry() local
1776 u32 conf = (dcb->version >= 0x20) ? ROM32(outp[4]) : ROM32(outp[6]); in parse_dcb_entry()
1781 struct dcb_output *entry = new_dcb_entry(dcb); in parse_dcb_entry()
1785 if (dcb->version >= 0x20) in parse_dcb_entry()
1786 ret = parse_dcb20_entry(dev, dcb, conn, conf, entry); in parse_dcb_entry()
1788 ret = parse_dcb15_entry(dev, dcb, conn, conf, entry); in parse_dcb_entry()
1807 struct dcb_table *dcbt = &bios->dcb; in dcb_fake_connectors()
1854 struct dcb_table *dcb = &bios->dcb; in parse_dcb_table() local
1871 dcb->version = dcbt[0]; in parse_dcb_table()
1878 if (dcb->version < 0x21) in parse_dcb_table()
1879 merge_like_dcb_entries(dev, dcb); in parse_dcb_table()
1881 if (!dcb->entries) in parse_dcb_table()