Lines Matching refs:bios

81 pll_limits_table(struct nvkm_bios *bios, u8 *ver, u8 *hdr, u8 *cnt, u8 *len)  in pll_limits_table()  argument
86 if (!bit_entry(bios, 'C', &bit_C)) { in pll_limits_table()
88 data = nvbios_rd16(bios, bit_C.offset + 8); in pll_limits_table()
90 data = nvbios_rd32(bios, bit_C.offset + 0); in pll_limits_table()
92 *ver = nvbios_rd08(bios, data + 0); in pll_limits_table()
93 *hdr = nvbios_rd08(bios, data + 1); in pll_limits_table()
94 *len = nvbios_rd08(bios, data + 2); in pll_limits_table()
95 *cnt = nvbios_rd08(bios, data + 3); in pll_limits_table()
100 if (bmp_version(bios) >= 0x0524) { in pll_limits_table()
101 data = nvbios_rd16(bios, bios->bmp_offset + 142); in pll_limits_table()
103 *ver = nvbios_rd08(bios, data + 0); in pll_limits_table()
116 pll_map(struct nvkm_bios *bios) in pll_map() argument
118 struct nvkm_device *device = bios->subdev.device; in pll_map()
143 pll_map_reg(struct nvkm_bios *bios, u32 reg, u32 *type, u8 *ver, u8 *len) in pll_map_reg() argument
149 data = pll_limits_table(bios, ver, &hdr, &cnt, len); in pll_map_reg()
153 if (nvbios_rd32(bios, data + 3) == reg) { in pll_map_reg()
154 *type = nvbios_rd08(bios, data + 0); in pll_map_reg()
162 map = pll_map(bios); in pll_map_reg()
168 if (nvbios_rd32(bios, data) == map->reg) in pll_map_reg()
185 pll_map_type(struct nvkm_bios *bios, u8 type, u32 *reg, u8 *ver, u8 *len) in pll_map_type() argument
191 data = pll_limits_table(bios, ver, &hdr, &cnt, len); in pll_map_type()
195 if (nvbios_rd08(bios, data + 0) == type) { in pll_map_type()
197 *reg = nvbios_rd32(bios, data + 3); in pll_map_type()
207 map = pll_map(bios); in pll_map_type()
213 if (nvbios_rd32(bios, data) == map->reg) in pll_map_type()
230 nvbios_pll_parse(struct nvkm_bios *bios, u32 type, struct nvbios_pll *info) in nvbios_pll_parse() argument
232 struct nvkm_subdev *subdev = &bios->subdev; in nvbios_pll_parse()
240 data = pll_map_reg(bios, reg, &type, &ver, &len); in nvbios_pll_parse()
242 data = pll_map_type(bios, type, &reg, &ver, &len); in nvbios_pll_parse()
257 info->vco1.min_freq = nvbios_rd32(bios, data + 0); in nvbios_pll_parse()
258 info->vco1.max_freq = nvbios_rd32(bios, data + 4); in nvbios_pll_parse()
259 info->vco2.min_freq = nvbios_rd32(bios, data + 8); in nvbios_pll_parse()
260 info->vco2.max_freq = nvbios_rd32(bios, data + 12); in nvbios_pll_parse()
261 info->vco1.min_inputfreq = nvbios_rd32(bios, data + 16); in nvbios_pll_parse()
262 info->vco2.min_inputfreq = nvbios_rd32(bios, data + 20); in nvbios_pll_parse()
270 switch (bios->version.chip) { in nvbios_pll_parse()
289 switch (bios->version.chip) { in nvbios_pll_parse()
303 info->vco1.min_freq = nvbios_rd16(bios, data + 4) * 1000; in nvbios_pll_parse()
304 info->vco1.max_freq = nvbios_rd16(bios, data + 6) * 1000; in nvbios_pll_parse()
305 info->vco2.min_freq = nvbios_rd16(bios, data + 8) * 1000; in nvbios_pll_parse()
306 info->vco2.max_freq = nvbios_rd16(bios, data + 10) * 1000; in nvbios_pll_parse()
307 info->vco1.min_inputfreq = nvbios_rd16(bios, data + 12) * 1000; in nvbios_pll_parse()
308 info->vco2.min_inputfreq = nvbios_rd16(bios, data + 14) * 1000; in nvbios_pll_parse()
309 info->vco1.max_inputfreq = nvbios_rd16(bios, data + 16) * 1000; in nvbios_pll_parse()
310 info->vco2.max_inputfreq = nvbios_rd16(bios, data + 18) * 1000; in nvbios_pll_parse()
311 info->vco1.min_n = nvbios_rd08(bios, data + 20); in nvbios_pll_parse()
312 info->vco1.max_n = nvbios_rd08(bios, data + 21); in nvbios_pll_parse()
313 info->vco1.min_m = nvbios_rd08(bios, data + 22); in nvbios_pll_parse()
314 info->vco1.max_m = nvbios_rd08(bios, data + 23); in nvbios_pll_parse()
315 info->vco2.min_n = nvbios_rd08(bios, data + 24); in nvbios_pll_parse()
316 info->vco2.max_n = nvbios_rd08(bios, data + 25); in nvbios_pll_parse()
317 info->vco2.min_m = nvbios_rd08(bios, data + 26); in nvbios_pll_parse()
318 info->vco2.max_m = nvbios_rd08(bios, data + 27); in nvbios_pll_parse()
320 info->max_p = nvbios_rd08(bios, data + 29); in nvbios_pll_parse()
322 if (bios->version.chip < 0x60) in nvbios_pll_parse()
324 info->bias_p = nvbios_rd08(bios, data + 30); in nvbios_pll_parse()
327 info->refclk = nvbios_rd32(bios, data + 31); in nvbios_pll_parse()
330 data = nvbios_rd16(bios, data + 1); in nvbios_pll_parse()
332 info->vco1.min_freq = nvbios_rd16(bios, data + 0) * 1000; in nvbios_pll_parse()
333 info->vco1.max_freq = nvbios_rd16(bios, data + 2) * 1000; in nvbios_pll_parse()
334 info->vco2.min_freq = nvbios_rd16(bios, data + 4) * 1000; in nvbios_pll_parse()
335 info->vco2.max_freq = nvbios_rd16(bios, data + 6) * 1000; in nvbios_pll_parse()
336 info->vco1.min_inputfreq = nvbios_rd16(bios, data + 8) * 1000; in nvbios_pll_parse()
337 info->vco2.min_inputfreq = nvbios_rd16(bios, data + 10) * 1000; in nvbios_pll_parse()
338 info->vco1.max_inputfreq = nvbios_rd16(bios, data + 12) * 1000; in nvbios_pll_parse()
339 info->vco2.max_inputfreq = nvbios_rd16(bios, data + 14) * 1000; in nvbios_pll_parse()
340 info->vco1.min_n = nvbios_rd08(bios, data + 16); in nvbios_pll_parse()
341 info->vco1.max_n = nvbios_rd08(bios, data + 17); in nvbios_pll_parse()
342 info->vco1.min_m = nvbios_rd08(bios, data + 18); in nvbios_pll_parse()
343 info->vco1.max_m = nvbios_rd08(bios, data + 19); in nvbios_pll_parse()
344 info->vco2.min_n = nvbios_rd08(bios, data + 20); in nvbios_pll_parse()
345 info->vco2.max_n = nvbios_rd08(bios, data + 21); in nvbios_pll_parse()
346 info->vco2.min_m = nvbios_rd08(bios, data + 22); in nvbios_pll_parse()
347 info->vco2.max_m = nvbios_rd08(bios, data + 23); in nvbios_pll_parse()
348 info->max_p_usable = info->max_p = nvbios_rd08(bios, data + 25); in nvbios_pll_parse()
349 info->bias_p = nvbios_rd08(bios, data + 27); in nvbios_pll_parse()
350 info->refclk = nvbios_rd32(bios, data + 28); in nvbios_pll_parse()
353 info->refclk = nvbios_rd16(bios, data + 9) * 1000; in nvbios_pll_parse()
354 data = nvbios_rd16(bios, data + 1); in nvbios_pll_parse()
356 info->vco1.min_freq = nvbios_rd16(bios, data + 0) * 1000; in nvbios_pll_parse()
357 info->vco1.max_freq = nvbios_rd16(bios, data + 2) * 1000; in nvbios_pll_parse()
358 info->vco1.min_inputfreq = nvbios_rd16(bios, data + 4) * 1000; in nvbios_pll_parse()
359 info->vco1.max_inputfreq = nvbios_rd16(bios, data + 6) * 1000; in nvbios_pll_parse()
360 info->vco1.min_m = nvbios_rd08(bios, data + 8); in nvbios_pll_parse()
361 info->vco1.max_m = nvbios_rd08(bios, data + 9); in nvbios_pll_parse()
362 info->vco1.min_n = nvbios_rd08(bios, data + 10); in nvbios_pll_parse()
363 info->vco1.max_n = nvbios_rd08(bios, data + 11); in nvbios_pll_parse()
364 info->min_p = nvbios_rd08(bios, data + 12); in nvbios_pll_parse()
365 info->max_p = nvbios_rd08(bios, data + 13); in nvbios_pll_parse()
368 info->refclk = nvbios_rd16(bios, data + 1) * 1000; in nvbios_pll_parse()
370 info->vco1.min_freq = nvbios_rd16(bios, data + 5) * 1000; in nvbios_pll_parse()
371 info->vco1.max_freq = nvbios_rd16(bios, data + 7) * 1000; in nvbios_pll_parse()
372 info->vco1.min_inputfreq = nvbios_rd16(bios, data + 9) * 1000; in nvbios_pll_parse()
373 info->vco1.max_inputfreq = nvbios_rd16(bios, data + 11) * 1000; in nvbios_pll_parse()
374 info->vco1.min_m = nvbios_rd08(bios, data + 13); in nvbios_pll_parse()
375 info->vco1.max_m = nvbios_rd08(bios, data + 14); in nvbios_pll_parse()
376 info->vco1.min_n = nvbios_rd08(bios, data + 15); in nvbios_pll_parse()
377 info->vco1.max_n = nvbios_rd08(bios, data + 16); in nvbios_pll_parse()
378 info->min_p = nvbios_rd08(bios, data + 17); in nvbios_pll_parse()
379 info->max_p = nvbios_rd08(bios, data + 18); in nvbios_pll_parse()
388 if (bios->version.chip == 0x51) { in nvbios_pll_parse()
406 info->vco1.max_freq = nvbios_rd32(bios, bios->bmp_offset + 67); in nvbios_pll_parse()
407 info->vco1.min_freq = nvbios_rd32(bios, bios->bmp_offset + 71); in nvbios_pll_parse()
408 if (bmp_version(bios) < 0x0506) { in nvbios_pll_parse()
421 if (bios->version.chip < 0x11) in nvbios_pll_parse()
425 if (bios->version.chip < 0x11) in nvbios_pll_parse()
430 if (bios->version.chip < 0x17 || in nvbios_pll_parse()
431 bios->version.chip == 0x1a || in nvbios_pll_parse()
432 bios->version.chip == 0x20) in nvbios_pll_parse()