Message ID | 1509537051-5598-1-git-send-email-mika.kahola@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Wed, 01 Nov 2017, Mika Kahola <mika.kahola@intel.com> wrote: > To make looping through transcoders in intel_ddi.c more generic, let's switch > to use 'for_each_pipe()' macro to do this. > > Signed-off-by: Mika Kahola <mika.kahola@intel.com> > --- > drivers/gpu/drm/i915/intel_ddi.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/i915/intel_ddi.c b/drivers/gpu/drm/i915/intel_ddi.c > index ace674c..3df991b 100644 > --- a/drivers/gpu/drm/i915/intel_ddi.c > +++ b/drivers/gpu/drm/i915/intel_ddi.c > @@ -1717,7 +1717,7 @@ bool intel_ddi_get_hw_state(struct intel_encoder *encoder, > goto out; > } > > - for (i = TRANSCODER_A; i <= TRANSCODER_C; i++) { > + for_each_pipe(dev_priv, i) { It gives me an uneasy feeling to conflate pipes and transcoders like this. I think we've tried to be more clear about the distinction elsewhere. BR, Jani. > tmp = I915_READ(TRANS_DDI_FUNC_CTL(i)); > > if ((tmp & TRANS_DDI_PORT_MASK) == TRANS_DDI_SELECT_PORT(port)) {
On Wed, 2017-11-01 at 17:26 +0200, Jani Nikula wrote: > On Wed, 01 Nov 2017, Mika Kahola <mika.kahola@intel.com> wrote: > > > > To make looping through transcoders in intel_ddi.c more generic, > > let's switch > > to use 'for_each_pipe()' macro to do this. > > > > Signed-off-by: Mika Kahola <mika.kahola@intel.com> > > --- > > drivers/gpu/drm/i915/intel_ddi.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/drivers/gpu/drm/i915/intel_ddi.c > > b/drivers/gpu/drm/i915/intel_ddi.c > > index ace674c..3df991b 100644 > > --- a/drivers/gpu/drm/i915/intel_ddi.c > > +++ b/drivers/gpu/drm/i915/intel_ddi.c > > @@ -1717,7 +1717,7 @@ bool intel_ddi_get_hw_state(struct > > intel_encoder *encoder, > > goto out; > > } > > > > - for (i = TRANSCODER_A; i <= TRANSCODER_C; i++) { > > + for_each_pipe(dev_priv, i) { > It gives me an uneasy feeling to conflate pipes and transcoders like > this. I think we've tried to be more clear about the distinction > elsewhere. I had a same kind of feeling myself. First, I was thinking of creating a new macro like for_each_transcoder() which would indicate that now we are dealing with transcoders instead of pipes. Maybe going to that direction here? > > BR, > Jani. > > > > > tmp = I915_READ(TRANS_DDI_FUNC_CTL(i)); > > > > if ((tmp & TRANS_DDI_PORT_MASK) == > > TRANS_DDI_SELECT_PORT(port)) {
On Thu, 02 Nov 2017, Mika Kahola <mika.kahola@intel.com> wrote: > On Wed, 2017-11-01 at 17:26 +0200, Jani Nikula wrote: >> On Wed, 01 Nov 2017, Mika Kahola <mika.kahola@intel.com> wrote: >> > >> > To make looping through transcoders in intel_ddi.c more generic, >> > let's switch >> > to use 'for_each_pipe()' macro to do this. >> > >> > Signed-off-by: Mika Kahola <mika.kahola@intel.com> >> > --- >> > drivers/gpu/drm/i915/intel_ddi.c | 2 +- >> > 1 file changed, 1 insertion(+), 1 deletion(-) >> > >> > diff --git a/drivers/gpu/drm/i915/intel_ddi.c >> > b/drivers/gpu/drm/i915/intel_ddi.c >> > index ace674c..3df991b 100644 >> > --- a/drivers/gpu/drm/i915/intel_ddi.c >> > +++ b/drivers/gpu/drm/i915/intel_ddi.c >> > @@ -1717,7 +1717,7 @@ bool intel_ddi_get_hw_state(struct >> > intel_encoder *encoder, >> > goto out; >> > } >> > >> > - for (i = TRANSCODER_A; i <= TRANSCODER_C; i++) { >> > + for_each_pipe(dev_priv, i) { >> It gives me an uneasy feeling to conflate pipes and transcoders like >> this. I think we've tried to be more clear about the distinction >> elsewhere. > I had a same kind of feeling myself. First, I was thinking of creating > a new macro like for_each_transcoder() which would indicate that now we > are dealing with transcoders instead of pipes. Maybe going to that > direction here? That gets ugly fast too... just look at enum transcoder, and realize you don't want to iterate them all. And there's special casing for TRANSCODER_EDP above already. Perhaps the easiest for now would be to use for_each_pipe() (and please make the variable enum pipe p or something instead of int i) and then do an explicit enum transcoder cpu_transcoder = (enum transcoder) p; BR, Jani. > >> >> BR, >> Jani. >> >> > >> > tmp = I915_READ(TRANS_DDI_FUNC_CTL(i)); >> > >> > if ((tmp & TRANS_DDI_PORT_MASK) == >> > TRANS_DDI_SELECT_PORT(port)) {
diff --git a/drivers/gpu/drm/i915/intel_ddi.c b/drivers/gpu/drm/i915/intel_ddi.c index ace674c..3df991b 100644 --- a/drivers/gpu/drm/i915/intel_ddi.c +++ b/drivers/gpu/drm/i915/intel_ddi.c @@ -1717,7 +1717,7 @@ bool intel_ddi_get_hw_state(struct intel_encoder *encoder, goto out; } - for (i = TRANSCODER_A; i <= TRANSCODER_C; i++) { + for_each_pipe(dev_priv, i) { tmp = I915_READ(TRANS_DDI_FUNC_CTL(i)); if ((tmp & TRANS_DDI_PORT_MASK) == TRANS_DDI_SELECT_PORT(port)) {
To make looping through transcoders in intel_ddi.c more generic, let's switch to use 'for_each_pipe()' macro to do this. Signed-off-by: Mika Kahola <mika.kahola@intel.com> --- drivers/gpu/drm/i915/intel_ddi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)