> Date: Wed, 09 Jul 2014 09:28:31 +0200 > From: walter harms <[email protected]> > > Am 09.07.2014 09:00, schrieb Chris Wilson: > > With the advent of universal drm planes and the introduction of generic > > plane properties for rotations, we can query and program the hardware > > for native rotation support. > > > > NOTE: this depends upon the next release of libdrm to remove some > > opencoded defines. > > > > Signed-off-by: Chris Wilson <[email protected]> > > --- > > configure.ac | 2 +- > > src/drmmode_display.c | 223 > > +++++++++++++++++++++++++++++++++++++++++++------- > > src/drmmode_display.h | 7 +- > > 3 files changed, 199 insertions(+), 33 deletions(-) > > > > diff --git a/configure.ac b/configure.ac > > index 1c1a36d..0b4e857 100644 > > --- a/configure.ac > > +++ b/configure.ac > > @@ -74,7 +74,7 @@ AM_CONDITIONAL(HAVE_XEXTPROTO_71, [ test > > "$HAVE_XEXTPROTO_71" = "yes" ]) > > # Checks for header files. > > AC_HEADER_STDC > > > > -PKG_CHECK_MODULES(DRM, [libdrm >= 2.4.46]) > > +PKG_CHECK_MODULES(DRM, [libdrm >= 2.4.54]) #.55 required for universal > > planes > > PKG_CHECK_MODULES([PCIACCESS], [pciaccess >= 0.10]) > > AM_CONDITIONAL(DRM, test "x$DRM" = xyes) > > > > diff --git a/src/drmmode_display.c b/src/drmmode_display.c > > index c533324..aaeda39 100644 > > --- a/src/drmmode_display.c > > +++ b/src/drmmode_display.c > > @@ -56,6 +56,11 @@ > > > > #include "driver.h" > > > > +#define DRM_CLIENT_CAP_UNIVERSAL_PLANES 2 > > +#define DRM_PLANE_TYPE_OVERLAY 0 > > +#define DRM_PLANE_TYPE_PRIMARY 1 > > +#define DRM_PLANE_TYPE_CURSOR 2 > > + > > static struct dumb_bo *dumb_bo_create(int fd, > > const unsigned width, const unsigned height, > > const unsigned bpp) > > @@ -300,6 +305,136 @@ create_pixmap_for_fbcon(drmmode_ptr drmmode, > > > > #endif > > > > +static unsigned > > +rotation_index(unsigned rotation) > > +{ > > +#if _SVID_SOURCE || _BSD_SOURCE || _POSIX_C_SOURCE >= 200809L || > > _XOPEN_SOURCE >= 700 > > + return ffs(rotation) - 1; > > +#else > > + int i; > > + > > + for (i = 0; i < 32; i++) { > > + if ((1 << i) == rotation) > > + break; > > + } > > + > > + return i; > > +#endif > > +} > > > perhaps it is better to provide an internal ffs for systems that > lack one ? than you can use ffs() directly and leave the rest to > configure. That would result in a generic HAVE_FFS instead of a > list of defines like this now.
Seriously though, what system that supports the modesetting interfaces does actually lack ffs(3)? _______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
