mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-10 07:00:48 +00:00
video: fbdev: imxfb: Drop platform data support
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 <u.kleine-koenig@pengutronix.de> Signed-off-by: Helge Deller <deller@gmx.de>
This commit is contained in:
parent
26c2b7d9fa
commit
e948d32c54
@ -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;
|
||||
fb_mode = NULL;
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
/*
|
||||
* 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;
|
||||
}
|
||||
|
||||
ret = imxfb_of_read_mode(&pdev->dev, display_np, fbi->mode);
|
||||
of_node_put(display_np);
|
||||
if (ret)
|
||||
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;
|
||||
}
|
||||
|
||||
/*
|
||||
* 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;
|
||||
}
|
||||
|
||||
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 @@ failed_lcd:
|
||||
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 @@ failed_init:
|
||||
|
||||
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);
|
||||
|
@ -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__ */
|
||||
|
Loading…
x
Reference in New Issue
Block a user