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