summaryrefslogtreecommitdiff
path: root/drivers/i2c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/i2c')
-rw-r--r--drivers/i2c/busses/i2c-tegra.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/i2c/busses/i2c-tegra.c b/drivers/i2c/busses/i2c-tegra.c
index d28cd4e9d3d0..55cbfb39d17f 100644
--- a/drivers/i2c/busses/i2c-tegra.c
+++ b/drivers/i2c/busses/i2c-tegra.c
@@ -693,11 +693,13 @@ static int tegra_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg msgs[],
int ret = 0;
unsigned long flags;
- if (i2c_dev->is_suspended)
- return -EBUSY;
-
rt_mutex_lock(&i2c_dev->dev_lock);
+ if (i2c_dev->is_suspended) {
+ rt_mutex_unlock(&i2c_dev->dev_lock);
+ return -EBUSY;
+ }
+
if (i2c_dev->last_mux != i2c_bus->mux) {
tegra_pinmux_set_safe_pinmux_table(i2c_dev->last_mux,
i2c_dev->last_mux_len);