Commit b5d025ef authored by Benoit Parrot's avatar Benoit Parrot Committed by Tomi Valkeinen

drm/omap: dispc: disp_wb_setup to check return code

When dispc_wb_setup() calls dispc_ovl_setup_common() it does not
check for failure but instead keeps on partially setting up WB.
This causes the WB H/W to be partially initialized and yield
unexpected behavior.

Make sure return code is successful before proceeding.
Signed-off-by: default avatarBenoit Parrot <bparrot@ti.com>
Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
Reviewed-by: default avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>
parent 249e3da9
...@@ -2783,6 +2783,8 @@ int dispc_wb_setup(struct dispc_device *dispc, ...@@ -2783,6 +2783,8 @@ int dispc_wb_setup(struct dispc_device *dispc,
wi->height, wi->fourcc, wi->rotation, zorder, wi->height, wi->fourcc, wi->rotation, zorder,
wi->pre_mult_alpha, global_alpha, wi->rotation_type, wi->pre_mult_alpha, global_alpha, wi->rotation_type,
replication, vm, mem_to_mem); replication, vm, mem_to_mem);
if (r)
return r;
switch (wi->fourcc) { switch (wi->fourcc) {
case DRM_FORMAT_RGB565: case DRM_FORMAT_RGB565:
...@@ -2823,7 +2825,7 @@ int dispc_wb_setup(struct dispc_device *dispc, ...@@ -2823,7 +2825,7 @@ int dispc_wb_setup(struct dispc_device *dispc,
REG_FLD_MOD(dispc, DISPC_OVL_ATTRIBUTES2(plane), wbdelay, 7, 0); REG_FLD_MOD(dispc, DISPC_OVL_ATTRIBUTES2(plane), wbdelay, 7, 0);
} }
return r; return 0;
} }
static int dispc_ovl_enable(struct dispc_device *dispc, static int dispc_ovl_enable(struct dispc_device *dispc,
......
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