Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 17663e59 authored by Marek Szyprowski's avatar Marek Szyprowski Committed by Linus Torvalds
Browse files

S3C-fb: PM fix



Correctly restore the FrameBuffer register state in the resume function.

Reviewed-by: default avatarKyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: default avatarMarek Szyprowski <m.szyprowski@samsung.com>
Cc: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 8e8e8267
Loading
Loading
Loading
Loading
+11 −1
Original line number Diff line number Diff line
@@ -947,6 +947,7 @@ static int __devexit s3c_fb_remove(struct platform_device *pdev)
	int win;

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

	iounmap(sfb->regs);
@@ -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)