[Intel-gfx] [PATCH i-g-t v2] lib/igt_kms: Introduce get_first_connected_output macro

Daniel Vetter daniel at ffwll.ch
Tue Nov 24 04:20:26 PST 2015


On Mon, Nov 23, 2015 at 03:49:20PM +0200, Ander Conselvan De Oliveira wrote:
> On Fri, 2015-11-20 at 18:56 -0800, Vivek Kasireddy wrote:
> > In some cases, we just need one valid (connected) output to perform
> > a test. This macro can help in these situations by not having to
> > put the test code inside a for loop that iterates over all the outputs.
> > 
> > v2: Added a brief documentation for this macro.
> > 
> > Suggested-by: Matt Roper <matthew.d.roper at intel.com>
> > Cc: Thomas Wood <thomas.wood at intel.com>
> > Signed-off-by: Vivek Kasireddy <vivek.kasireddy at intel.com>
> > ---
> >  lib/igt_kms.h | 12 ++++++++++++
> >  1 file changed, 12 insertions(+)
> > 
> > diff --git a/lib/igt_kms.h b/lib/igt_kms.h
> > index 965c47c..a0bb066 100644
> > --- a/lib/igt_kms.h
> > +++ b/lib/igt_kms.h
> > @@ -279,6 +279,18 @@ void igt_wait_for_vblank(int drm_fd, enum pipe pipe);
> >  	for (int i__ = 0; (plane) = &(display)->pipes[(pipe)].planes[i__], \
> >  		     i__ < (display)->pipes[(pipe)].n_planes; i__++)
> >  
> > +/**
> > + * get_first_connected_output:
> > + * @display: Initialized igt_display_t type object
> > + * @output: igt_output_t type object
> > + *
> > + * Returns: First valid (connected) output.
> > + */
> > +#define get_first_connected_output(display, output)		\
> > +	for (int i__ = 0;  i__ < (display)->n_outputs; i__++)	\
> > +		if ((output = &(display)->outputs[i__]), output->valid) \
> > +			break
> > +
> 
> Is it possible that there is no valid output?
> 

We also need to check at least crtc restrictions, otherwise bsw will fall
over mightly. Or well anything with MIPI DSI encoders.
-Daniel
-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch


More information about the Intel-gfx mailing list