From 0f8fb7dd8a24cf4d058408f02a645fc38c7cb229 Mon Sep 17 00:00:00 2001 From: Philip Balister Date: Tue, 2 Jan 2007 22:01:21 +0000 Subject: linux-omap1-2.6.19-omap1 : Add patch to fix kernel oops starting ALSA. --- .../linux/linux-omap1-2.6.19-omap1/i2c-fix.patch | 56 ++++++++++++++++++++++ packages/linux/linux-omap1_2.6.19-omap1.bb | 3 +- 2 files changed, 57 insertions(+), 2 deletions(-) create mode 100644 packages/linux/linux-omap1-2.6.19-omap1/i2c-fix.patch diff --git a/packages/linux/linux-omap1-2.6.19-omap1/i2c-fix.patch b/packages/linux/linux-omap1-2.6.19-omap1/i2c-fix.patch new file mode 100644 index 0000000000..3b35ce23a2 --- /dev/null +++ b/packages/linux/linux-omap1-2.6.19-omap1/i2c-fix.patch @@ -0,0 +1,56 @@ +Hack to add I2C zero length transfers and SMBus quick mode +necessary for AIC23 sound again. + +Signed-off-by: Dirk Behme + + +-------------- next part -------------- +Index: linux-osk/drivers/i2c/busses/i2c-omap.c +=================================================================== +--- linux-osk.orig/drivers/i2c/busses/i2c-omap.c ++++ linux-osk/drivers/i2c/busses/i2c-omap.c +@@ -285,20 +285,29 @@ static int omap_i2c_xfer_msg(struct i2c_ + struct i2c_msg *msg, int stop) + { + struct omap_i2c_dev *dev = i2c_get_adapdata(adap); ++ u8 zero_byte = 0; + int r; + u16 w; + + dev_dbg(dev->dev, "addr: 0x%04x, len: %d, flags: 0x%x, stop: %d\n", + msg->addr, msg->len, msg->flags, stop); + +- if (msg->len == 0) +- return -EINVAL; +- + omap_i2c_write_reg(dev, OMAP_I2C_SA_REG, msg->addr); + +- /* REVISIT: Could the STB bit of I2C_CON be used with probing? */ +- dev->buf = msg->buf; +- dev->buf_len = msg->len; ++ /* Sigh, seems we can't do zero length transactions. Thus, we ++ * can't probe for devices w/o actually sending/receiving at least ++ * a single byte. So we'll set count to 1 for the zero length ++ * transaction case and hope we don't cause grief for some ++ * arbitrary device due to random byte write/read during ++ * probes. ++ */ ++ if (msg->len == 0) { ++ dev->buf = &zero_byte; ++ dev->buf_len = 1; ++ } else { ++ dev->buf = msg->buf; ++ dev->buf_len = msg->len; ++ } + + omap_i2c_write_reg(dev, OMAP_I2C_CNT_REG, dev->buf_len); + +@@ -383,7 +392,7 @@ out: + static u32 + omap_i2c_func(struct i2c_adapter *adap) + { +- return I2C_FUNC_I2C | (I2C_FUNC_SMBUS_EMUL & ~I2C_FUNC_SMBUS_QUICK); ++ return I2C_FUNC_I2C | I2C_FUNC_SMBUS_EMUL; + } + + static inline void diff --git a/packages/linux/linux-omap1_2.6.19-omap1.bb b/packages/linux/linux-omap1_2.6.19-omap1.bb index ca43d567c0..cfe0723770 100644 --- a/packages/linux/linux-omap1_2.6.19-omap1.bb +++ b/packages/linux/linux-omap1_2.6.19-omap1.bb @@ -1,10 +1,9 @@ require linux-omap1.inc -DEFAULT_PREFERENCE = "-1" - SRC_URI = "${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-2.6.19.tar.bz2 \ http://www.muru.com/linux/omap/patches/patch-2.6.19-omap1.bz2;patch=1 \ file://another-ide-cs-ids.patch;patch=1 \ + file://i2c-fix.patch;patch=1 \ file://defconfig \ file://defconfig.eabi" -- cgit v1.2.3 From 906582fea9ffaa4b4e44c71b7aaf9b8e1a70ce07 Mon Sep 17 00:00:00 2001 From: Philip Balister Date: Tue, 2 Jan 2007 22:03:19 +0000 Subject: openomap.conf : Select kernel version automatically. --- conf/distro/openomap.conf | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/conf/distro/openomap.conf b/conf/distro/openomap.conf index f73a980c52..5819b5ad59 100644 --- a/conf/distro/openomap.conf +++ b/conf/distro/openomap.conf @@ -23,8 +23,7 @@ PREFERRED_PROVIDER_virtual/arm-linux-gnueabi-libc-for-gcc = "glibc-intermediate" PREFERRED_PROVIDER_virtual/arm-linux-libc-for-gcc = "glibc-intermediate" # use latest booting kernel but allow to override it in local.conf -PREFERRED_VERSION_linux-omap1_omap5912osk ?= "2.6.18-omap1" -#PREFERRED_VERSION_linux-omap1_omap5912osk ?= "2.6.18+git" +#PREFERRED_VERSION_linux-omap1_omap5912osk ?= "2.6.19-omap1" #use EABI toolchain -- cgit v1.2.3 From 3431bdd1b242a6076b4f47d721f6d8a7614733c9 Mon Sep 17 00:00:00 2001 From: Philip Balister Date: Tue, 2 Jan 2007 22:04:41 +0000 Subject: omap5912osk : Select u-boot version automatically. --- conf/machine/omap5912osk.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conf/machine/omap5912osk.conf b/conf/machine/omap5912osk.conf index f8a3472f78..6e704a1f4e 100644 --- a/conf/machine/omap5912osk.conf +++ b/conf/machine/omap5912osk.conf @@ -11,7 +11,7 @@ PREFERRED_PROVIDER_xserver = "xserver-kdrive" PREFERRED_PROVIDER_virtual/kernel = "linux-omap1" PREFERRED_PROVIDERS += "virtual/${TARGET_PREFIX}depmod:module-init-tools-cross" -PREFERRED_VERSION_u-boot = "LABEL.2006.06.30.2020" +# PREFERRED_VERSION_u-boot = "1.1.6" SERIAL_CONSOLE ?= "115200 ttyS0" EXTRA_IMAGECMD_jffs2 = "--pad --little-endian --eraseblock=0x20000 -n" -- cgit v1.2.3