Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1437354AbdDZJbe (ORCPT ); Wed, 26 Apr 2017 05:31:34 -0400 Received: from mail.netline.ch ([148.251.143.178]:51964 "EHLO netline-mail3.netline.ch" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2995889AbdDZJVT (ORCPT ); Wed, 26 Apr 2017 05:21:19 -0400 From: =?UTF-8?Q?Michel_D=c3=a4nzer?= Subject: Re: [PATCH 3/6] drm: fourcc byteorder: add bigendian support to drm_mode_legacy_fb_format To: Gerd Hoffmann Cc: Daniel Vetter , amd-gfx@lists.freedesktop.org, open list , dri-devel@lists.freedesktop.org References: <20170424062532.26722-1-kraxel@redhat.com> <20170424062532.26722-4-kraxel@redhat.com> <3b872a56-80b5-0c44-712f-a9517489eb24@daenzer.net> <1493185990.23739.7.camel@redhat.com> Message-ID: <8f91cc58-16dc-5899-66b6-06d430a18801@daenzer.net> Date: Wed, 26 Apr 2017 18:21:10 +0900 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 MIME-Version: 1.0 In-Reply-To: <1493185990.23739.7.camel@redhat.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1308 Lines: 42 On 26/04/17 02:53 PM, Gerd Hoffmann wrote: > On Di, 2017-04-25 at 12:18 +0900, Michel Dänzer wrote: >> On 24/04/17 03:25 PM, Gerd Hoffmann wrote: >>> Return correct fourcc codes on bigendian. Drivers must be adapted to >>> this change. >>> >>> Signed-off-by: Gerd Hoffmann >> >> Just to reiterate, this won't work for the radeon driver, which programs >> the GPU to use (effectively, per the current definition that these are >> little endian GPU formats) DRM_FORMAT_XRGB8888 with pre-R600 and >> DRM_FORMAT_BGRX8888 with >= R600. > > Hmm, ok, how does bigendian fbdev emulation work on pre-R600 then? Using a GPU byte swapping mechanism which only affects CPU access to video RAM. >>> +#ifdef __BIG_ENDIAN >>> + switch (bpp) { >>> + case 8: >>> + fmt = DRM_FORMAT_C8; >>> + break; >>> + case 24: >>> + fmt = DRM_FORMAT_BGR888; >>> + break; >> >> BTW, endianness as a concept cannot apply to 8 or 24 bpp formats. > > I could move the 8 bpp case out of the #ifdef somehow, but code > readability will suffer then I think ... How so? At least it would make clearer which formats are affected by endianness and which aren't. -- Earthling Michel Dänzer | http://www.amd.com Libre software enthusiast | Mesa and X developer