# \[PATCH\] video/fsl: Fix the sleep function for FSL DIU module

- Subsystems: FRAMEBUFFER LAYER, THE REST
- Maintainers: Helge Deller, Linus Torvalds
- List: linux-fbdev
- 3 messages, 2 authors
- Page: https://ratatoskr.run/linux-fbdev/2014/03/9478570/t

## \[PATCH\] video/fsl: Fix the sleep function for FSL DIU module

- From: Dongsheng Wang \<hidden\>
- Date: 2014-03-25 07:58:39 
- Message: https://ratatoskr.run/linux-fbdev/2014/03/9478570.md

```text
From: Jason Jin <redacted>

For deep sleep, the diu module will power off, when wake up
from the deep sleep, the registers need to be reinitialized.

Signed-off-by: Jason Jin <redacted>
Signed-off-by: Wang Dongsheng <redacted>

diff --git a/drivers/video/fsl-diu-fb.c b/drivers/video/fsl-diu-fb.c
index e8758b9..7ec780c 100644
--- a/drivers/video/fsl-diu-fb.c
+++ b/drivers/video/fsl-diu-fb.c
@@ -1628,9 +1628,18 @@ static int fsl_diu_suspend(struct platform_device *ofdev, pm_message_t state)
 static int fsl_diu_resume(struct platform_device *ofdev)
 {
 	struct fsl_diu_data *data;
+	struct mfb_info *mfbi;
+	int i;
 
 	data = dev_get_drvdata(&ofdev->dev);
-	enable_lcdc(data->fsl_diu_info);
+	fsl_diu_enable_interrupts(data);
+	update_lcdc(data->fsl_diu_info);
+
+	for (i = 0; i < NUM_AOIS; i++) {
+		mfbi = &data->mfb[i];
+		if (mfbi->count)
+			fsl_diu_enable_panel(&data->fsl_diu_info[i]);
+	}
 
 	return 0;
 }
-- 
1.8.5


```

## Re: \[PATCH\] video/fsl: Fix the sleep function for FSL DIU module

- From: Timur Tabi \<hidden\>
- Date: 2014-03-25 16:01:11 
- Message: https://ratatoskr.run/linux-fbdev/2014/03/9478607.md

```text
On 03/25/2014 02:56 AM, Dongsheng Wang wrote:
> From: Jason Jin <redacted>
>
> For deep sleep, the diu module will power off, when wake up
> from the deep sleep, the registers need to be reinitialized.
>
> Signed-off-by: Jason Jin <redacted>
> Signed-off-by: Wang Dongsheng <redacted>
>
> diff --git a/drivers/video/fsl-diu-fb.c b/drivers/video/fsl-diu-fb.c
> index e8758b9..7ec780c 100644
> --- a/drivers/video/fsl-diu-fb.c
> +++ b/drivers/video/fsl-diu-fb.c
> @@ -1628,9 +1628,18 @@ static int fsl_diu_suspend(struct platform_device *ofdev, pm_message_t state)
>   static int fsl_diu_resume(struct platform_device *ofdev)
>   {
>   	struct fsl_diu_data *data;
> +	struct mfb_info *mfbi;

You don't need this, if ...

> +	int i;
>
>   	data = dev_get_drvdata(&ofdev->dev);
> -	enable_lcdc(data->fsl_diu_info);
> +	fsl_diu_enable_interrupts(data);
> +	update_lcdc(data->fsl_diu_info);
> +
> +	for (i = 0; i < NUM_AOIS; i++) {
> +		mfbi = &data->mfb[i];
> +		if (mfbi->count)

... you do this:

		if (data->mfb[i].count)

Also, 'i' should be an 'unsigned int'.

> +			fsl_diu_enable_panel(&data->fsl_diu_info[i]);
> +	}
>
>   	return 0;
>   }
>

Other than that, this seems okay.
```

## RE: \[PATCH\] video/fsl: Fix the sleep function for FSL DIU module

- From: Wang Dongsheng \<hidden\>
- Date: 2015-08-14 05:53:28 
- Message: https://ratatoskr.run/linux-fbdev/2015/08/9485622.md

```text
Hi Tabi,

> -----Original Message-----
> From: Timur Tabi [mailto:<redacted>]
> Sent: Tuesday, March 25, 2014 11:55 PM
> To: Wang Dongsheng-B40534
> Cc: Wood Scott-B07421; Jin Zhengxiong-R64188; Li Yang-Leo-R58472; linuxppc-
> dev@lists.ozlabs.org; linux-fbdev@vger.kernel.org
> Subject: Re: [PATCH] video/fsl: Fix the sleep function for FSL DIU module
> 
> On 03/25/2014 02:56 AM, Dongsheng Wang wrote:
> > From: Jason Jin <redacted>
> >
> > For deep sleep, the diu module will power off, when wake up from the
> > deep sleep, the registers need to be reinitialized.
> >
> > Signed-off-by: Jason Jin <redacted>
> > Signed-off-by: Wang Dongsheng <redacted>
> >
> > diff --git a/drivers/video/fsl-diu-fb.c b/drivers/video/fsl-diu-fb.c
> > index e8758b9..7ec780c 100644
> > --- a/drivers/video/fsl-diu-fb.c
> > +++ b/drivers/video/fsl-diu-fb.c
> > @@ -1628,9 +1628,18 @@ static int fsl_diu_suspend(struct platform_device
> *ofdev, pm_message_t state)
> >   static int fsl_diu_resume(struct platform_device *ofdev)
> >   {
> >   	struct fsl_diu_data *data;
> > +	struct mfb_info *mfbi;
> 
> You don't need this, if ...
> 
> > +	int i;
> >
> >   	data = dev_get_drvdata(&ofdev->dev);
> > -	enable_lcdc(data->fsl_diu_info);
> > +	fsl_diu_enable_interrupts(data);
> > +	update_lcdc(data->fsl_diu_info);
> > +
> > +	for (i = 0; i < NUM_AOIS; i++) {
> > +		mfbi = &data->mfb[i];
> > +		if (mfbi->count)
> 
> ... you do this:
> 
> 		if (data->mfb[i].count)
> 
> Also, 'i' should be an 'unsigned int'.
> 
> > +			fsl_diu_enable_panel(&data->fsl_diu_info[i]);
> > +	}
> >
> >   	return 0;
> >   }
> >
> 
> Other than that, this seems okay.
> 

Thanks, send v2 to update this patch.

Regards,
-Dongsheng
```
