Sorry for late regression detection but this patch regresses the Integrator AB IMPD-1 graphics, I bisected down to this patch. On Mon, Jan 2, 2023 at 12:30 PM Thomas Zimmermann <tzimmermann@xxxxxxx> wrote: > Fix the color-format selection of the single-probe helper. Go > through all user-specified values and test each for compatibility > with the driver. If none is supported, use the driver-provided > default. This guarantees that the console is always available in > any color format at least. > > Until now, the format selection of the single-probe helper tried > to either use a user-specified format or a 32-bit default format. > If the user-specified format was not supported by the driver, the > selection failed and the display remained blank. > > Signed-off-by: Thomas Zimmermann <tzimmermann@xxxxxxx> > Reviewed-by: Javier Martinez Canillas <javierm@xxxxxxxxxx> Before this patch: [drm] Initialized pl111 1.0.0 20170317 for c1000000.display on minor 0 drm-clcd-pl111 c1000000.display: [drm] requested bpp 16, scaled depth down to 15 drm-clcd-pl111 c1000000.display: enable IM-PD1 CLCD connectors Console: switching to colour frame buffer device 80x30 drm-clcd-pl111 c1000000.display: [drm] fb0: pl111drmfb frame buffer device After this patch: [drm] Initialized pl111 1.0.0 20170317 for c1000000.display on minor 0 drm-clcd-pl111 c1000000.display: [drm] bpp/depth value of 16/16 not supported drm-clcd-pl111 c1000000.display: [drm] No compatible format found drm-clcd-pl111 c1000000.display: [drm] *ERROR* fbdev: Failed to setup generic emulation (ret=-12) It seems the bpp downscaling stopped to work? This is the driver: drivers/gpu/drm/pl111/pl111_versatile.c with the pl110_impd1 variant, so these are the supported modes: /* PL110 pixel formats for Integrator, vanilla PL110 */ static const u32 pl110_integrator_pixel_formats[] = { DRM_FORMAT_ABGR8888, DRM_FORMAT_XBGR8888, DRM_FORMAT_ARGB8888, DRM_FORMAT_XRGB8888, DRM_FORMAT_ABGR1555, DRM_FORMAT_XBGR1555, DRM_FORMAT_ARGB1555, DRM_FORMAT_XRGB1555, }; (...) /* * The IM-PD1 variant is a PL110 with a bunch of broken, or not * yet implemented features */ static const struct pl111_variant_data pl110_impd1 = { .name = "PL110 IM-PD1", .is_pl110 = true, .broken_clockdivider = true, .broken_vblank = true, .formats = pl110_integrator_pixel_formats, .nformats = ARRAY_SIZE(pl110_integrator_pixel_formats), .fb_bpp = 16, }; Notice the absence of RGB565! Then we initialized the frambuffer like this: drm_fbdev_dma_setup(drm, priv->variant->fb_bpp); And as you see priv->variant->fb_bpp will be 16, so we want some 16bpp mode however the only supported depth is 15 (the 1555 modes) so it would use that by scaling back depth to 15. However after this patch that doesn't work anymore. Any hints on how we can fix this? Yours, Linus Walleij