mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-27 15:25:02 +07:00
video: da8xx-fb: reorganize panel detection
Move panel detection to a separate function, this helps in readability as well as makes DT support cleaner. Signed-off-by: Afzal Mohammed <afzal@ti.com> Signed-off-by: Darren Etheridge <detheridge@ti.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
This commit is contained in:
parent
3a58101da2
commit
2bdff0680f
@ -1253,6 +1253,27 @@ static struct fb_ops da8xx_fb_ops = {
|
||||
.fb_blank = cfb_blank,
|
||||
};
|
||||
|
||||
static struct fb_videomode *da8xx_fb_get_videomode(struct platform_device *dev)
|
||||
{
|
||||
struct da8xx_lcdc_platform_data *fb_pdata = dev->dev.platform_data;
|
||||
struct fb_videomode *lcdc_info;
|
||||
int i;
|
||||
|
||||
for (i = 0, lcdc_info = known_lcd_panels;
|
||||
i < ARRAY_SIZE(known_lcd_panels); i++, lcdc_info++) {
|
||||
if (strcmp(fb_pdata->type, lcdc_info->name) == 0)
|
||||
break;
|
||||
}
|
||||
|
||||
if (i == ARRAY_SIZE(known_lcd_panels)) {
|
||||
dev_err(&dev->dev, "no panel found\n");
|
||||
return NULL;
|
||||
}
|
||||
dev_info(&dev->dev, "found %s panel\n", lcdc_info->name);
|
||||
|
||||
return lcdc_info;
|
||||
}
|
||||
|
||||
static int fb_probe(struct platform_device *device)
|
||||
{
|
||||
struct da8xx_lcdc_platform_data *fb_pdata =
|
||||
@ -1263,7 +1284,7 @@ static int fb_probe(struct platform_device *device)
|
||||
struct fb_info *da8xx_fb_info;
|
||||
struct clk *fb_clk = NULL;
|
||||
struct da8xx_fb_par *par;
|
||||
int ret, i;
|
||||
int ret;
|
||||
unsigned long ulcm;
|
||||
|
||||
if (fb_pdata == NULL) {
|
||||
@ -1271,6 +1292,10 @@ static int fb_probe(struct platform_device *device)
|
||||
return -ENOENT;
|
||||
}
|
||||
|
||||
lcdc_info = da8xx_fb_get_videomode(device);
|
||||
if (lcdc_info == NULL)
|
||||
return -ENODEV;
|
||||
|
||||
lcdc_regs = platform_get_resource(device, IORESOURCE_MEM, 0);
|
||||
da8xx_fb_reg_base = devm_ioremap_resource(&device->dev, lcdc_regs);
|
||||
if (IS_ERR(da8xx_fb_reg_base))
|
||||
@ -1302,21 +1327,6 @@ static int fb_probe(struct platform_device *device)
|
||||
break;
|
||||
}
|
||||
|
||||
for (i = 0, lcdc_info = known_lcd_panels;
|
||||
i < ARRAY_SIZE(known_lcd_panels);
|
||||
i++, lcdc_info++) {
|
||||
if (strcmp(fb_pdata->type, lcdc_info->name) == 0)
|
||||
break;
|
||||
}
|
||||
|
||||
if (i == ARRAY_SIZE(known_lcd_panels)) {
|
||||
dev_err(&device->dev, "GLCD: No valid panel found\n");
|
||||
ret = -ENODEV;
|
||||
goto err_pm_runtime_disable;
|
||||
} else
|
||||
dev_info(&device->dev, "GLCD: Found %s panel\n",
|
||||
fb_pdata->type);
|
||||
|
||||
lcd_cfg = (struct lcd_ctrl_config *)fb_pdata->controller_data;
|
||||
|
||||
if (!lcd_cfg) {
|
||||
|
Loading…
Reference in New Issue
Block a user