linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [RfC PATCH] drm: fourcc byteorder: brings header file comments in line with reality.
@ 2017-04-10 10:12 Gerd Hoffmann
  2017-04-10 12:02 ` Daniel Vetter
  2017-04-10 13:12 ` Pekka Paalanen
  0 siblings, 2 replies; 28+ messages in thread
From: Gerd Hoffmann @ 2017-04-10 10:12 UTC (permalink / raw)
  To: dri-devel
  Cc: Gerd Hoffmann, Ville Syrjälä,
	Daniel Vetter, amd-gfx, Jani Nikula, Sean Paul, David Airlie,
	open list

Ok, this is really a kickstart for a discussion.  While working on
graphics support for virtual machines on ppc64 (which exists in both
little and big endian variants) I've figured the comments in the header
file don't match reality.  They are not considered little endian (as
suggested by the comments) but in practice are used as native endian.

So, go update the comments.

This patch switches all 32bpp / 8 bpc formats over to native endian.
Those used/supported by ppc64 virtual machines (virtio-gpu/bochs-drm
drivers).

Given that DRM_FORMAT_BIG_ENDIAN isn't used anywhere in the codebase
I suspect this problem applies to more formats.  When looking at
drm_mode_legacy_fb_format it seems *all* RGB formats are actually
native endian not little endian.

Dunno where we stand in terms of YCbCr.

Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: Daniel Vetter <daniel.vetter@intel.com>
Cc: amd-gfx@lists.freedesktop.org
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
 include/uapi/drm/drm_fourcc.h | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/include/uapi/drm/drm_fourcc.h b/include/uapi/drm/drm_fourcc.h
index 995c8f9..a7fc81d 100644
--- a/include/uapi/drm/drm_fourcc.h
+++ b/include/uapi/drm/drm_fourcc.h
@@ -85,15 +85,15 @@ extern "C" {
 #define DRM_FORMAT_BGR888	fourcc_code('B', 'G', '2', '4') /* [23:0] B:G:R little endian */
 
 /* 32 bpp RGB */
-#define DRM_FORMAT_XRGB8888	fourcc_code('X', 'R', '2', '4') /* [31:0] x:R:G:B 8:8:8:8 little endian */
-#define DRM_FORMAT_XBGR8888	fourcc_code('X', 'B', '2', '4') /* [31:0] x:B:G:R 8:8:8:8 little endian */
-#define DRM_FORMAT_RGBX8888	fourcc_code('R', 'X', '2', '4') /* [31:0] R:G:B:x 8:8:8:8 little endian */
-#define DRM_FORMAT_BGRX8888	fourcc_code('B', 'X', '2', '4') /* [31:0] B:G:R:x 8:8:8:8 little endian */
+#define DRM_FORMAT_XRGB8888	fourcc_code('X', 'R', '2', '4') /* [31:0] x:R:G:B 8:8:8:8 native endian */
+#define DRM_FORMAT_XBGR8888	fourcc_code('X', 'B', '2', '4') /* [31:0] x:B:G:R 8:8:8:8 native endian */
+#define DRM_FORMAT_RGBX8888	fourcc_code('R', 'X', '2', '4') /* [31:0] R:G:B:x 8:8:8:8 native endian */
+#define DRM_FORMAT_BGRX8888	fourcc_code('B', 'X', '2', '4') /* [31:0] B:G:R:x 8:8:8:8 native endian */
 
-#define DRM_FORMAT_ARGB8888	fourcc_code('A', 'R', '2', '4') /* [31:0] A:R:G:B 8:8:8:8 little endian */
-#define DRM_FORMAT_ABGR8888	fourcc_code('A', 'B', '2', '4') /* [31:0] A:B:G:R 8:8:8:8 little endian */
-#define DRM_FORMAT_RGBA8888	fourcc_code('R', 'A', '2', '4') /* [31:0] R:G:B:A 8:8:8:8 little endian */
-#define DRM_FORMAT_BGRA8888	fourcc_code('B', 'A', '2', '4') /* [31:0] B:G:R:A 8:8:8:8 little endian */
+#define DRM_FORMAT_ARGB8888	fourcc_code('A', 'R', '2', '4') /* [31:0] A:R:G:B 8:8:8:8 native endian */
+#define DRM_FORMAT_ABGR8888	fourcc_code('A', 'B', '2', '4') /* [31:0] A:B:G:R 8:8:8:8 native endian */
+#define DRM_FORMAT_RGBA8888	fourcc_code('R', 'A', '2', '4') /* [31:0] R:G:B:A 8:8:8:8 native endian */
+#define DRM_FORMAT_BGRA8888	fourcc_code('B', 'A', '2', '4') /* [31:0] B:G:R:A 8:8:8:8 native endian */
 
 #define DRM_FORMAT_XRGB2101010	fourcc_code('X', 'R', '3', '0') /* [31:0] x:R:G:B 2:10:10:10 little endian */
 #define DRM_FORMAT_XBGR2101010	fourcc_code('X', 'B', '3', '0') /* [31:0] x:B:G:R 2:10:10:10 little endian */
-- 
2.9.3

^ permalink raw reply related	[flat|nested] 28+ messages in thread

end of thread, other threads:[~2017-04-19 12:34 UTC | newest]

Thread overview: 28+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-04-10 10:12 [RfC PATCH] drm: fourcc byteorder: brings header file comments in line with reality Gerd Hoffmann
2017-04-10 12:02 ` Daniel Vetter
2017-04-10 16:28   ` Alex Deucher
2017-04-10 13:12 ` Pekka Paalanen
2017-04-10 14:17   ` Gerd Hoffmann
2017-04-10 14:45     ` Ilia Mirkin
2017-04-10 16:26       ` Alex Deucher
2017-04-10 15:09     ` Pekka Paalanen
2017-04-10 16:10       ` Ilia Mirkin
2017-04-11  7:31         ` Pekka Paalanen
2017-04-11 11:23           ` Gerd Hoffmann
2017-04-13  7:44             ` Pekka Paalanen
2017-04-11 14:18           ` Ilia Mirkin
2017-04-17  6:43             ` Ilia Mirkin
2017-04-18  2:53               ` Michel Dänzer
2017-04-18  5:04                 ` Ilia Mirkin
2017-04-18  5:58                   ` Michel Dänzer
2017-04-18 10:14                     ` Gerd Hoffmann
2017-04-19  1:01                       ` Michel Dänzer
2017-04-19  3:19                         ` Ilia Mirkin
2017-04-19  3:28                           ` Ilia Mirkin
2017-04-19  7:09                         ` Pekka Paalanen
2017-04-19 12:34                           ` Gerd Hoffmann
2017-04-18 10:00       ` Gerd Hoffmann
2017-04-18 11:18         ` Pekka Paalanen
2017-04-18 13:39           ` Gerd Hoffmann
2017-04-18 14:01             ` Pekka Paalanen
2017-04-18 20:50               ` Gerd Hoffmann

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).