Skip to content

Commit

Permalink
FB/SM501: ensure console suspended before saving state
Browse files Browse the repository at this point in the history
Move the console suspend to before we save the state of
the framebuffer to ensure that it does not try and change
the fb state again once we have copied it out.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Cc: "Antonino A. Daplas" <adaplas@pol.net>
Cc: Vincent Sanders <vince@simtec.co.uk>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
  • Loading branch information
Ben Dooks authored and Linus Torvalds committed Feb 6, 2008
1 parent bc9c6a1 commit 40488db
Showing 1 changed file with 9 additions and 6 deletions.
15 changes: 9 additions & 6 deletions drivers/video/sm501fb.c
Original file line number Diff line number Diff line change
Expand Up @@ -1698,6 +1698,15 @@ static int sm501fb_suspend_fb(struct sm501fb_info *info,
if (par->screen.size == 0)
return 0;

/* blank the relevant interface to ensure unit power minimised */
(par->ops.fb_blank)(FB_BLANK_POWERDOWN, fbi);

/* tell console/fb driver we are suspending */

acquire_console_sem();
fb_set_suspend(fbi, 1);
release_console_sem();

/* backup copies in case chip is powered down over suspend */

par->store_fb = vmalloc(par->screen.size);
Expand All @@ -1717,12 +1726,6 @@ static int sm501fb_suspend_fb(struct sm501fb_info *info,

memcpy_fromio(par->store_fb, par->screen.k_addr, par->screen.size);
memcpy_fromio(par->store_cursor, par->cursor.k_addr, par->cursor.size);
/* blank the relevant interface to ensure unit power minimised */
(par->ops.fb_blank)(FB_BLANK_POWERDOWN, fbi);

acquire_console_sem();
fb_set_suspend(fbi, 1);
release_console_sem();

return 0;

Expand Down

0 comments on commit 40488db

Please sign in to comment.