diff --git a/drivers/media/common/tuners/mxl5007t.c b/drivers/media/common/tuners/mxl5007t.c
index f3b193a..4a1ea54 100644
--- a/drivers/media/common/tuners/mxl5007t.c
+++ b/drivers/media/common/tuners/mxl5007t.c
@@ -660,11 +660,11 @@
 	s32 rf_input_level;
 	int ret;
 
-	mutex_lock(&state->lock);
-
 	if (fe->ops.i2c_gate_ctrl)
 		fe->ops.i2c_gate_ctrl(fe, 1);
 
+	mutex_lock(&state->lock);
+
 	ret = mxl5007t_synth_lock_status(state, &rf_locked, &ref_locked);
 	if (mxl_fail(ret))
 		goto fail;
@@ -676,10 +676,11 @@
 		goto fail;
 	mxl_debug("rf input power: %d", rf_input_level);
 fail:
+	mutex_unlock(&state->lock);
+
 	if (fe->ops.i2c_gate_ctrl)
 		fe->ops.i2c_gate_ctrl(fe, 0);
 
-	mutex_unlock(&state->lock);
 	return ret;
 }
 
@@ -730,11 +731,11 @@
 		return -EINVAL;
 	}
 
-	mutex_lock(&state->lock);
-
 	if (fe->ops.i2c_gate_ctrl)
 		fe->ops.i2c_gate_ctrl(fe, 1);
 
+	mutex_lock(&state->lock);
+
 	ret = mxl5007t_tuner_init(state, mode);
 	if (mxl_fail(ret))
 		goto fail;
@@ -747,10 +748,11 @@
 	state->bandwidth = (fe->ops.info.type == FE_OFDM) ?
 		params->u.ofdm.bandwidth : 0;
 fail:
+	mutex_unlock(&state->lock);
+
 	if (fe->ops.i2c_gate_ctrl)
 		fe->ops.i2c_gate_ctrl(fe, 0);
 
-	mutex_unlock(&state->lock);
 	return ret;
 }
 
@@ -802,11 +804,11 @@
 	}
 	mxl_debug("setting mxl5007 to system %s", mode_name);
 
-	mutex_lock(&state->lock);
-
 	if (fe->ops.i2c_gate_ctrl)
 		fe->ops.i2c_gate_ctrl(fe, 1);
 
+	mutex_lock(&state->lock);
+
 	ret = mxl5007t_tuner_init(state, cable ? cbl_mode : ota_mode);
 	if (mxl_fail(ret))
 		goto fail;
@@ -818,10 +820,11 @@
 	state->frequency = freq;
 	state->bandwidth = 0;
 fail:
+	mutex_unlock(&state->lock);
+
 	if (fe->ops.i2c_gate_ctrl)
 		fe->ops.i2c_gate_ctrl(fe, 0);
 
-	mutex_unlock(&state->lock);
 	return ret;
 }
 
@@ -833,11 +836,11 @@
 	int ret;
 	u8 d;
 
-	mutex_lock(&state->lock);
-
 	if (fe->ops.i2c_gate_ctrl)
 		fe->ops.i2c_gate_ctrl(fe, 1);
 
+	mutex_lock(&state->lock);
+
 	ret = mxl5007t_read_reg(state, 0x05, &d);
 	if (mxl_fail(ret))
 		goto fail;
@@ -845,11 +848,11 @@
 	ret = mxl5007t_write_reg(state, 0x05, d | 0x01);
 	mxl_fail(ret);
 fail:
+	mutex_unlock(&state->lock);
+
 	if (fe->ops.i2c_gate_ctrl)
 		fe->ops.i2c_gate_ctrl(fe, 0);
 
-	mutex_unlock(&state->lock);
-
 	return ret;
 }
 
@@ -859,11 +862,11 @@
 	int ret;
 	u8 d;
 
-	mutex_lock(&state->lock);
-
 	if (fe->ops.i2c_gate_ctrl)
 		fe->ops.i2c_gate_ctrl(fe, 1);
 
+	mutex_lock(&state->lock);
+
 	ret = mxl5007t_read_reg(state, 0x05, &d);
 	if (mxl_fail(ret))
 		goto fail;
@@ -871,11 +874,11 @@
 	ret = mxl5007t_write_reg(state, 0x05, d & ~0x01);
 	mxl_fail(ret);
 fail:
+	mutex_unlock(&state->lock);
+
 	if (fe->ops.i2c_gate_ctrl)
 		fe->ops.i2c_gate_ctrl(fe, 0);
 
-	mutex_unlock(&state->lock);
-
 	return ret;
 }
 
@@ -995,18 +998,18 @@
 
 		mutex_init(&state->lock);
 
-		mutex_lock(&state->lock);
-
 		if (fe->ops.i2c_gate_ctrl)
 			fe->ops.i2c_gate_ctrl(fe, 1);
 
+		mutex_lock(&state->lock);
+
 		ret = mxl5007t_get_chip_id(state);
 
+		mutex_unlock(&state->lock);
+
 		if (fe->ops.i2c_gate_ctrl)
 			fe->ops.i2c_gate_ctrl(fe, 0);
 
-		mutex_unlock(&state->lock);
-
 		/* check return value of mxl5007t_get_chip_id */
 		if (mxl_fail(ret))
 			goto fail;
