AUO-K190x: move var resolution-handling into check_var
Provides a central place for this, which will be helpful for the following changes. Signed-off-by: Heiko Stübner <heiko@sntech.de> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
This commit is contained in:
parent
03fc1499f0
commit
4ea80d35b4
|
@ -377,16 +377,25 @@ static int auok190xfb_check_var(struct fb_var_screeninfo *var,
|
|||
struct fb_info *info)
|
||||
{
|
||||
struct device *dev = info->device;
|
||||
struct auok190xfb_par *par = info->par;
|
||||
struct panel_info *panel = &panel_table[par->resolution];
|
||||
int size;
|
||||
|
||||
if (info->var.xres != var->xres || info->var.yres != var->yres ||
|
||||
info->var.xres_virtual != var->xres_virtual ||
|
||||
info->var.yres_virtual != var->yres_virtual) {
|
||||
pr_info("%s: Resolution not supported: X%u x Y%u\n",
|
||||
__func__, var->xres, var->yres);
|
||||
return -EINVAL;
|
||||
/*
|
||||
* Dimensions
|
||||
*/
|
||||
|
||||
if (par->rotation & 1) {
|
||||
var->xres = panel->h;
|
||||
var->yres = panel->w;
|
||||
} else {
|
||||
var->xres = panel->w;
|
||||
var->yres = panel->h;
|
||||
}
|
||||
|
||||
var->xres_virtual = var->xres;
|
||||
var->yres_virtual = var->yres;
|
||||
|
||||
/*
|
||||
* Memory limit
|
||||
*/
|
||||
|
@ -900,21 +909,6 @@ int auok190x_common_probe(struct platform_device *pdev,
|
|||
|
||||
panel = &panel_table[board->resolution];
|
||||
|
||||
/* if 90 degree rotation, switch width and height */
|
||||
if (board->rotation & 1) {
|
||||
info->var.xres = panel->h;
|
||||
info->var.yres = panel->w;
|
||||
info->var.xres_virtual = panel->h;
|
||||
info->var.yres_virtual = panel->w;
|
||||
info->fix.line_length = panel->h * info->var.bits_per_pixel / 8;
|
||||
} else {
|
||||
info->var.xres = panel->w;
|
||||
info->var.yres = panel->h;
|
||||
info->var.xres_virtual = panel->w;
|
||||
info->var.yres_virtual = panel->h;
|
||||
info->fix.line_length = panel->w * info->var.bits_per_pixel / 8;
|
||||
}
|
||||
|
||||
par->resolution = board->resolution;
|
||||
par->rotation = board->rotation;
|
||||
|
||||
|
@ -935,6 +929,13 @@ int auok190x_common_probe(struct platform_device *pdev,
|
|||
info->flags = FBINFO_FLAG_DEFAULT | FBINFO_VIRTFB;
|
||||
info->fbops = &auok190xfb_ops;
|
||||
|
||||
ret = auok190xfb_check_var(&info->var, info);
|
||||
if (ret)
|
||||
goto err_defio;
|
||||
|
||||
info->fix.line_length = info->var.xres_virtual *
|
||||
info->var.bits_per_pixel / 8;
|
||||
|
||||
/* deferred io init */
|
||||
|
||||
info->fbdefio = devm_kzalloc(info->device,
|
||||
|
|
Loading…
Reference in a new issue