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. r3189 - branches/src/target/kernel/2.6.23.x/patches
      ([EMAIL PROTECTED])
   2. r3190 - branches/src/target/kernel/2.6.23.x/patches
      ([EMAIL PROTECTED])
   3. r3191 - branches/src/target/kernel/2.6.23.x/patches
      ([EMAIL PROTECTED])
   4. r3192 - trunk/src/target/OM-2007.2/artwork/sounds
      ([EMAIL PROTECTED])
   5. r3193 - branches/src/target/kernel/2.6.23.x/patches
      ([EMAIL PROTECTED])
   6. r3194 - branches/src/target/kernel/2.6.23.x/patches
      ([EMAIL PROTECTED])
--- Begin Message ---
Author: shoragan
Date: 2007-10-16 16:59:51 +0200 (Tue, 16 Oct 2007)
New Revision: 3189

Modified:
   branches/src/target/kernel/2.6.23.x/patches/gta02-core.patch
   branches/src/target/kernel/2.6.23.x/patches/lis302dl.patch
Log:
Follow changes in 2.6.22:
(orig r3144):  laforge | 2007-10-10 18:23:20 +0200

make lis302dl apply again (fallout from last commit, sorry)

(orig r3143):  laforge | 2007-10-10 18:17:35 +0200

fix non-fatal kernel oops during gta02 boot (spi bus number 0 was used twice)


Modified: branches/src/target/kernel/2.6.23.x/patches/gta02-core.patch
===================================================================
--- branches/src/target/kernel/2.6.23.x/patches/gta02-core.patch        
2007-10-16 14:44:30 UTC (rev 3188)
+++ branches/src/target/kernel/2.6.23.x/patches/gta02-core.patch        
2007-10-16 14:59:51 UTC (rev 3189)
@@ -2,7 +2,7 @@
 ===================================================================
 --- /dev/null
 +++ linux-2.6.22/arch/arm/mach-s3c2440/mach-gta02.c
-@@ -0,0 +1,658 @@
+@@ -0,0 +1,600 @@
 +/*
 + * linux/arch/arm/mach-s3c2440/mach-gta02.c
 + *
@@ -315,6 +315,8 @@
 +      &s3c_device_usbgadget,
 +      &s3c_device_nand,
 +      &s3c_device_ts,
++      &s3c_device_spi0,
++      &s3c_device_spi1,
 +};
 +
 +static struct s3c2410_nand_set gta02_nand_sets[] = {
@@ -415,7 +417,7 @@
 +              /* controller_data */
 +              /* irq */
 +              .max_speed_hz   = 10 * 1000 * 1000,
-+              .bus_num        = 1,
++              .bus_num        = 2,
 +              /* chip_select */
 +      },
 +};
@@ -434,66 +436,6 @@
 +      .board_info     = gta02_spi_board_info,
 +};
 +
