On Tue, Oct 20, 2020 at 10:42 AM Simon Ser contact@emersion.fr wrote:
On Tuesday, October 20, 2020 10:35 AM, Daniel Vetter daniel.vetter@ffwll.ch wrote:
There's a confusion between the preferred_depth uapi and the generic fbdev helpers. Former wants depth, latter wants bpp, and for XRGB8888 they don't match. Which hit me with vkms, which wants that.
All other drivers setting this and using the generic fbdev helpers use 16, where both numbers match, for RGB565.
Not quite: grepping reveals a majority of 24 (as shown in drmdb). A few drivers set 16 (udl, cirrus), and hisilicon sets 32.
If I haven't screwed up my grepping, those drivers that set 24 don't use the generic fbdev emulation. Which is the broken combination.
hisilicon setting 32 is just plain wrong, and it's indeed using fbdev emulation :-/ I also noticed that mga200 can end up setting 32bit.
So I guess I've not been terribly well awake when doing my grepping ...
Since fixing this is a bit involved (I think for atomic drivers we should just compute this all internally from the format list of the first primary plane) paper over the issue in vkms by using defaults everywhere. Then userspace will pick XRGB8888, and fbdev helpers will do the same, and we have what we want.
Reported-by: Simon Ser contact@emersion.fr Cc: Simon Ser contact@emersion.fr Signed-off-by: Daniel Vetter daniel.vetter@intel.com Cc: Rodrigo Siqueira rodrigosiqueiramelo@gmail.com Cc: Melissa Wen melissa.srw@gmail.com Cc: Haneen Mohammed hamohammed.sa@gmail.com Cc: Daniel Vetter daniel@ffwll.ch
With the commit message clarified:
Reviewed-by: Simon Ser contact@emersion.fr