]> git.hungrycats.org Git - linux/commitdiff
media: it913x: init tuner on attach
authorBimow Chen <Bimow.Chen@ite.com.tw>
Tue, 5 Aug 2014 03:14:47 +0000 (00:14 -0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 5 Oct 2014 20:41:10 +0000 (13:41 -0700)
commit 01b461bbe74b89da8941f4c95711777d87b9172e upstream.

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]

Signed-off-by: Bimow Chen <Bimow.Chen@ite.com.tw>
Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/media/tuners/tuner_it913x.c

index 6f30d7e535b8e0b6d0ce2ea28e508c6334bae221..3d83c425bccf704a4ff174c4bab6b505d4a9ee3a 100644 (file)
@@ -396,6 +396,7 @@ struct dvb_frontend *it913x_attach(struct dvb_frontend *fe,
                struct i2c_adapter *i2c_adap, u8 i2c_addr, u8 config)
 {
        struct it913x_state *state = NULL;
+       int ret;
 
        /* allocate memory for the internal state */
        state = kzalloc(sizeof(struct it913x_state), GFP_KERNEL);
@@ -425,6 +426,11 @@ struct dvb_frontend *it913x_attach(struct dvb_frontend *fe,
        state->tuner_type = config;
        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;
        memcpy(&fe->ops.tuner_ops, &it913x_tuner_ops,
                        sizeof(struct dvb_tuner_ops));