From 74a74be23feb5d44121f059e1ab96787be4b7532 Mon Sep 17 00:00:00 2001 From: Dominik Sliwa Date: Thu, 15 Dec 2016 14:22:05 +0100 Subject: apalis-tk1: Mainline kernel machine This patch adds mainline linux based Apalis TK1 machine. It includes compatible recipes for libdrm, mesa, Xorg, and weston. Signed-off-by: Dominik Sliwa Acked-by: Max Krummenacher --- ...AddFB2WithModifiers-which-takes-format-mo.patch | 82 ++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 recipes-graphics/drm/files/0001-Add-drmModeAddFB2WithModifiers-which-takes-format-mo.patch (limited to 'recipes-graphics/drm/files/0001-Add-drmModeAddFB2WithModifiers-which-takes-format-mo.patch') diff --git a/recipes-graphics/drm/files/0001-Add-drmModeAddFB2WithModifiers-which-takes-format-mo.patch b/recipes-graphics/drm/files/0001-Add-drmModeAddFB2WithModifiers-which-takes-format-mo.patch new file mode 100644 index 0000000..36cc8e2 --- /dev/null +++ b/recipes-graphics/drm/files/0001-Add-drmModeAddFB2WithModifiers-which-takes-format-mo.patch @@ -0,0 +1,82 @@ +From abfa680dbdfa4600105d904f4903c047d453cdb5 Mon Sep 17 00:00:00 2001 +From: "Kristian H. Kristensen" +Date: Thu, 8 Sep 2016 13:08:59 -0700 +Subject: [PATCH] Add drmModeAddFB2WithModifiers() which takes format modifiers + +The only other user of this feature open codes the ioctl. Let's add an +entry point for this to libdrm. + +Signed-off-by: Kristian H. Kristensen +Reviewed-by: Rob Clark +--- + xf86drmMode.c | 21 +++++++++++++++++---- + xf86drmMode.h | 7 +++++++ + 2 files changed, 24 insertions(+), 4 deletions(-) + +diff --git a/xf86drmMode.c b/xf86drmMode.c +index f7b5948..228c6e4 100644 +--- a/xf86drmMode.c ++++ b/xf86drmMode.c +@@ -270,10 +270,10 @@ int drmModeAddFB(int fd, uint32_t width, uint32_t height, uint8_t depth, + return 0; + } + +-int drmModeAddFB2(int fd, uint32_t width, uint32_t height, +- uint32_t pixel_format, uint32_t bo_handles[4], +- uint32_t pitches[4], uint32_t offsets[4], +- uint32_t *buf_id, uint32_t flags) ++int drmModeAddFB2WithModifiers(int fd, uint32_t width, uint32_t height, ++ uint32_t pixel_format, uint32_t bo_handles[4], ++ uint32_t pitches[4], uint32_t offsets[4], ++ uint64_t modifier[4], uint32_t *buf_id, uint32_t flags) + { + struct drm_mode_fb_cmd2 f; + int ret; +@@ -286,6 +286,8 @@ int drmModeAddFB2(int fd, uint32_t width, uint32_t height, + memcpy(f.handles, bo_handles, 4 * sizeof(bo_handles[0])); + memcpy(f.pitches, pitches, 4 * sizeof(pitches[0])); + memcpy(f.offsets, offsets, 4 * sizeof(offsets[0])); ++ if (modifier) ++ memcpy(f.modifier, modifier, 4 * sizeof(modifier[0])); + + if ((ret = DRM_IOCTL(fd, DRM_IOCTL_MODE_ADDFB2, &f))) + return ret; +@@ -294,6 +296,17 @@ int drmModeAddFB2(int fd, uint32_t width, uint32_t height, + return 0; + } + ++int drmModeAddFB2(int fd, uint32_t width, uint32_t height, ++ uint32_t pixel_format, uint32_t bo_handles[4], ++ uint32_t pitches[4], uint32_t offsets[4], ++ uint32_t *buf_id, uint32_t flags) ++{ ++ return drmModeAddFB2WithModifiers(fd, width, height, ++ pixel_format, bo_handles, ++ pitches, offsets, NULL, ++ buf_id, flags); ++} ++ + int drmModeRmFB(int fd, uint32_t bufferId) + { + return DRM_IOCTL(fd, DRM_IOCTL_MODE_RMFB, &bufferId); +diff --git a/xf86drmMode.h b/xf86drmMode.h +index 4de7bbb..1a02fed 100644 +--- a/xf86drmMode.h ++++ b/xf86drmMode.h +@@ -369,6 +369,13 @@ extern int drmModeAddFB2(int fd, uint32_t width, uint32_t height, + uint32_t pixel_format, uint32_t bo_handles[4], + uint32_t pitches[4], uint32_t offsets[4], + uint32_t *buf_id, uint32_t flags); ++ ++/* ...with format modifiers */ ++int drmModeAddFB2WithModifiers(int fd, uint32_t width, uint32_t height, ++ uint32_t pixel_format, uint32_t bo_handles[4], ++ uint32_t pitches[4], uint32_t offsets[4], ++ uint64_t modifier[4], uint32_t *buf_id, uint32_t flags); ++ + /** + * Destroies the given framebuffer. + */ +-- +2.9.3 + -- cgit v1.2.3