瀏覽代碼

[PATCH] dvb: frontend: ves1820: improve tuning

Reset acgconf register after tuning to improve locking, as suggested by Marco
Schluessler.  Minor cleanups in ves1820_init().

Signed-off-by: Johannes Stezenbach <js@linuxtv.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Johannes Stezenbach 19 年之前
父節點
當前提交
6816a4c183
共有 1 個文件被更改,包括 7 次插入8 次删除
  1. 7 8
      drivers/media/dvb/frontends/ves1820.c

+ 7 - 8
drivers/media/dvb/frontends/ves1820.c

@@ -194,19 +194,18 @@ static int ves1820_init(struct dvb_frontend* fe)
 {
 {
 	struct ves1820_state* state = fe->demodulator_priv;
 	struct ves1820_state* state = fe->demodulator_priv;
 	int i;
 	int i;
-	int val;
 
 
 	ves1820_writereg(state, 0, 0);
 	ves1820_writereg(state, 0, 0);
 
 
-	for (i = 0; i < 53; i++) {
-		val = ves1820_inittab[i];
-		if ((i == 2) && (state->config->selagc)) val |= 0x08;
-		ves1820_writereg(state, i, val);
-	}
+	for (i = 0; i < sizeof(ves1820_inittab); i++)
+		ves1820_writereg(state, i, ves1820_inittab[i]);
+	if (state->config->selagc)
+		ves1820_writereg(state, 2, ves1820_inittab[2] | 0x08);
 
 
 	ves1820_writereg(state, 0x34, state->pwm);
 	ves1820_writereg(state, 0x34, state->pwm);
 
 
-	if (state->config->pll_init) state->config->pll_init(fe);
+	if (state->config->pll_init)
+		state->config->pll_init(fe);
 
 
 	return 0;
 	return 0;
 }
 }
@@ -234,7 +233,7 @@ static int ves1820_set_parameters(struct dvb_frontend* fe, struct dvb_frontend_p
 	ves1820_writereg(state, 0x09, reg0x09[real_qam]);
 	ves1820_writereg(state, 0x09, reg0x09[real_qam]);
 
 
 	ves1820_setup_reg0(state, reg0x00[real_qam], p->inversion);
 	ves1820_setup_reg0(state, reg0x00[real_qam], p->inversion);
-
+	ves1820_writereg(state, 2, ves1820_inittab[2] | (state->config->selagc ? 0x08 : 0));
 	return 0;
 	return 0;
 }
 }