Re: [PATCH v2 05/14] drm/sti: Try to fix up the tvout possible clones

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



2018-06-18 14:38 GMT+02:00 Ville Syrjala <ville.syrjala@xxxxxxxxxxxxxxx>:
> From: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx>
>
> The current possible_clones setup doesn't look sensible. I'm assuming
> the 0 and 1 are supposed to refer to the indexes of the hdmi and hda
> encoders? So it kinda looks like we want hda+hdmi cloning, but then
> dvo also claims to be cloneable with hdmi, but hdmi won't recipricate.
>
> Benjamin tells me all encoders should be cloneable with each other,
> so let's fix up the masks to indicate that.
>
> Cc: Benjamin Gaignard <benjamin.gaignard@xxxxxxxxxx>
> Cc: Vincent Abriou <vincent.abriou@xxxxxx>
> Signed-off-by: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx>

Acked-by: Benjamin Gaignard <benjamin.gaignard@xxxxxxxxxx>

Thanks

> ---
>  drivers/gpu/drm/sti/sti_tvout.c | 10 +++++++---
>  1 file changed, 7 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/sti/sti_tvout.c b/drivers/gpu/drm/sti/sti_tvout.c
> index 7d495307fe79..8bca519b3bfe 100644
> --- a/drivers/gpu/drm/sti/sti_tvout.c
> +++ b/drivers/gpu/drm/sti/sti_tvout.c
> @@ -668,7 +668,6 @@ sti_tvout_create_dvo_encoder(struct drm_device *dev,
>         drm_encoder = &encoder->encoder;
>
>         drm_encoder->possible_crtcs = ENCODER_CRTC_MASK;
> -       drm_encoder->possible_clones = 1 << 0;
>
>         drm_encoder_init(dev, drm_encoder,
>                          &sti_tvout_encoder_funcs, DRM_MODE_ENCODER_LVDS,
> @@ -721,7 +720,6 @@ static struct drm_encoder *sti_tvout_create_hda_encoder(struct drm_device *dev,
>         drm_encoder = &encoder->encoder;
>
>         drm_encoder->possible_crtcs = ENCODER_CRTC_MASK;
> -       drm_encoder->possible_clones = 1 << 0;
>
>         drm_encoder_init(dev, drm_encoder,
>                         &sti_tvout_encoder_funcs, DRM_MODE_ENCODER_DAC, NULL);
> @@ -770,7 +768,6 @@ static struct drm_encoder *sti_tvout_create_hdmi_encoder(struct drm_device *dev,
>         drm_encoder = &encoder->encoder;
>
>         drm_encoder->possible_crtcs = ENCODER_CRTC_MASK;
> -       drm_encoder->possible_clones = 1 << 1;
>
>         drm_encoder_init(dev, drm_encoder,
>                         &sti_tvout_encoder_funcs, DRM_MODE_ENCODER_TMDS, NULL);
> @@ -786,6 +783,13 @@ static void sti_tvout_create_encoders(struct drm_device *dev,
>         tvout->hdmi = sti_tvout_create_hdmi_encoder(dev, tvout);
>         tvout->hda = sti_tvout_create_hda_encoder(dev, tvout);
>         tvout->dvo = sti_tvout_create_dvo_encoder(dev, tvout);
> +
> +       tvout->hdmi->possible_clones = drm_encoder_mask(tvout->hdmi) |
> +               drm_encoder_mask(tvout->hda) | drm_encoder_mask(tvout->dvo);
> +       tvout->hda->possible_clones = drm_encoder_mask(tvout->hdmi) |
> +               drm_encoder_mask(tvout->hda) | drm_encoder_mask(tvout->dvo);
> +       tvout->dvo->possible_clones = drm_encoder_mask(tvout->hdmi) |
> +               drm_encoder_mask(tvout->hda) | drm_encoder_mask(tvout->dvo);
>  }
>
>  static void sti_tvout_destroy_encoders(struct sti_tvout *tvout)
> --
> 2.16.4
>



-- 
Benjamin Gaignard

Graphic Study Group

Linaro.org │ Open source software for ARM SoCs

Follow Linaro: Facebook | Twitter | Blog
_______________________________________________
Intel-gfx mailing list
Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/intel-gfx




[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux