Lines Matching full:dcb
25 #include <subdev/bios/dcb.h>
32 u16 dcb = 0x0000; in dcb_table() local
35 dcb = nvbios_rd16(bios, 0x36); in dcb_table()
36 if (!dcb) { in dcb_table()
37 nvkm_warn(subdev, "DCB table not found\n"); in dcb_table()
38 return dcb; in dcb_table()
41 *ver = nvbios_rd08(bios, dcb); in dcb_table()
44 nvkm_warn(subdev, "DCB version 0x%02x unknown\n", *ver); in dcb_table()
48 if (nvbios_rd32(bios, dcb + 6) == 0x4edcbdcb) { in dcb_table()
49 *hdr = nvbios_rd08(bios, dcb + 1); in dcb_table()
50 *cnt = nvbios_rd08(bios, dcb + 2); in dcb_table()
51 *len = nvbios_rd08(bios, dcb + 3); in dcb_table()
52 return dcb; in dcb_table()
56 if (nvbios_rd32(bios, dcb + 4) == 0x4edcbdcb) { in dcb_table()
57 u16 i2c = nvbios_rd16(bios, dcb + 2); in dcb_table()
59 *cnt = (i2c - dcb) / 8; in dcb_table()
61 return dcb; in dcb_table()
65 if (!nvbios_memcmp(bios, dcb - 7, "DEV_REC", 7)) { in dcb_table()
66 u16 i2c = nvbios_rd16(bios, dcb + 2); in dcb_table()
68 *cnt = (i2c - dcb) / 10; in dcb_table()
70 return dcb; in dcb_table()
90 nvkm_debug(subdev, "DCB contains no useful data\n"); in dcb_table()
94 nvkm_warn(subdev, "DCB header validation failed\n"); in dcb_table()
102 u16 dcb = dcb_table(bios, ver, &hdr, &cnt, len); in dcb_outp() local
103 if (dcb && idx < cnt) in dcb_outp()
104 return dcb + hdr + (idx * *len); in dcb_outp()
124 u16 dcb = dcb_outp(bios, idx, ver, len); in dcb_outp_parse() local
126 if (dcb) { in dcb_outp_parse()
128 u32 conn = nvbios_rd32(bios, dcb + 0x00); in dcb_outp_parse()
138 dcb = 0x0000; in dcb_outp_parse()
142 u32 conf = nvbios_rd32(bios, dcb + 0x04); in dcb_outp_parse()
193 return dcb; in dcb_outp_parse()
200 u16 dcb, idx = 0; in dcb_outp_match() local
201 while ((dcb = dcb_outp_parse(bios, idx++, ver, len, outp))) { in dcb_outp_match()
207 return dcb; in dcb_outp_match()
220 break; /* seen on an NV11 with DCB v1.5 */ in dcb_outp_foreach()
222 break; /* seen on an NV17 with DCB v2.0 */ in dcb_outp_foreach()