[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <8f91cc58-16dc-5899-66b6-06d430a18801@daenzer.net>
Date: Wed, 26 Apr 2017 18:21:10 +0900
From: Michel Dänzer <michel@...nzer.net>
To: Gerd Hoffmann <kraxel@...hat.com>
Cc: Daniel Vetter <daniel.vetter@...el.com>,
amd-gfx@...ts.freedesktop.org,
open list <linux-kernel@...r.kernel.org>,
dri-devel@...ts.freedesktop.org
Subject: Re: [PATCH 3/6] drm: fourcc byteorder: add bigendian support to
drm_mode_legacy_fb_format
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 <kraxel@...hat.com>
>>
>> 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
Powered by blists - more mailing lists