All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/2] drm/i915/icl: Fix for setting HDMI 10/12 bit Deep color correctly
@ 2019-03-31  9:42 Aditya Swarup
  2019-03-31  9:42 ` [PATCH 2/2] drm/i915: Add N & CTS values for 10/12 bit deep color Aditya Swarup
                   ` (4 more replies)
  0 siblings, 5 replies; 8+ messages in thread
From: Aditya Swarup @ 2019-03-31  9:42 UTC (permalink / raw)
  To: intel-gfx; +Cc: Jani Nikula

From: Clinton Taylor <Clinton.A.Taylor@intel.com>

Changing settings from 8 bit to 10/12 bit deep color(& vice versa)
doesn't work correctly using xrandr max bpc property. Fix the
driver for applying correct settings.

Test:
xrandr --output HDMI-2 --mode 3840x2160 --rate 30 --set "max bpc" 10
and then
xrandr --output HDMI-2 --mode 3840x2160 --rate 30 --set "max bpc" 8

Signed-off-by: Clinton Taylor <Clinton.A.Taylor@intel.com>
Signed-off-by: Aditya Swarup <aditya.swarup@intel.com>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: Jani Nikula <jani.nikula@intel.com>
Cc: Manasi Navare <manasi.d.navare@intel.com>
---
Fixes changing modes from 8 bit to 10/12 bit deep color. 

 drivers/gpu/drm/i915/intel_hdmi.c | 31 +++++++++++++++----------------
 1 file changed, 15 insertions(+), 16 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c
index 5ccb305a6e1c..4760462f84ca 100644
--- a/drivers/gpu/drm/i915/intel_hdmi.c
+++ b/drivers/gpu/drm/i915/intel_hdmi.c
@@ -963,7 +963,9 @@ static void intel_hdmi_compute_gcp_infoframe(struct intel_encoder *encoder,
 		intel_hdmi_infoframe_enable(HDMI_PACKET_TYPE_GENERAL_CONTROL);
 
 	/* Indicate color depth whenever the sink supports deep color */
-	if (hdmi_sink_is_deep_color(conn_state))
+
+	if (hdmi_sink_is_deep_color(conn_state) &&
+	    (crtc_state->pipe_bpp > 24))
 		crtc_state->infoframes.gcp |= GCP_COLOR_INDICATION;
 
 	/* Enable default_phase whenever the display mode is suitably aligned */
@@ -2260,6 +2262,7 @@ int intel_hdmi_compute_config(struct intel_encoder *encoder,
 	int clock_8bpc = pipe_config->base.adjusted_mode.crtc_clock;
 	int clock_10bpc = clock_8bpc * 5 / 4;
 	int clock_12bpc = clock_8bpc * 3 / 2;
+	int dc_clock = clock_12bpc;
 	int desired_bpp;
 	bool force_dvi = intel_conn_state->force_audio == HDMI_AUDIO_OFF_DVI;
 
@@ -2314,22 +2317,18 @@ int intel_hdmi_compute_config(struct intel_encoder *encoder,
 	 * Note that g4x/vlv don't support 12bpc hdmi outputs. We also need
 	 * to check that the higher clock still fits within limits.
 	 */
-	if (hdmi_deep_color_possible(pipe_config, 12) &&
-	    hdmi_port_clock_valid(intel_hdmi, clock_12bpc,
+	if (pipe_config->pipe_bpp == 30)
+		dc_clock = clock_10bpc;
+
+	if (hdmi_deep_color_possible(pipe_config, pipe_config->pipe_bpp / 3) &&
+	    hdmi_port_clock_valid(intel_hdmi, dc_clock,
 				  true, force_dvi) == MODE_OK) {
-		DRM_DEBUG_KMS("picking bpc to 12 for HDMI output\n");
-		desired_bpp = 12*3;
-
-		/* Need to adjust the port link by 1.5x for 12bpc. */
-		pipe_config->port_clock = clock_12bpc;
-	} else if (hdmi_deep_color_possible(pipe_config, 10) &&
-		   hdmi_port_clock_valid(intel_hdmi, clock_10bpc,
-					 true, force_dvi) == MODE_OK) {
-		DRM_DEBUG_KMS("picking bpc to 10 for HDMI output\n");
-		desired_bpp = 10 * 3;
-
-		/* Need to adjust the port link by 1.25x for 10bpc. */
-		pipe_config->port_clock = clock_10bpc;
+		DRM_DEBUG_KMS("picking bpc to %d for HDMI output\n",
+				 pipe_config->pipe_bpp / 3);
+		desired_bpp = pipe_config->pipe_bpp;
+
+		/* Need to adjust the port link dc modes. */
+		pipe_config->port_clock = dc_clock;
 	} else {
 		DRM_DEBUG_KMS("picking bpc to 8 for HDMI output\n");
 		desired_bpp = 8*3;
-- 
2.17.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 8+ messages in thread
* [PATCH 0/2] Set correct values for N in deep color mode
@ 2019-06-27 21:44 Aditya Swarup
  2019-06-27 21:44 ` [PATCH 2/2] drm/i915: Add N & CTS values for 10/12 bit deep color Aditya Swarup
  0 siblings, 1 reply; 8+ messages in thread
From: Aditya Swarup @ 2019-06-27 21:44 UTC (permalink / raw)
  To: intel-gfx

Patch series to set correct values for N based on port clock in deep
color mode. Currently, the hardware doesn't set the correct N in deep
color mode. 

Aditya Swarup (2):
  drm/i915: Use port clock to set correct N value
  drm/i915: Add N & CTS values for 10/12 bit deep color

 drivers/gpu/drm/i915/display/intel_audio.c | 81 ++++++++++++++++++----
 1 file changed, 68 insertions(+), 13 deletions(-)

-- 
2.17.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2019-06-27 21:49 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-03-31  9:42 [PATCH 1/2] drm/i915/icl: Fix for setting HDMI 10/12 bit Deep color correctly Aditya Swarup
2019-03-31  9:42 ` [PATCH 2/2] drm/i915: Add N & CTS values for 10/12 bit deep color Aditya Swarup
2019-04-01 10:19   ` Jani Nikula
2019-03-31 10:19 ` ✗ Fi.CI.CHECKPATCH: warning for series starting with [1/2] drm/i915/icl: Fix for setting HDMI 10/12 bit Deep color correctly Patchwork
2019-03-31 10:48 ` ✓ Fi.CI.BAT: success " Patchwork
2019-03-31 12:55 ` ✓ Fi.CI.IGT: " Patchwork
2019-04-01 10:15 ` [PATCH 1/2] " Jani Nikula
  -- strict thread matches above, loose matches on Subject: below --
2019-06-27 21:44 [PATCH 0/2] Set correct values for N in deep color mode Aditya Swarup
2019-06-27 21:44 ` [PATCH 2/2] drm/i915: Add N & CTS values for 10/12 bit deep color Aditya Swarup

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.