diff options
author | Krzysztof Helt <krzysztof.h1@wp.pl> | 2008-10-16 01:03:17 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-10-16 14:21:41 -0400 |
commit | d15d56f9f10295a992cc7a7697d6fd8b01823cfc (patch) | |
tree | 149d6b571ea3c350fad0fffca7d99da3f2975405 | |
parent | 319fcb224d66a4702731ec13b8ac670ad1e923bf (diff) |
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: Krzysztof Helt <krzysztof.h1@wp.pl>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r-- | drivers/video/neofb.c | 35 |
1 files changed, 5 insertions, 30 deletions
diff --git a/drivers/video/neofb.c b/drivers/video/neofb.c index 25172b2a2a9..6249960b939 100644 --- a/drivers/video/neofb.c +++ b/drivers/video/neofb.c | |||
@@ -1186,8 +1186,11 @@ static int neofb_set_par(struct fb_info *info) | |||
1186 | return 0; | 1186 | return 0; |
1187 | } | 1187 | } |
1188 | 1188 | ||
1189 | static void neofb_update_start(struct fb_info *info, | 1189 | /* |
1190 | struct fb_var_screeninfo *var) | 1190 | * Pan or Wrap the Display |
1191 | */ | ||
1192 | static int neofb_pan_display(struct fb_var_screeninfo *var, | ||
1193 | struct fb_info *info) | ||
1191 | { | 1194 | { |
1192 | struct neofb_par *par = info->par; | 1195 | struct neofb_par *par = info->par; |
1193 | struct vgastate *state = &par->state; | 1196 | struct vgastate *state = &par->state; |
@@ -1216,35 +1219,7 @@ static void neofb_update_start(struct fb_info *info, | |||
1216 | vga_wgfx(state->vgabase, 0x0E, (((Base >> 16) & 0x0f) | (oldExtCRTDispAddr & 0xf0))); | 1219 | vga_wgfx(state->vgabase, 0x0E, (((Base >> 16) & 0x0f) | (oldExtCRTDispAddr & 0xf0))); |
1217 | 1220 | ||
1218 | neoLock(state); | 1221 | neoLock(state); |
1219 | } | ||
1220 | 1222 | ||
1221 | /* | ||
1222 | * Pan or Wrap the Display | ||
1223 | */ | ||
1224 | static int neofb_pan_display(struct fb_var_screeninfo *var, | ||
1225 | struct fb_info *info) | ||
1226 | { | ||
1227 | u_int y_bottom; | ||
1228 | |||
1229 | y_bottom = var->yoffset; | ||
1230 | |||
1231 | if (!(var->vmode & FB_VMODE_YWRAP)) | ||
1232 | y_bottom += var->yres; | ||
1233 | |||
1234 | if (var->xoffset > (var->xres_virtual - var->xres)) | ||
1235 | return -EINVAL; | ||
1236 | if (y_bottom > info->var.yres_virtual) | ||
1237 | return -EINVAL; | ||
1238 | |||
1239 | neofb_update_start(info, var); | ||
1240 | |||
1241 | info->var.xoffset = var->xoffset; | ||
1242 | info->var.yoffset = var->yoffset; | ||
1243 | |||
1244 | if (var->vmode & FB_VMODE_YWRAP) | ||
1245 | info->var.vmode |= FB_VMODE_YWRAP; | ||
1246 | else | ||
1247 | info->var.vmode &= ~FB_VMODE_YWRAP; | ||
1248 | return 0; | 1223 | return 0; |
1249 | } | 1224 | } |
1250 | 1225 | ||