Re: [PATCH] video: s3c-fb: Unify runtime and system PM functions

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> -----Original Message-----
> Subject: [PATCH] video: s3c-fb: Unify runtime and system PM functions
> 
> The s3c-fb driver has separate runtime and system PM functions but the
> implementations are identical so far as I can tell so unify them for
> simplicity.
> 
> Signed-off-by: Mark Brown <broonie@xxxxxxxxxxxxxxxxxxxxxxxxxxx>
Acked-by: Jingoo Han <jg1.han@xxxxxxxxxxx>

It looks good. 
Thank you.
> ---
>  drivers/video/s3c-fb.c |   75 +-------------------------------------------
> ----
>  1 files changed, 1 insertions(+), 74 deletions(-)
> 
> diff --git a/drivers/video/s3c-fb.c b/drivers/video/s3c-fb.c
> index 12eaee0..0860590 100644
> --- a/drivers/video/s3c-fb.c
> +++ b/drivers/video/s3c-fb.c
> @@ -1590,77 +1590,9 @@ static int s3c_fb_resume(struct device *dev)
> 
>  	return 0;
>  }
> -
> -static int s3c_fb_runtime_suspend(struct device *dev)
> -{
> -	struct platform_device *pdev = to_platform_device(dev);
> -	struct s3c_fb *sfb = platform_get_drvdata(pdev);
> -	struct s3c_fb_win *win;
> -	int win_no;
> -
> -	for (win_no = S3C_FB_MAX_WIN - 1; win_no >= 0; win_no--) {
> -		win = sfb->windows[win_no];
> -		if (!win)
> -			continue;
> -
> -		/* use the blank function to push into power-down */
> -		s3c_fb_blank(FB_BLANK_POWERDOWN, win->fbinfo);
> -	}
> -
> -	if (!sfb->variant.has_clksel)
> -		clk_disable(sfb->lcd_clk);
> -
> -	clk_disable(sfb->bus_clk);
> -	return 0;
> -}
> -
> -static int s3c_fb_runtime_resume(struct device *dev)
> -{
> -	struct platform_device *pdev = to_platform_device(dev);
> -	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);
> -
> -	if (!sfb->variant.has_clksel)
> -		clk_enable(sfb->lcd_clk);
> -
> -	/* setup gpio and output polarity controls */
> -	pd->setup_gpio();
> -	writel(pd->vidcon1, sfb->regs + VIDCON1);
> -
> -	/* zero all windows before we do anything */
> -	for (win_no = 0; win_no < sfb->variant.nr_windows; win_no++)
> -		s3c_fb_clear_win(sfb, win_no);
> -
> -	for (win_no = 0; win_no < sfb->variant.nr_windows - 1; win_no++) {
> -		void __iomem *regs = sfb->regs + sfb->variant.keycon;
> -
> -		regs += (win_no * 8);
> -		writel(0xffffff, regs + WKEYCON0);
> -		writel(0xffffff, regs + WKEYCON1);
> -	}
> -
> -	/* restore framebuffers */
> -	for (win_no = 0; win_no < S3C_FB_MAX_WIN; win_no++) {
> -		win = sfb->windows[win_no];
> -		if (!win)
> -			continue;
> -
> -		dev_dbg(&pdev->dev, "resuming window %d\n", win_no);
> -		s3c_fb_set_par(win->fbinfo);
> -	}
> -
> -	return 0;
> -}
> -
>  #else
>  #define s3c_fb_suspend NULL
>  #define s3c_fb_resume  NULL
> -#define s3c_fb_runtime_suspend NULL
> -#define s3c_fb_runtime_resume NULL
>  #endif
> 
> 
> @@ -1985,12 +1917,7 @@ static struct platform_device_id s3c_fb_driver_ids[]
> = {
>  };
>  MODULE_DEVICE_TABLE(platform, s3c_fb_driver_ids);
> 
> -static const struct dev_pm_ops s3cfb_pm_ops = {
> -	.suspend	= s3c_fb_suspend,
> -	.resume		= s3c_fb_resume,
> -	.runtime_suspend	= s3c_fb_runtime_suspend,
> -	.runtime_resume		= s3c_fb_runtime_resume,
> -};
> +UNIVERSAL_DEV_PM_OPS(s3cfb_pm_ops, s3c_fb_suspend, s3c_fb_resume, NULL);
> 
>  static struct platform_driver s3c_fb_driver = {
>  	.probe		= s3c_fb_probe,
> --
> 1.7.7.3
> 
> --
ÿ淸º{.nÇ+돴윯돪†+%듚ÿ깁負¥Šwÿº{.nÇ+돴¥Š{깰鍼zÿâ왲^n‡r⊆¦zË곷h솳鈺Ú&{àz요z받쀺+€Ê+zf"·hš닱~넮녬iÿÿï곴ÿ묎çz_溫æj:+v돣þ)山øm



[Index of Archives]     [Video for Linux]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Tourism]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux