Re: [PATCH] firmware/sysfb: Fix wrong stride when bits-per-pixel is calculated

From: Javier Martinez Canillas
Date: Wed Apr 12 2023 - 18:10:27 EST


"Pierre Asselin" <pa@xxxxxxxxx> writes:

>> Javier Martinez Canillas <javierm@xxxxxxxxxx> writes:
>>
>> I still don't understand why this particular configuration didn't work...
>>
>> The framebuffer starts at 0xd8000000 and has a size of 0x240000 bytes, so
>
> Says who ? It's the same grub, same video mode as before the regression,
> so the size is probably 0x300000 like it always was.
>
>> a r8g8b8 pixel format with resolution 1024x768 should be correct. Since is
>> 1024 * 768 * (24 / 8) = 2359296 = 0x240000.
>
> That is internally consistent, but at variance with the video mode
> set up by grub.
>
> It is better to sqeeze bits by 4:3 on each line (regression) than to
> scatter 4 logical lines across 3 physical lines (regression, patched) !
>

Indeed. I noticed now that the IORESOURCE_MEM is set-up in the function
sysfb_create_simplefb() so is likely that is internally consistent as you
said but wrong :)

>> Could you please apply the following diff that will print all the relevant
>> fields from the screen_info that are used to calculate the bpp and stride.
>
> YES ! I can't peer into that struct screen_info and I don't know to
> write the printk's. (Hm, doesn't look too hard, but trust me, I would
> fumble it.)
>
> I'll back out the original patch first.
> Stand by.
>
> --PA
>

--
Best regards,

Javier Martinez Canillas
Core Platforms
Red Hat