[PATCH i-g-t v2 1/4] lib/igt_kms: Add reflection name and mask

Louis Chauvet louis.chauvet at bootlin.com
Fri Mar 15 16:11:29 UTC 2024


Le 13/03/24 - 17:00, Arthur Grillo a écrit :
> 
> 
> On 13/03/24 14:09, Louis Chauvet wrote:
> > As for IGT_ROTATION_MASK and igt_plane_rotation_name, create the mask
> > IGT_REFLECT_MASK and the function igt_plane_reflect_name.
> > 
> > Signed-off-by: Louis Chauvet <louis.chauvet at bootlin.com>
> > ---
> >  lib/igt_kms.c | 23 +++++++++++++++++++++++
> >  lib/igt_kms.h |  3 +++
> >  2 files changed, 26 insertions(+)
> > 
> > diff --git a/lib/igt_kms.c b/lib/igt_kms.c
> > index e18f6fe59882..85d278f3cae3 100644
> > --- a/lib/igt_kms.c
> > +++ b/lib/igt_kms.c
> > @@ -5142,6 +5142,29 @@ const char *igt_plane_rotation_name(igt_rotation_t rotation)
> >  	}
> >  }
> >  
> > +
> > +/**
> > + * igt_plane_reflect_name:
> > + * @reflect: Plane reflection value (x, y)
> > + *
> > + * Returns: Plane reflection value as a string
> > + */
> > +const char *igt_plane_reflect_name(igt_rotation_t reflect)
> > +{
> > +	switch (reflect & IGT_REFLECT_MASK) {
> > +	case 0:
> > +		return "none";
> > +	case IGT_REFLECT_X:
> > +		return "X";
> > +	case IGT_REFLECT_Y:
> > +		return "Y";
> > +	case IGT_REFLECT_X | IGT_REFLECT_Y:
> > +		return "XY";
> > +	default:
> > +		igt_assert(0);
> > +	}
> > +}
> 
> I think it would be good to call this on igt_plane_set_rotation(), like
> igt_plane_rotation_name() is, for debug purposes.

Hi Arthur,

I will add a separate patch for this. Thanks for the suggestion.

Kind regards,
Louis Chauvet

> Best Regards,
> ~Arthur Grillo
> 
> > +
> >  /**
> >   * igt_plane_set_rotation:
> >   * @plane: Plane pointer for which rotation is to be set
> > diff --git a/lib/igt_kms.h b/lib/igt_kms.h
> > index b3882808b42f..4760394428f3 100644
> > --- a/lib/igt_kms.h
> > +++ b/lib/igt_kms.h
> > @@ -371,6 +371,8 @@ typedef enum {
> >  
> >  #define IGT_ROTATION_MASK \
> >  	(IGT_ROTATION_0 | IGT_ROTATION_90 | IGT_ROTATION_180 | IGT_ROTATION_270)
> > +#define IGT_REFLECT_MASK \
> > +	(IGT_REFLECT_X | IGT_REFLECT_Y)
> >  
> >  /**
> >   * igt_rotation_90_or_270:
> > @@ -562,6 +564,7 @@ static inline bool igt_plane_has_rotation(igt_plane_t *plane, igt_rotation_t rot
> >  	return (plane->rotations & rotation) == rotation;
> >  }
> >  const char *igt_plane_rotation_name(igt_rotation_t rotation);
> > +const char *igt_plane_reflect_name(igt_rotation_t reflect);
> >  
> >  void igt_wait_for_vblank(int drm_fd, int crtc_offset);
> >  void igt_wait_for_vblank_count(int drm_fd, int crtc_offset, int count);
> > 

-- 
Louis Chauvet, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com


More information about the igt-dev mailing list