[oe-commits] org.oe.dev linux-omap1-2.6.19-omap1 : Add patch to fix kernel oops starting ALSA.

crofton commit openembedded-commits at lists.openembedded.org
Tue Jan 2 22:09:52 UTC 2007


linux-omap1-2.6.19-omap1 : Add patch to fix kernel oops starting ALSA.

Author: crofton at openembedded.org
Branch: org.openembedded.dev
Revision: 61f078c78c81e2cf1784988fd23bbc666e1e5cc0
ViewMTN: http://monotone.openembedded.org/revision.psp?id=61f078c78c81e2cf1784988fd23bbc666e1e5cc0
Files:
1
packages/linux/linux-omap1-2.6.19-omap1/i2c-fix.patch
packages/linux/linux-omap1_2.6.19-omap1.bb
Diffs:

#
# mt diff -rf3fc249ebe1706f1e7f3013e7d83dbdea6b9cabe -r61f078c78c81e2cf1784988fd23bbc666e1e5cc0
#
# 
# 
# add_file "packages/linux/linux-omap1-2.6.19-omap1/i2c-fix.patch"
#  content [400379f024476a767e4a5987c3cfd01b4ffe1791]
# 
# patch "packages/linux/linux-omap1_2.6.19-omap1.bb"
#  from [1b1c20e9b1414c54e380c8792b1c1167e950603d]
#    to [14627f9133178980bca119b7ad1ed7c9c61a9f31]
# 
============================================================
--- packages/linux/linux-omap1-2.6.19-omap1/i2c-fix.patch	400379f024476a767e4a5987c3cfd01b4ffe1791
+++ packages/linux/linux-omap1-2.6.19-omap1/i2c-fix.patch	400379f024476a767e4a5987c3cfd01b4ffe1791
@@ -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 <dirk.behme_at_gmail.com>
+
+
+-------------- 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
============================================================
--- packages/linux/linux-omap1_2.6.19-omap1.bb	1b1c20e9b1414c54e380c8792b1c1167e950603d
+++ packages/linux/linux-omap1_2.6.19-omap1.bb	14627f9133178980bca119b7ad1ed7c9c61a9f31
@@ -1,10 +1,9 @@ require linux-omap1.inc
 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"
 






More information about the Openembedded-commits mailing list