Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 76438
b: refs/heads/master
c: 58d834e
h: refs/heads/master
v: v3
  • Loading branch information
Chris Pascoe authored and Mauro Carvalho Chehab committed Jan 25, 2008
1 parent 7d8d53e commit 90a96c5
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 20 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: a644e4a3e95f8ca6eca019c92d8dfde101150687
refs/heads/master: 58d834ea89664b41e6e21ed2d8dc5680d0dd76b6
34 changes: 15 additions & 19 deletions trunk/drivers/media/dvb/frontends/zl10353.c
Original file line number Diff line number Diff line change
Expand Up @@ -183,35 +183,31 @@ static int zl10353_set_parameters(struct dvb_frontend *fe,
if (fe->ops.i2c_gate_ctrl)
fe->ops.i2c_gate_ctrl(fe, 0);

// if there is no attached secondary tuner, we call set_params to program
// a potential tuner attached somewhere else
/*
* If there is no tuner attached to the secondary I2C bus, we call
* set_params to program a potential tuner attached somewhere else.
* Otherwise, we update the PLL registers via calc_regs.
*/
if (state->config.no_tuner) {
if (fe->ops.tuner_ops.set_params) {
fe->ops.tuner_ops.set_params(fe, param);
if (fe->ops.i2c_gate_ctrl)
fe->ops.i2c_gate_ctrl(fe, 0);
}
}

// if pllbuf is defined, retrieve the settings
if (fe->ops.tuner_ops.calc_regs) {
fe->ops.tuner_ops.calc_regs(fe, param, pllbuf+1, 5);
} else if (fe->ops.tuner_ops.calc_regs) {
fe->ops.tuner_ops.calc_regs(fe, param, pllbuf + 1, 5);
pllbuf[1] <<= 1;
} else {
// fake pllbuf settings
pllbuf[1] = 0x61 << 1;
pllbuf[2] = 0;
pllbuf[3] = 0;
pllbuf[3] = 0;
pllbuf[4] = 0;
zl10353_write(fe, pllbuf, sizeof(pllbuf));
}

// there is no call to _just_ start decoding, so we send the pllbuf anyway
// even if there isn't a PLL attached to the secondary bus
zl10353_write(fe, pllbuf, sizeof(pllbuf));

zl10353_single_write(fe, 0x5F, 0x13);
zl10353_single_write(fe, 0x70, 0x01);

/* If no attached tuner or invalid PLL registers, just start the FSM. */
if (state->config.no_tuner || fe->ops.tuner_ops.calc_regs == NULL)
zl10353_single_write(fe, FSM_GO, 0x01);
else
zl10353_single_write(fe, TUNER_GO, 0x01);

udelay(250);
zl10353_single_write(fe, 0xE4, 0x00);
zl10353_single_write(fe, 0xE5, 0x2A);
Expand Down
2 changes: 2 additions & 0 deletions trunk/drivers/media/dvb/frontends/zl10353_priv.h
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,8 @@ enum zl10353_reg_addr {
RS_UBC_0 = 0x15,
TRL_NOMINAL_RATE_1 = 0x65,
TRL_NOMINAL_RATE_0 = 0x66,
TUNER_GO = 0x70,
FSM_GO = 0x71,
CHIP_ID = 0x7F,
};

Expand Down

0 comments on commit 90a96c5

Please sign in to comment.