drm/i915: Use intel_hdmi_port_clock() more
Replace the hand rolled intel_hdmi_port_clock() stuff with the real thing. Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20210204020846.2094-2-ville.syrjala@linux.intel.com Reviewed-by: Mika Kahola <mika.kahola@intel.com>
This commit is contained in:
parent
6499f925dd
commit
3c4442aa22
@ -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)
|
||||
|
Loading…
Reference in New Issue
Block a user