[Intel-gfx] [PATCH v6 1/3] drm/i915: enum transcoder and pipe are moved into i915_drm.h
Ramalingam C
ramalingam.c at intel.com
Tue Aug 20 12:48:45 UTC 2019
On 2019-08-20 at 15:30:53 +0300, Jani Nikula wrote:
> On Tue, 20 Aug 2019, Ramalingam C <ramalingam.c at intel.com> wrote:
> > On 2019-08-20 at 14:14:03 +0530, Winkler, Tomas wrote:
> >>
> >>
> >> >
> >> > For the reusability of the enum transcoder and enum pipe in other driver
> >> > modules (like mei_hdcp), enum port definition is moved from I915 local header
> >> > intel_display.h to drm/i915_drm.h
> >>
> >> Don't you need to name space those definitions in the global space, I guess there are a lot of 'pipe' variables and definitions you can conflict with.
> >> I guess it should be enum i915_pipe, etc.
> > I am assuming that this header will be used only when you we build for
> > I915 driver(intel). In such case, we wont have a conflict.
> >
> > Unless until this renaming is needed, we shouldn't get into it, as this
> > will demand i915 wide renaming.
>
> I think we need to keep enum transcoder and enum pipe internal to i915,
> as well as pull enum port from i915_drm.h back to i915 internal as
> well. I don't think they should be exposed outside of i915.
>
> I think it would be better to expose the existing enum mei_fw_ddi and
> the new enum mei_fw_tc from MEI to i915 instead, and have i915 fill in
> the relevant physical_port (ddi index) and attached_transcoder (tc
> type). I don't know what these members should be called in struct
> hdcp_port_data, but the point is that i915 would do the translation, not
> mei_hdcp.c. The types of these members should obviously be enum
> meo_fw_ddi and enum mei_fw_tc.
Jani,
Yes, If we could move the enum mei_fw_ddi and enum mei_fw_tc into
include/drm/i915_mei_hdcp_interface.h along with struct
hdcp_port_data, then we could keep the pipe, port and transcoder as
local to I915. I915 could implement the conversion from transcoder to
mei_fw_tc etc and setup hdcp_port_data.
Tomas, Do you agree with this?
-Ram
>
> Thoughts?
>
> BR,
> Jani.
>
>
> >
> > -Ram
> >>
> >> Thanks
> >> Tomas
> >>
> >>
> >> >
> >> > Signed-off-by: Ramalingam C <ramalingam.c at intel.com>
> >> > ---
> >> > drivers/gpu/drm/i915/display/intel_display.h | 44 -------------------
> >> > include/drm/i915_drm.h | 46 ++++++++++++++++++++
> >> > 2 files changed, 46 insertions(+), 44 deletions(-)
> >> >
> >> > diff --git a/drivers/gpu/drm/i915/display/intel_display.h
> >> > b/drivers/gpu/drm/i915/display/intel_display.h
> >> > index e57e6969051d..56f3d9073159 100644
> >> > --- a/drivers/gpu/drm/i915/display/intel_display.h
> >> > +++ b/drivers/gpu/drm/i915/display/intel_display.h
> >> > @@ -71,50 +71,6 @@ enum i915_gpio {
> >> > GPIOO,
> >> > };
> >> >
> >> > -/*
> >> > - * Keep the pipe enum values fixed: the code assumes that PIPE_A=0, the
> >> > - * rest have consecutive values and match the enum values of transcoders
> >> > - * with a 1:1 transcoder -> pipe mapping.
> >> > - */
> >> > -enum pipe {
> >> > - INVALID_PIPE = -1,
> >> > -
> >> > - PIPE_A = 0,
> >> > - PIPE_B,
> >> > - PIPE_C,
> >> > - PIPE_D,
> >> > - _PIPE_EDP,
> >> > -
> >> > - I915_MAX_PIPES = _PIPE_EDP
> >> > -};
> >> > -
> >> > -#define pipe_name(p) ((p) + 'A')
> >> > -
> >> > -enum transcoder {
> >> > - /*
> >> > - * The following transcoders have a 1:1 transcoder -> pipe mapping,
> >> > - * keep their values fixed: the code assumes that TRANSCODER_A=0,
> >> > the
> >> > - * rest have consecutive values and match the enum values of the pipes
> >> > - * they map to.
> >> > - */
> >> > - TRANSCODER_A = PIPE_A,
> >> > - TRANSCODER_B = PIPE_B,
> >> > - TRANSCODER_C = PIPE_C,
> >> > - TRANSCODER_D = PIPE_D,
> >> > -
> >> > - /*
> >> > - * The following transcoders can map to any pipe, their enum value
> >> > - * doesn't need to stay fixed.
> >> > - */
> >> > - TRANSCODER_EDP,
> >> > - TRANSCODER_DSI_0,
> >> > - TRANSCODER_DSI_1,
> >> > - TRANSCODER_DSI_A = TRANSCODER_DSI_0, /* legacy DSI */
> >> > - TRANSCODER_DSI_C = TRANSCODER_DSI_1, /* legacy DSI */
> >> > -
> >> > - I915_MAX_TRANSCODERS
> >> > -};
> >> > -
> >> > static inline const char *transcoder_name(enum transcoder transcoder) {
> >> > switch (transcoder) {
> >> > diff --git a/include/drm/i915_drm.h b/include/drm/i915_drm.h index
> >> > 23274cf92712..b0779b8267b9 100644
> >> > --- a/include/drm/i915_drm.h
> >> > +++ b/include/drm/i915_drm.h
> >> > @@ -118,4 +118,50 @@ enum port {
> >> >
> >> > #define port_name(p) ((p) + 'A')
> >> >
> >> > +/*
> >> > + * Keep the pipe enum values fixed: the code assumes that PIPE_A=0, the
> >> > + * rest have consecutive values and match the enum values of
> >> > +transcoders
> >> > + * with a 1:1 transcoder -> pipe mapping.
> >> > + */
> >> > +enum pipe {
> >> > + INVALID_PIPE = -1,
> >> > +
> >> > + PIPE_A = 0,
> >> > + PIPE_B,
> >> > + PIPE_C,
> >> > + PIPE_D,
> >> > + _PIPE_EDP,
> >> > +
> >> > + I915_MAX_PIPES = _PIPE_EDP
> >> > +};
> >> > +
> >> > +#define pipe_name(p) ((p) + 'A')
> >> > +
> >> > +enum transcoder {
> >> > + INVALID_TRANSCODER = -1,
> >> > +
> >> > + /*
> >> > + * The following transcoders have a 1:1 transcoder -> pipe mapping,
> >> > + * keep their values fixed: the code assumes that TRANSCODER_A=0,
> >> > the
> >> > + * rest have consecutive values and match the enum values of the pipes
> >> > + * they map to.
> >> > + */
> >> > + TRANSCODER_A = PIPE_A,
> >> > + TRANSCODER_B = PIPE_B,
> >> > + TRANSCODER_C = PIPE_C,
> >> > + TRANSCODER_D = PIPE_D,
> >> > +
> >> > + /*
> >> > + * The following transcoders can map to any pipe, their enum value
> >> > + * doesn't need to stay fixed.
> >> > + */
> >> > + TRANSCODER_EDP,
> >> > + TRANSCODER_DSI_0,
> >> > + TRANSCODER_DSI_1,
> >> > + TRANSCODER_DSI_A = TRANSCODER_DSI_0, /* legacy DSI */
> >> > + TRANSCODER_DSI_C = TRANSCODER_DSI_1, /* legacy DSI */
> >> > +
> >> > + I915_MAX_TRANSCODERS
> >> > +};
> >> > +
> >> > #endif /* _I915_DRM_H_ */
> >> > --
> >> > 2.20.1
> >>
> > _______________________________________________
> > Intel-gfx mailing list
> > Intel-gfx at lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/intel-gfx
>
> --
> Jani Nikula, Intel Open Source Graphics Center
More information about the dri-devel
mailing list