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
85 if (!bit_entry(bios, 'C', &bit_C) && bit_C.length >= 10) { in pll_limits_table()
86 u16 data = nvbios_rd16(bios, bit_C.offset + 8); in pll_limits_table()
88 *ver = nvbios_rd08(bios, data + 0); in pll_limits_table()
89 *hdr = nvbios_rd08(bios, data + 1); in pll_limits_table()
90 *len = nvbios_rd08(bios, data + 2); in pll_limits_table()
91 *cnt = nvbios_rd08(bios, data + 3); in pll_limits_table()
96 if (bmp_version(bios) >= 0x0524) { in pll_limits_table()
97 u16 data = nvbios_rd16(bios, bios->bmp_offset + 142); in pll_limits_table()
99 *ver = nvbios_rd08(bios, data + 0); in pll_limits_table()
112 pll_map(struct nvkm_bios *bios) in pll_map() argument
114 struct nvkm_device *device = bios->subdev.device; in pll_map()
139 pll_map_reg(struct nvkm_bios *bios, u32 reg, u32 *type, u8 *ver, u8 *len) in pll_map_reg() argument
145 data = pll_limits_table(bios, ver, &hdr, &cnt, len); in pll_map_reg()
149 if (nvbios_rd32(bios, data + 3) == reg) { in pll_map_reg()
150 *type = nvbios_rd08(bios, data + 0); in pll_map_reg()
158 map = pll_map(bios); in pll_map_reg()
164 if (nvbios_rd32(bios, data) == map->reg) in pll_map_reg()
181 pll_map_type(struct nvkm_bios *bios, u8 type, u32 *reg, u8 *ver, u8 *len) in pll_map_type() argument
187 data = pll_limits_table(bios, ver, &hdr, &cnt, len); in pll_map_type()
191 if (nvbios_rd08(bios, data + 0) == type) { in pll_map_type()
192 *reg = nvbios_rd32(bios, data + 3); in pll_map_type()
200 map = pll_map(bios); in pll_map_type()
206 if (nvbios_rd32(bios, data) == map->reg) in pll_map_type()
223 nvbios_pll_parse(struct nvkm_bios *bios, u32 type, struct nvbios_pll *info) in nvbios_pll_parse() argument
225 struct nvkm_subdev *subdev = &bios->subdev; in nvbios_pll_parse()
233 data = pll_map_reg(bios, reg, &type, &ver, &len); in nvbios_pll_parse()
235 data = pll_map_type(bios, type, ®, &ver, &len); in nvbios_pll_parse()
250 info->vco1.min_freq = nvbios_rd32(bios, data + 0); in nvbios_pll_parse()
251 info->vco1.max_freq = nvbios_rd32(bios, data + 4); in nvbios_pll_parse()
252 info->vco2.min_freq = nvbios_rd32(bios, data + 8); in nvbios_pll_parse()
253 info->vco2.max_freq = nvbios_rd32(bios, data + 12); in nvbios_pll_parse()
254 info->vco1.min_inputfreq = nvbios_rd32(bios, data + 16); in nvbios_pll_parse()
255 info->vco2.min_inputfreq = nvbios_rd32(bios, data + 20); in nvbios_pll_parse()
263 switch (bios->version.chip) { in nvbios_pll_parse()
282 switch (bios->version.chip) { in nvbios_pll_parse()
296 info->vco1.min_freq = nvbios_rd16(bios, data + 4) * 1000; in nvbios_pll_parse()
297 info->vco1.max_freq = nvbios_rd16(bios, data + 6) * 1000; in nvbios_pll_parse()
298 info->vco2.min_freq = nvbios_rd16(bios, data + 8) * 1000; in nvbios_pll_parse()
299 info->vco2.max_freq = nvbios_rd16(bios, data + 10) * 1000; in nvbios_pll_parse()
300 info->vco1.min_inputfreq = nvbios_rd16(bios, data + 12) * 1000; in nvbios_pll_parse()
301 info->vco2.min_inputfreq = nvbios_rd16(bios, data + 14) * 1000; in nvbios_pll_parse()
302 info->vco1.max_inputfreq = nvbios_rd16(bios, data + 16) * 1000; in nvbios_pll_parse()
303 info->vco2.max_inputfreq = nvbios_rd16(bios, data + 18) * 1000; in nvbios_pll_parse()
304 info->vco1.min_n = nvbios_rd08(bios, data + 20); in nvbios_pll_parse()
305 info->vco1.max_n = nvbios_rd08(bios, data + 21); in nvbios_pll_parse()
306 info->vco1.min_m = nvbios_rd08(bios, data + 22); in nvbios_pll_parse()
307 info->vco1.max_m = nvbios_rd08(bios, data + 23); in nvbios_pll_parse()
308 info->vco2.min_n = nvbios_rd08(bios, data + 24); in nvbios_pll_parse()
309 info->vco2.max_n = nvbios_rd08(bios, data + 25); in nvbios_pll_parse()
310 info->vco2.min_m = nvbios_rd08(bios, data + 26); in nvbios_pll_parse()
311 info->vco2.max_m = nvbios_rd08(bios, data + 27); in nvbios_pll_parse()
313 info->max_p = nvbios_rd08(bios, data + 29); in nvbios_pll_parse()
315 if (bios->version.chip < 0x60) in nvbios_pll_parse()
317 info->bias_p = nvbios_rd08(bios, data + 30); in nvbios_pll_parse()
320 info->refclk = nvbios_rd32(bios, data + 31); in nvbios_pll_parse()
323 data = nvbios_rd16(bios, data + 1); in nvbios_pll_parse()
325 info->vco1.min_freq = nvbios_rd16(bios, data + 0) * 1000; in nvbios_pll_parse()
326 info->vco1.max_freq = nvbios_rd16(bios, data + 2) * 1000; in nvbios_pll_parse()
327 info->vco2.min_freq = nvbios_rd16(bios, data + 4) * 1000; in nvbios_pll_parse()
328 info->vco2.max_freq = nvbios_rd16(bios, data + 6) * 1000; in nvbios_pll_parse()
329 info->vco1.min_inputfreq = nvbios_rd16(bios, data + 8) * 1000; in nvbios_pll_parse()
330 info->vco2.min_inputfreq = nvbios_rd16(bios, data + 10) * 1000; in nvbios_pll_parse()
331 info->vco1.max_inputfreq = nvbios_rd16(bios, data + 12) * 1000; in nvbios_pll_parse()
332 info->vco2.max_inputfreq = nvbios_rd16(bios, data + 14) * 1000; in nvbios_pll_parse()
333 info->vco1.min_n = nvbios_rd08(bios, data + 16); in nvbios_pll_parse()
334 info->vco1.max_n = nvbios_rd08(bios, data + 17); in nvbios_pll_parse()
335 info->vco1.min_m = nvbios_rd08(bios, data + 18); in nvbios_pll_parse()
336 info->vco1.max_m = nvbios_rd08(bios, data + 19); in nvbios_pll_parse()
337 info->vco2.min_n = nvbios_rd08(bios, data + 20); in nvbios_pll_parse()
338 info->vco2.max_n = nvbios_rd08(bios, data + 21); in nvbios_pll_parse()
339 info->vco2.min_m = nvbios_rd08(bios, data + 22); in nvbios_pll_parse()
340 info->vco2.max_m = nvbios_rd08(bios, data + 23); in nvbios_pll_parse()
341 info->max_p_usable = info->max_p = nvbios_rd08(bios, data + 25); in nvbios_pll_parse()
342 info->bias_p = nvbios_rd08(bios, data + 27); in nvbios_pll_parse()
343 info->refclk = nvbios_rd32(bios, data + 28); in nvbios_pll_parse()
346 info->refclk = nvbios_rd16(bios, data + 9) * 1000; in nvbios_pll_parse()
347 data = nvbios_rd16(bios, data + 1); in nvbios_pll_parse()
349 info->vco1.min_freq = nvbios_rd16(bios, data + 0) * 1000; in nvbios_pll_parse()
350 info->vco1.max_freq = nvbios_rd16(bios, data + 2) * 1000; in nvbios_pll_parse()
351 info->vco1.min_inputfreq = nvbios_rd16(bios, data + 4) * 1000; in nvbios_pll_parse()
352 info->vco1.max_inputfreq = nvbios_rd16(bios, data + 6) * 1000; in nvbios_pll_parse()
353 info->vco1.min_m = nvbios_rd08(bios, data + 8); in nvbios_pll_parse()
354 info->vco1.max_m = nvbios_rd08(bios, data + 9); in nvbios_pll_parse()
355 info->vco1.min_n = nvbios_rd08(bios, data + 10); in nvbios_pll_parse()
356 info->vco1.max_n = nvbios_rd08(bios, data + 11); in nvbios_pll_parse()
357 info->min_p = nvbios_rd08(bios, data + 12); in nvbios_pll_parse()
358 info->max_p = nvbios_rd08(bios, data + 13); in nvbios_pll_parse()
367 if (bios->version.chip == 0x51) { in nvbios_pll_parse()
385 info->vco1.max_freq = nvbios_rd32(bios, bios->bmp_offset + 67); in nvbios_pll_parse()
386 info->vco1.min_freq = nvbios_rd32(bios, bios->bmp_offset + 71); in nvbios_pll_parse()
387 if (bmp_version(bios) < 0x0506) { in nvbios_pll_parse()
400 if (bios->version.chip < 0x11) in nvbios_pll_parse()
404 if (bios->version.chip < 0x11) in nvbios_pll_parse()
409 if (bios->version.chip < 0x17 || in nvbios_pll_parse()
410 bios->version.chip == 0x1a || in nvbios_pll_parse()
411 bios->version.chip == 0x20) in nvbios_pll_parse()