drm/amd/display: debug option to disable color module fucntionality
authorTony Cheng <tony.cheng@amd.com>
Fri, 23 Dec 2016 12:20:53 +0000 (07:20 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 26 Sep 2017 21:07:38 +0000 (17:07 -0400)
Signed-off-by: Tony Cheng <tony.cheng@amd.com>
Reviewed-by: Yongqiang Sun <yongqiang.sun@amd.com>
Acked-by: Harry Wentland <Harry.Wentland@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/core/dc.c
drivers/gpu/drm/amd/display/dc/dc.h

index e368d66..aca13d1 100644 (file)
@@ -1452,8 +1452,11 @@ void dc_update_surfaces_for_target(struct dc *dc, struct dc_surface_update *upda
                                }
                        }
 
-                       if (updates[i].gamma && updates[i].gamma !=
-                               surface->public.gamma_correction) {
+                       if (dc->debug.disable_color_module)
+                               continue;  /* skip below color updates */
+
+                       if (updates[i].gamma &&
+                               updates[i].gamma != surface->public.gamma_correction) {
                                if (surface->public.gamma_correction != NULL)
                                        dc_gamma_release(surface->public.
                                                        gamma_correction);
@@ -1464,8 +1467,7 @@ void dc_update_surfaces_for_target(struct dc *dc, struct dc_surface_update *upda
                        }
 
                        if (updates[i].in_transfer_func &&
-                                       updates[i].in_transfer_func !=
-                                       surface->public.in_transfer_func) {
+                               updates[i].in_transfer_func != surface->public.in_transfer_func) {
                                if (surface->public.in_transfer_func != NULL)
                                        dc_transfer_func_release(
                                                        surface->public.
@@ -1478,8 +1480,7 @@ void dc_update_surfaces_for_target(struct dc *dc, struct dc_surface_update *upda
                        }
 
                        if (updates[i].out_transfer_func &&
-                                       updates[i].out_transfer_func !=
-                                       stream->public.out_transfer_func) {
+                               updates[i].out_transfer_func != stream->public.out_transfer_func) {
                                if (stream->public.out_transfer_func != NULL)
                                        dc_transfer_func_release(
                                                        stream->public.
index 823a872..23f41b6 100644 (file)
@@ -148,6 +148,7 @@ struct dc_debug {
        bool disable_clock_gate;
        bool disable_dmcu;
        bool disable_hdmi_deep_color;
+       bool disable_color_module;
 };
 
 struct dc {