From e271e7dc521689ae124ff04b3dc93bcf82a95083 Mon Sep 17 00:00:00 2001 From: "mingyang.he" Date: Thu, 9 Nov 2023 12:30:43 +0000 Subject: [PATCH] drm: combine meson fbdev callback with default setcmap [1/1] PD#SH-17079 Problem: after logo no console display on screen Solution: combine meson callback with default setcmap Verify: s4 Test: DRM-OSD-125 Change-Id: I2c3bf295090b45b81d0a8a8bda021b9a5f683eba Signed-off-by: mingyang.he --- drivers/drm/meson_fbdev.c | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/drivers/drm/meson_fbdev.c b/drivers/drm/meson_fbdev.c index e7df45ac6..d15b0cf4d 100644 --- a/drivers/drm/meson_fbdev.c +++ b/drivers/drm/meson_fbdev.c @@ -177,14 +177,19 @@ static int am_meson_drm_fbdev_setcmap(struct fb_cmap *cmap, struct fb_info *info index = cmap->start; DRM_DEBUG("%s\n", __func__); - for (count = 0; count < cmap->len; count++) { - if (transp) - trans = *transp++; - if (info->fbops->fb_setcolreg) - r = info->fbops->fb_setcolreg(index++, *red++, *green++, *blue++, trans, - info); - if (r != 0) - return r; + if (info->fix.visual == FB_VISUAL_PSEUDOCOLOR) { + for (count = 0; count < cmap->len; count++) { + if (transp) + trans = *transp++; + if (info->fbops->fb_setcolreg) + r = info->fbops->fb_setcolreg(index++, *red++, *green++, *blue++, + trans, info); + if (r != 0) + return r; + } + } else { + r = drm_fb_helper_setcmap(cmap, info); + return r; } return 0;