[Intel-gfx] [PATCH] drm/i915: Generalize transcoder looping

Jani Nikula jani.nikula at linux.intel.com
Thu Nov 2 11:18:09 UTC 2017


On Thu, 02 Nov 2017, Mika Kahola <mika.kahola at intel.com> wrote:
> On Wed, 2017-11-01 at 17:26 +0200, Jani Nikula wrote:
>> On Wed, 01 Nov 2017, Mika Kahola <mika.kahola at 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 at 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)) {

-- 
Jani Nikula, Intel Open Source Technology Center


More information about the Intel-gfx mailing list