diff options
-rw-r--r-- | drivers/video/vga16fb.c | 11 |
1 files changed, 2 insertions, 9 deletions
diff --git a/drivers/video/vga16fb.c b/drivers/video/vga16fb.c index e31bca8a0cb2..5b2938903ac2 100644 --- a/drivers/video/vga16fb.c +++ b/drivers/video/vga16fb.c | |||
@@ -58,7 +58,6 @@ struct vga16fb_par { | |||
58 | unsigned char ClockingMode; /* Seq-Controller:01h */ | 58 | unsigned char ClockingMode; /* Seq-Controller:01h */ |
59 | } vga_state; | 59 | } vga_state; |
60 | struct vgastate state; | 60 | struct vgastate state; |
61 | struct mutex open_lock; | ||
62 | unsigned int ref_count; | 61 | unsigned int ref_count; |
63 | int palette_blanked, vesa_blanked, mode, isVGA; | 62 | int palette_blanked, vesa_blanked, mode, isVGA; |
64 | u8 misc, pel_msk, vss, clkdiv; | 63 | u8 misc, pel_msk, vss, clkdiv; |
@@ -286,7 +285,6 @@ static int vga16fb_open(struct fb_info *info, int user) | |||
286 | { | 285 | { |
287 | struct vga16fb_par *par = info->par; | 286 | struct vga16fb_par *par = info->par; |
288 | 287 | ||
289 | mutex_lock(&par->open_lock); | ||
290 | if (!par->ref_count) { | 288 | if (!par->ref_count) { |
291 | memset(&par->state, 0, sizeof(struct vgastate)); | 289 | memset(&par->state, 0, sizeof(struct vgastate)); |
292 | par->state.flags = VGA_SAVE_FONTS | VGA_SAVE_MODE | | 290 | par->state.flags = VGA_SAVE_FONTS | VGA_SAVE_MODE | |
@@ -294,7 +292,6 @@ static int vga16fb_open(struct fb_info *info, int user) | |||
294 | save_vga(&par->state); | 292 | save_vga(&par->state); |
295 | } | 293 | } |
296 | par->ref_count++; | 294 | par->ref_count++; |
297 | mutex_unlock(&par->open_lock); | ||
298 | 295 | ||
299 | return 0; | 296 | return 0; |
300 | } | 297 | } |
@@ -303,15 +300,12 @@ static int vga16fb_release(struct fb_info *info, int user) | |||
303 | { | 300 | { |
304 | struct vga16fb_par *par = info->par; | 301 | struct vga16fb_par *par = info->par; |
305 | 302 | ||
306 | mutex_lock(&par->open_lock); | 303 | if (!par->ref_count) |
307 | if (!par->ref_count) { | ||
308 | mutex_unlock(&par->open_lock); | ||
309 | return -EINVAL; | 304 | return -EINVAL; |
310 | } | 305 | |
311 | if (par->ref_count == 1) | 306 | if (par->ref_count == 1) |
312 | restore_vga(&par->state); | 307 | restore_vga(&par->state); |
313 | par->ref_count--; | 308 | par->ref_count--; |
314 | mutex_unlock(&par->open_lock); | ||
315 | 309 | ||
316 | return 0; | 310 | return 0; |
317 | } | 311 | } |
@@ -1326,7 +1320,6 @@ static int __init vga16fb_probe(struct platform_device *dev) | |||
1326 | printk(KERN_INFO "vga16fb: mapped to 0x%p\n", info->screen_base); | 1320 | printk(KERN_INFO "vga16fb: mapped to 0x%p\n", info->screen_base); |
1327 | par = info->par; | 1321 | par = info->par; |
1328 | 1322 | ||
1329 | mutex_init(&par->open_lock); | ||
1330 | par->isVGA = screen_info.orig_video_isVGA; | 1323 | par->isVGA = screen_info.orig_video_isVGA; |
1331 | par->palette_blanked = 0; | 1324 | par->palette_blanked = 0; |
1332 | par->vesa_blanked = 0; | 1325 | par->vesa_blanked = 0; |