|
@@ -245,7 +245,8 @@ static int af9035_i2c_master_xfer(struct i2c_adapter *adap,
|
|
|
dev_warn(&d->udev->dev,
|
|
|
"%s: i2c xfer: len=%d is too big!\n",
|
|
|
KBUILD_MODNAME, msg[0].len);
|
|
|
- return -EOPNOTSUPP;
|
|
|
+ ret = -EOPNOTSUPP;
|
|
|
+ goto unlock;
|
|
|
}
|
|
|
req.mbox |= ((msg[0].addr & 0x80) >> 3);
|
|
|
buf[0] = msg[1].len;
|
|
@@ -281,7 +282,8 @@ static int af9035_i2c_master_xfer(struct i2c_adapter *adap,
|
|
|
dev_warn(&d->udev->dev,
|
|
|
"%s: i2c xfer: len=%d is too big!\n",
|
|
|
KBUILD_MODNAME, msg[0].len);
|
|
|
- return -EOPNOTSUPP;
|
|
|
+ ret = -EOPNOTSUPP;
|
|
|
+ goto unlock;
|
|
|
}
|
|
|
req.mbox |= ((msg[0].addr & 0x80) >> 3);
|
|
|
buf[0] = msg[0].len;
|
|
@@ -319,6 +321,7 @@ static int af9035_i2c_master_xfer(struct i2c_adapter *adap,
|
|
|
ret = -EOPNOTSUPP;
|
|
|
}
|
|
|
|
|
|
+unlock:
|
|
|
mutex_unlock(&d->i2c_mutex);
|
|
|
|
|
|
if (ret < 0)
|