Commit 01b461bb authored by Bimow Chen's avatar Bimow Chen Committed by Mauro Carvalho Chehab

[media] it913x: init tuner on attach

That register is needed to program very first in order to operate
correctly.

[crope@iki.fi: returned sequence back, removed sleep, moved reg
write earlier to prevent populating tuner ops in case of failure]

Cc: <stable@vger.kernel.org> # v3.15+
Signed-off-by: default avatarBimow Chen <Bimow.Chen@ite.com.tw>
Signed-off-by: default avatarAntti Palosaari <crope@iki.fi>
Signed-off-by: default avatarMauro Carvalho Chehab <m.chehab@samsung.com>
parent 0df6580c
...@@ -396,6 +396,7 @@ struct dvb_frontend *it913x_attach(struct dvb_frontend *fe, ...@@ -396,6 +396,7 @@ struct dvb_frontend *it913x_attach(struct dvb_frontend *fe,
struct i2c_adapter *i2c_adap, u8 i2c_addr, u8 config) struct i2c_adapter *i2c_adap, u8 i2c_addr, u8 config)
{ {
struct it913x_state *state = NULL; struct it913x_state *state = NULL;
int ret;
/* allocate memory for the internal state */ /* allocate memory for the internal state */
state = kzalloc(sizeof(struct it913x_state), GFP_KERNEL); state = kzalloc(sizeof(struct it913x_state), GFP_KERNEL);
...@@ -425,6 +426,11 @@ struct dvb_frontend *it913x_attach(struct dvb_frontend *fe, ...@@ -425,6 +426,11 @@ struct dvb_frontend *it913x_attach(struct dvb_frontend *fe,
state->tuner_type = config; state->tuner_type = config;
state->firmware_ver = 1; state->firmware_ver = 1;
/* tuner RF initial */
ret = it913x_wr_reg(state, PRO_DMOD, 0xec4c, 0x68);
if (ret < 0)
goto error;
fe->tuner_priv = state; fe->tuner_priv = state;
memcpy(&fe->ops.tuner_ops, &it913x_tuner_ops, memcpy(&fe->ops.tuner_ops, &it913x_tuner_ops,
sizeof(struct dvb_tuner_ops)); sizeof(struct dvb_tuner_ops));
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment