From: Benoit Parrot <bpar...@ti.com>

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: Benoit Parrot <bpar...@ti.com>
Signed-off-by: Tomi Valkeinen <tomi.valkei...@ti.com>
---
 drivers/gpu/drm/omapdrm/dss/dispc.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/omapdrm/dss/dispc.c 
b/drivers/gpu/drm/omapdrm/dss/dispc.c
index 679931e108f9..30bcee6580f5 100644
--- a/drivers/gpu/drm/omapdrm/dss/dispc.c
+++ b/drivers/gpu/drm/omapdrm/dss/dispc.c
@@ -2678,6 +2678,8 @@ int dispc_wb_setup(const struct omap_dss_writeback_info 
*wi,
                wi->height, wi->fourcc, wi->rotation, zorder,
                wi->pre_mult_alpha, global_alpha, wi->rotation_type,
                replication, vm, mem_to_mem);
+       if (r)
+               return r;
 
        switch (wi->fourcc) {
        case DRM_FORMAT_RGB565:
@@ -2718,7 +2720,7 @@ int dispc_wb_setup(const struct omap_dss_writeback_info 
*wi,
                REG_FLD_MOD(DISPC_OVL_ATTRIBUTES2(plane), wbdelay, 7, 0);
        }
 
-       return r;
+       return 0;
 }
 
 static int dispc_ovl_enable(enum omap_plane_id plane, bool enable)
-- 
Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki.
Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Reply via email to