libpayload: cbgfx: Run cbgfx_init() before we need it for draw_box()
calculate_color() uses the 'fbinfo' global that is initialized by cbgfx_init(), so we need to run the latter before we can run the former or we get a null pointer access. Change-Id: I73ca8e20ca36f64d699379d504fd41dc2084f157 Signed-off-by: Julius Werner <jwerner@chromium.org> Reviewed-on: https://review.coreboot.org/c/coreboot/+/33855 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Patrick Rudolph <siro@das-labor.org> Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net> Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org>
This commit is contained in:
parent
c22ebc9339
commit
ce4d39d2d7
|
@ -183,6 +183,10 @@ int draw_box(const struct rect *box, const struct rgb_color *rgb)
|
||||||
struct vector top_left;
|
struct vector top_left;
|
||||||
struct vector size;
|
struct vector size;
|
||||||
struct vector p, t;
|
struct vector p, t;
|
||||||
|
|
||||||
|
if (cbgfx_init())
|
||||||
|
return CBGFX_ERROR_INIT;
|
||||||
|
|
||||||
const uint32_t color = calculate_color(rgb, 0);
|
const uint32_t color = calculate_color(rgb, 0);
|
||||||
const struct scale top_left_s = {
|
const struct scale top_left_s = {
|
||||||
.x = { .n = box->offset.x, .d = CANVAS_SCALE, },
|
.x = { .n = box->offset.x, .d = CANVAS_SCALE, },
|
||||||
|
@ -193,9 +197,6 @@ int draw_box(const struct rect *box, const struct rgb_color *rgb)
|
||||||
.y = { .n = box->size.y, .d = CANVAS_SCALE, }
|
.y = { .n = box->size.y, .d = CANVAS_SCALE, }
|
||||||
};
|
};
|
||||||
|
|
||||||
if (cbgfx_init())
|
|
||||||
return CBGFX_ERROR_INIT;
|
|
||||||
|
|
||||||
transform_vector(&top_left, &canvas.size, &top_left_s, &canvas.offset);
|
transform_vector(&top_left, &canvas.size, &top_left_s, &canvas.offset);
|
||||||
transform_vector(&size, &canvas.size, &size_s, &vzero);
|
transform_vector(&size, &canvas.size, &size_s, &vzero);
|
||||||
add_vectors(&t, &top_left, &size);
|
add_vectors(&t, &top_left, &size);
|
||||||
|
|
Loading…
Reference in New Issue