[Intel-gfx] [PATCH v3 3/6] drm/i915: Check encoder type in enc_to_dig_port()
Imre Deak
imre.deak at intel.com
Fri Feb 24 13:38:48 UTC 2017
On Wed, Feb 22, 2017 at 08:34:28AM +0200, Ander Conselvan de Oliveira wrote:
> Don't allow conversion from arbitraty encoder types to a digital port.
> Calling enc_to_dig_port() with the wrong encoder may seem far fetched,
> but certain paths of the ddi code may be called with hasell's analog
> encoder and the conversion is wrong for DP mst encoders too, so safe
> guard against it.
>
> Signed-off-by: Ander Conselvan de Oliveira <ander.conselvan.de.oliveira at intel.com>
> ---
> drivers/gpu/drm/i915/intel_drv.h | 13 ++++++++++++-
> 1 file changed, 12 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
> index a3cf866..2011651 100644
> --- a/drivers/gpu/drm/i915/intel_drv.h
> +++ b/drivers/gpu/drm/i915/intel_drv.h
> @@ -1121,7 +1121,18 @@ intel_attached_encoder(struct drm_connector *connector)
> static inline struct intel_digital_port *
> enc_to_dig_port(struct drm_encoder *encoder)
> {
> - return container_of(encoder, struct intel_digital_port, base.base);
> + struct intel_encoder *intel_encoder = to_intel_encoder(encoder);
> +
> + switch (intel_encoder->type) {
> + case INTEL_OUTPUT_DP:
> + case INTEL_OUTPUT_EDP:
> + case INTEL_OUTPUT_HDMI:
> + case INTEL_OUTPUT_UNKNOWN:
Nitpick: for UNKNOWN could've added a WARN_ON(!DDI) check. Either way:
Reviewed-by: Imre Deak <imre.deak at intel.com>
> + return container_of(encoder, struct intel_digital_port,
> + base.base);
> + default:
> + return NULL;
> + }
> }
>
> static inline struct intel_dp_mst_encoder *
> --
> 2.9.3
>
More information about the Intel-gfx
mailing list