-+#if 0
-+#ifdef SPI_HARD
-+static struct s3c2410_spi_info spi_cfg = {
-+      .pin_cs         = S3C2410_GPG3,
-+      .board_size     = ARRAY_SIZE(gta01_spi_board_info),
-+      .board_info     = gta01_spi_board_info,
-+};
-+#else
-+static void spi_gpio_cs(struct s3c2410_spigpio_info *spi, int cs)
-+{
-+      switch (cs) {
-+      case BITBANG_CS_ACTIVE:
-+              s3c2410_gpio_setpin(S3C2410_GPG3, 0);
-+              break;
-+      case BITBANG_CS_INACTIVE:
-+              s3c2410_gpio_setpin(S3C2410_GPG3, 1);
-+              break;
-+      }
-+}
-+
-+static struct s3c2410_spigpio_info spi_gpio_cfg = {
-+      .pin_clk        = S3C2410_GPG7,
-+      .pin_mosi       = S3C2410_GPG6,
-+      .pin_miso       = S3C2410_GPG5,
-+      .board_size     = ARRAY_SIZE(gta01_spi_board_info),
-+      .board_info     = gta01_spi_board_info,
-+      .chip_select    = &spi_gpio_cs,
-+};
-+
-+static struct resource s3c_spi_lcm_resource[] = {
-+      [0] = {
-+              .start = S3C2410_GPG3,
-+              .end   = S3C2410_GPG3,
-+      },
-+      [1] = {
-+              .start = S3C2410_GPG5,
-+              .end   = S3C2410_GPG5,
-+      },
-+      [2] = {
-+              .start = S3C2410_GPG6,
-+              .end   = S3C2410_GPG6,
-+      },
-+      [3] = {
-+              .start = S3C2410_GPG7,
-+              .end   = S3C2410_GPG7,
-+      },
-+};
-+
-+struct platform_device s3c_device_spi_lcm = {
-+      .name             = "s3c24xx-spi-gpio",
-+      .id               = 1,
-+      .num_resources    = ARRAY_SIZE(s3c_spi_lcm_resource),
-+      .resource         = s3c_spi_lcm_resource,
-+      .dev = {
-+              .platform_data = &spi_gpio_cfg,
-+      },
-+};
-+#endif
-+#endif
-+
 +static struct resource gta02_led_resources[] = {
 +      [0] = {
 +              .start  = GTA02_GPIO_VIBRATOR_ON,

Modified: branches/src/target/kernel/2.6.23.x/patches/lis302dl.patch
===================================================================
--- branches/src/target/kernel/2.6.23.x/patches/lis302dl.patch  2007-10-16 
14:44:30 UTC (rev 3188)
+++ branches/src/target/kernel/2.6.23.x/patches/lis302dl.patch  2007-10-16 
14:59:51 UTC (rev 3189)
@@ -14,18 +14,21 @@
  
  #include <asm/mach/arch.h>
  #include <asm/mach/map.h>
-@@ -310,6 +311,7 @@
-       &s3c_device_usbgadget,
-       &s3c_device_nand,
-       &s3c_device_ts,
-+      &s3c_device_spi1,
+@@ -403,7 +404,7 @@
+       .oversampling_shift = 5,
  };
  
- static struct s3c2410_nand_set gta02_nand_sets[] = {
-@@ -437,6 +439,47 @@
+-/* SPI */
++/* SPI: LCM control interface attached to Glamo3362 */
+ 
+ static struct spi_board_info gta02_spi_board_info[] __initdata = {
+       {
+@@ -431,6 +432,48 @@
        .board_info     = gta02_spi_board_info,
  };
  
++/* SPI: Accelerometers attached to SPI of s3c244x */
++
 +static void gta02_spi_acc_set_cs(struct s3c2410_spi_info *spi, int cs, int 
pol)
 +{
 +      s3c2410_gpio_setpin(cs, pol);
@@ -66,11 +69,10 @@
 +      .board_info     = &gta02_spi_acc_bdinfo,
 +};
 +
-+
- #if 0
- #ifdef SPI_HARD
- static struct s3c2410_spi_info spi_cfg = {
-@@ -626,6 +669,7 @@
+ static struct resource gta02_led_resources[] = {
+       [0] = {
+               .start  = GTA02_GPIO_VIBRATOR_ON,
+@@ -560,6 +603,7 @@
        s3c_device_usb.dev.platform_data = &gta02_usb_info;
        s3c_device_nand.dev.platform_data = &gta02_nand_info;
        s3c_device_sdi.dev.platform_data = &gta02_mmc_cfg;




--- End Message ---
--- Begin Message ---
Author: shoragan
Date: 2007-10-16 17:02:36 +0200 (Tue, 16 Oct 2007)
New Revision: 3190

Modified:
   branches/src/target/kernel/2.6.23.x/patches/gta02-core.patch
Log:
Follow change in 2.6.22:
(orig r3155):  laforge | 2007-10-13 03:03:57 +0200

GTA02: add missing GPIO definitions for GTA02v1 .. GTA02v4


Modified: branches/src/target/kernel/2.6.23.x/patches/gta02-core.patch
===================================================================
--- branches/src/target/kernel/2.6.23.x/patches/gta02-core.patch        
2007-10-16 14:59:51 UTC (rev 3189)
+++ branches/src/target/kernel/2.6.23.x/patches/gta02-core.patch        
2007-10-16 15:02:36 UTC (rev 3190)
@@ -2,7 +2,7 @@
 ===================================================================
 --- /dev/null
 +++ linux-2.6.22/arch/arm/mach-s3c2440/mach-gta02.c
-@@ -0,0 +1,600 @@
+@@ -0,0 +1,614 @@
 +/*
 + * linux/arch/arm/mach-s3c2440/mach-gta02.c
 + *
@@ -253,6 +253,8 @@
 +                                                      PMU_VRAIL_F_SUSPEND_ON;
 +              break;
 +      case GTA02v2_SYSTEM_REV:
++      case GTA02v3_SYSTEM_REV:
++      case GTA02v4_SYSTEM_REV:
 +              /* we need to keep the 1.8V going since this is the SDRAM
 +               * self-refresh voltage */
 +              gta02_pcf_pdata.rails[PCF50633_REGULATOR_DOWN2].flags =
@@ -346,13 +348,15 @@
 +      switch (system_rev) {
 +      case GTA02v1_SYSTEM_REV:
 +      case GTA02v2_SYSTEM_REV:
++      case GTA02v3_SYSTEM_REV:
++      case GTA02v4_SYSTEM_REV:
 +              /* FIXME */
 +              break;
 +      }
 +}
 +
 +static struct s3c24xx_mci_pdata gta02_mmc_cfg = {
-+      .gpio_detect    = GTA02_GPIO_nSD_DETECT,
++      .gpio_detect    = GTA02v1_GPIO_nSD_DETECT,
 +      .set_power      = &gta02_mmc_set_power,
 +      .ocr_avail      = MMC_VDD_32_33,
 +};
@@ -521,8 +525,8 @@
 +              .flags  = IORESOURCE_IRQ,
 +      },
 +      [2] = {
-+              .start = GTA02_GPIO_3D_RESET,
-+              .end   = GTA02_GPIO_3D_RESET,
++              .start = GTA02v1_GPIO_3D_RESET,
++              .end   = GTA02v1_GPIO_3D_RESET,
 +      },
 +};
 +
@@ -540,9 +544,9 @@
 +      switch (system_rev) {
 +      case GTA02v1_SYSTEM_REV:
 +              break;
-+      case GTA02v2_SYSTEM_REV:
-+              gta02_glamo_resources[2].start = GTA02v2_GPIO_3D_RESET;
-+              gta02_glamo_resources[2].end = GTA02v2_GPIO_3D_RESET;
++      default:
++              gta02_glamo_resources[2].start = GTA02_GPIO_3D_RESET;
++              gta02_glamo_resources[2].end = GTA02_GPIO_3D_RESET;
 +              break;
 +      }
 +}
@@ -566,6 +570,16 @@
 +      s3c_device_nand.dev.platform_data = &gta02_nand_info;
 +      s3c_device_sdi.dev.platform_data = &gta02_mmc_cfg;
 +
++      /* Only GTA02v1 has a SD_DETECT GPIO.  Since the slot is not
++       * hot-pluggable, this is not required anyway */
++      switch (system_rev) {
++      case GTA02v1_SYSTEM_REV:
++              break;
++      default:
++              gta02_mmc_cfg.gpio_detect = 0;
++              break;
++      }
++
 +      INIT_WORK(&gta02_udc_vbus_drawer.work, __gta02_udc_vbus_draw);
 +      s3c24xx_udc_set_platdata(&gta02_udc_cfg);
 +      set_s3c2410ts_info(&gta02_ts_cfg);
@@ -607,7 +621,7 @@
 ===================================================================
 --- /dev/null
 +++ linux-2.6.22/include/asm-arm/arch-s3c2410/gta02.h
-@@ -0,0 +1,32 @@
+@@ -0,0 +1,94 @@
 +#ifndef _GTA02_H
 +#define _GTA02_H
 +
@@ -617,28 +631,90 @@
 +/* Different hardware revisions, passed in ATAG_REVISION by u-boot */
 +#define GTA02v1_SYSTEM_REV    0x00000310
 +#define GTA02v2_SYSTEM_REV    0x00000320
++#define GTA02v3_SYSTEM_REV    0x00000330
++#define GTA02v4_SYSTEM_REV    0x00000340
 +
-+#define GTA02_GPIO_3D_IRQ     S3C2410_GPG4
-+#define GTA02_GPIO_3D_RESET   S3C2440_GPJ0
-+#define GTA02_GPIO_nSD_DETECT S3C2410_GPF5
-+#define GTA02_GPIO_USB_PULLUP S3C2410_GPB9
++#define GTA02_GPIO_n3DL_GSM   S3C2410_GPA13   /* v1 + v2 + v3 only */
++
 +#define GTA02_GPIO_VIBRATOR_ON        S3C2410_GPB3
-+#define GTA02_GPIO_HOLD_KEY   S3C2410_GPF7
-+#define GTA02_GPIO_AUX_KEY    S3C2410_GPF6
-+#define GTA02_GPIO_JACK_INSERT        S3C2410_GPF4
++#define GTA02v1_GPIO_GPS_PWRON        S3C2410_GPB4    /* v1 only */
++#define GTA02_GPIO_MODEM_RST  S3C2410_GPB5
 +#define GTA02_GPIO_BT_EN      S3C2410_GPB6
-+#define GTA02_GPIO_GSENSOR1_CS        S3C2410_GPD12
-+#define GTA02_GPIO_GSENSOR2_CS        S3C2410_GPD13
++#define GTA02_GPIO_MODEM_ON   S3C2410_GPB7
++#define GTA02v1_GPIO_EN_AGPS3V        S3C2410_GPB8    /* v1 only */
++#define GTA02_GPIO_EXTINT8    S3C2410_GPB8
++#define GTA02_GPIO_USB_PULLUP S3C2410_GPB9
 +
++#define GTA02v1_GPIO_nGPS_RST S3C2410_GPC0    /* v1 only */
++#define GTA02v12_GPIO_PIO3    S3C2410_GPC5    /* v1 + v2 only */
++#define GTA02_GPIO_PIO5               S3C2410_GPC5    /* v3 + v4 only */
++#define GTA02_GPIO_LCD_RESET  S3C2410_GPC6    /* v1 + v2 only */
++#define GTA02v12_GPIO_PIO2    S3C2410_GPC7    /* v1 + v2 only */
++#define GTA02v2_nUSB_FLT      S3C2410_GPC9    /* v2 only */
++#define GTA02v2_nUSB_OC               S3C2410_GPC10   /* v2 only */
++#define GTA02v2_nGSM_OC               S3C2410_GPC12   /* v2 only */
++
++#define GTA02v3_GPIO_nG1_CS   S3C2410_GPD12   /* v3 + v4 only */
++#define GTA02v3_GPIO_nG2_CS   S3C2410_GPD13   /* v3 + v4 only */
++
++#define GTA02_GPIO_nG1_INT    S3C2410_GPF0
++#define GTA02_GPIO_IO1                S3C2410_GPF1
++#define GTA02v1_GPIO_nG2_INT  S3C2410_GPF2    /* v1 only */
++#define GTA02_GPIO_PIO_2      S3C2410_GPF2    /* v2 + v3 + v4 only */
++#define GTA02_GPIO_JACK_INSERT        S3C2410_GPF4
++#define GTA02v1_GPIO_nSD_DETECT       S3C2410_GPF5    /* v1 only */
++#define GTA02_GPIO_WLAN_GPIO1 S3C2410_GPF5    /* v2 + v3 + v4 only */
++#define GTA02_GPIO_AUX_KEY    S3C2410_GPF6
++#define GTA02_GPIO_HOLD_KEY   S3C2410_GPF7
++
++#define GTA02_GPIO_3D_IRQ     S3C2410_GPG4
++#define GTA02v1_GPIO_nG1_CS   S3C2410_GPG8    /* v1 only */
++#define GTA02v2_GPIO_nG2_INT  S3C2410_GPG8    /* v2 + v3 + v4 only */
++#define GTA02v3_GPIO_nUSB_OC  S3C2410_GPG9    /* v3 + v4 only */
++#define GTA02v3_GPIO_nUSB_FLT S3C2410_GPG10   /* v3 + v4 only */
++#define GTA02v1_GPIO_nG2_CS   S3C2410_GPG11   /* v1 only */
++#define GTA02v3_GPIO_nGSM_OC  S3C2410_GPG11   /* v3 + v4 only */
++
++#define GTA02v1_GPIO_3D_RESET S3C2440_GPJ0    /* v1 only */
++#define GTA02v2_GPIO_BAT_ID   S3C2440_GPJ0    /* v2 only */
++#define GTA02v1_GPIO_WLAN_GPIO8       S3C2440_GPJ1    /* v1 only */
++#define GTA02_GPIO_AMP_SHUT   S3C2440_GPJ1    /* v2 + v3 + v4 only */
++#define GTA02v1_GPIO_WLAN_GPIO10      S3C2440_GPJ2
++#define GTA02_GPIO_HP_IN      S3C2440_GPJ2    /* v2 + v3 + v4 only */
++#define GTA02v1_GPIO_KEEPACT  S3C2440_GPJ3    /* v1 only */
++#define GTA02_GPIO_INT0               S3C2440_GPJ3    /* v2 + v3 + v4 only */
++#define GTA02_GPIO_nGSM_EN    S3C2440_GPJ4
++#define GTA02_GPIO_3D_RESET   S3C2440_GPJ5
++#define GTA02v4_GPIO_nDL_GSM  S3C2440_GPJ6    /* v4 only */
++#define GTA02_GPIO_WLAN_GPIO0 S3C2440_GPJ7
++#define GTA02v1_GPIO_BAT_ID   S3C2440_GPJ8
++#define GTA02_GPIO_KEEPACT    S3C2440_GPJ8
++#define GTA02v1_GPIO_AMP_SHUT S3C2440_GPJ9    /* v1 only */
++#define GTA02v2_nG1_CS                S3C2440_GPJ9    /* v2 only */
++#define GTA02v1_GPIO_HP_IN    S3C2440_GPJ10
++#define GTA02v2_nG2_CS                S3C2440_GPJ10   /* v2 only */
++#define GTA02v1_GPIO_INT0     S3C2440_GPJ11   /* v1 only */
++#define GTA02_CHIP_PWD                S3C2440_GPJ11   /* v2 + v3 + v4 only */
++#define GTA02v1_GPIO_nGSM_EN  S3C2440_GPJ12   /* v1 only */
++#define GTA02_GPIO_nWLAN_RESET        S3C2440_GPJ12   /* v2 + v3 + v4 only */
++
++#define GTA02_IRQ_GSENSOR_1   IRQ_EINT0
 +#define GTA02_IRQ_MODEM               IRQ_EINT1
++#define GTA02v1_IRQ_GSENSOR_2 IRQ_EINT2       /* v1 only */
++#define GTA02_IRQ_PIO_2               IRQ_EINT2       /* v2 + v3 + v4 only */
++#define GTA02_IRQ_nJACK_INSERT        IRQ_EINT4
++#define GTA02v1_IRQ_nSD_CD    IRQ_EINT5       /* v1 only */
++#define GTA02_IRQ_WLAN_GPIO1  IRQ_EINT5
++#define GTA02_IRQ_AUX         IRQ_EINT6
++#define GTA02_IRQ_nHOLD               IRQ_EINT7
++#define GTA02v1_IRQ_nSIM_CD   IRQ_EINT8       /* v1 only */
++#define GTA02_IRQ_PCF50633    IRQ_EINT9
 +#define GTA02_IRQ_3D          IRQ_EINT12
-+#define GTA02_IRQ_PCF50633    IRQ_EINT9
-+#define GTA02_IRQ_GSENSOR_1   IRQ_EINT0
-+#define GTA02_IRQ_GSENSOR_2   IRQ_EINT16
++#define GTA02_IRQ_GSENSOR_2   IRQ_EINT16      /* v2 + v3 + v4 only */
++#define GTA02v3_IRQ_nUSB_OC   IRQ_EINT17      /* v3 + v4 only */
++#define GTA02v3_IRQ_nUSB_FLT  IRQ_EINT18      /* v3 + v4 only */
++#define GTA02v3_IRQ_nGSM_OC   IRQ_EINT19      /* v3 + v4 only */
 +
-+/* Changes in GTA02v2 */
-+#define GTA02v2_GPIO_3D_RESET S3C2440_GPJ4
-+
 +#endif /* _GTA02_H */
 Index: linux-2.6.22/arch/arm/mach-s3c2440/Kconfig
 ===================================================================




--- End Message ---
--- Begin Message ---
Author: shoragan
Date: 2007-10-16 17:20:27 +0200 (Tue, 16 Oct 2007)
New Revision: 3191

Added:
   branches/src/target/kernel/2.6.23.x/patches/asoc-neo1973_wm8753-power.patch
Modified:
   branches/src/target/kernel/2.6.23.x/patches/series
Log:
Follow changes in 2.6.22:
(orig r3168):  laforge | 2007-10-15 10:54:10 +0200

add the asoc amplifier power down fix to the series

(orig r3167):  laforge | 2007-10-15 10:48:09 +0200

This patch fixes the current leak caused by not shutting down the audio
amplifier during suspend/resume and after power-down.  See bug
http://bugzilla.openmoko.org/cgi-bin/bugzilla/show_bug.cgi?id=781


Added: 
branches/src/target/kernel/2.6.23.x/patches/asoc-neo1973_wm8753-power.patch
===================================================================
--- branches/src/target/kernel/2.6.23.x/patches/asoc-neo1973_wm8753-power.patch 
2007-10-16 15:02:36 UTC (rev 3190)
+++ branches/src/target/kernel/2.6.23.x/patches/asoc-neo1973_wm8753-power.patch 
2007-10-16 15:20:27 UTC (rev 3191)
@@ -0,0 +1,50 @@
+Index: linux-2.6.22.5-moko/sound/soc/s3c24xx/neo1973_wm8753.c
+===================================================================
+--- linux-2.6.22.5-moko.orig/sound/soc/s3c24xx/neo1973_wm8753.c
++++ linux-2.6.22.5-moko/sound/soc/s3c24xx/neo1973_wm8753.c
+@@ -615,6 +615,35 @@
+       return i2c_probe(adap, &addr_data, lm4857_amp_probe);
+ }
+ 
++static u8 lm4857_state;
++
++static int lm4857_suspend(struct i2c_client *dev, pm_message_t state)
++{
++      dev_dbg(&dev->dev, "lm4857_suspend\n");
++      lm4857_state = lm4857_regs[LM4857_CTRL] & 0xf;
++      if (lm4857_state) {
++              lm4857_regs[LM4857_CTRL] &= 0xf0;
++              lm4857_write_regs();
++      }
++      return 0;
++}
++
++static int lm4857_resume(struct i2c_client *dev)
++{
++      if (lm4857_state) {
++              lm4857_regs[LM4857_CTRL] |= (lm4857_state & 0x0f);
++              lm4857_write_regs();
++      }
++      return 0;
++}
++
++static void lm4857_shutdown(struct i2c_client *dev)
++{
++      dev_dbg(&dev->dev, "lm4857_shutdown\n");
++      lm4857_regs[LM4857_CTRL] &= 0xf0;
++      lm4857_write_regs();
++}
++
+ /* corgi i2c codec control layer */
+ static struct i2c_driver lm4857_i2c_driver = {
+       .driver = {
+@@ -622,6 +651,9 @@
+               .owner = THIS_MODULE,
+       },
+       .id =             I2C_DRIVERID_LM4857,
++      .suspend =        lm4857_suspend,
++      .resume =         lm4857_resume,
++      .shutdown =       lm4857_shutdown,
+       .attach_adapter = lm4857_i2c_attach,
+       .detach_client =  lm4857_i2c_detach,
+       .command =        NULL,

Modified: branches/src/target/kernel/2.6.23.x/patches/series
===================================================================
--- branches/src/target/kernel/2.6.23.x/patches/series  2007-10-16 15:02:36 UTC 
(rev 3190)
+++ branches/src/target/kernel/2.6.23.x/patches/series  2007-10-16 15:20:27 UTC 
(rev 3191)
@@ -1,5 +1,6 @@
 asoc-platform-hw_init-pcm_emulation-fix.patch
 asoc-kconfig-fix.patch
+asoc-neo1973_wm8753-power.patch
 missing_defs.patch
 openmoko-logo.patch
 yaffs2-20070905.patch




--- End Message ---
--- Begin Message ---
Author: mickey
Date: 2007-10-16 17:27:57 +0200 (Tue, 16 Oct 2007)
New Revision: 3192

Modified:
   trunk/src/target/OM-2007.2/artwork/sounds/startup_unintrusive.wav
Log:
starup_unintrusive.wav: normalize PCM wave


Modified: trunk/src/target/OM-2007.2/artwork/sounds/startup_unintrusive.wav
===================================================================
(Binary files differ)




--- End Message ---
--- Begin Message ---
Author: shoragan
Date: 2007-10-16 17:43:33 +0200 (Tue, 16 Oct 2007)
New Revision: 3193

Added:
   branches/src/target/kernel/2.6.23.x/patches/arm-atag-kexec.patch
Modified:
   branches/src/target/kernel/2.6.23.x/patches/series
Log:
Follow change in 2.6.22:
(orig r3169):  laforge | 2007-10-15 11:07:35 +0200

Add patch to fix kexec() on ARM machines that need the ATAG structure to be
passed from the bootloader in order to properly boot. (Closes:
http://bugzilla.openmoko.org/cgi-bin/bugzilla/show_bug.cgi?id=930)


Added: branches/src/target/kernel/2.6.23.x/patches/arm-atag-kexec.patch
===================================================================
--- branches/src/target/kernel/2.6.23.x/patches/arm-atag-kexec.patch    
2007-10-16 15:27:57 UTC (rev 3192)
+++ branches/src/target/kernel/2.6.23.x/patches/arm-atag-kexec.patch    
2007-10-16 15:43:33 UTC (rev 3193)
@@ -0,0 +1,145 @@
+This patch resolves a kexec boot failure that can occur because
+no ATAGs are passed in to the kexec'd kernel.  Currently the
+newly-kexec'd kernel may fail if it requires specific ATAGs, or
+it may fail because the fixed memory location at which it expects
+to find the ATAGs may contain random data instead of ATAGs.
+
+The patch ensures that any ATAGs passed to the current kernel
+at boot time are copied to a static buffer, and are copied back
+when kexec copies the new kernel into place.  Thus the new
+kernel sees the same ATAGs from kexec and the boot loader.
+
+The boot parameters are copied without regard to type, content,
+or length -- this patch's scope is limited soley to saving and
+restoring a fixed-size block of memory containing the kernel's
+boot parameters.  Additional functionality to examine, alter, or
+replace the ATAGs (using kexec, for example) can be implemented
+by manipulating the static buffer containing the preserved ATAGs.
+
+Note: the size of the buffer (1.5KB) is selected to comfortably
+hold one of each ATAG type, including a maximum-length command
+line and the maximum number of ATAG_MEM structures currently
+supported by the kernel.  Should an ATAG list exceed that limit,
+the list will be silently truncated to that limit (to do other-
+wise at that point in the boot process would make a simple
+problem exceedingly complicated).
+
+Kernel version 2.6.22.5
+
+Signed-off-by: Mike Westerhof <mwester at dls.net>
+---
+
+diff -uprN linux-2.6.22.5.orig/arch/arm/kernel/relocate_kernel.S 
linux-2.6.22.5/arch/arm/kernel/relocate_kernel.S
+--- linux-2.6.22.5.orig/arch/arm/kernel/relocate_kernel.S      2007-08-22 
18:23:54.000000000 -0500
++++ linux-2.6.22.5/arch/arm/kernel/relocate_kernel.S   2007-08-27 
20:31:32.000000000 -0500
+@@ -7,6 +7,23 @@
+       .globl relocate_new_kernel
+ relocate_new_kernel:
+ 
++      /* Move boot params back to where the kernel expects them */
++
++      ldr     r0,kexec_boot_params_address
++      teq     r0,#0
++      beq     8f
++
++      ldr     r1,kexec_boot_params_copy
++      mov     r6,#KEXEC_BOOT_PARAMS_SIZE/4
++7:
++      ldr     r5,[r1],#4
++      str     r5,[r0],#4
++      subs    r6,r6,#1
++      bne     7b
++
++8:
++      /* Boot params moved, now go on with the kernel */
++
+       ldr     r0,kexec_indirection_page
+       ldr     r1,kexec_start_address
+ 
+@@ -50,7 +67,7 @@ relocate_new_kernel:
+       mov lr,r1
+       mov r0,#0
+       ldr r1,kexec_mach_type
+-      mov r2,#0
++      ldr r2,kexec_boot_params_address
+       mov pc,lr
+ 
+       .globl kexec_start_address
+@@ -65,6 +82,16 @@ kexec_indirection_page:
+ kexec_mach_type:
+       .long   0x0
+ 
++      /* phy addr where new kernel will expect to find boot params */
++      .globl kexec_boot_params_address
++kexec_boot_params_address:
++      .long   0x0
++
++      /* phy addr where old kernel put a copy of orig boot params */
++      .globl kexec_boot_params_copy
++kexec_boot_params_copy:
++      .long   0x0
++
+ relocate_new_kernel_end:
+ 
+       .globl relocate_new_kernel_size
+diff -uprN linux-2.6.22.5.orig/arch/arm/kernel/setup.c 
linux-2.6.22.5/arch/arm/kernel/setup.c
+--- linux-2.6.22.5.orig/arch/arm/kernel/setup.c        2007-08-22 
18:23:54.000000000 -0500
++++ linux-2.6.22.5/arch/arm/kernel/setup.c     2007-08-27 20:31:32.000000000 
-0500
+@@ -23,6 +23,7 @@
+ #include <linux/cpu.h>
+ #include <linux/interrupt.h>
+ #include <linux/smp.h>
++#include <linux/kexec.h>
+ 
+ #include <asm/cpu.h>
+ #include <asm/elf.h>
+@@ -767,6 +768,23 @@ static int __init customize_machine(void
+ }
+ arch_initcall(customize_machine);
+ 
++#ifdef CONFIG_KEXEC
++
++/* Physical addr of where the boot params should be for this machine */
++extern unsigned long kexec_boot_params_address;
++
++/* Physical addr of the buffer into which the boot params are copied */
++extern unsigned long kexec_boot_params_copy;
++
++/* Pointer to the boot params buffer, for manipulation and display */
++unsigned long kexec_boot_params;
++EXPORT_SYMBOL(kexec_boot_params);
++
++/* The buffer itself - make sure it is sized correctly */
++static unsigned long kexec_boot_params_buf[(KEXEC_BOOT_PARAMS_SIZE + 3) / 4];
++
++#endif
++
+ void __init setup_arch(char **cmdline_p)
+ {
+       struct tag *tags = (struct tag *)&init_tags;
+@@ -783,6 +801,13 @@ void __init setup_arch(char **cmdline_p)
+       if (mdesc->boot_params)
+               tags = phys_to_virt(mdesc->boot_params);
+ 
++#ifdef CONFIG_KEXEC
++      kexec_boot_params_address = mdesc->boot_params;
++      kexec_boot_params_copy = virt_to_phys(kexec_boot_params_buf);
++      kexec_boot_params = (unsigned long)kexec_boot_params_buf;
++      if (mdesc->boot_params)
++              memcpy((void *)kexec_boot_params, tags, KEXEC_BOOT_PARAMS_SIZE);
++#endif
+       /*
+        * If we have the old style parameters, convert them to
+        * a tag list.
+diff -uprN linux-2.6.22.5.orig/include/asm-arm/kexec.h 
linux-2.6.22.5/include/asm-arm/kexec.h
+--- linux-2.6.22.5.orig/include/asm-arm/kexec.h        2007-08-22 
18:23:54.000000000 -0500
++++ linux-2.6.22.5/include/asm-arm/kexec.h     2007-08-27 20:31:32.000000000 
-0500
+@@ -14,6 +14,8 @@
+ 
+ #define KEXEC_ARCH KEXEC_ARCH_ARM
+ 
++#define KEXEC_BOOT_PARAMS_SIZE 1536
++
+ #ifndef __ASSEMBLY__
+ 
+ struct kimage;

Modified: branches/src/target/kernel/2.6.23.x/patches/series
===================================================================
--- branches/src/target/kernel/2.6.23.x/patches/series  2007-10-16 15:27:57 UTC 
(rev 3192)
+++ branches/src/target/kernel/2.6.23.x/patches/series  2007-10-16 15:43:33 UTC 
(rev 3193)
@@ -1,3 +1,4 @@
+arm-atag-kexec.patch
 asoc-platform-hw_init-pcm_emulation-fix.patch
 asoc-kconfig-fix.patch
 asoc-neo1973_wm8753-power.patch




--- End Message ---
--- Begin Message ---
Author: shoragan
Date: 2007-10-16 18:19:59 +0200 (Tue, 16 Oct 2007)
New Revision: 3194

Modified:
   branches/src/target/kernel/2.6.23.x/patches/gta01-vibrator.patch
   branches/src/target/kernel/2.6.23.x/patches/s3c2410-pwm.patch
Log:
Follow changes in 2.6.22:
(orig r3173):  laforge | 2007-10-15 14:49:23 +0200

increase vibrator PWM frequency to 257kHz (66MHz / 2 / 2 / 64) to be outside
the human-audible range.  It's a vibrator, not a 4kHz beeper!

(orig r3171):  laforge | 2007-10-15 12:54:10 +0200

S3c24xx timer4 doesn't have PWM support, so don't even try to use it for that.
Also, refuse to reconfigure the prescaler 1 (shared between timer 2,3,4), since
that would modify the kernel timer clock tick.


Modified: branches/src/target/kernel/2.6.23.x/patches/gta01-vibrator.patch
===================================================================
--- branches/src/target/kernel/2.6.23.x/patches/gta01-vibrator.patch    
2007-10-16 15:43:33 UTC (rev 3193)
+++ branches/src/target/kernel/2.6.23.x/patches/gta01-vibrator.patch    
2007-10-16 16:19:59 UTC (rev 3194)
@@ -5,7 +5,7 @@
 Index: linux-2.6.23/drivers/leds/leds-gta01.c
 ===================================================================
 --- /dev/null
-+++ linux-2.6.23/drivers/leds/leds-gta01.c
++++ linux-2.6.22.5-moko/drivers/leds/leds-gta01.c
 @@ -0,0 +1,188 @@
 +/*
 + * LED driver for the FIC GTA01 (Neo1973) GSM Phone Vibrator
@@ -32,7 +32,7 @@
 +#include <asm/arch/gta01.h>
 +#include <asm/plat-s3c/regs-timer.h>
 +
-+#define COUNTER 256
++#define COUNTER 64
 +
 +struct gta01_vib_priv
 +{
@@ -65,7 +65,7 @@
 +       */
 +      mutex_lock(&vp->mutex);
 +      if (vp->has_pwm) {
-+                      s3c2410_pwm_duty_cycle(value, vp->pwm);
++                      s3c2410_pwm_duty_cycle(value/4, vp->pwm);
 +                      s3c2410_gpio_cfgpin(vp->gpio, S3C2410_GPB3_TOUT3);
 +      } else {
 +              if (value)
@@ -101,8 +101,9 @@
 +      struct gta01_vib_priv *vp = pdev_to_vpriv(pdev);
 +
 +      vp->pwm->timerid= PWM3;
-+      vp->pwm->prescaler = 0x0000;
-+      vp->pwm->divider = S3C2410_TCFG1_MUX3_DIV8;
++      /* use same prescaler as arch/arm/plat-s3c24xx/time.c */
++      vp->pwm->prescaler = (6 - 1) / 2;
++      vp->pwm->divider = S3C2410_TCFG1_MUX3_DIV2;
 +      vp->pwm->counter = COUNTER;
 +      vp->pwm->comparer = COUNTER;
 +

Modified: branches/src/target/kernel/2.6.23.x/patches/s3c2410-pwm.patch
===================================================================
--- branches/src/target/kernel/2.6.23.x/patches/s3c2410-pwm.patch       
2007-10-16 15:43:33 UTC (rev 3193)
+++ branches/src/target/kernel/2.6.23.x/patches/s3c2410-pwm.patch       
2007-10-16 16:19:59 UTC (rev 3194)
@@ -38,7 +38,7 @@
 ===================================================================
 --- /dev/null
 +++ linux-2.6.22/arch/arm/mach-s3c2410/pwm.c
-@@ -0,0 +1,222 @@
+@@ -0,0 +1,234 @@
 +/*
 + * arch/arm/mach-s3c2410/3c2410-pwm.c
 + *
@@ -118,7 +118,7 @@
 +      tcfg0 = __raw_readl(S3C2410_TCFG0);
 +
 +      /* divider & scaler slection */
-+      switch(s3c2410_pwm->timerid) {
++      switch (s3c2410_pwm->timerid) {
 +      case PWM0:
 +              tcfg1 &= ~S3C2410_TCFG1_MUX0_MASK;
 +              tcfg0 &= ~S3C2410_TCFG_PRESCALER0_MASK;
@@ -136,8 +136,7 @@
 +              tcfg0 &= ~S3C2410_TCFG_PRESCALER1_MASK;
 +              break;
 +      case PWM4:
-+              tcfg1 &= ~S3C2410_TCFG1_MUX4_MASK;
-+              tcfg0 &= ~S3C2410_TCFG_PRESCALER1_MASK;
++              /* timer four is not capable of doing PWM */
 +              break;
 +      default:
 +              return -1;
@@ -145,11 +144,23 @@
 +
 +      /* divider & scaler values */
 +      tcfg1 |= s3c2410_pwm->divider;
-+      tcfg0 |= s3c2410_pwm->prescaler;
-+
 +      __raw_writel(tcfg1, S3C2410_TCFG1);
-+      __raw_writel(tcfg0, S3C2410_TCFG0);
 +
++      switch (s3c2410_pwm->timerid) {
++      case PWM0:
++      case PWM1:
++              tcfg0 |= s3c2410_pwm->prescaler;
++              __raw_writel(tcfg0, S3C2410_TCFG0);
++              break;
++      default:
++              if ((tcfg0 | s3c2410_pwm->prescaler) != tcfg0) {
++                      printk(KERN_WARNING "not changing prescaler of PWM %u,"
++                             " since it's shared with timer4 (clock tick)\n",
++                             s3c2410_pwm->timerid);
++              }
++              break;
++      }
++
 +      /* timer count and compare buffer initial values */
 +      tcnt = s3c2410_pwm->counter;
 +      tcmp = s3c2410_pwm->comparer;
@@ -189,8 +200,9 @@
 +              tcon &= ~S3C2410_TCON_T3MANUALUPD;
 +              break;
 +      case PWM4:
-+              tcon |= S3C2410_TCON_T4START;
-+              tcon &= ~S3C2410_TCON_T4MANUALUPD;
++              /* timer four is not capable of doing PWM */
++      default:
++              return -1;
 +      }
 +
 +      __raw_writel(tcon, S3C2410_TCON);
@@ -228,9 +240,9 @@
 +              tcon |= S3C2410_TCON_T3MANUALUPD;
 +              break;
 +      case PWM4:
-+              tcon &= ~0x00080000;
-+              tcon |= S3C2410_TCON_T4RELOAD;
-+              tcon |= S3C2410_TCON_T3MANUALUPD;
++              /* timer four is not capable of doing PWM */
++      default:
++              return -1;
 +      }
 +
 +      __raw_writel(tcon, S3C2410_TCON);




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

Reply via email to