From 7ff9c5a719043916cbf054fb77c8bd2f935c1fae Mon Sep 17 00:00:00 2001 From: MilhouseVH Date: Mon, 4 Sep 2017 23:43:31 +0100 Subject: [PATCH] linux: update i915 passthrough colors patch --- ...99-i915-implement-passthrough-colors.patch | 67 +++---------------- 1 file changed, 11 insertions(+), 56 deletions(-) diff --git a/packages/linux/patches/default/linux-999-i915-implement-passthrough-colors.patch b/packages/linux/patches/default/linux-999-i915-implement-passthrough-colors.patch index d045f77a86..96c11d30bb 100644 --- a/packages/linux/patches/default/linux-999-i915-implement-passthrough-colors.patch +++ b/packages/linux/patches/default/linux-999-i915-implement-passthrough-colors.patch @@ -1,8 +1,8 @@ diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h -index 0a4b42d..b3aa01e 100644 +index e1f7c97..d99e406 100644 --- a/drivers/gpu/drm/i915/i915_drv.h +++ b/drivers/gpu/drm/i915/i915_drv.h -@@ -3896,6 +3896,7 @@ __raw_write(64, q) +@@ -4044,6 +4044,7 @@ __raw_write(64, q) #define INTEL_BROADCAST_RGB_AUTO 0 #define INTEL_BROADCAST_RGB_FULL 1 #define INTEL_BROADCAST_RGB_LIMITED 2 @@ -11,10 +11,10 @@ index 0a4b42d..b3aa01e 100644 static inline i915_reg_t i915_vgacntrl_reg(struct drm_i915_private *dev_priv) { diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h -index 344f238..1143551 100644 +index d93efb4..0de8a5e 100644 --- a/drivers/gpu/drm/i915/intel_drv.h +++ b/drivers/gpu/drm/i915/intel_drv.h -@@ -563,6 +563,13 @@ struct intel_crtc_state { +@@ -652,6 +652,13 @@ struct intel_crtc_state { */ bool limited_color_range; @@ -28,19 +28,11 @@ index 344f238..1143551 100644 /* Bitmask of encoder types (enum intel_output_type) * driven by the pipe. */ -@@ -840,6 +847,7 @@ struct intel_hdmi { - } dp_dual_mode; - bool limited_color_range; - bool color_range_auto; -+ bool color_range_video; - bool has_hdmi_sink; - bool has_audio; - enum hdmi_force_audio force_audio; diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c -index ebae2bd..ed925e5 100644 +index ec0779a..42fd4e5 100644 --- a/drivers/gpu/drm/i915/intel_hdmi.c +++ b/drivers/gpu/drm/i915/intel_hdmi.c -@@ -469,7 +469,7 @@ static void intel_hdmi_set_avi_infoframe(struct drm_encoder *encoder, +@@ -470,7 +470,7 @@ static void intel_hdmi_set_avi_infoframe(struct drm_encoder *encoder, } drm_hdmi_avi_infoframe_quant_range(&frame.avi, adjusted_mode, @@ -49,52 +41,15 @@ index ebae2bd..ed925e5 100644 HDMI_QUANTIZATION_RANGE_LIMITED : HDMI_QUANTIZATION_RANGE_FULL, intel_hdmi->rgb_quant_range_selectable); -@@ -1336,6 +1336,8 @@ bool intel_hdmi_compute_config(struct intel_encoder *encoder, - pipe_config->limited_color_range = - intel_hdmi->limited_color_range; +@@ -1370,6 +1370,8 @@ bool intel_hdmi_compute_config(struct intel_encoder *encoder, + intel_conn_state->broadcast_rgb == INTEL_BROADCAST_RGB_LIMITED; } -+ if (intel_hdmi->color_range_video) -+ pipe_config->video_color_range = true; ++ pipe_config->video_color_range = (intel_conn_state->broadcast_rgb == INTEL_BROADCAST_RGB_VIDEO); ++ if (adjusted_mode->flags & DRM_MODE_FLAG_DBLCLK) { pipe_config->pixel_multiplier = 2; -@@ -1593,25 +1595,35 @@ intel_hdmi_set_property(struct drm_connector *connector, - if (property == dev_priv->broadcast_rgb_property) { - bool old_auto = intel_hdmi->color_range_auto; - bool old_range = intel_hdmi->limited_color_range; -+ bool old_range_video = intel_hdmi->color_range_video; - - switch (val) { - case INTEL_BROADCAST_RGB_AUTO: - intel_hdmi->color_range_auto = true; -+ intel_hdmi->color_range_video = false; - break; - case INTEL_BROADCAST_RGB_FULL: - intel_hdmi->color_range_auto = false; - intel_hdmi->limited_color_range = false; -+ intel_hdmi->color_range_video = false; - break; - case INTEL_BROADCAST_RGB_LIMITED: - intel_hdmi->color_range_auto = false; - intel_hdmi->limited_color_range = true; -+ intel_hdmi->color_range_video = false; -+ break; -+ case INTEL_BROADCAST_RGB_VIDEO: -+ intel_hdmi->color_range_auto = false; -+ intel_hdmi->limited_color_range = false; -+ intel_hdmi->color_range_video = true; - break; - default: - return -EINVAL; - } - - if (old_auto == intel_hdmi->color_range_auto && -- old_range == intel_hdmi->limited_color_range) -+ old_range == intel_hdmi->limited_color_range && -+ old_range_video == intel_hdmi->color_range_video) - return 0; - - goto done; + clock_8bpc *= 2; diff --git a/drivers/gpu/drm/i915/intel_modes.c b/drivers/gpu/drm/i915/intel_modes.c index 951e834..d817558 100644 --- a/drivers/gpu/drm/i915/intel_modes.c