V4L/DVB (8529): mxl5007t: enable _init and _sleep power management functionality

Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
diff --git a/drivers/media/common/tuners/mxl5007t.c b/drivers/media/common/tuners/mxl5007t.c
index 80cfa9b..f3b193a 100644
--- a/drivers/media/common/tuners/mxl5007t.c
+++ b/drivers/media/common/tuners/mxl5007t.c
@@ -830,27 +830,53 @@
 static int mxl5007t_init(struct dvb_frontend *fe)
 {
 	struct mxl5007t_state *state = fe->tuner_priv;
-	//int ret;
+	int ret;
+	u8 d;
 
 	mutex_lock(&state->lock);
-	/* do init */
-//fail:
+
+	if (fe->ops.i2c_gate_ctrl)
+		fe->ops.i2c_gate_ctrl(fe, 1);
+
+	ret = mxl5007t_read_reg(state, 0x05, &d);
+	if (mxl_fail(ret))
+		goto fail;
+
+	ret = mxl5007t_write_reg(state, 0x05, d | 0x01);
+	mxl_fail(ret);
+fail:
+	if (fe->ops.i2c_gate_ctrl)
+		fe->ops.i2c_gate_ctrl(fe, 0);
+
 	mutex_unlock(&state->lock);
 
-	return 0;//ret;
+	return ret;
 }
 
 static int mxl5007t_sleep(struct dvb_frontend *fe)
 {
 	struct mxl5007t_state *state = fe->tuner_priv;
-	//int ret;
+	int ret;
+	u8 d;
 
 	mutex_lock(&state->lock);
-	/* do standby */
-//fail:
+
+	if (fe->ops.i2c_gate_ctrl)
+		fe->ops.i2c_gate_ctrl(fe, 1);
+
+	ret = mxl5007t_read_reg(state, 0x05, &d);
+	if (mxl_fail(ret))
+		goto fail;
+
+	ret = mxl5007t_write_reg(state, 0x05, d & ~0x01);
+	mxl_fail(ret);
+fail:
+	if (fe->ops.i2c_gate_ctrl)
+		fe->ops.i2c_gate_ctrl(fe, 0);
+
 	mutex_unlock(&state->lock);
 
-	return 0;//ret;
+	return ret;
 }
 
 /* ------------------------------------------------------------------------- */