Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

drm/gma500: Remove unused helper psb_fbdev_fb_setcolreg()

Remove psb_fbdev_fb_setcolreg(), which hasn't been called in almost
a decade.

Gma500 commit 4d8d096e9ae8 ("gma500: introduce the framebuffer support
code") added the helper psb_fbdev_fb_setcolreg() for setting the fbdev
palette via fbdev's fb_setcolreg callback. Later
commit 3da6c2f3b730 ("drm/gma500: use DRM_FB_HELPER_DEFAULT_OPS for
fb_ops") set several default helpers for fbdev emulation, including
fb_setcmap.

The fbdev subsystem always prefers fb_setcmap over fb_setcolreg. [1]
Hence, the gma500 code is no longer in use and gma500 has been using
drm_fb_helper_setcmap() for several years without issues.

Fixes: 3da6c2f3b730 ("drm/gma500: use DRM_FB_HELPER_DEFAULT_OPS for fb_ops")
Cc: Patrik Jakobsson <patrik.r.jakobsson@gmail.com>
Cc: Stefan Christ <contact@stefanchrist.eu>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: dri-devel@lists.freedesktop.org
Cc: <stable@vger.kernel.org> # v4.10+
Link: https://elixir.bootlin.com/linux/v6.16.9/source/drivers/video/fbdev/core/fbcmap.c#L246 # [1]
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Acked-by: Patrik Jakobsson <patrik.r.jakobsson@gmail.com>
Link: https://lore.kernel.org/r/20250929082338.18845-1-tzimmermann@suse.de

-43
-43
drivers/gpu/drm/gma500/fbdev.c
··· 50 50 * struct fb_ops 51 51 */ 52 52 53 - #define CMAP_TOHW(_val, _width) ((((_val) << (_width)) + 0x7FFF - (_val)) >> 16) 54 - 55 - static int psb_fbdev_fb_setcolreg(unsigned int regno, 56 - unsigned int red, unsigned int green, 57 - unsigned int blue, unsigned int transp, 58 - struct fb_info *info) 59 - { 60 - struct drm_fb_helper *fb_helper = info->par; 61 - struct drm_framebuffer *fb = fb_helper->fb; 62 - uint32_t v; 63 - 64 - if (!fb) 65 - return -ENOMEM; 66 - 67 - if (regno > 255) 68 - return 1; 69 - 70 - red = CMAP_TOHW(red, info->var.red.length); 71 - blue = CMAP_TOHW(blue, info->var.blue.length); 72 - green = CMAP_TOHW(green, info->var.green.length); 73 - transp = CMAP_TOHW(transp, info->var.transp.length); 74 - 75 - v = (red << info->var.red.offset) | 76 - (green << info->var.green.offset) | 77 - (blue << info->var.blue.offset) | 78 - (transp << info->var.transp.offset); 79 - 80 - if (regno < 16) { 81 - switch (fb->format->cpp[0] * 8) { 82 - case 16: 83 - ((uint32_t *) info->pseudo_palette)[regno] = v; 84 - break; 85 - case 24: 86 - case 32: 87 - ((uint32_t *) info->pseudo_palette)[regno] = v; 88 - break; 89 - } 90 - } 91 - 92 - return 0; 93 - } 94 - 95 53 static int psb_fbdev_fb_mmap(struct fb_info *info, struct vm_area_struct *vma) 96 54 { 97 55 if (vma->vm_pgoff != 0) ··· 93 135 .owner = THIS_MODULE, 94 136 __FB_DEFAULT_IOMEM_OPS_RDWR, 95 137 DRM_FB_HELPER_DEFAULT_OPS, 96 - .fb_setcolreg = psb_fbdev_fb_setcolreg, 97 138 __FB_DEFAULT_IOMEM_OPS_DRAW, 98 139 .fb_mmap = psb_fbdev_fb_mmap, 99 140 .fb_destroy = psb_fbdev_fb_destroy,