[PATCH v3 1/3] drm/format-helper: Add conversion from XRGB8888 to BGR888

Thomas Zimmermann tzimmermann at suse.de
Mon Feb 24 09:19:13 UTC 2025


Hi

Am 21.02.25 um 16:51 schrieb andriy.shevchenko at linux.intel.com:
> On Fri, Feb 21, 2025 at 11:36:00AM +0000, Aditya Garg wrote:
>> From: Kerem Karabay <kekrby at gmail.com>
>>
>> Add XRGB8888 emulation helper for devices that only support BGR888.
> ...
>
>> +	for (x = 0; x < pixels; x++) {
>> +		pix = le32_to_cpu(sbuf32[x]);
>> +		/* write red-green-blue to output in little endianness */
>> +		*dbuf8++ = (pix & 0x00ff0000) >> 16;
>> +		*dbuf8++ = (pix & 0x0000ff00) >> 8;
>> +		*dbuf8++ = (pix & 0x000000ff) >> 0;
> put_unaligned_be24()

I'm all for sharing helper code, but maybe not here.

- DRM pixel formats are always little endian.
- CPU encoding is LE or BE.
- Pixel-component order can be anything: RGB/BGR/etc.

So the code has a comment to explain what happens here. Adding that call 
with the _be24 postfix into the mix would make it more confusing.


>
>> +	}
> ...
>
>> +	static const u8 dst_pixsize[DRM_FORMAT_MAX_PLANES] = {
>> +		3,
>> +	};
> One line?
>
> 	static const u8 dst_pixsize[DRM_FORMAT_MAX_PLANES] = { 3 };

I'd be ok, if there's a string preference in the kernel to use thins 
style. Most of DRM doesn't AFAIK.

Best regards
Thomas

>

-- 
--
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Frankenstrasse 146, 90461 Nuernberg, Germany
GF: Ivo Totev, Andrew Myers, Andrew McDonald, Boudien Moerman
HRB 36809 (AG Nuernberg)



More information about the dri-devel mailing list