s3c2410fb: Fix resume
Subsystems (2)
PATCH 4/5 s3c2410fb: Fix resume
From: Arnaud Patard <[email protected]>
regs.lcdcon1 was not updated on suspend. The result was a garbaged display on resume. This bug was first noticed by Christer Weinigel. This patch is a modified version of the one he sent to me.
Signed-off-by Arnaud Patard <[email protected]>
Signed-off-by Antonino Daplas <[email protected]>
---
Forgot Signed-off-line
Tony
drivers/video/s3c2410fb.c | 17 +++++++++++------ 1 files changed, 11 insertions(+), 6 deletions(-)
drivers/video/s3c2410fb.c +11 -6
@@ -641,6 +641,7 @@ static int __init s3c2410fb_probe(structint ret;int irq;int i; +u32 lcdcon1; mach_info = pdev->dev.platform_data;if (mach_info ==NULL ) {
@@ -672,6 +673,11 @@ static int __init s3c2410fb_probe(structmemcpy (&info->regs, &mach_info->regs,sizeof (info->regs)); +/* Stop the video and unset ENVID if set */ + info->regs.lcdcon1 &= ~S3C2410_LCDCON1_ENVID ; + lcdcon1 =readl (S3C2410_LCDCON1 ); +writel (lcdcon1 & ~S3C2410_LCDCON1_ENVID ,S3C2410_LCDCON1 ); + info->mach_info = pdev->dev.platform_data; fbinfo->fix.type =FB_TYPE_PACKED_PIXELS ;
@@ -794,15 +800,14 @@ dealloc_fb:* shutdown the lcd controller */ -static void s3c2410fb_stop_lcd (void ) +static void s3c2410fb_stop_lcd (struct s3c2410fb_info *fbi) {unsigned long flags; -unsigned long tmp;local_irq_save (flags); - tmp =readl (S3C2410_LCDCON1 ); -writel (tmp & ~S3C2410_LCDCON1_ENVID ,S3C2410_LCDCON1 ); + fbi->regs.lcdcon1 &= ~S3C2410_LCDCON1_ENVID ; +writel (fbi->regs.lcdcon1,S3C2410_LCDCON1 );local_irq_restore (flags); }
@@ -816,7 +821,7 @@ static int s3c2410fb_remove(struct platfstruct s3c2410fb_info *info = fbinfo->par;int irq; -s3c2410fb_stop_lcd (); +s3c2410fb_stop_lcd (info);msleep (1 );s3c2410fb_unmap_video_memory (info);
@@ -844,7 +849,7 @@ static int s3c2410fb_suspend(struct platstruct fb_info *fbinfo =platform_get_drvdata (dev);struct s3c2410fb_info *info = fbinfo->par; -s3c2410fb_stop_lcd (); +s3c2410fb_stop_lcd (info);/* sleep before disabling the clock, we need to ensure * the LCD DMA engine is not going to get back on the bus
-------------------------------------------------------
All the advantages of Linux Managed Hosting--Without the Cost and Risk! Fully trained technicians. The highest number of Red Hat certifications in the hosting industry. Fanatical Support. Click to learn more
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=107521&bid=248729&dat=121642