From: Gerd Hoffmann <kraxel@redhat.com> To: dri-devel@lists.freedesktop.org Cc: Gerd Hoffmann <kraxel@redhat.com>, Gustavo Padovan <gustavo@padovan.org>, Maarten Lankhorst <maarten.lankhorst@linux.intel.com>, Sean Paul <sean@poorly.run>, David Airlie <airlied@linux.ie>, linux-kernel@vger.kernel.org (open list) Subject: [PATCH 1/5] drm: byteorder: add DRM_FORMAT_HOST_* Date: Mon, 3 Sep 2018 12:57:52 +0200 [thread overview] Message-ID: <20180903105756.24912-2-kraxel@redhat.com> (raw) In-Reply-To: <20180903105756.24912-1-kraxel@redhat.com> Add fourcc variants in host byte order. With these at hand we don't need #ifdefs in drivers which support framebuffers in cpu endianess. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> --- include/drm/drm_fourcc.h | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/include/drm/drm_fourcc.h b/include/drm/drm_fourcc.h index f9c15845f4..fac831c401 100644 --- a/include/drm/drm_fourcc.h +++ b/include/drm/drm_fourcc.h @@ -25,6 +25,28 @@ #include <linux/types.h> #include <uapi/drm/drm_fourcc.h> +/* + * DRM formats are little endian. Define host endian variants for the + * most common formats here, to reduce the #ifdefs needed in drivers. + * + * Note that the DRM_FORMAT_BIG_ENDIAN flag should only be used in + * case the format can't be specified otherwise, so we don't end up + * with two values describing the same format. + */ +#ifdef __BIG_ENDIAN +# define DRM_FORMAT_HOST_XRGB1555 (DRM_FORMAT_XRGB1555 | \ + DRM_FORMAT_BIG_ENDIAN) +# define DRM_FORMAT_HOST_RGB565 (DRM_FORMAT_RGB565 | \ + DRM_FORMAT_BIG_ENDIAN) +# define DRM_FORMAT_HOST_XRGB8888 DRM_FORMAT_BGRX8888 +# define DRM_FORMAT_HOST_ARGB8888 DRM_FORMAT_BGRA8888 +#else +# define DRM_FORMAT_HOST_XRGB1555 DRM_FORMAT_XRGB1555 +# define DRM_FORMAT_HOST_RGB565 DRM_FORMAT_RGB565 +# define DRM_FORMAT_HOST_XRGB8888 DRM_FORMAT_XRGB8888 +# define DRM_FORMAT_HOST_ARGB8888 DRM_FORMAT_ARGB8888 +#endif + struct drm_device; struct drm_mode_fb_cmd2; -- 2.9.3
WARNING: multiple messages have this Message-ID (diff)
From: Gerd Hoffmann <kraxel@redhat.com> To: dri-devel@lists.freedesktop.org Cc: Gerd Hoffmann <kraxel@redhat.com>, Gustavo Padovan <gustavo@padovan.org>, Maarten Lankhorst <maarten.lankhorst@linux.intel.com>, Sean Paul <sean@poorly.run>, David Airlie <airlied@linux.ie>, open list <linux-kernel@vger.kernel.org> Subject: [PATCH 1/5] drm: byteorder: add DRM_FORMAT_HOST_* Date: Mon, 3 Sep 2018 12:57:52 +0200 [thread overview] Message-ID: <20180903105756.24912-2-kraxel@redhat.com> (raw) In-Reply-To: <20180903105756.24912-1-kraxel@redhat.com> Add fourcc variants in host byte order. With these at hand we don't need #ifdefs in drivers which support framebuffers in cpu endianess. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> --- include/drm/drm_fourcc.h | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/include/drm/drm_fourcc.h b/include/drm/drm_fourcc.h index f9c15845f4..fac831c401 100644 --- a/include/drm/drm_fourcc.h +++ b/include/drm/drm_fourcc.h @@ -25,6 +25,28 @@ #include <linux/types.h> #include <uapi/drm/drm_fourcc.h> +/* + * DRM formats are little endian. Define host endian variants for the + * most common formats here, to reduce the #ifdefs needed in drivers. + * + * Note that the DRM_FORMAT_BIG_ENDIAN flag should only be used in + * case the format can't be specified otherwise, so we don't end up + * with two values describing the same format. + */ +#ifdef __BIG_ENDIAN +# define DRM_FORMAT_HOST_XRGB1555 (DRM_FORMAT_XRGB1555 | \ + DRM_FORMAT_BIG_ENDIAN) +# define DRM_FORMAT_HOST_RGB565 (DRM_FORMAT_RGB565 | \ + DRM_FORMAT_BIG_ENDIAN) +# define DRM_FORMAT_HOST_XRGB8888 DRM_FORMAT_BGRX8888 +# define DRM_FORMAT_HOST_ARGB8888 DRM_FORMAT_BGRA8888 +#else +# define DRM_FORMAT_HOST_XRGB1555 DRM_FORMAT_XRGB1555 +# define DRM_FORMAT_HOST_RGB565 DRM_FORMAT_RGB565 +# define DRM_FORMAT_HOST_XRGB8888 DRM_FORMAT_XRGB8888 +# define DRM_FORMAT_HOST_ARGB8888 DRM_FORMAT_ARGB8888 +#endif + struct drm_device; struct drm_mode_fb_cmd2; -- 2.9.3
next prev parent reply other threads:[~2018-09-03 10:58 UTC|newest] Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top 2018-09-03 10:57 [PATCH 0/5] drm: byteorder fixes Gerd Hoffmann 2018-09-03 10:57 ` Gerd Hoffmann [this message] 2018-09-03 10:57 ` [PATCH 1/5] drm: byteorder: add DRM_FORMAT_HOST_* Gerd Hoffmann 2018-09-03 10:57 ` [PATCH 2/5] drm: do not mask out DRM_FORMAT_BIG_ENDIAN Gerd Hoffmann 2018-09-03 10:57 ` Gerd Hoffmann 2018-09-03 10:57 ` [PATCH 3/5] drm: fix drm_mode_addfb() on big endian machines Gerd Hoffmann 2018-09-03 10:57 ` Gerd Hoffmann 2018-09-03 16:45 ` Daniel Vetter 2018-09-03 17:01 ` Michel Dänzer 2018-09-03 17:01 ` Michel Dänzer 2018-09-03 17:07 ` Ilia Mirkin 2018-09-04 8:00 ` Michel Dänzer 2018-09-04 8:00 ` Michel Dänzer 2018-09-04 13:05 ` Ilia Mirkin 2018-09-04 13:05 ` Ilia Mirkin 2018-09-04 15:02 ` Michel Dänzer 2018-09-04 15:02 ` Michel Dänzer 2018-09-04 15:15 ` Ilia Mirkin 2018-09-04 15:15 ` Ilia Mirkin 2018-09-05 6:10 ` Gerd Hoffmann 2018-09-03 10:57 ` [PATCH 4/5] drm/bochs: fix DRM_FORMAT_* handling for " Gerd Hoffmann 2018-09-03 10:57 ` Gerd Hoffmann 2018-09-03 10:57 ` [PATCH 5/5] drm/virtio: fix DRM_FORMAT_* handling Gerd Hoffmann 2018-09-03 10:57 ` Gerd Hoffmann 2018-09-03 10:57 ` Gerd Hoffmann
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20180903105756.24912-2-kraxel@redhat.com \ --to=kraxel@redhat.com \ --cc=airlied@linux.ie \ --cc=dri-devel@lists.freedesktop.org \ --cc=gustavo@padovan.org \ --cc=linux-kernel@vger.kernel.org \ --cc=maarten.lankhorst@linux.intel.com \ --cc=sean@poorly.run \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.