Lines Matching full:bios
49 * There's a few checksums in the BIOS, so here's a generic checking in nv_cksum()
64 static uint16_t clkcmptable(struct nvbios *bios, uint16_t clktable, int pxclk) in clkcmptable() argument
69 if (bios->major_version < 5) /* pre BIT */ in clkcmptable()
75 compareclk = ROM16(bios->data[clktable + compare_record_len * i]); in clkcmptable()
77 if (bios->major_version < 5) { in clkcmptable()
78 uint8_t tmdssub = bios->data[clktable + 2 + compare_record_len * i]; in clkcmptable()
79 scriptptr = ROM16(bios->data[bios->init_script_tbls_ptr + tmdssub * 2]); in clkcmptable()
81 scriptptr = ROM16(bios->data[clktable + 2 + compare_record_len * i]); in clkcmptable()
108 struct nvbios *bios = &drm->vbios; in call_lvds_manufacturer_script() local
109 …uint8_t sub = bios->data[bios->fp.xlated_entry + script] + (bios->fp.link_c_increment && dcbent->o… in call_lvds_manufacturer_script()
110 uint16_t scriptofs = ROM16(bios->data[bios->init_script_tbls_ptr + sub * 2]); in call_lvds_manufacturer_script()
115 if (!bios->fp.xlated_entry || !sub || !scriptofs) in call_lvds_manufacturer_script()
118 run_digital_op_script(dev, scriptofs, dcbent, head, bios->fp.dual_link); in call_lvds_manufacturer_script()
122 mdelay(ROM16(bios->data[bios->fp.xlated_entry + 7])); in call_lvds_manufacturer_script()
148 struct nvbios *bios = &drm->vbios; in run_lvds_table() local
162 scriptptr = ROM16(bios->data[bios->fp.lvdsmanufacturerpointer + 7 + outputset * 2]); in run_lvds_table()
166 scriptptr = ROM16(bios->data[bios->fp.lvdsmanufacturerpointer + 11 + outputset * 2]); in run_lvds_table()
169 clktable = bios->fp.lvdsmanufacturerpointer + 15; in run_lvds_table()
174 if (bios->fp.dual_link) in run_lvds_table()
176 if (bios->fp.if_is_24bit) in run_lvds_table()
182 if (bios->fp.dual_link) { in run_lvds_table()
187 if (bios->fp.strapless_is_24bit & cmpval_24bit) in run_lvds_table()
191 clktable = ROM16(bios->data[clktable]); in run_lvds_table()
196 scriptptr = clkcmptable(bios, clktable, pxclk); in run_lvds_table()
203 run_digital_op_script(dev, scriptptr, dcbent, head, bios->fp.dual_link); in run_lvds_table()
218 struct nvbios *bios = &drm->vbios; in call_lvds_script() local
219 uint8_t lvds_ver = bios->data[bios->fp.lvdsmanufacturerpointer]; in call_lvds_script()
223 if (bios->fp.last_script_invoc == (script << 1 | head) || !lvds_ver || in call_lvds_script()
227 if (!bios->fp.lvds_init_run) { in call_lvds_script()
228 bios->fp.lvds_init_run = true; in call_lvds_script()
232 if (script == LVDS_PANEL_ON && bios->fp.reset_after_pclk_change) in call_lvds_script()
234 if (script == LVDS_RESET && bios->fp.power_off_for_reset) in call_lvds_script()
247 bios->fp.last_script_invoc = (script << 1 | head); in call_lvds_script()
261 static int parse_lvds_manufacturer_table_header(struct drm_device *dev, struct nvbios *bios, struct… in parse_lvds_manufacturer_table_header() argument
275 if (bios->fp.lvdsmanufacturerpointer == 0x0) { in parse_lvds_manufacturer_table_header()
280 lvds_ver = bios->data[bios->fp.lvdsmanufacturerpointer]; in parse_lvds_manufacturer_table_header()
285 recordlen = bios->data[bios->fp.lvdsmanufacturerpointer + 1]; in parse_lvds_manufacturer_table_header()
288 headerlen = bios->data[bios->fp.lvdsmanufacturerpointer + 1]; in parse_lvds_manufacturer_table_header()
293 recordlen = bios->data[bios->fp.lvdsmanufacturerpointer + 2]; in parse_lvds_manufacturer_table_header()
296 headerlen = bios->data[bios->fp.lvdsmanufacturerpointer + 1]; in parse_lvds_manufacturer_table_header()
301 recordlen = bios->data[bios->fp.lvdsmanufacturerpointer + 2]; in parse_lvds_manufacturer_table_header()
318 get_fp_strap(struct drm_device *dev, struct nvbios *bios) in get_fp_strap() argument
332 if (bios->major_version < 5 && bios->data[0x48] & 0x4) in get_fp_strap()
344 static int parse_fp_mode_table(struct drm_device *dev, struct nvbios *bios) in parse_fp_mode_table() argument
352 if (bios->fp.fptablepointer == 0x0) { in parse_fp_mode_table()
355 bios->digital_min_front_porch = 0x4b; in parse_fp_mode_table()
359 fptable = &bios->data[bios->fp.fptablepointer]; in parse_fp_mode_table()
388 bios->digital_min_front_porch = fptable[4]; in parse_fp_mode_table()
398 if (!bios->is_mobile) /* !mobile only needs digital_min_front_porch */ in parse_fp_mode_table()
401 ret = parse_lvds_manufacturer_table_header(dev, bios, <h); in parse_fp_mode_table()
406 bios->fp.fpxlatetableptr = bios->fp.lvdsmanufacturerpointer + in parse_fp_mode_table()
408 bios->fp.xlatwidth = lth.recordlen; in parse_fp_mode_table()
410 if (bios->fp.fpxlatetableptr == 0x0) { in parse_fp_mode_table()
415 fpstrapping = get_fp_strap(dev, bios); in parse_fp_mode_table()
417 fpindex = bios->data[bios->fp.fpxlatetableptr + in parse_fp_mode_table()
418 fpstrapping * bios->fp.xlatwidth]; in parse_fp_mode_table()
427 bios->fp_no_ddc = fpstrapping != 0xf || fpindex != 0xf; in parse_fp_mode_table()
431 * panel using a strap-derived bios mode present. this condition in parse_fp_mode_table()
437 bios->fp.mode_ptr = bios->fp.fptablepointer + headerlen + in parse_fp_mode_table()
440 NV_INFO(drm, "BIOS FP mode: %dx%d (%dkHz pixel clock)\n", in parse_fp_mode_table()
441 ROM16(bios->data[bios->fp.mode_ptr + 11]) + 1, in parse_fp_mode_table()
442 ROM16(bios->data[bios->fp.mode_ptr + 25]) + 1, in parse_fp_mode_table()
443 ROM16(bios->data[bios->fp.mode_ptr + 7]) * 10); in parse_fp_mode_table()
451 struct nvbios *bios = &drm->vbios; in nouveau_bios_fp_mode() local
452 uint8_t *mode_entry = &bios->data[bios->fp.mode_ptr]; in nouveau_bios_fp_mode()
455 return bios->fp.mode_ptr; in nouveau_bios_fp_mode()
491 return bios->fp.mode_ptr; in nouveau_bios_fp_mode()
522 struct nvbios *bios = &drm->vbios; in nouveau_bios_parse_lvds_table() local
523 int fpstrapping = get_fp_strap(dev, bios), lvdsmanufacturerindex = 0; in nouveau_bios_parse_lvds_table()
526 int ret, chip_version = bios->chip_version; in nouveau_bios_parse_lvds_table()
528 ret = parse_lvds_manufacturer_table_header(dev, bios, <h); in nouveau_bios_parse_lvds_table()
534 lvdsmanufacturerindex = bios->data[ in nouveau_bios_parse_lvds_table()
535 bios->fp.fpxlatemanufacturertableptr + in nouveau_bios_parse_lvds_table()
549 (bios->legacy.lvds_single_a_script_ptr & 1) ? in nouveau_bios_parse_lvds_table()
551 if (pxclk >= bios->fp.duallink_transition_clk) in nouveau_bios_parse_lvds_table()
567 if (pxclk >= bios->fp.duallink_transition_clk) in nouveau_bios_parse_lvds_table()
587 …lvdsofs = bios->fp.xlated_entry = bios->fp.lvdsmanufacturerpointer + lth.headerlen + lth.recordlen… in nouveau_bios_parse_lvds_table()
590 bios->fp.power_off_for_reset = bios->data[lvdsofs] & 1; in nouveau_bios_parse_lvds_table()
591 bios->fp.reset_after_pclk_change = bios->data[lvdsofs] & 2; in nouveau_bios_parse_lvds_table()
592 bios->fp.dual_link = bios->data[lvdsofs] & 4; in nouveau_bios_parse_lvds_table()
593 bios->fp.link_c_increment = bios->data[lvdsofs] & 8; in nouveau_bios_parse_lvds_table()
594 *if_is_24bit = bios->data[lvdsofs] & 16; in nouveau_bios_parse_lvds_table()
602 bios->fp.power_off_for_reset = true; in nouveau_bios_parse_lvds_table()
603 bios->fp.reset_after_pclk_change = true; in nouveau_bios_parse_lvds_table()
609 bios->fp.dual_link = bios->data[lvdsofs] & 1; in nouveau_bios_parse_lvds_table()
610 bios->fp.if_is_24bit = bios->data[lvdsofs] & 2; in nouveau_bios_parse_lvds_table()
611 bios->fp.strapless_is_24bit = bios->data[bios->fp.lvdsmanufacturerpointer + 4]; in nouveau_bios_parse_lvds_table()
612 bios->fp.duallink_transition_clk = ROM16(bios->data[bios->fp.lvdsmanufacturerpointer + 5]) * 10; in nouveau_bios_parse_lvds_table()
618 bios->fp.dual_link = (pxclk >= bios->fp.duallink_transition_clk); in nouveau_bios_parse_lvds_table()
620 *dl = bios->fp.dual_link; in nouveau_bios_parse_lvds_table()
630 * This runs the TMDS regs setting code found on BIT bios cards in run_tmds_table()
638 struct nvbios *bios = &drm->vbios; in run_tmds_table() local
639 int cv = bios->chip_version; in run_tmds_table()
650 clktable = bios->tmds.output0_script_ptr; in run_tmds_table()
654 clktable = bios->tmds.output1_script_ptr; in run_tmds_table()
663 scriptptr = clkcmptable(bios, clktable, pxclk); in run_tmds_table()
679 static void parse_script_table_pointers(struct nvbios *bios, uint16_t offset) in parse_script_table_pointers() argument
693 bios->init_script_tbls_ptr = ROM16(bios->data[offset]); in parse_script_table_pointers()
696 static int parse_bit_A_tbl_entry(struct drm_device *dev, struct nvbios *bios, struct bit_entry *bit… in parse_bit_A_tbl_entry() argument
713 load_table_ptr = ROM16(bios->data[bitentry->offset]); in parse_bit_A_tbl_entry()
720 version = bios->data[load_table_ptr]; in parse_bit_A_tbl_entry()
728 headerlen = bios->data[load_table_ptr + 1]; in parse_bit_A_tbl_entry()
729 entrylen = bios->data[load_table_ptr + 2]; in parse_bit_A_tbl_entry()
730 num_entries = bios->data[load_table_ptr + 3]; in parse_bit_A_tbl_entry()
738 bios->dactestval = ROM32(bios->data[load_table_ptr + headerlen]) & 0x3ff; in parse_bit_A_tbl_entry()
743 static int parse_bit_display_tbl_entry(struct drm_device *dev, struct nvbios *bios, struct bit_entr… in parse_bit_display_tbl_entry() argument
760 bios->fp.fptablepointer = ROM16(bios->data[bitentry->offset + 2]); in parse_bit_display_tbl_entry()
765 static int parse_bit_init_tbl_entry(struct drm_device *dev, struct nvbios *bios, struct bit_entry *… in parse_bit_init_tbl_entry() argument
779 parse_script_table_pointers(bios, bitentry->offset); in parse_bit_init_tbl_entry()
783 static int parse_bit_i_tbl_entry(struct drm_device *dev, struct nvbios *bios, struct bit_entry *bit… in parse_bit_i_tbl_entry() argument
788 * offset + 0 (32 bits): BIOS version dword (as in B table) in parse_bit_i_tbl_entry()
789 * offset + 5 (8 bits): BIOS feature byte (same as for BMP?) in parse_bit_i_tbl_entry()
806 * bit 4 seems to indicate a mobile bios (doesn't suffer from BMP's in parse_bit_i_tbl_entry()
809 bios->feature_byte = bios->data[bitentry->offset + 5]; in parse_bit_i_tbl_entry()
810 bios->is_mobile = bios->feature_byte & FEATURE_MOBILE; in parse_bit_i_tbl_entry()
818 daccmpoffset = ROM16(bios->data[bitentry->offset + 13]); in parse_bit_i_tbl_entry()
830 dacver = bios->data[daccmpoffset]; in parse_bit_i_tbl_entry()
831 dacheaderlen = bios->data[daccmpoffset + 1]; in parse_bit_i_tbl_entry()
839 bios->dactestval = ROM32(bios->data[daccmpoffset + dacheaderlen]); in parse_bit_i_tbl_entry()
840 bios->tvdactestval = ROM32(bios->data[daccmpoffset + dacheaderlen + 4]); in parse_bit_i_tbl_entry()
845 static int parse_bit_lvds_tbl_entry(struct drm_device *dev, struct nvbios *bios, struct bit_entry *… in parse_bit_lvds_tbl_entry() argument
865 bios->fp.lvdsmanufacturerpointer = ROM16(bios->data[bitentry->offset]); in parse_bit_lvds_tbl_entry()
871 parse_bit_M_tbl_entry(struct drm_device *dev, struct nvbios *bios, in parse_bit_M_tbl_entry() argument
885 * Older bios versions don't have a sufficiently long table for in parse_bit_M_tbl_entry()
892 bios->ram_restrict_group_count = bios->data[bitentry->offset + 2]; in parse_bit_M_tbl_entry()
893 bios->ram_restrict_tbl_ptr = ROM16(bios->data[bitentry->offset + 3]); in parse_bit_M_tbl_entry()
895 bios->ram_restrict_group_count = bios->data[bitentry->offset + 0]; in parse_bit_M_tbl_entry()
896 bios->ram_restrict_tbl_ptr = ROM16(bios->data[bitentry->offset + 1]); in parse_bit_M_tbl_entry()
902 static int parse_bit_tmds_tbl_entry(struct drm_device *dev, struct nvbios *bios, struct bit_entry *… in parse_bit_tmds_tbl_entry() argument
935 tmdstableptr = ROM16(bios->data[bitentry->offset]); in parse_bit_tmds_tbl_entry()
942 bios->data[tmdstableptr] >> 4, bios->data[tmdstableptr] & 0xf); in parse_bit_tmds_tbl_entry()
945 if (bios->data[tmdstableptr] != 0x11) in parse_bit_tmds_tbl_entry()
952 script1 = ROM16(bios->data[tmdstableptr + 7]); in parse_bit_tmds_tbl_entry()
953 script2 = ROM16(bios->data[tmdstableptr + 9]); in parse_bit_tmds_tbl_entry()
954 if (bios->data[script1] != 'q' || bios->data[script2] != 'q') in parse_bit_tmds_tbl_entry()
957 bios->tmds.output0_script_ptr = ROM16(bios->data[tmdstableptr + 11]); in parse_bit_tmds_tbl_entry()
958 bios->tmds.output1_script_ptr = ROM16(bios->data[tmdstableptr + 13]); in parse_bit_tmds_tbl_entry()
974 struct nvbios *bios = &drm->vbios; in bit_table() local
977 if (bios->type != NVBIOS_BIT) in bit_table()
980 entries = bios->data[bios->offset + 10]; in bit_table()
981 entry = &bios->data[bios->offset + 12]; in bit_table()
992 entry += bios->data[bios->offset + 9]; in bit_table()
999 parse_bit_table(struct nvbios *bios, const uint16_t bitoffset, in parse_bit_table() argument
1002 struct drm_device *dev = bios->dev; in parse_bit_table()
1007 return table->parse_fn(dev, bios, &bitentry); in parse_bit_table()
1014 parse_bit_structure(struct nvbios *bios, const uint16_t bitoffset) in parse_bit_structure() argument
1020 * for use of bios->*_version or bios->feature_byte while parsing; in parse_bit_structure()
1022 * data from the image into the bios struct, thus no interdependencies in parse_bit_structure()
1024 ret = parse_bit_table(bios, bitoffset, &BIT_TABLE('i', i)); in parse_bit_structure()
1027 if (bios->major_version >= 0x60) /* g80+ */ in parse_bit_structure()
1028 parse_bit_table(bios, bitoffset, &BIT_TABLE('A', A)); in parse_bit_structure()
1029 parse_bit_table(bios, bitoffset, &BIT_TABLE('D', display)); in parse_bit_structure()
1030 ret = parse_bit_table(bios, bitoffset, &BIT_TABLE('I', init)); in parse_bit_structure()
1033 parse_bit_table(bios, bitoffset, &BIT_TABLE('M', M)); /* memory? */ in parse_bit_structure()
1034 parse_bit_table(bios, bitoffset, &BIT_TABLE('L', lvds)); in parse_bit_structure()
1035 parse_bit_table(bios, bitoffset, &BIT_TABLE('T', tmds)); in parse_bit_structure()
1040 static int parse_bmp_structure(struct drm_device *dev, struct nvbios *bios, unsigned int offset) in parse_bmp_structure() argument
1048 * offset + 10: BCD encoded BIOS version in parse_bmp_structure()
1050 * offset + 18: init script table pointer (for bios versions < 5.10h) in parse_bmp_structure()
1051 * offset + 20: extra init script table pointer (for bios in parse_bmp_structure()
1054 * offset + 24: memory init table pointer (used on early bios versions) in parse_bmp_structure()
1086 uint8_t *bmp = &bios->data[offset], bmp_version_major, bmp_version_minor; in parse_bmp_structure()
1091 bios->digital_min_front_porch = 0x4b; in parse_bmp_structure()
1092 bios->fmaxvco = 256000; in parse_bmp_structure()
1093 bios->fminvco = 128000; in parse_bmp_structure()
1094 bios->fp.duallink_transition_clk = 90000; in parse_bmp_structure()
1107 *(uint16_t *)&bios->data[0x36] = 0; in parse_bmp_structure()
1116 "Please send in your bios\n"); in parse_bmp_structure()
1169 * Bit 4 seems to indicate either a mobile bios or a quadro card -- in parse_bmp_structure()
1172 * bit 6 a tv bios. in parse_bmp_structure()
1174 bios->feature_byte = bmp[9]; in parse_bmp_structure()
1177 bios->old_style_init = true; in parse_bmp_structure()
1181 bios->init_script_tbls_ptr = ROM16(bmp[legacy_scripts_offset]); in parse_bmp_structure()
1182 bios->extra_init_script_tbl_ptr = ROM16(bmp[legacy_scripts_offset + 2]); in parse_bmp_structure()
1185 bios->legacy.mem_init_tbl_ptr = ROM16(bmp[24]); in parse_bmp_structure()
1186 bios->legacy.sdr_seq_tbl_ptr = ROM16(bmp[26]); in parse_bmp_structure()
1187 bios->legacy.ddr_seq_tbl_ptr = ROM16(bmp[28]); in parse_bmp_structure()
1193 bios->legacy.i2c_indices.crt = bios->data[legacy_i2c_offset]; in parse_bmp_structure()
1194 bios->legacy.i2c_indices.tv = bios->data[legacy_i2c_offset + 1]; in parse_bmp_structure()
1195 bios->legacy.i2c_indices.panel = bios->data[legacy_i2c_offset + 2]; in parse_bmp_structure()
1198 bios->fmaxvco = ROM32(bmp[67]); in parse_bmp_structure()
1199 bios->fminvco = ROM32(bmp[71]); in parse_bmp_structure()
1202 parse_script_table_pointers(bios, offset + 75); in parse_bmp_structure()
1204 bios->tmds.output0_script_ptr = ROM16(bmp[89]); in parse_bmp_structure()
1205 bios->tmds.output1_script_ptr = ROM16(bmp[91]); in parse_bmp_structure()
1211 bios->legacy.lvds_single_a_script_ptr = ROM16(bmp[95]); in parse_bmp_structure()
1214 bios->fp.fptablepointer = ROM16(bmp[105]); in parse_bmp_structure()
1215 bios->fp.fpxlatetableptr = ROM16(bmp[107]); in parse_bmp_structure()
1216 bios->fp.xlatwidth = 1; in parse_bmp_structure()
1219 bios->fp.lvdsmanufacturerpointer = ROM16(bmp[117]); in parse_bmp_structure()
1220 bios->fp.fpxlatemanufacturertableptr = ROM16(bmp[119]); in parse_bmp_structure()
1224 bios->pll_limit_tbl_ptr = ROM16(bmp[142]); in parse_bmp_structure()
1228 bios->fp.duallink_transition_clk = ROM16(bmp[156]) * 10; in parse_bmp_structure()
1754 fabricate_dcb_encoder_table(struct drm_device *dev, struct nvbios *bios) in fabricate_dcb_encoder_table() argument
1756 struct dcb_table *dcb = &bios->dcb; in fabricate_dcb_encoder_table()
1770 bios->legacy.i2c_indices.crt, 1, DCB_OUTPUT_B); in fabricate_dcb_encoder_table()
1772 if (nv04_tv_identify(dev, bios->legacy.i2c_indices.tv) >= 0) in fabricate_dcb_encoder_table()
1774 bios->legacy.i2c_indices.tv, in fabricate_dcb_encoder_table()
1777 else if (bios->tmds.output0_script_ptr || in fabricate_dcb_encoder_table()
1778 bios->tmds.output1_script_ptr) in fabricate_dcb_encoder_table()
1780 bios->legacy.i2c_indices.panel, in fabricate_dcb_encoder_table()
1820 dcb_fake_connectors(struct nvbios *bios) in dcb_fake_connectors() argument
1822 struct dcb_table *dcbt = &bios->dcb; in dcb_fake_connectors()
1829 * and, as usual, a blacklist of boards with bad bios data.. in dcb_fake_connectors()
1831 if (!nv_match_device(bios->dev, 0x0392, 0x107d, 0x20a2)) { in dcb_fake_connectors()
1859 u8 *conntab = olddcb_conntab(bios->dev); in dcb_fake_connectors()
1866 parse_dcb_table(struct drm_device *dev, struct nvbios *bios) in parse_dcb_table() argument
1869 struct dcb_table *dcb = &bios->dcb; in parse_dcb_table()
1876 if (bios->type == NVBIOS_BMP) { in parse_dcb_table()
1877 fabricate_dcb_encoder_table(dev, bios); in parse_dcb_table()
1908 dcb_fake_connectors(bios); in parse_dcb_table()
1912 static int load_nv17_hwsq_ucode_entry(struct drm_device *dev, struct nvbios *bios, uint16_t hwsq_of… in load_nv17_hwsq_ucode_entry() argument
1929 if (bios->data[hwsq_offset] <= entry) { in load_nv17_hwsq_ucode_entry()
1935 bytes_to_write = bios->data[hwsq_offset + 1]; in load_nv17_hwsq_ucode_entry()
1947 nvif_wr32(device, 0x00001304, ROM32(bios->data[hwsq_entry_offset])); in load_nv17_hwsq_ucode_entry()
1952 nvif_wr32(device, 0x00001400 + i, ROM32(bios->data[hwsq_entry_offset + i + 4])); in load_nv17_hwsq_ucode_entry()
1961 struct nvbios *bios) in load_nv17_hw_sequencer_ucode() argument
1976 hwsq_offset = findstr(bios->data, bios->length, hwsq_signature, sz); in load_nv17_hw_sequencer_ucode()
1981 return load_nv17_hwsq_ucode_entry(dev, bios, hwsq_offset + sz, 0); in load_nv17_hw_sequencer_ucode()
1987 struct nvbios *bios = &drm->vbios; in nouveau_bios_embedded_edid() local
1994 if (bios->fp.edid) in nouveau_bios_embedded_edid()
1995 return bios->fp.edid; in nouveau_bios_embedded_edid()
1998 newoffset = findstr(&bios->data[offset], searchlen, in nouveau_bios_embedded_edid()
2003 if (!nv_cksum(&bios->data[offset], EDID1_LEN)) in nouveau_bios_embedded_edid()
2010 NV_INFO(drm, "Found EDID in BIOS\n"); in nouveau_bios_embedded_edid()
2012 return bios->fp.edid = &bios->data[offset]; in nouveau_bios_embedded_edid()
2018 struct nvkm_bios *bios = nvxx_bios(drm); in NVInitVBIOS() local
2025 legacy->data = bios->data; in NVInitVBIOS()
2026 legacy->length = bios->size; in NVInitVBIOS()
2027 legacy->major_version = bios->version.major; in NVInitVBIOS()
2028 legacy->chip_version = bios->version.chip; in NVInitVBIOS()
2029 if (bios->bit_offset) { in NVInitVBIOS()
2031 legacy->offset = bios->bit_offset; in NVInitVBIOS()
2034 if (bios->bmp_offset) { in NVInitVBIOS()
2036 legacy->offset = bios->bmp_offset; in NVInitVBIOS()
2047 struct nvbios *bios = &drm->vbios; in nouveau_run_vbios_init() local
2049 /* Reset the BIOS head to 0. */ in nouveau_run_vbios_init()
2050 bios->state.crtchead = 0; in nouveau_run_vbios_init()
2052 if (bios->major_version < 5) /* BMP only */ in nouveau_run_vbios_init()
2053 load_nv17_hw_sequencer_ucode(dev, bios); in nouveau_run_vbios_init()
2055 if (bios->execute) { in nouveau_run_vbios_init()
2056 bios->fp.last_script_invoc = 0; in nouveau_run_vbios_init()
2057 bios->fp.lvds_init_run = false; in nouveau_run_vbios_init()
2084 struct nvbios *bios = &drm->vbios; in nouveau_bios_init() local
2096 ret = parse_dcb_table(dev, bios); in nouveau_bios_init()
2101 if (!bios->major_version) /* we don't run version 0 bios */ in nouveau_bios_init()
2105 bios->execute = false; in nouveau_bios_init()
2111 bios->execute = true; in nouveau_bios_init()
2119 if (bios->major_version < 5) in nouveau_bios_init()
2120 bios->is_mobile = NVReadVgaCrtc(dev, 0, NV_CIO_CRE_4B) & 0x40; in nouveau_bios_init()
2123 if (bios->is_mobile || bios->major_version >= 5) in nouveau_bios_init()
2124 ret = parse_fp_mode_table(dev, bios); in nouveau_bios_init()
2127 bios->execute = true; in nouveau_bios_init()