Commit 28ec70f7 authored by Ben Skeggs's avatar Ben Skeggs

drm/nouveau/bios: suppress some parser errors when dry-running scripts

Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
parent 3f196a04
...@@ -64,27 +64,33 @@ init_exec_force(struct nvbios_init *init, bool exec) ...@@ -64,27 +64,33 @@ init_exec_force(struct nvbios_init *init, bool exec)
static inline int static inline int
init_or(struct nvbios_init *init) init_or(struct nvbios_init *init)
{ {
if (init->outp) if (init_exec(init)) {
return ffs(init->outp->or) - 1; if (init->outp)
error("script needs OR!!\n"); return ffs(init->outp->or) - 1;
error("script needs OR!!\n");
}
return 0; return 0;
} }
static inline int static inline int
init_link(struct nvbios_init *init) init_link(struct nvbios_init *init)
{ {
if (init->outp) if (init_exec(init)) {
return !(init->outp->sorconf.link & 1); if (init->outp)
error("script needs OR link\n"); return !(init->outp->sorconf.link & 1);
error("script needs OR link\n");
}
return 0; return 0;
} }
static inline int static inline int
init_crtc(struct nvbios_init *init) init_crtc(struct nvbios_init *init)
{ {
if (init->crtc >= 0) if (init_exec(init)) {
return init->crtc; if (init->crtc >= 0)
error("script needs crtc\n"); return init->crtc;
error("script needs crtc\n");
}
return 0; return 0;
} }
...@@ -92,16 +98,21 @@ static u8 ...@@ -92,16 +98,21 @@ static u8
init_conn(struct nvbios_init *init) init_conn(struct nvbios_init *init)
{ {
struct nouveau_bios *bios = init->bios; struct nouveau_bios *bios = init->bios;
u8 ver, len;
u16 conn;
if (init->outp) { if (init_exec(init)) {
u8 ver, len; if (init->outp) {
u16 conn = dcb_conn(bios, init->outp->connector, &ver, &len); conn = init->outp->connector;
if (conn) conn = dcb_conn(bios, conn, &ver, &len);
return nv_ro08(bios, conn); if (conn)
return nv_ro08(bios, conn);
}
error("script needs connector type\n");
} }
error("script needs connector type\n"); return 0xff;
return 0x00;
} }
static inline u32 static inline u32
...@@ -227,7 +238,8 @@ init_i2c(struct nvbios_init *init, int index) ...@@ -227,7 +238,8 @@ init_i2c(struct nvbios_init *init, int index)
} else } else
if (index < 0) { if (index < 0) {
if (!init->outp) { if (!init->outp) {
error("script needs output for i2c\n"); if (init_exec(init))
error("script needs output for i2c\n");
return NULL; return NULL;
} }
...@@ -544,7 +556,8 @@ init_tmds_reg(struct nvbios_init *init, u8 tmds) ...@@ -544,7 +556,8 @@ init_tmds_reg(struct nvbios_init *init, u8 tmds)
return 0x6808b0 + dacoffset; return 0x6808b0 + dacoffset;
} }
error("tmds opcodes need dcb\n"); if (init_exec(init))
error("tmds opcodes need dcb\n");
} else { } else {
if (tmds < ARRAY_SIZE(pramdac_table)) if (tmds < ARRAY_SIZE(pramdac_table))
return pramdac_table[tmds]; return pramdac_table[tmds];
...@@ -792,7 +805,8 @@ init_dp_condition(struct nvbios_init *init) ...@@ -792,7 +805,8 @@ init_dp_condition(struct nvbios_init *init)
break; break;
} }
warn("script needs dp output table data\n"); if (init_exec(init))
warn("script needs dp output table data\n");
break; break;
case 5: case 5:
if (!(init_rdauxr(init, 0x0d) & 1)) if (!(init_rdauxr(init, 0x0d) & 1))
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment