On 7/23/22 19:57, Uwe Kleine-König wrote:
> No source file but the driver itself includes the header containing the
> platform data definition. The last user is gone since commit
> 8485adf17a15 ("ARM: imx: Remove imx device directory").
>
> So we can safely drop platform data support.
>
> Signed-off-by: Uwe Kleine-König <[email protected]>

I've applied all 4 patches to the fbdev git tree.

Thanks!
Helge

> ---
>  drivers/video/fbdev/imxfb.c               | 99 ++++++++---------------
>  include/linux/platform_data/video-imxfb.h | 12 ---
>  2 files changed, 34 insertions(+), 77 deletions(-)
>
> diff --git a/drivers/video/fbdev/imxfb.c b/drivers/video/fbdev/imxfb.c
> index a2f644c97f28..85a5bf5639d9 100644
> --- a/drivers/video/fbdev/imxfb.c
> +++ b/drivers/video/fbdev/imxfb.c
> @@ -656,7 +656,6 @@ static int imxfb_activate_var(struct fb_var_screeninfo 
> *var, struct fb_info *inf
>
>  static int imxfb_init_fbinfo(struct platform_device *pdev)
>  {
> -     struct imx_fb_platform_data *pdata = dev_get_platdata(&pdev->dev);
>       struct fb_info *info = platform_get_drvdata(pdev);
>       struct imxfb_info *fbi = info->par;
>       struct device_node *np;
> @@ -690,25 +689,20 @@ static int imxfb_init_fbinfo(struct platform_device 
> *pdev)
>       info->fbops                     = &imxfb_ops;
>       info->flags                     = FBINFO_FLAG_DEFAULT |
>                                         FBINFO_READS_FAST;
> -     if (pdata) {
> -             fbi->lscr1                      = pdata->lscr1;
> -             fbi->dmacr                      = pdata->dmacr;
> -             fbi->pwmr                       = pdata->pwmr;
> -     } else {
> -             np = pdev->dev.of_node;
> -             info->var.grayscale = of_property_read_bool(np,
> -                                             "cmap-greyscale");
> -             fbi->cmap_inverse = of_property_read_bool(np, "cmap-inverse");
> -             fbi->cmap_static = of_property_read_bool(np, "cmap-static");
>
> -             fbi->lscr1 = IMXFB_LSCR1_DEFAULT;
> +     np = pdev->dev.of_node;
> +     info->var.grayscale = of_property_read_bool(np,
> +                                     "cmap-greyscale");
> +     fbi->cmap_inverse = of_property_read_bool(np, "cmap-inverse");
> +     fbi->cmap_static = of_property_read_bool(np, "cmap-static");
>
> -             of_property_read_u32(np, "fsl,lpccr", &fbi->pwmr);
> +     fbi->lscr1 = IMXFB_LSCR1_DEFAULT;
>
> -             of_property_read_u32(np, "fsl,lscr1", &fbi->lscr1);
> +     of_property_read_u32(np, "fsl,lpccr", &fbi->pwmr);
>
> -             of_property_read_u32(np, "fsl,dmacr", &fbi->dmacr);
> -     }
> +     of_property_read_u32(np, "fsl,lscr1", &fbi->lscr1);
> +
> +     of_property_read_u32(np, "fsl,dmacr", &fbi->dmacr);
>
>       return 0;
>  }
> @@ -863,10 +857,10 @@ static int imxfb_probe(struct platform_device *pdev)
>       struct imxfb_info *fbi;
>       struct lcd_device *lcd;
>       struct fb_info *info;
> -     struct imx_fb_platform_data *pdata;
>       struct resource *res;
>       struct imx_fb_videomode *m;
>       const struct of_device_id *of_id;
> +     struct device_node *display_np;
>       int ret, i;
>       int bytes_per_pixel;
>
> @@ -884,8 +878,6 @@ static int imxfb_probe(struct platform_device *pdev)
>       if (!res)
>               return -ENODEV;
>
> -     pdata = dev_get_platdata(&pdev->dev);
> -
>       info = framebuffer_alloc(sizeof(struct imxfb_info), &pdev->dev);
>       if (!info)
>               return -ENOMEM;
> @@ -898,43 +890,34 @@ static int imxfb_probe(struct platform_device *pdev)
>       if (ret < 0)
>               goto failed_init;
>
> -     if (pdata) {
> -             if (!fb_mode)
> -                     fb_mode = pdata->mode[0].mode.name;
> -
> -             fbi->mode = pdata->mode;
> -             fbi->num_modes = pdata->num_modes;
> -     } else {
> -             struct device_node *display_np;
> -             fb_mode = NULL;
> -
> -             display_np = of_parse_phandle(pdev->dev.of_node, "display", 0);
> -             if (!display_np) {
> -                     dev_err(&pdev->dev, "No display defined in 
> devicetree\n");
> -                     ret = -EINVAL;
> -                     goto failed_of_parse;
> -             }
> +     fb_mode = NULL;
>
> -             /*
> -              * imxfb does not support more modes, we choose only the native
> -              * mode.
> -              */
> -             fbi->num_modes = 1;
> -
> -             fbi->mode = devm_kzalloc(&pdev->dev,
> -                             sizeof(struct imx_fb_videomode), GFP_KERNEL);
> -             if (!fbi->mode) {
> -                     ret = -ENOMEM;
> -                     of_node_put(display_np);
> -                     goto failed_of_parse;
> -             }
> +     display_np = of_parse_phandle(pdev->dev.of_node, "display", 0);
> +     if (!display_np) {
> +             dev_err(&pdev->dev, "No display defined in devicetree\n");
> +             ret = -EINVAL;
> +             goto failed_of_parse;
> +     }
>
> -             ret = imxfb_of_read_mode(&pdev->dev, display_np, fbi->mode);
> +     /*
> +      * imxfb does not support more modes, we choose only the native
> +      * mode.
> +      */
> +     fbi->num_modes = 1;
> +
> +     fbi->mode = devm_kzalloc(&pdev->dev,
> +                     sizeof(struct imx_fb_videomode), GFP_KERNEL);
> +     if (!fbi->mode) {
> +             ret = -ENOMEM;
>               of_node_put(display_np);
> -             if (ret)
> -                     goto failed_of_parse;
> +             goto failed_of_parse;
>       }
>
> +     ret = imxfb_of_read_mode(&pdev->dev, display_np, fbi->mode);
> +     of_node_put(display_np);
> +     if (ret)
> +             goto failed_of_parse;
> +
>       /* Calculate maximum bytes used per pixel. In most cases this should
>        * be the same as m->bpp/8 */
>       m = &fbi->mode[0];
> @@ -1001,13 +984,6 @@ static int imxfb_probe(struct platform_device *pdev)
>
>       info->fix.smem_start = fbi->map_dma;
>
> -     if (pdata && pdata->init) {
> -             ret = pdata->init(fbi->pdev);
> -             if (ret)
> -                     goto failed_platform_init;
> -     }
> -
> -
>       INIT_LIST_HEAD(&info->modelist);
>       for (i = 0; i < fbi->num_modes; i++)
>               fb_add_videomode(&fbi->mode[i].mode, &info->modelist);
> @@ -1059,9 +1035,6 @@ static int imxfb_probe(struct platform_device *pdev)
>  failed_register:
>       fb_dealloc_cmap(&info->cmap);
>  failed_cmap:
> -     if (pdata && pdata->exit)
> -             pdata->exit(fbi->pdev);
> -failed_platform_init:
>       dma_free_wc(&pdev->dev, fbi->map_size, info->screen_buffer,
>                   fbi->map_dma);
>  failed_map:
> @@ -1079,7 +1052,6 @@ static int imxfb_probe(struct platform_device *pdev)
>
>  static int imxfb_remove(struct platform_device *pdev)
>  {
> -     struct imx_fb_platform_data *pdata;
>       struct fb_info *info = platform_get_drvdata(pdev);
>       struct imxfb_info *fbi = info->par;
>       struct resource *res;
> @@ -1092,9 +1064,6 @@ static int imxfb_remove(struct platform_device *pdev)
>
>       unregister_framebuffer(info);
>       fb_dealloc_cmap(&info->cmap);
> -     pdata = dev_get_platdata(&pdev->dev);
> -     if (pdata && pdata->exit)
> -             pdata->exit(fbi->pdev);
>       dma_free_wc(&pdev->dev, fbi->map_size, info->screen_buffer,
>                   fbi->map_dma);
>       iounmap(fbi->regs);
> diff --git a/include/linux/platform_data/video-imxfb.h 
> b/include/linux/platform_data/video-imxfb.h
> index 02812651af7d..b80a156a6617 100644
> --- a/include/linux/platform_data/video-imxfb.h
> +++ b/include/linux/platform_data/video-imxfb.h
> @@ -55,16 +55,4 @@ struct imx_fb_videomode {
>       unsigned char   bpp;
>  };
>
> -struct imx_fb_platform_data {
> -     struct imx_fb_videomode *mode;
> -     int             num_modes;
> -
> -     u_int           pwmr;
> -     u_int           lscr1;
> -     u_int           dmacr;
> -
> -     int (*init)(struct platform_device *);
> -     void (*exit)(struct platform_device *);
> -};
> -
>  #endif /* ifndef __MACH_IMXFB_H__ */
>
> base-commit: f2906aa863381afb0015a9eb7fefad885d4e5a56

Reply via email to