[Intel-gfx] [PATCH 3/3] drm/i915: Fix enc_to_dig_port for MST encoders
Pandiyan, Dhinakaran
dhinakaran.pandiyan at intel.com
Fri Aug 5 17:48:17 UTC 2016
On Thu, 2016-08-04 at 19:51 -0400, Lyude wrote:
> There was some discussion that happened on the original version of this
> patch:
>
> https://patchwork.kernel.org/patch/8960831/
>
> The general consensus was while this fixed the issue, it probably isn't
> the way we want to fix it. It would be a better idea just to have
> enc_to_mst_primary() or something along those lines, or just use
> enc_to_mst()->primary explicitly.
>
Thanks for the pointer and the review.
It seems like the concerns were about DP MST audio not working anyway. I
wonder with DP MST audio support coming up
(https://patchwork.kernel.org/patch/9260671/) , if the patch is more
acceptable.
> On Tue, 2016-08-02 at 18:46 -0700, Dhinakaran Pandiyan wrote:
> > When a MST encoder is passed to enc_to_dig_port(), the container_of()
> > macro
> > does not return the digital port. Handle this by returning the member
> > "primary" in "struct intel_dp_mst_encoder"
> >
> > Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan at intel.com>
> > ---
> > drivers/gpu/drm/i915/intel_drv.h | 16 ++++++++++------
> > 1 file changed, 10 insertions(+), 6 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/i915/intel_drv.h
> > b/drivers/gpu/drm/i915/intel_drv.h
> > index 45020d2..66af444 100644
> > --- a/drivers/gpu/drm/i915/intel_drv.h
> > +++ b/drivers/gpu/drm/i915/intel_drv.h
> > @@ -1023,18 +1023,22 @@ intel_attached_encoder(struct drm_connector
> > *connector)
> > return to_intel_connector(connector)->encoder;
> > }
> >
> > -static inline struct intel_digital_port *
> > -enc_to_dig_port(struct drm_encoder *encoder)
> > -{
> > - return container_of(encoder, struct intel_digital_port,
> > base.base);
> > -}
> > -
> > static inline struct intel_dp_mst_encoder *
> > enc_to_mst(struct drm_encoder *encoder)
> > {
> > return container_of(encoder, struct intel_dp_mst_encoder,
> > base.base);
> > }
> >
> > +static inline struct intel_digital_port *
> > +enc_to_dig_port(struct drm_encoder *encoder)
> > +{
> > + if (encoder->encoder_type == DRM_MODE_ENCODER_DPMST)
> > + return enc_to_mst(encoder)->primary;
> > + else
> > + return container_of(encoder, struct
> > intel_digital_port,
> > + base.base);
> > +}
> > +
> > static inline struct intel_dp *enc_to_intel_dp(struct drm_encoder
> > *encoder)
> > {
> > return &enc_to_dig_port(encoder)->dp;
More information about the Intel-gfx
mailing list