Commit 3c4442aa authored by Ville Syrjälä's avatar Ville Syrjälä
Browse files

drm/i915: Use intel_hdmi_port_clock() more



Replace the hand rolled intel_hdmi_port_clock() stuff
with the real thing.

Signed-off-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20210204020846.2094-2-ville.syrjala@linux.intel.com


Reviewed-by: default avatarMika Kahola <mika.kahola@intel.com>
parent 6499f925
Loading
Loading
Loading
Loading
+14 −13
Original line number Diff line number Diff line
@@ -2233,6 +2233,16 @@ hdmi_port_clock_valid(struct intel_hdmi *hdmi,
	return MODE_OK;
}

static int intel_hdmi_port_clock(int clock, int bpc)
{
	/*
	 * Need to adjust the port link by:
	 *  1.5x for 12bpc
	 *  1.25x for 10bpc
	 */
	return clock * bpc / 8;
}

static enum drm_mode_status
intel_hdmi_mode_valid(struct drm_connector *connector,
		      struct drm_display_mode *mode)
@@ -2264,17 +2274,18 @@ intel_hdmi_mode_valid(struct drm_connector *connector,
		clock /= 2;

	/* check if we can do 8bpc */
	status = hdmi_port_clock_valid(hdmi, clock, true, has_hdmi_sink);
	status = hdmi_port_clock_valid(hdmi, intel_hdmi_port_clock(clock, 8),
				       true, has_hdmi_sink);

	if (has_hdmi_sink) {
		/* if we can't do 8bpc we may still be able to do 12bpc */
		if (status != MODE_OK && !HAS_GMCH(dev_priv))
			status = hdmi_port_clock_valid(hdmi, clock * 3 / 2,
			status = hdmi_port_clock_valid(hdmi, intel_hdmi_port_clock(clock, 12),
						       true, has_hdmi_sink);

		/* if we can't do 8,12bpc we may still be able to do 10bpc */
		if (status != MODE_OK && INTEL_GEN(dev_priv) >= 11)
			status = hdmi_port_clock_valid(hdmi, clock * 5 / 4,
			status = hdmi_port_clock_valid(hdmi, intel_hdmi_port_clock(clock, 10),
						       true, has_hdmi_sink);
	}
	if (status != MODE_OK)
@@ -2382,16 +2393,6 @@ intel_hdmi_ycbcr420_config(struct intel_crtc_state *crtc_state,
	return intel_pch_panel_fitting(crtc_state, conn_state);
}

static int intel_hdmi_port_clock(int clock, int bpc)
{
	/*
	 * Need to adjust the port link by:
	 *  1.5x for 12bpc
	 *  1.25x for 10bpc
	 */
	return clock * bpc / 8;
}

static int intel_hdmi_compute_bpc(struct intel_encoder *encoder,
				  struct intel_crtc_state *crtc_state,
				  int clock)