On Mon, Sep 29, 2025 at 10:26 AM Thomas Zimmermann <[email protected]> wrote:
>
> 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 <[email protected]>
> Cc: Stefan Christ <[email protected]>
> Cc: Daniel Vetter <[email protected]>
> Cc: [email protected]
> Cc: <[email protected]> # 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 <[email protected]>

Acked-by: Patrik Jakobsson <[email protected]>

> ---
>  drivers/gpu/drm/gma500/fbdev.c | 43 ----------------------------------
>  1 file changed, 43 deletions(-)
>
> diff --git a/drivers/gpu/drm/gma500/fbdev.c b/drivers/gpu/drm/gma500/fbdev.c
> index 32d31e5f5f1a..a6af21514cff 100644
> --- a/drivers/gpu/drm/gma500/fbdev.c
> +++ b/drivers/gpu/drm/gma500/fbdev.c
> @@ -50,48 +50,6 @@ static const struct vm_operations_struct psb_fbdev_vm_ops 
> = {
>   * struct fb_ops
>   */
>
> -#define CMAP_TOHW(_val, _width) ((((_val) << (_width)) + 0x7FFF - (_val)) >> 
> 16)
> -
> -static int psb_fbdev_fb_setcolreg(unsigned int regno,
> -                                 unsigned int red, unsigned int green,
> -                                 unsigned int blue, unsigned int transp,
> -                                 struct fb_info *info)
> -{
> -       struct drm_fb_helper *fb_helper = info->par;
> -       struct drm_framebuffer *fb = fb_helper->fb;
> -       uint32_t v;
> -
> -       if (!fb)
> -               return -ENOMEM;
> -
> -       if (regno > 255)
> -               return 1;
> -
> -       red = CMAP_TOHW(red, info->var.red.length);
> -       blue = CMAP_TOHW(blue, info->var.blue.length);
> -       green = CMAP_TOHW(green, info->var.green.length);
> -       transp = CMAP_TOHW(transp, info->var.transp.length);
> -
> -       v = (red << info->var.red.offset) |
> -           (green << info->var.green.offset) |
> -           (blue << info->var.blue.offset) |
> -           (transp << info->var.transp.offset);
> -
> -       if (regno < 16) {
> -               switch (fb->format->cpp[0] * 8) {
> -               case 16:
> -                       ((uint32_t *) info->pseudo_palette)[regno] = v;
> -                       break;
> -               case 24:
> -               case 32:
> -                       ((uint32_t *) info->pseudo_palette)[regno] = v;
> -                       break;
> -               }
> -       }
> -
> -       return 0;
> -}
> -
>  static int psb_fbdev_fb_mmap(struct fb_info *info, struct vm_area_struct 
> *vma)
>  {
>         if (vma->vm_pgoff != 0)
> @@ -135,7 +93,6 @@ static const struct fb_ops psb_fbdev_fb_ops = {
>         .owner = THIS_MODULE,
>         __FB_DEFAULT_IOMEM_OPS_RDWR,
>         DRM_FB_HELPER_DEFAULT_OPS,
> -       .fb_setcolreg = psb_fbdev_fb_setcolreg,
>         __FB_DEFAULT_IOMEM_OPS_DRAW,
>         .fb_mmap = psb_fbdev_fb_mmap,
>         .fb_destroy = psb_fbdev_fb_destroy,
> --
> 2.51.0
>

Reply via email to