drm/i915: Simplify hdmi_12bpc_possible()
With the output_types bitmask there's no need to loop through the encoders anymore when checking for HDMI+non-HDMI cloning. v2: Use output_types bitmask v3: Fix the logic to really check that there are no non-HDMI encoders Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> (v2) Link: http://patchwork.freedesktop.org/patch/msgid/1466621833-5054-11-git-send-email-ville.syrjala@linux.intel.com
This commit is contained in:
parent
d7edc4e57b
commit
3f1c928f92
|
@ -1273,33 +1273,15 @@ intel_hdmi_mode_valid(struct drm_connector *connector,
|
|||
static bool hdmi_12bpc_possible(struct intel_crtc_state *crtc_state)
|
||||
{
|
||||
struct drm_device *dev = crtc_state->base.crtc->dev;
|
||||
struct drm_atomic_state *state;
|
||||
struct intel_encoder *encoder;
|
||||
struct drm_connector *connector;
|
||||
struct drm_connector_state *connector_state;
|
||||
int count = 0, count_hdmi = 0;
|
||||
int i;
|
||||
|
||||
if (HAS_GMCH_DISPLAY(dev))
|
||||
return false;
|
||||
|
||||
state = crtc_state->base.state;
|
||||
|
||||
for_each_connector_in_state(state, connector, connector_state, i) {
|
||||
if (connector_state->crtc != crtc_state->base.crtc)
|
||||
continue;
|
||||
|
||||
encoder = to_intel_encoder(connector_state->best_encoder);
|
||||
|
||||
count_hdmi += encoder->type == INTEL_OUTPUT_HDMI;
|
||||
count++;
|
||||
}
|
||||
|
||||
/*
|
||||
* HDMI 12bpc affects the clocks, so it's only possible
|
||||
* when not cloning with other encoder types.
|
||||
*/
|
||||
return count_hdmi > 0 && count_hdmi == count;
|
||||
return crtc_state->output_types == 1 << INTEL_OUTPUT_HDMI;
|
||||
}
|
||||
|
||||
bool intel_hdmi_compute_config(struct intel_encoder *encoder,
|
||||
|
|
Loading…
Reference in New Issue