Send commitlog mailing list submissions to
        [email protected]

To subscribe or unsubscribe via the World Wide Web, visit
        http://lists.openmoko.org/mailman/listinfo/commitlog
or, via email, send a message with subject or body 'help' to
        [EMAIL PROTECTED]

You can reach the person managing the list at
        [EMAIL PROTECTED]

When replying, please edit your Subject line so it is more specific
than "Re: Contents of commitlog digest..."
Today's Topics:

   1. r3058 - branches/src/target/kernel/2.6.23.x/patches
      ([EMAIL PROTECTED])
   2. r3059 - branches/src/target/kernel/2.6.23.x/patches
      ([EMAIL PROTECTED])
--- Begin Message ---
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




--- End Message ---
--- Begin Message ---
Author: shoragan
Date: 2007-09-29 18:56:26 +0200 (Sat, 29 Sep 2007)
New Revision: 3059

Added:
   branches/src/target/kernel/2.6.23.x/patches/fix-change_console-race.patch
Modified:
   branches/src/target/kernel/2.6.23.x/patches/series
Log:
Fix a race exposed by CFS while switching virtual consoles.
I've submitted this to lkml.

Added: branches/src/target/kernel/2.6.23.x/patches/fix-change_console-race.patch
===================================================================
--- branches/src/target/kernel/2.6.23.x/patches/fix-change_console-race.patch   
2007-09-29 13:29:16 UTC (rev 3058)
+++ branches/src/target/kernel/2.6.23.x/patches/fix-change_console-race.patch   
2007-09-29 16:56:26 UTC (rev 3059)
@@ -0,0 +1,25 @@
+Index: linux-2.6.22/drivers/char/vt_ioctl.c
+===================================================================
+--- linux-2.6.22.orig/drivers/char/vt_ioctl.c
++++ linux-2.6.22/drivers/char/vt_ioctl.c
+@@ -1208,15 +1208,18 @@
+               /*
+                * Send the signal as privileged - kill_pid() will
+                * tell us if the process has gone or something else
+-               * is awry
++               * is awry.
++               *
++               * We need to set vt_newvt *before* sending the signal or we
++               * have a race.
+                */
++              vc->vt_newvt = new_vc->vc_num;
+               if (kill_pid(vc->vt_pid, vc->vt_mode.relsig, 1) == 0) {
+                       /*
+                        * It worked. Mark the vt to switch to and
+                        * return. The process needs to send us a
+                        * VT_RELDISP ioctl to complete the switch.
+                        */
+-                      vc->vt_newvt = new_vc->vc_num;
+                       return;
+               }
+ 

Modified: branches/src/target/kernel/2.6.23.x/patches/series
===================================================================
--- branches/src/target/kernel/2.6.23.x/patches/series  2007-09-29 13:29:16 UTC 
(rev 3058)
+++ branches/src/target/kernel/2.6.23.x/patches/series  2007-09-29 16:56:26 UTC 
(rev 3059)
@@ -46,3 +46,4 @@
 neo1973-soc-include-fix.patch
 explicitly-link-notes-section.patch
 fix-s3c2410fb-register-access.patch
+fix-change_console-race.patch




--- End Message ---
_______________________________________________
commitlog mailing list
[email protected]
http://lists.openmoko.org/mailman/listinfo/commitlog

Reply via email to