Skip to content

Commit

Permalink
S3C-fb: PM fix
Browse files Browse the repository at this point in the history
Correctly restore the FrameBuffer register state in the resume function.

Reviewed-by: Kyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
  • Loading branch information
Marek Szyprowski authored and Linus Torvalds committed May 29, 2009
1 parent 8e8e826 commit 17663e5
Showing 1 changed file with 11 additions and 1 deletion.
12 changes: 11 additions & 1 deletion drivers/video/s3c-fb.c
Original file line number Diff line number Diff line change
Expand Up @@ -947,7 +947,8 @@ static int __devexit s3c_fb_remove(struct platform_device *pdev)
int win;

for (win = 0; win <= S3C_FB_MAX_WIN; win++)
s3c_fb_release_win(sfb, sfb->windows[win]);
if (sfb->windows[win])
s3c_fb_release_win(sfb, sfb->windows[win]);

iounmap(sfb->regs);

Expand Down Expand Up @@ -985,11 +986,20 @@ static int s3c_fb_suspend(struct platform_device *pdev, pm_message_t state)
static int s3c_fb_resume(struct platform_device *pdev)
{
struct s3c_fb *sfb = platform_get_drvdata(pdev);
struct s3c_fb_platdata *pd = sfb->pdata;
struct s3c_fb_win *win;
int win_no;

clk_enable(sfb->bus_clk);

/* setup registers */
writel(pd->vidcon1, sfb->regs + VIDCON1);

/* zero all windows before we do anything */
for (win_no = 0; win_no < S3C_FB_MAX_WIN; win_no++)
s3c_fb_clear_win(sfb, win_no);

/* restore framebuffers */
for (win_no = 0; win_no < S3C_FB_MAX_WIN; win_no++) {
win = sfb->windows[win_no];
if (!win)
Expand Down

0 comments on commit 17663e5

Please sign in to comment.