V4L/DVB (13982): [STV090x] setup master clock in stv090x_init instead of stv090x_setup.
This is needed when clock input is driven from tuner and an output divider different from 1 is used. Signed-off-by: Andreas Regel <andreas.regel@gmx.de> Signed-off-by: Manu Abraham <manu@linuxtv.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:
parent
ec2d3a62ef
commit
9045e72944
1 changed files with 9 additions and 6 deletions
|
@ -4292,6 +4292,15 @@ static int stv090x_init(struct dvb_frontend *fe)
|
|||
const struct stv090x_config *config = state->config;
|
||||
u32 reg;
|
||||
|
||||
if (state->internal->mclk == 0) {
|
||||
stv090x_set_mclk(state, 135000000, config->xtal); /* 135 Mhz */
|
||||
msleep(5);
|
||||
if (stv090x_write_reg(state, STV090x_SYNTCTRL,
|
||||
0x20 | config->clk_mode) < 0)
|
||||
goto err;
|
||||
stv090x_get_mclk(state);
|
||||
}
|
||||
|
||||
if (stv090x_wakeup(fe) < 0) {
|
||||
dprintk(FE_ERROR, 1, "Error waking device");
|
||||
goto err;
|
||||
|
@ -4426,12 +4435,6 @@ static int stv090x_setup(struct dvb_frontend *fe)
|
|||
if (stv090x_write_reg(state, STV090x_TSTRES0, 0x00) < 0)
|
||||
goto err;
|
||||
|
||||
stv090x_set_mclk(state, 135000000, config->xtal); /* 135 Mhz */
|
||||
msleep(5);
|
||||
if (stv090x_write_reg(state, STV090x_SYNTCTRL, 0x20 | config->clk_mode) < 0)
|
||||
goto err;
|
||||
stv090x_get_mclk(state);
|
||||
|
||||
return 0;
|
||||
err:
|
||||
dprintk(FE_ERROR, 1, "I/O error");
|
||||
|
|
Loading…
Reference in a new issue