From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753200AbdDJKMS (ORCPT ); Mon, 10 Apr 2017 06:12:18 -0400 Received: from mx1.redhat.com ([209.132.183.28]:42046 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753148AbdDJKMN (ORCPT ); Mon, 10 Apr 2017 06:12:13 -0400 DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com BEB4880F75 Authentication-Results: ext-mx03.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx03.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=kraxel@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com BEB4880F75 From: Gerd Hoffmann To: dri-devel@lists.freedesktop.org Cc: Gerd Hoffmann , =?UTF-8?q?Ville=20Syrj=C3=A4l=C3=A4?= , Daniel Vetter , amd-gfx@lists.freedesktop.org, Jani Nikula , Sean Paul , David Airlie , linux-kernel@vger.kernel.org (open list) Subject: [RfC PATCH] drm: fourcc byteorder: brings header file comments in line with reality. Date: Mon, 10 Apr 2017 12:12:01 +0200 Message-Id: <20170410101202.19229-1-kraxel@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.27]); Mon, 10 Apr 2017 10:12:13 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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ä Cc: Daniel Vetter Cc: amd-gfx@lists.freedesktop.org Signed-off-by: Gerd Hoffmann --- 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 From mboxrd@z Thu Jan 1 00:00:00 1970 From: Gerd Hoffmann Subject: [RfC PATCH] drm: fourcc byteorder: brings header file comments in line with reality. Date: Mon, 10 Apr 2017 12:12:01 +0200 Message-ID: <20170410101202.19229-1-kraxel@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org Cc: open list , amd-gfx@lists.freedesktop.org, Daniel Vetter , Gerd Hoffmann List-Id: dri-devel@lists.freedesktop.org T2ssIHRoaXMgaXMgcmVhbGx5IGEga2lja3N0YXJ0IGZvciBhIGRpc2N1c3Npb24uICBXaGlsZSB3 b3JraW5nIG9uCmdyYXBoaWNzIHN1cHBvcnQgZm9yIHZpcnR1YWwgbWFjaGluZXMgb24gcHBjNjQg KHdoaWNoIGV4aXN0cyBpbiBib3RoCmxpdHRsZSBhbmQgYmlnIGVuZGlhbiB2YXJpYW50cykgSSd2 ZSBmaWd1cmVkIHRoZSBjb21tZW50cyBpbiB0aGUgaGVhZGVyCmZpbGUgZG9uJ3QgbWF0Y2ggcmVh bGl0eS4gIFRoZXkgYXJlIG5vdCBjb25zaWRlcmVkIGxpdHRsZSBlbmRpYW4gKGFzCnN1Z2dlc3Rl ZCBieSB0aGUgY29tbWVudHMpIGJ1dCBpbiBwcmFjdGljZSBhcmUgdXNlZCBhcyBuYXRpdmUgZW5k aWFuLgoKU28sIGdvIHVwZGF0ZSB0aGUgY29tbWVudHMuCgpUaGlzIHBhdGNoIHN3aXRjaGVzIGFs bCAzMmJwcCAvIDggYnBjIGZvcm1hdHMgb3ZlciB0byBuYXRpdmUgZW5kaWFuLgpUaG9zZSB1c2Vk L3N1cHBvcnRlZCBieSBwcGM2NCB2aXJ0dWFsIG1hY2hpbmVzICh2aXJ0aW8tZ3B1L2JvY2hzLWRy bQpkcml2ZXJzKS4KCkdpdmVuIHRoYXQgRFJNX0ZPUk1BVF9CSUdfRU5ESUFOIGlzbid0IHVzZWQg YW55d2hlcmUgaW4gdGhlIGNvZGViYXNlCkkgc3VzcGVjdCB0aGlzIHByb2JsZW0gYXBwbGllcyB0 byBtb3JlIGZvcm1hdHMuICBXaGVuIGxvb2tpbmcgYXQKZHJtX21vZGVfbGVnYWN5X2ZiX2Zvcm1h dCBpdCBzZWVtcyAqYWxsKiBSR0IgZm9ybWF0cyBhcmUgYWN0dWFsbHkKbmF0aXZlIGVuZGlhbiBu b3QgbGl0dGxlIGVuZGlhbi4KCkR1bm5vIHdoZXJlIHdlIHN0YW5kIGluIHRlcm1zIG9mIFlDYkNy LgoKQ2M6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+CkNj OiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGludGVsLmNvbT4KQ2M6IGFtZC1nZnhAbGlz dHMuZnJlZWRlc2t0b3Aub3JnClNpZ25lZC1vZmYtYnk6IEdlcmQgSG9mZm1hbm4gPGtyYXhlbEBy ZWRoYXQuY29tPgotLS0KIGluY2x1ZGUvdWFwaS9kcm0vZHJtX2ZvdXJjYy5oIHwgMTYgKysrKysr KystLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDggaW5zZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvZHJtL2RybV9mb3VyY2MuaCBiL2luY2x1ZGUv dWFwaS9kcm0vZHJtX2ZvdXJjYy5oCmluZGV4IDk5NWM4ZjkuLmE3ZmM4MWQgMTAwNjQ0Ci0tLSBh L2luY2x1ZGUvdWFwaS9kcm0vZHJtX2ZvdXJjYy5oCisrKyBiL2luY2x1ZGUvdWFwaS9kcm0vZHJt X2ZvdXJjYy5oCkBAIC04NSwxNSArODUsMTUgQEAgZXh0ZXJuICJDIiB7CiAjZGVmaW5lIERSTV9G T1JNQVRfQkdSODg4CWZvdXJjY19jb2RlKCdCJywgJ0cnLCAnMicsICc0JykgLyogWzIzOjBdIEI6 RzpSIGxpdHRsZSBlbmRpYW4gKi8KIAogLyogMzIgYnBwIFJHQiAqLwotI2RlZmluZSBEUk1fRk9S TUFUX1hSR0I4ODg4CWZvdXJjY19jb2RlKCdYJywgJ1InLCAnMicsICc0JykgLyogWzMxOjBdIHg6 UjpHOkIgODo4Ojg6OCBsaXR0bGUgZW5kaWFuICovCi0jZGVmaW5lIERSTV9GT1JNQVRfWEJHUjg4 ODgJZm91cmNjX2NvZGUoJ1gnLCAnQicsICcyJywgJzQnKSAvKiBbMzE6MF0geDpCOkc6UiA4Ojg6 ODo4IGxpdHRsZSBlbmRpYW4gKi8KLSNkZWZpbmUgRFJNX0ZPUk1BVF9SR0JYODg4OAlmb3VyY2Nf Y29kZSgnUicsICdYJywgJzInLCAnNCcpIC8qIFszMTowXSBSOkc6Qjp4IDg6ODo4OjggbGl0dGxl IGVuZGlhbiAqLwotI2RlZmluZSBEUk1fRk9STUFUX0JHUlg4ODg4CWZvdXJjY19jb2RlKCdCJywg J1gnLCAnMicsICc0JykgLyogWzMxOjBdIEI6RzpSOnggODo4Ojg6OCBsaXR0bGUgZW5kaWFuICov CisjZGVmaW5lIERSTV9GT1JNQVRfWFJHQjg4ODgJZm91cmNjX2NvZGUoJ1gnLCAnUicsICcyJywg JzQnKSAvKiBbMzE6MF0geDpSOkc6QiA4Ojg6ODo4IG5hdGl2ZSBlbmRpYW4gKi8KKyNkZWZpbmUg RFJNX0ZPUk1BVF9YQkdSODg4OAlmb3VyY2NfY29kZSgnWCcsICdCJywgJzInLCAnNCcpIC8qIFsz MTowXSB4OkI6RzpSIDg6ODo4OjggbmF0aXZlIGVuZGlhbiAqLworI2RlZmluZSBEUk1fRk9STUFU X1JHQlg4ODg4CWZvdXJjY19jb2RlKCdSJywgJ1gnLCAnMicsICc0JykgLyogWzMxOjBdIFI6RzpC OnggODo4Ojg6OCBuYXRpdmUgZW5kaWFuICovCisjZGVmaW5lIERSTV9GT1JNQVRfQkdSWDg4ODgJ Zm91cmNjX2NvZGUoJ0InLCAnWCcsICcyJywgJzQnKSAvKiBbMzE6MF0gQjpHOlI6eCA4Ojg6ODo4 IG5hdGl2ZSBlbmRpYW4gKi8KIAotI2RlZmluZSBEUk1fRk9STUFUX0FSR0I4ODg4CWZvdXJjY19j b2RlKCdBJywgJ1InLCAnMicsICc0JykgLyogWzMxOjBdIEE6UjpHOkIgODo4Ojg6OCBsaXR0bGUg ZW5kaWFuICovCi0jZGVmaW5lIERSTV9GT1JNQVRfQUJHUjg4ODgJZm91cmNjX2NvZGUoJ0EnLCAn QicsICcyJywgJzQnKSAvKiBbMzE6MF0gQTpCOkc6UiA4Ojg6ODo4IGxpdHRsZSBlbmRpYW4gKi8K LSNkZWZpbmUgRFJNX0ZPUk1BVF9SR0JBODg4OAlmb3VyY2NfY29kZSgnUicsICdBJywgJzInLCAn NCcpIC8qIFszMTowXSBSOkc6QjpBIDg6ODo4OjggbGl0dGxlIGVuZGlhbiAqLwotI2RlZmluZSBE Uk1fRk9STUFUX0JHUkE4ODg4CWZvdXJjY19jb2RlKCdCJywgJ0EnLCAnMicsICc0JykgLyogWzMx OjBdIEI6RzpSOkEgODo4Ojg6OCBsaXR0bGUgZW5kaWFuICovCisjZGVmaW5lIERSTV9GT1JNQVRf QVJHQjg4ODgJZm91cmNjX2NvZGUoJ0EnLCAnUicsICcyJywgJzQnKSAvKiBbMzE6MF0gQTpSOkc6 QiA4Ojg6ODo4IG5hdGl2ZSBlbmRpYW4gKi8KKyNkZWZpbmUgRFJNX0ZPUk1BVF9BQkdSODg4OAlm b3VyY2NfY29kZSgnQScsICdCJywgJzInLCAnNCcpIC8qIFszMTowXSBBOkI6RzpSIDg6ODo4Ojgg bmF0aXZlIGVuZGlhbiAqLworI2RlZmluZSBEUk1fRk9STUFUX1JHQkE4ODg4CWZvdXJjY19jb2Rl KCdSJywgJ0EnLCAnMicsICc0JykgLyogWzMxOjBdIFI6RzpCOkEgODo4Ojg6OCBuYXRpdmUgZW5k aWFuICovCisjZGVmaW5lIERSTV9GT1JNQVRfQkdSQTg4ODgJZm91cmNjX2NvZGUoJ0InLCAnQScs ICcyJywgJzQnKSAvKiBbMzE6MF0gQjpHOlI6QSA4Ojg6ODo4IG5hdGl2ZSBlbmRpYW4gKi8KIAog I2RlZmluZSBEUk1fRk9STUFUX1hSR0IyMTAxMDEwCWZvdXJjY19jb2RlKCdYJywgJ1InLCAnMycs ICcwJykgLyogWzMxOjBdIHg6UjpHOkIgMjoxMDoxMDoxMCBsaXR0bGUgZW5kaWFuICovCiAjZGVm aW5lIERSTV9GT1JNQVRfWEJHUjIxMDEwMTAJZm91cmNjX2NvZGUoJ1gnLCAnQicsICczJywgJzAn KSAvKiBbMzE6MF0geDpCOkc6UiAyOjEwOjEwOjEwIGxpdHRsZSBlbmRpYW4gKi8KLS0gCjIuOS4z CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2 ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK