提交 d15d56f9 编写于 作者: K Krzysztof Helt 提交者: Linus Torvalds

neofb: reduce panning function

Reduce panning function by deleting checks done by higher layer and
folding remaining function into the called one.
Signed-off-by: NKrzysztof Helt <krzysztof.h1@wp.pl>
Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
上级 319fcb22
...@@ -1186,8 +1186,11 @@ static int neofb_set_par(struct fb_info *info) ...@@ -1186,8 +1186,11 @@ static int neofb_set_par(struct fb_info *info)
return 0; return 0;
} }
static void neofb_update_start(struct fb_info *info, /*
struct fb_var_screeninfo *var) * Pan or Wrap the Display
*/
static int neofb_pan_display(struct fb_var_screeninfo *var,
struct fb_info *info)
{ {
struct neofb_par *par = info->par; struct neofb_par *par = info->par;
struct vgastate *state = &par->state; struct vgastate *state = &par->state;
...@@ -1216,35 +1219,7 @@ static void neofb_update_start(struct fb_info *info, ...@@ -1216,35 +1219,7 @@ static void neofb_update_start(struct fb_info *info,
vga_wgfx(state->vgabase, 0x0E, (((Base >> 16) & 0x0f) | (oldExtCRTDispAddr & 0xf0))); vga_wgfx(state->vgabase, 0x0E, (((Base >> 16) & 0x0f) | (oldExtCRTDispAddr & 0xf0)));
neoLock(state); neoLock(state);
}
/*
* Pan or Wrap the Display
*/
static int neofb_pan_display(struct fb_var_screeninfo *var,
struct fb_info *info)
{
u_int y_bottom;
y_bottom = var->yoffset;
if (!(var->vmode & FB_VMODE_YWRAP))
y_bottom += var->yres;
if (var->xoffset > (var->xres_virtual - var->xres))
return -EINVAL;
if (y_bottom > info->var.yres_virtual)
return -EINVAL;
neofb_update_start(info, var);
info->var.xoffset = var->xoffset;
info->var.yoffset = var->yoffset;
if (var->vmode & FB_VMODE_YWRAP)
info->var.vmode |= FB_VMODE_YWRAP;
else
info->var.vmode &= ~FB_VMODE_YWRAP;
return 0; return 0;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册