drm/tilcdc: Set preferred depth
The commit c91acda3 ("drm/gem: Check for valid formats") adds a check for valid pixel formats on drm_gem_fb_create(), but this breaks the X server on the beaglebone black board. We have set 'DefaultDepth' to 16 in our xorg.conf. In the X modesetting driver, the drmmode_get_default_bpp() is used to guess the default depth/bpp. First it tries to get them via DRM_CAP_DUMB_PREFERRED_DEPTH ioctl, and if it fail, then try to create a FB with 'depth = 24' and 'bpp = 32' to check whether this depth/dpp is a valid combo. Before the kernel commit c91acda3, the FB always can be created successfully. This will avoid the bpp to be set to 24 forcibly. But after kernel commit c91acda3, the FB will not be created successfully due to the check of the valid pixel format. Then the bpp is set to 24, but the 'depth = 16' and 'bpp = 24' combo is not a valid pixel format. Fix this issue by explicitly setting the preferred_depth in this driver. With this change, the modesetting driver would choose the correct depth/bpp combo based on our setting in xorg.conf. Fixes: c91acda3 ("drm/gem: Check for valid formats") Cc: stable@vger.kernel.org Signed-off-by:Kevin Hao <haokexin@gmail.com> Link: https://lore.kernel.org/r/20240317033918.535716-1-haokexin@gmail.com/ Signed-off-by:
Bruce Ashfield <bruce.ashfield@gmail.com>
Loading
Please register or sign in to comment