summaryrefslogtreecommitdiff
path: root/README
diff options
context:
space:
mode:
authorRay Smith <raymond.smith@arm.com>2013-03-26 16:06:37 +0000
committerRay Smith <raymond.smith@arm.com>2013-04-03 10:05:33 +0100
commit3c33c3d13f4cf05e9c48c52e8c3cde8eb2d8c65d (patch)
tree4090db397c5fbbce22b665bd02ab59b425c181f9 /README
parent292ae509789709c68ed365b22f88022f32087561 (diff)
Add DRM driver abstraction
This adds an abstraction interface in src/drmmode_driver.h for the driver-specific values (and in future functions) that we need. It also adds documentation and build system support (--with-drmmode) to choose your supported driver. Initially, the dumb allocation flags and page flip events flags are abstracted with support for pl111 and eynos. A template implementation is also provided for ease of adding new driver support. Change-Id: I98890ddab6b907c3007b72a662ecd7ee6caa4402
Diffstat (limited to 'README')
-rw-r--r--README33
1 files changed, 19 insertions, 14 deletions
diff --git a/README b/README
index 10bd463..8d05217 100644
--- a/README
+++ b/README
@@ -1,23 +1,28 @@
xf86-video-armsoc
Open-source X.org graphics driver for ARM graphics
-Platform specific values
-------------------------
-The meaning of the bits in the 'flags' element in the drm_mode_create_dumb struct
-used by DRM_IOCTL_MODE_CREATE_DUMB is platform dependent.
-The defines for the flag values in omap_drmif_fb.h should be modified for the target platform in use.
+DRM driver selection
+--------------------
+While most operations use only the standard DRM modesetting interfaces, certain operations
+unavoidably rely on specific driver behaviour (including dumb buffer allocation flags and cursor
+plane z-ordering). As such, the armsoc driver must be configured for a particular DRM driver.
-The example given is for a DRM driver which uses bit 0 of flags to select the buffer type.
-In this case a value of 1 for bit 0 selects a buffer with a scanoutable allocation.
+The currently supported DRM drivers are:
+- pl111
+- exynos
-The platform specific defines are :
+To configure armsoc for one of these, pass the --with-drmmode option to ./configure. For example:
- /* Platform specific values for the flags element of the drm_mode_create_dumb struct
- * used by DRM_IOCTL_MODE_CREATE_DUMB. Substitute appropriate values for the target drm driver.
- */
- #define DRM_BO_SCANOUT 0x00000001 /* request scanout compatible buffer */
- #define DRM_BO_NON_SCANOUT 0x00000000 /* request non-scanout compatible buffer */
+$ ./configure --with-drmmode=pl111
+For other drivers, you will need to implement this support yourself. A template implementation is
+provided in src/drmmode_template which can be built by passing --with-drmmode=template to ./configure.
+The interface is defined and documented in src/drmmode_driver.h, and you should refer to this while
+modifying the template to set up your DRM driver's abstraction appropriately.
+
+You can also copy src/drmmode_template into src/drmmode_<yourdrivername> and build with:
+
+$ ./configure --with-drmmode=<yourdrivername>
HW Cursors support
-------------------
@@ -35,4 +40,4 @@ HW_CURSOR_PL111 - Cursor images support PL111 LBBP pixel format.
For example to set HW_CURSOR_PL111 cursor support set DRM_CURSOR_PLANE_FORMAT in the following way:
-#define DRM_CURSOR_PLANE_FORMAT HW_CURSOR_PL111 \ No newline at end of file
+#define DRM_CURSOR_PLANE_FORMAT HW_CURSOR_PL111