aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/video/auo_k190x.c25
-rw-r--r--include/video/auo_k190xfb.h1
2 files changed, 20 insertions, 6 deletions
diff --git a/drivers/video/auo_k190x.c b/drivers/video/auo_k190x.c
index c2a945183a5d..baf213cdbe3d 100644
--- a/drivers/video/auo_k190x.c
+++ b/drivers/video/auo_k190x.c
@@ -487,12 +487,20 @@ static int auok190xfb_check_var(struct fb_var_screeninfo *var,
487 * Dimensions 487 * Dimensions
488 */ 488 */
489 489
490 if (par->rotation & 1) { 490 switch (var->rotate) {
491 var->xres = panel->h; 491 case FB_ROTATE_UR:
492 var->yres = panel->w; 492 case FB_ROTATE_UD:
493 } else {
494 var->xres = panel->w; 493 var->xres = panel->w;
495 var->yres = panel->h; 494 var->yres = panel->h;
495 break;
496 case FB_ROTATE_CW:
497 case FB_ROTATE_CCW:
498 var->xres = panel->h;
499 var->yres = panel->w;
500 break;
501 default:
502 dev_dbg(dev, "Invalid rotation request\n");
503 return -EINVAL;
496 } 504 }
497 505
498 var->xres_virtual = var->xres; 506 var->xres_virtual = var->xres;
@@ -534,8 +542,15 @@ static int auok190xfb_set_par(struct fb_info *info)
534{ 542{
535 struct auok190xfb_par *par = info->par; 543 struct auok190xfb_par *par = info->par;
536 544
545 par->rotation = info->var.rotate;
537 auok190xfb_set_fix(info); 546 auok190xfb_set_fix(info);
538 547
548 /* reinit the controller to honor the rotation */
549 par->init(par);
550
551 /* wait for init to complete */
552 par->board->wait_for_rdy(par);
553
539 return 0; 554 return 0;
540} 555}
541 556
@@ -1030,7 +1045,7 @@ int auok190x_common_probe(struct platform_device *pdev,
1030 panel = &panel_table[board->resolution]; 1045 panel = &panel_table[board->resolution];
1031 1046
1032 par->resolution = board->resolution; 1047 par->resolution = board->resolution;
1033 par->rotation = board->rotation; 1048 par->rotation = 0;
1034 1049
1035 /* videomemory handling */ 1050 /* videomemory handling */
1036 1051
diff --git a/include/video/auo_k190xfb.h b/include/video/auo_k190xfb.h
index 609efe8c686e..ad7bc51bee9a 100644
--- a/include/video/auo_k190xfb.h
+++ b/include/video/auo_k190xfb.h
@@ -98,7 +98,6 @@ struct auok190x_board {
98 int gpio_nbusy; 98 int gpio_nbusy;
99 99
100 int resolution; 100 int resolution;
101 int rotation;
102 int quirks; 101 int quirks;
103 int fps; 102 int fps;
104}; 103};