r3058 - branches/src/target/kernel/2.6.23.x/patches

shoragan at sita.openmoko.org shoragan at sita.openmoko.org
Sat Sep 29 15:29:16 CEST 2007


Author: shoragan
Date: 2007-09-29 15:29:16 +0200 (Sat, 29 Sep 2007)
New Revision: 3058

Added:
   branches/src/target/kernel/2.6.23.x/patches/fix-s3c2410fb-register-access.patch
Modified:
   branches/src/target/kernel/2.6.23.x/patches/series
Log:
Fix access to the framebuffer registers.
Some have (but not all) been fixed by Ben Dooks in
http://www.fluff.org/ben/linux-26/2623/2623-rc1-move-fixup-lcd.patch

Added: branches/src/target/kernel/2.6.23.x/patches/fix-s3c2410fb-register-access.patch
===================================================================
--- branches/src/target/kernel/2.6.23.x/patches/fix-s3c2410fb-register-access.patch	2007-09-28 22:33:13 UTC (rev 3057)
+++ branches/src/target/kernel/2.6.23.x/patches/fix-s3c2410fb-register-access.patch	2007-09-29 13:29:16 UTC (rev 3058)
@@ -0,0 +1,85 @@
+Index: linux-2.6.22/drivers/video/s3c2410fb.c
+===================================================================
+--- linux-2.6.22.orig/drivers/video/s3c2410fb.c
++++ linux-2.6.22/drivers/video/s3c2410fb.c
+@@ -123,6 +123,7 @@
+ 
+ static void s3c2410fb_set_lcdaddr(struct s3c2410fb_info *fbi)
+ {
++	void __iomem *regs = fbi->io;
+ 	struct fb_var_screeninfo *var = &fbi->fb->var;
+ 	unsigned long saddr1, saddr2, saddr3;
+ 
+@@ -137,9 +138,9 @@
+ 	dprintk("LCDSADDR2 = 0x%08lx\n", saddr2);
+ 	dprintk("LCDSADDR3 = 0x%08lx\n", saddr3);
+ 
+-	writel(saddr1, S3C2410_LCDSADDR1);
+-	writel(saddr2, S3C2410_LCDSADDR2);
+-	writel(saddr3, S3C2410_LCDSADDR3);
++	writel(saddr1, regs + S3C2410_LCDSADDR1);
++	writel(saddr2, regs + S3C2410_LCDSADDR2);
++	writel(saddr3, regs + S3C2410_LCDSADDR3);
+ }
+ 
+ /* s3c2410fb_calc_pixclk()
+@@ -289,6 +290,7 @@
+ static void s3c2410fb_activate_var(struct s3c2410fb_info *fbi,
+ 				   struct fb_var_screeninfo *var)
+ {
++	void __iomem *regs = fbi->io;
+ 	int hs;
+ 
+ 	fbi->regs.lcdcon1 &= ~S3C2410_LCDCON1_MODEMASK;
+@@ -432,16 +434,16 @@
+ 	dprintk("lcdcon[4] = 0x%08lx\n", fbi->regs.lcdcon4);
+ 	dprintk("lcdcon[5] = 0x%08lx\n", fbi->regs.lcdcon5);
+ 
+-	writel(fbi->regs.lcdcon1 & ~S3C2410_LCDCON1_ENVID, S3C2410_LCDCON1);
+-	writel(fbi->regs.lcdcon2, S3C2410_LCDCON2);
+-	writel(fbi->regs.lcdcon3, S3C2410_LCDCON3);
+-	writel(fbi->regs.lcdcon4, S3C2410_LCDCON4);
+-	writel(fbi->regs.lcdcon5, S3C2410_LCDCON5);
++	writel(fbi->regs.lcdcon1 & ~S3C2410_LCDCON1_ENVID, regs + S3C2410_LCDCON1);
++	writel(fbi->regs.lcdcon2, regs + S3C2410_LCDCON2);
++	writel(fbi->regs.lcdcon3, regs + S3C2410_LCDCON3);
++	writel(fbi->regs.lcdcon4, regs + S3C2410_LCDCON4);
++	writel(fbi->regs.lcdcon5, regs + S3C2410_LCDCON5);
+ 
+ 	/* set lcd address pointers */
+ 	s3c2410fb_set_lcdaddr(fbi);
+ 
+-	writel(fbi->regs.lcdcon1, S3C2410_LCDCON1);
++	writel(fbi->regs.lcdcon1, regs + S3C2410_LCDCON1);
+ }
+ 
+ 
+@@ -549,7 +551,7 @@
+ 			val |= ((green >>  5) & 0x07e0);
+ 			val |= ((blue  >> 11) & 0x001f);
+ 
+-			writel(val, S3C2410_TFTPAL(regno));
++			writel(val, fbi->io + S3C2410_TFTPAL(regno));
+ 			schedule_palette_update(fbi, regno, val);
+ 		}
+ 
+@@ -581,16 +583,17 @@
+  */
+ static int s3c2410fb_blank(int blank_mode, struct fb_info *info)
+ {
++	struct s3c2410fb_info *fbi = info->par;
+ 	dprintk("blank(mode=%d, info=%p)\n", blank_mode, info);
+ 
+ 	if (mach_info == NULL)
+ 		return -EINVAL;
+ 
+ 	if (blank_mode == FB_BLANK_UNBLANK)
+-		writel(0x0, S3C2410_TPAL);
++		writel(0x0, fbi->io + S3C2410_TPAL);
+ 	else {
+ 		dprintk("setting TPAL to output 0x000000\n");
+-		writel(S3C2410_TPAL_EN, S3C2410_TPAL);
++		writel(S3C2410_TPAL_EN, fbi->io + S3C2410_TPAL);
+ 	}
+ 
+ 	return 0;

Modified: branches/src/target/kernel/2.6.23.x/patches/series
===================================================================
--- branches/src/target/kernel/2.6.23.x/patches/series	2007-09-28 22:33:13 UTC (rev 3057)
+++ branches/src/target/kernel/2.6.23.x/patches/series	2007-09-29 13:29:16 UTC (rev 3058)
@@ -45,3 +45,4 @@
 s3c2410-udc-include-fix.patch
 neo1973-soc-include-fix.patch
 explicitly-link-notes-section.patch
+fix-s3c2410fb-register-access.patch





More information about the commitlog mailing list