|
@@ -98,7 +98,8 @@ int snd_i2c_bus_create(struct snd_card *card, const char *name,
|
|
|
bus->master = master;
|
|
|
}
|
|
|
strlcpy(bus->name, name, sizeof(bus->name));
|
|
|
- if ((err = snd_device_new(card, SNDRV_DEV_BUS, bus, &ops)) < 0) {
|
|
|
+ err = snd_device_new(card, SNDRV_DEV_BUS, bus, &ops);
|
|
|
+ if (err < 0) {
|
|
|
snd_i2c_bus_free(bus);
|
|
|
return err;
|
|
|
}
|
|
@@ -246,7 +247,8 @@ static int snd_i2c_bit_sendbyte(struct snd_i2c_bus *bus, unsigned char data)
|
|
|
|
|
|
for (i = 7; i >= 0; i--)
|
|
|
snd_i2c_bit_send(bus, !!(data & (1 << i)));
|
|
|
- if ((err = snd_i2c_bit_ack(bus)) < 0)
|
|
|
+ err = snd_i2c_bit_ack(bus);
|
|
|
+ if (err < 0)
|
|
|
return err;
|
|
|
return 0;
|
|
|
}
|
|
@@ -278,12 +280,14 @@ static int snd_i2c_bit_sendbytes(struct snd_i2c_device *device,
|
|
|
if (device->flags & SND_I2C_DEVICE_ADDRTEN)
|
|
|
return -EIO; /* not yet implemented */
|
|
|
snd_i2c_bit_start(bus);
|
|
|
- if ((err = snd_i2c_bit_sendbyte(bus, device->addr << 1)) < 0) {
|
|
|
+ err = snd_i2c_bit_sendbyte(bus, device->addr << 1);
|
|
|
+ if (err < 0) {
|
|
|
snd_i2c_bit_hw_stop(bus);
|
|
|
return err;
|
|
|
}
|
|
|
while (count-- > 0) {
|
|
|
- if ((err = snd_i2c_bit_sendbyte(bus, *bytes++)) < 0) {
|
|
|
+ err = snd_i2c_bit_sendbyte(bus, *bytes++);
|
|
|
+ if (err < 0) {
|
|
|
snd_i2c_bit_hw_stop(bus);
|
|
|
return err;
|
|
|
}
|
|
@@ -302,12 +306,14 @@ static int snd_i2c_bit_readbytes(struct snd_i2c_device *device,
|
|
|
if (device->flags & SND_I2C_DEVICE_ADDRTEN)
|
|
|
return -EIO; /* not yet implemented */
|
|
|
snd_i2c_bit_start(bus);
|
|
|
- if ((err = snd_i2c_bit_sendbyte(bus, (device->addr << 1) | 1)) < 0) {
|
|
|
+ err = snd_i2c_bit_sendbyte(bus, (device->addr << 1) | 1);
|
|
|
+ if (err < 0) {
|
|
|
snd_i2c_bit_hw_stop(bus);
|
|
|
return err;
|
|
|
}
|
|
|
while (count-- > 0) {
|
|
|
- if ((err = snd_i2c_bit_readbyte(bus, count == 0)) < 0) {
|
|
|
+ err = snd_i2c_bit_readbyte(bus, count == 0);
|
|
|
+ if (err < 0) {
|
|
|
snd_i2c_bit_hw_stop(bus);
|
|
|
return err;
|
|
|
}
|