aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/video/vga16fb.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/video/vga16fb.c')
-rw-r--r--drivers/video/vga16fb.c11
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;