Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4ea80d35 authored by Heiko Stübner's avatar Heiko Stübner Committed by Tomi Valkeinen
Browse files

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: default avatarHeiko Stübner <heiko@sntech.de>
Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
parent 03fc1499
Loading
Loading
Loading
Loading
+22 −21
Original line number Diff line number Diff line
@@ -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,