diff --git a/[refs] b/[refs] index 14e4a0ae60ac..8d79fb5ebd05 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 46574c72c701e45da1e0a2e944df885fcd2db668 +refs/heads/master: fd3871aa5c0d108b89858263254b49d9bca2dc53 diff --git a/trunk/drivers/video/auo_k190x.c b/trunk/drivers/video/auo_k190x.c index c2a945183a5d..baf213cdbe3d 100644 --- a/trunk/drivers/video/auo_k190x.c +++ b/trunk/drivers/video/auo_k190x.c @@ -487,12 +487,20 @@ static int auok190xfb_check_var(struct fb_var_screeninfo *var, * Dimensions */ - if (par->rotation & 1) { - var->xres = panel->h; - var->yres = panel->w; - } else { + switch (var->rotate) { + case FB_ROTATE_UR: + case FB_ROTATE_UD: var->xres = panel->w; var->yres = panel->h; + break; + case FB_ROTATE_CW: + case FB_ROTATE_CCW: + var->xres = panel->h; + var->yres = panel->w; + break; + default: + dev_dbg(dev, "Invalid rotation request\n"); + return -EINVAL; } var->xres_virtual = var->xres; @@ -534,8 +542,15 @@ static int auok190xfb_set_par(struct fb_info *info) { struct auok190xfb_par *par = info->par; + par->rotation = info->var.rotate; auok190xfb_set_fix(info); + /* reinit the controller to honor the rotation */ + par->init(par); + + /* wait for init to complete */ + par->board->wait_for_rdy(par); + return 0; } @@ -1030,7 +1045,7 @@ int auok190x_common_probe(struct platform_device *pdev, panel = &panel_table[board->resolution]; par->resolution = board->resolution; - par->rotation = board->rotation; + par->rotation = 0; /* videomemory handling */ diff --git a/trunk/include/video/auo_k190xfb.h b/trunk/include/video/auo_k190xfb.h index 609efe8c686e..ad7bc51bee9a 100644 --- a/trunk/include/video/auo_k190xfb.h +++ b/trunk/include/video/auo_k190xfb.h @@ -98,7 +98,6 @@ struct auok190x_board { int gpio_nbusy; int resolution; - int rotation; int quirks; int fps; };