Hi Andrew,

could you try the following patch?
if it cures, i'll commit it to cvs.


ciao,

Takashi


Index: alsa-kernel/include/i2c.h
===================================================================
RCS file: /suse/tiwai/cvs/alsa/alsa-kernel/include/i2c.h,v
retrieving revision 1.2
diff -u -r1.2 i2c.h
--- alsa-kernel/include/i2c.h   4 Jan 2002 15:44:15 -0000       1.2
+++ alsa-kernel/include/i2c.h   23 Apr 2002 10:44:21 -0000
@@ -82,8 +82,18 @@
 int snd_i2c_device_create(snd_i2c_bus_t *bus, const char *name, unsigned char addr, 
snd_i2c_device_t **rdevice);
 int snd_i2c_device_free(snd_i2c_device_t *device);
 
-static inline void snd_i2c_lock(snd_i2c_bus_t *bus) { spin_lock(&(bus->master ? 
bus->master->lock : bus->lock)); }
-static inline void snd_i2c_unlock(snd_i2c_bus_t *bus) { spin_unlock(&(bus->master ? 
bus->master->lock : bus->lock)); }
+static inline void snd_i2c_lock(snd_i2c_bus_t *bus) {
+       if (bus->master)
+               spin_lock(&bus->master->lock);
+       else
+               spin_lock(&bus->lock);
+}
+static inline void snd_i2c_unlock(snd_i2c_bus_t *bus) {
+       if (bus->master)
+               spin_unlock(&bus->master->lock);
+       else
+               spin_unlock(&bus->lock);
+}
 
 int snd_i2c_sendbytes(snd_i2c_device_t *device, unsigned char *bytes, int count);
 int snd_i2c_readbytes(snd_i2c_device_t *device, unsigned char *bytes, int count);

_______________________________________________
Alsa-user mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/alsa-user

Reply via email to