diff mbox

[PATH,1/2] mxl5007 move reset to attach

Message ID 2289340.7RydykYGjZ@jar7.dominio (mailing list archive)
State New, archived
Headers show

Commit Message

Jose Alberto Reguero Feb. 3, 2013, 10:30 p.m. UTC
This patch move the soft reset to the attach function because with dual
tuners, when one tuner do reset, the other one is perturbed, and the 
stream has errors.

Signed-off-by: Jose Alberto Reguero <jareguero@telefonica.net>


--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

Antti Palosaari Feb. 3, 2013, 10:47 p.m. UTC | #1
On 02/04/2013 12:30 AM, Jose Alberto Reguero wrote:
> This patch move the soft reset to the attach function because with dual
> tuners, when one tuner do reset, the other one is perturbed, and the
> stream has errors.
>
> Signed-off-by: Jose Alberto Reguero <jareguero@telefonica.net>

Looks good for my eyes!

Reviewed-by: Antti Palosaari <crope@iki.fi>

>
> diff -upr linux/drivers/media/tuners/mxl5007t.c linux.new/drivers/media/tuners/mxl5007t.c
> --- linux/drivers/media/tuners/mxl5007t.c	2012-08-14 05:45:22.000000000 +0200
> +++ linux.new/drivers/media/tuners/mxl5007t.c	2013-02-03 23:03:03.784525410 +0100
> @@ -531,10 +531,6 @@ static int mxl5007t_tuner_init(struct mx
>   	struct reg_pair_t *init_regs;
>   	int ret;
>
> -	ret = mxl5007t_soft_reset(state);
> -	if (mxl_fail(ret))
> -		goto fail;
> -
>   	/* calculate initialization reg array */
>   	init_regs = mxl5007t_calc_init_regs(state, mode);
>
> @@ -900,7 +896,20 @@ struct dvb_frontend *mxl5007t_attach(str
>   		/* existing tuner instance */
>   		break;
>   	}
> +
> +	if (fe->ops.i2c_gate_ctrl)
> +		fe->ops.i2c_gate_ctrl(fe, 1);
> +
> +	ret = mxl5007t_soft_reset(state);
> +
> +	if (fe->ops.i2c_gate_ctrl)
> +		fe->ops.i2c_gate_ctrl(fe, 0);
> +
> +	if (mxl_fail(ret))
> +		goto fail;
> +
>   	fe->tuner_priv = state;
> +
>   	mutex_unlock(&mxl5007t_list_mutex);
>
>   	memcpy(&fe->ops.tuner_ops, &mxl5007t_tuner_ops,
>
diff mbox

Patch

diff -upr linux/drivers/media/tuners/mxl5007t.c linux.new/drivers/media/tuners/mxl5007t.c
--- linux/drivers/media/tuners/mxl5007t.c	2012-08-14 05:45:22.000000000 +0200
+++ linux.new/drivers/media/tuners/mxl5007t.c	2013-02-03 23:03:03.784525410 +0100
@@ -531,10 +531,6 @@  static int mxl5007t_tuner_init(struct mx
 	struct reg_pair_t *init_regs;
 	int ret;
 
-	ret = mxl5007t_soft_reset(state);
-	if (mxl_fail(ret))
-		goto fail;
-
 	/* calculate initialization reg array */
 	init_regs = mxl5007t_calc_init_regs(state, mode);
 
@@ -900,7 +896,20 @@  struct dvb_frontend *mxl5007t_attach(str
 		/* existing tuner instance */
 		break;
 	}
+
+	if (fe->ops.i2c_gate_ctrl)
+		fe->ops.i2c_gate_ctrl(fe, 1);
+
+	ret = mxl5007t_soft_reset(state);
+
+	if (fe->ops.i2c_gate_ctrl)
+		fe->ops.i2c_gate_ctrl(fe, 0);
+
+	if (mxl_fail(ret))
+		goto fail;
+
 	fe->tuner_priv = state;
+
 	mutex_unlock(&mxl5007t_list_mutex);
 
 	memcpy(&fe->ops.tuner_ops, &mxl5007t_tuner_ops,