From: "Heiko Stübner" <heiko@sntech.de>
To: linux-fbdev@vger.kernel.org
Subject: [PATCH 5/9] AUO-K190x: move var resolution-handling into check_var
Date: Fri, 22 Mar 2013 14:15:27 +0000 [thread overview]
Message-ID: <201303221515.27264.heiko@sntech.de> (raw)
Provides a central place for this, which will be helpful for
the following changes.
Signed-off-by: Heiko Stübner <heiko@sntech.de>
---
drivers/video/auo_k190x.c | 43 ++++++++++++++++++++++---------------------
1 files changed, 22 insertions(+), 21 deletions(-)
diff --git a/drivers/video/auo_k190x.c b/drivers/video/auo_k190x.c
index 9cd9b7e..7f4c4ef 100644
--- a/drivers/video/auo_k190x.c
+++ b/drivers/video/auo_k190x.c
@@ -376,16 +376,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
*/
@@ -899,21 +908,6 @@ int __devinit 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;
@@ -934,6 +928,13 @@ int __devinit 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,
--
1.7.2.3
reply other threads:[~2013-03-22 14:15 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=201303221515.27264.heiko@sntech.de \
--to=heiko@sntech.de \
--cc=linux-fbdev@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox