Send commitlog mailing list submissions to
commitlog@lists.openmoko.org
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. r4111 - branches/src/target/kernel/2.6.24.x/patches
([EMAIL PROTECTED])
2. r4112 - trunk/src/target/gpio ([EMAIL PROTECTED])
3. r4113 - trunk/src/host/devirginator ([EMAIL PROTECTED])
4. r4114 - branches/src/target/kernel/2.6.24.x/patches
([EMAIL PROTECTED])
5. r4115 - in trunk/src/target/gsm: include/gsmd include/libgsmd
src/gsmd src/libgsmd src/util ([EMAIL PROTECTED])
6. r4116 - trunk/src/target/gsm/include/gsmd
([EMAIL PROTECTED])
7. r4117 - trunk/src/host/devirginator ([EMAIL PROTECTED])
--- Begin Message ---
Author: werner
Date: 2008-02-26 01:28:56 +0100 (Tue, 26 Feb 2008)
New Revision: 4111
Added:
branches/src/target/kernel/2.6.24.x/patches/fix-i2c-s3c2410-resume-race.patch
Modified:
branches/src/target/kernel/2.6.24.x/patches/series
Log:
fix-i2c-s3c2410-resume-race.patch
From: Andy Green <[EMAIL PROTECTED]>
There is a nasty race between i2c-s3c2410 resume and resume of I2C
driver and the client drivers -- the watchdog device actually gets to
use the dead I2C bus before it is reinitialized by the I2C driver
resume! This patch makes sure any customers get turned away until
the shopkeeper has woken up.
Signed-off-by: Andy Green <[EMAIL PROTECTED]>
---
drivers/i2c/busses/i2c-s3c2410.c | 32 +++++++++++++++++++++++++++++++-
1 files changed, 31 insertions(+), 1 deletions(-)
Added:
branches/src/target/kernel/2.6.24.x/patches/fix-i2c-s3c2410-resume-race.patch
===================================================================
---
branches/src/target/kernel/2.6.24.x/patches/fix-i2c-s3c2410-resume-race.patch
2008-02-24 23:07:00 UTC (rev 4110)
+++
branches/src/target/kernel/2.6.24.x/patches/fix-i2c-s3c2410-resume-race.patch
2008-02-26 00:28:56 UTC (rev 4111)
@@ -0,0 +1,102 @@
+fix-i2c-s3c2410-resume-race.patch
+
+From: Andy Green <[EMAIL PROTECTED]>
+
+There is a nasty race between i2c-s3c2410 resume and resume of I2C
+driver and the client drivers -- the watchdog device actually gets to
+use the dead I2C bus before it is reinitialized by the I2C driver
+resume! This patch makes sure any customers get turned away until
+the shopkeeper has woken up.
+
+Signed-off-by: Andy Green <[EMAIL PROTECTED]>
+
+---
+
+ drivers/i2c/busses/i2c-s3c2410.c | 32 +++++++++++++++++++++++++++++++-
+ 1 files changed, 31 insertions(+), 1 deletions(-)
+
+Index: linux-2.6.24/drivers/i2c/busses/i2c-s3c2410.c
+===================================================================
+--- linux-2.6.24.orig/drivers/i2c/busses/i2c-s3c2410.c
++++ linux-2.6.24/drivers/i2c/busses/i2c-s3c2410.c
+@@ -71,6 +71,8 @@ struct s3c24xx_i2c {
+ struct resource *irq;
+ struct resource *ioarea;
+ struct i2c_adapter adap;
++
++ int suspended;
+ };
+
+ /* default platform data to use if not supplied in the platform_device
+@@ -156,6 +158,14 @@ static inline void s3c24xx_i2c_disable_i
+ unsigned long tmp;
+
+ tmp = readl(i2c->regs + S3C2410_IICCON);
++
++/* S3c2442 datasheet
++ *
++ * If the IICCON[5]=0, IICCON[4] does not operate correctly.
++ * So, It is recommended that you should set IICCON[5]=1,
++ * although you does not use the IIC interrupt.
++ */
++
+ writel(tmp & ~S3C2410_IICCON_IRQEN, i2c->regs + S3C2410_IICCON);
+ }
+
+@@ -282,7 +292,7 @@ static int i2s_s3c_irq_nextbyte(struct s
+
+ case STATE_STOP:
+ dev_err(i2c->dev, "%s: called in STATE_STOP\n", __FUNCTION__);
+- s3c24xx_i2c_disable_irq(i2c);
++ s3c24xx_i2c_disable_irq(i2c);
+ goto out_ack;
+
+ case STATE_START:
+@@ -502,6 +512,12 @@ static int s3c24xx_i2c_doxfer(struct s3c
+ unsigned long timeout;
+ int ret;
+
++ if (i2c->suspended) {
++ dev_err(i2c->dev, "Hey I am still asleep, retry later\n");
++ ret = -EAGAIN;
++ goto out;
++ }
++
+ ret = s3c24xx_i2c_set_master(i2c);
+ if (ret != 0) {
+ dev_err(i2c->dev, "cannot get bus (error %d)\n", ret);
+@@ -886,6 +902,17 @@ static int s3c24xx_i2c_remove(struct pla
+ }
+
+ #ifdef CONFIG_PM
++
++static int s3c24xx_i2c_suspend(struct platform_device *dev, pm_message_t
state)
++{
++ struct s3c24xx_i2c *i2c = platform_get_drvdata(dev);
++
++ if (i2c != NULL)
++ i2c->suspended++;
++
++ return 0;
++}
++
+ static int s3c24xx_i2c_resume(struct platform_device *dev)
+ {
+ struct s3c24xx_i2c *i2c = platform_get_drvdata(dev);
+@@ -893,6 +920,8 @@ static int s3c24xx_i2c_resume(struct pla
+ if (i2c != NULL)
+ s3c24xx_i2c_init(i2c);
+
++ i2c->suspended--;
++
+ return 0;
+ }
+
+@@ -915,6 +944,7 @@ static struct platform_driver s3c2410_i2
+ static struct platform_driver s3c2440_i2c_driver = {
+ .probe = s3c24xx_i2c_probe,
+ .remove = s3c24xx_i2c_remove,
++ .suspend = s3c24xx_i2c_suspend,
+ .resume = s3c24xx_i2c_resume,
+ .driver = {
+ .owner = THIS_MODULE,
Modified: branches/src/target/kernel/2.6.24.x/patches/series
===================================================================
--- branches/src/target/kernel/2.6.24.x/patches/series 2008-02-24 23:07:00 UTC
(rev 4110)
+++ branches/src/target/kernel/2.6.24.x/patches/series 2008-02-26 00:28:56 UTC
(rev 4111)
@@ -5,6 +5,9 @@
asoc-neo1973_wm8753-power.patch
asoc-core-suspend_resume.patch
+# this looks like a bug in upstream
+fix-i2c-s3c2410-resume-race.patch
+
# GTA01 core feature set
s3c2410-bbt.patch
gta01-pcf50606.patch
--- End Message ---
--- Begin Message ---
Author: werner
Date: 2008-02-26 04:18:44 +0100 (Tue, 26 Feb 2008)
New Revision: 4112
Modified:
trunk/src/target/gpio/gpio.c
Log:
gpio.c (pin_a): mark port A pin values as outputs
Modified: trunk/src/target/gpio/gpio.c
===================================================================
--- trunk/src/target/gpio/gpio.c 2008-02-26 00:28:56 UTC (rev 4111)
+++ trunk/src/target/gpio/gpio.c 2008-02-26 03:18:44 UTC (rev 4112)
@@ -72,7 +72,7 @@
if (con)
return dat ? "F1" : "F0";
else
- return dat ? " 1" : " 0";
+ return dat ? ">1" : ">0";
}
--- End Message ---
--- Begin Message ---
Author: werner
Date: 2008-02-26 05:38:42 +0100 (Tue, 26 Feb 2008)
New Revision: 4113
Added:
trunk/src/host/devirginator/flashnor
Log:
flashnor: utility to intelligently flash the GTA02 NOR
Added: trunk/src/host/devirginator/flashnor
===================================================================
--- trunk/src/host/devirginator/flashnor 2008-02-26 03:18:44 UTC (rev
4112)
+++ trunk/src/host/devirginator/flashnor 2008-02-26 04:38:42 UTC (rev
4113)
@@ -0,0 +1,55 @@
+#!/bin/sh -e
+#
+# flashnor - Flash a file into NOR (M58WR016KB)
+#
+# Copyright (C) 2008 by OpenMoko, Inc.
+# Written by Werner Almesberger <[EMAIL PROTECTED]>
+# All Rights Reserved
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+
+
+DEV=/dev/mtd0
+
+
+usage()
+{
+ echo "usage: $0 nor.bin" 1>&2
+ exit 1
+}
+
+
+check()
+{
+ nor=`dd if=$DEV bs=$size count=1 | md5sum`
+ [ "$nor" = "$ref" ]
+}
+
+
+empty()
+{
+ ff=`dd if=/dev/zero bs=$size count=1 | tr '\000' '\377' | md5sum`
+ [ "$ff" = "$nor" ]
+}
+
+
+[ -z "$1" -o ! -z "$2" ] && usage
+
+size=`ls -l "$1" | awk '{ print $5 }'`
+if [ $size -lt 65536 ]; then
+ blocks=`expr \( $size + 8191 \) / 8192`
+else
+ blocks=`expr \( $size - 65536 + 65535 \) / 65536 + 8`
+fi
+
+ref=`md5sum <"$1"`
+check && exit
+flash_unlock $DEV
+empty || flash_erase $DEV 0 $blocks
+cat "$1" >$DEV
+flash_lock /dev/mtd0 0 -1
+check
Property changes on: trunk/src/host/devirginator/flashnor
___________________________________________________________________
Name: svn:executable
+ *
--- End Message ---
--- Begin Message ---
Author: werner
Date: 2008-02-26 08:53:29 +0100 (Tue, 26 Feb 2008)
New Revision: 4114
Modified:
branches/src/target/kernel/2.6.24.x/patches/gta01-inputdevice.patch
Log:
We can wake up from suspend with POWER, so there's no need to have AUX as
as another wakeup source, and in particular one that's easily triggered
by accident.
gta01-inputdevice.patch:
- drivers/input/keyboard/neo1973kbd.c (neo1973kbd_probe): don't make AUX a
wakeup source ever
Modified: branches/src/target/kernel/2.6.24.x/patches/gta01-inputdevice.patch
===================================================================
--- branches/src/target/kernel/2.6.24.x/patches/gta01-inputdevice.patch
2008-02-26 04:38:42 UTC (rev 4113)
+++ branches/src/target/kernel/2.6.24.x/patches/gta01-inputdevice.patch
2008-02-26 07:53:29 UTC (rev 4114)
@@ -39,7 +39,7 @@
===================================================================
--- /dev/null
+++ linux-2.6.24/drivers/input/keyboard/neo1973kbd.c
-@@ -0,0 +1,239 @@
+@@ -0,0 +1,235 @@
+/*
+ * Keyboard driver for FIC Neo1973 GSM phone
+ *
@@ -66,7 +66,6 @@
+
+#include <asm/hardware.h>
+#include <asm/arch/gta01.h>
-+#include <asm/mach-types.h>
+
+struct neo1973kbd {
+ struct input_dev *input;
@@ -202,9 +201,6 @@
+ goto out_aux;
+ }
+
-+ if (machine_is_neo1973_gta01())
-+ enable_irq_wake(irq_aux);
-+
+ if (request_irq(irq_hold, neo1973kbd_hold_irq, IRQF_DISABLED |
+ IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING,
+ "Neo1973 HOLD button", neo1973kbd)) {
--- End Message ---
--- Begin Message ---
Author: erin_yueh
Date: 2008-02-26 09:57:39 +0100 (Tue, 26 Feb 2008)
New Revision: 4115
Modified:
trunk/src/target/gsm/include/gsmd/state.h
trunk/src/target/gsm/include/gsmd/usock.h
trunk/src/target/gsm/include/libgsmd/misc.h
trunk/src/target/gsm/src/gsmd/usock.c
trunk/src/target/gsm/src/libgsmd/libgsmd_phone.c
trunk/src/target/gsm/src/util/shell.c
Log:
gsmd: add vibrator at cmd (Sudharshan S)
Modified: trunk/src/target/gsm/include/gsmd/state.h
===================================================================
--- trunk/src/target/gsm/include/gsmd/state.h 2008-02-26 07:53:29 UTC (rev
4114)
+++ trunk/src/target/gsm/include/gsmd/state.h 2008-02-26 08:57:39 UTC (rev
4115)
@@ -13,6 +13,7 @@
unsigned int network_state_gsm;
unsigned int network_state_gprs;
} ciph_ind;
+ unsigned int vibrator;
unsigned int on;
unsigned int registered;
unsigned int ringing;
Modified: trunk/src/target/gsm/include/gsmd/usock.h
===================================================================
--- trunk/src/target/gsm/include/gsmd/usock.h 2008-02-26 07:53:29 UTC (rev
4114)
+++ trunk/src/target/gsm/include/gsmd/usock.h 2008-02-26 08:57:39 UTC (rev
4115)
@@ -140,6 +140,8 @@
GSMD_PHONE_GET_REVISION = 6,
GSMD_PHONE_GET_SERIAL = 7,
GSMD_PHONE_GET_BATTERY = 8,
+ GSMD_PHONE_VIB_ENABLE = 9,
+ GSMD_PHONE_VIB_DISABLE = 10,
};
enum gsmd_msg_modem {
Modified: trunk/src/target/gsm/include/libgsmd/misc.h
===================================================================
--- trunk/src/target/gsm/include/libgsmd/misc.h 2008-02-26 07:53:29 UTC (rev
4114)
+++ trunk/src/target/gsm/include/libgsmd/misc.h 2008-02-26 08:57:39 UTC (rev
4115)
@@ -73,4 +73,8 @@
extern int lgsm_voicemail_get(struct lgsm_handle *lh);
/* Get Battery Connection status and charge level */
extern int lgsm_get_battery(struct lgsm_handle *lh);
+
+/* Enable vibrator */
+extern int lgsm_phone_vibrator(struct lgsm_handle *lh, int enable);
+
#endif
Modified: trunk/src/target/gsm/src/gsmd/usock.c
===================================================================
--- trunk/src/target/gsm/src/gsmd/usock.c 2008-02-26 07:53:29 UTC (rev
4114)
+++ trunk/src/target/gsm/src/gsmd/usock.c 2008-02-26 08:57:39 UTC (rev
4115)
@@ -679,6 +679,32 @@
cmd -> id, sizeof(gbs), &gbs);
}
+static int phone_vibrator_enable_cb(struct gsmd_atcmd *cmd, void *ctx, char
*resp)
+{
+ struct gsmd_user *gu = ctx;
+ int ret = cmd->ret;
+
+ switch(ret) {
+ case 0:
+ gsmd_log(GSMD_DEBUG, "Vibrator enabled\n");
+ gu->gsmd->dev_state.vibrator = 1;
+ break;
+ default:
+ gsmd_log(GSMD_DEBUG, "AT+CVIB=1 operation failed\n");
+ break;
+ }
+
+ return gsmd_ucmd_submit(gu, GSMD_MSG_PHONE, GSMD_PHONE_VIB_ENABLE,
+ cmd->id, sizeof(ret), &ret);
+}
+
+static int phone_vibrator_disable_cb(struct gsmd_atcmd *cmd, void *ctx, char
*resp)
+{
+ int ret = cmd->ret;
+ return gsmd_ucmd_submit(ctx, GSMD_MSG_PHONE, GSMD_PHONE_VIB_DISABLE,
+ cmd->id, sizeof(ret), &ret);
+}
+
static int usock_rcv_phone(struct gsmd_user *gu, struct gsmd_msg_hdr *gph,
int len)
{
@@ -718,6 +744,13 @@
case GSMD_PHONE_GET_BATTERY:
cmd = atcmd_fill("AT+CBC", 6+1, &phone_get_battery_cb, gu, 0,
NULL);
break;
+ case GSMD_PHONE_VIB_ENABLE:
+ cmd = atcmd_fill("AT+CVIB=1", 9+1, &phone_vibrator_enable_cb,
gu, 0, NULL);
+ break;
+ case GSMD_PHONE_VIB_DISABLE:
+ cmd = atcmd_fill("AT+CVIB=0", 9+1, &phone_vibrator_disable_cb,
gu, 0, NULL);
+ gu->gsmd->dev_state.vibrator = 0;
+ break;
default:
return -EINVAL;
}
Modified: trunk/src/target/gsm/src/libgsmd/libgsmd_phone.c
===================================================================
--- trunk/src/target/gsm/src/libgsmd/libgsmd_phone.c 2008-02-26 07:53:29 UTC
(rev 4114)
+++ trunk/src/target/gsm/src/libgsmd/libgsmd_phone.c 2008-02-26 08:57:39 UTC
(rev 4115)
@@ -74,3 +74,15 @@
{
return lgsm_send_simple(lh, GSMD_MSG_PHONE, GSMD_PHONE_GET_BATTERY);
}
+
+int lgsm_phone_vibrator(struct lgsm_handle *lh, int enable)
+{
+ int type;
+ if(enable)
+ type = GSMD_PHONE_VIB_ENABLE;
+ else
+ type = GSMD_PHONE_VIB_DISABLE;
+
+ return lgsm_send_simple(lh, GSMD_MSG_PHONE, type);
+}
+
Modified: trunk/src/target/gsm/src/util/shell.c
===================================================================
--- trunk/src/target/gsm/src/util/shell.c 2008-02-26 07:53:29 UTC (rev
4114)
+++ trunk/src/target/gsm/src/util/shell.c 2008-02-26 08:57:39 UTC (rev
4115)
@@ -428,6 +428,18 @@
case GSMD_PHONE_GET_BATTERY:
printf("<BCS>: %d <BCL>: %d \n", bc->bcs, bc->bcl);
break;
+ case GSMD_PHONE_VIB_ENABLE:
+ if(*intresult)
+ printf("Vibrator enable failed: %i\n", *intresult);
+ else
+ printf("Vibrator enabled\n");
+ break;
+ case GSMD_PHONE_VIB_DISABLE:
+ if(*intresult)
+ printf("Vibrator disable failed: %i\n", *intresult);
+ else
+ printf("VIbrator disabled\n");
+ break;
default:
return -EINVAL;
}
@@ -534,7 +546,9 @@
"\tH\tHangup call\n"
"\tO\tAntenna Power On\n"
"\to\tAntenna Power Off\n"
- "\tM\tModem Power On\n"
+ "\tV\tVibrator Enable (CVIB=1)\n"
+ "\tv\tVibrator Disable (CVIB=0)\n"
+ "\tM\tModem Power On\n"
"\tm\tModem Power Off\n"
"\tr\tRegister to network\n"
"\tR\tRegister to given operator (R=number)\n"
@@ -666,6 +680,12 @@
} else if (!strcmp(buf, "o")) {
printf("Power-Off\n");
lgsm_phone_power(lgsmh, 0);
+ } else if (!strcmp(buf, "V")) {
+ printf("Vibrator-Enable\n");
+ lgsm_phone_vibrator(lgsmh, 1);
+ } else if (!strcmp(buf, "v")) {
+ printf("Vibrator-Disable\n");
+ lgsm_phone_vibrator(lgsmh, 0);
} else if (!strcmp(buf, "r")) {
printf("Register\n");
lgsm_netreg_register(lgsmh, "\0 ");
--- End Message ---
--- Begin Message ---
Author: erin_yueh
Date: 2008-02-26 10:03:03 +0100 (Tue, 26 Feb 2008)
New Revision: 4116
Modified:
trunk/src/target/gsm/include/gsmd/usock.h
Log:
gsmd: sms data structure (Paulius Zaleckas)
Modified: trunk/src/target/gsm/include/gsmd/usock.h
===================================================================
--- trunk/src/target/gsm/include/gsmd/usock.h 2008-02-26 08:57:39 UTC (rev
4115)
+++ trunk/src/target/gsm/include/gsmd/usock.h 2008-02-26 09:03:03 UTC (rev
4116)
@@ -537,7 +537,7 @@
int is_voicemail;
struct gsmd_sms_datacodingscheme dcs;
enum gsmd_sms_tp_mti tp_mti;
- char data[GSMD_SMS_DATA_MAXLEN+1];
+ u_int8_t data[GSMD_SMS_DATA_MAXLEN+1];
} __attribute__ ((packed));
/* Refer to GSM 03.40 subclause 9.2.2.2 */
--- End Message ---
--- Begin Message ---
Author: werner
Date: 2008-02-26 11:13:31 +0100 (Tue, 26 Feb 2008)
New Revision: 4117
Modified:
trunk/src/host/devirginator/setup.sh
Log:
setup.sh: use envedit.pl -s 0x40000 on GTA02
Modified: trunk/src/host/devirginator/setup.sh
===================================================================
--- trunk/src/host/devirginator/setup.sh 2008-02-26 09:03:03 UTC (rev
4116)
+++ trunk/src/host/devirginator/setup.sh 2008-02-26 10:13:31 UTC (rev
4117)
@@ -303,6 +303,12 @@
# --- "devirginate" shell script ----------------------------------------------
+if [ "$PLATFORM" = gta01 ]; then
+ env_size_opt=
+else
+ env_size_opt=0x40000
+fi
+
cat <<EOF >devirginate
#!/bin/sh -e
# MACHINE-GENERATED. DO NOT EDIT !
@@ -367,7 +373,7 @@
./openocdcmd.pl $OPENOCD_HOST $OPENOCD_PORT \
"reset halt" wait_halt resume exit
sleep 5
- ./envedit.pl -i tmp/env.old -o tmp/env.new \
+ ./envedit.pl $env_size_opt -i tmp/env.old -o tmp/env.new \
-D$U_PLATFORM -D$U_PLATFORM$U_BOARD -f tmp/environment
$DFU_UTIL $USB_ID -a u-boot_env -D tmp/env.new
./openocdcmd.pl $OPENOCD_HOST $OPENOCD_PORT "reset run" exit
--- End Message ---
_______________________________________________
commitlog mailing list
commitlog@lists.openmoko.org
http://lists.openmoko.org/mailman/listinfo/commitlog