diff options
author | Antti Palosaari <crope@iki.fi> | 2013-02-28 03:14:06 (GMT) |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2013-03-21 21:58:46 (GMT) |
commit | 44af747f4e0174d5dbc8c565a4d329dbcf599921 (patch) | |
tree | 29a264280a58ce21305bee8e98df28b28638b647 /drivers/media/tuners | |
parent | d19812eb5f1efed3fa0ba5d752da5f24d8c89701 (diff) | |
download | linux-44af747f4e0174d5dbc8c565a4d329dbcf599921.tar.xz |
[media] it913x: get rid of it913x config struct
We don't need it. Tuner ID and device address are enough.
Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/tuners')
-rw-r--r-- | drivers/media/tuners/it913x.c | 38 | ||||
-rw-r--r-- | drivers/media/tuners/it913x.h | 22 |
2 files changed, 29 insertions, 31 deletions
diff --git a/drivers/media/tuners/it913x.c b/drivers/media/tuners/it913x.c index de20da1..66d4b72 100644 --- a/drivers/media/tuners/it913x.c +++ b/drivers/media/tuners/it913x.c @@ -25,7 +25,8 @@ struct it913x_state { struct dvb_frontend frontend; struct i2c_adapter *i2c_adap; - struct ite_config *config; + u8 chip_ver; + u8 firmware_ver; u8 i2c_addr; u32 frequency; fe_modulation_t constellation; @@ -156,7 +157,7 @@ static int it913x_init(struct dvb_frontend *fe) u8 b[2]; /* v1 or v2 tuner script */ - if (state->config->chip_ver > 1) + if (state->chip_ver > 1) ret = it913x_script_loader(state, it9135_v2); else ret = it913x_script_loader(state, it9135_v1); @@ -190,7 +191,7 @@ static int it913x_init(struct dvb_frontend *fe) if (ret < 0) return ret; - if (state->config->chip_ver == 2) { + if (state->chip_ver == 2) { ret = it913x_wr_reg(state, PRO_DMOD, TRIGGER_OFSM, 0x1); if (ret < 0) return -ENODEV; @@ -237,7 +238,7 @@ static int it913x_init(struct dvb_frontend *fe) state->tun_fn_min /= (state->tun_fdiv * nv_val); pr_debug("Tuner fn_min %d\n", state->tun_fn_min); - if (state->config->chip_ver > 1) + if (state->chip_ver > 1) msleep(50); else { for (i = 0; i < 50; i++) { @@ -276,7 +277,7 @@ static int it9137_set_params(struct dvb_frontend *fe) u8 lna_band; u8 bw; - if (state->config->firmware_ver == 1) + if (state->firmware_ver == 1) set_tuner = set_it9135_template; else set_tuner = set_it9137_template; @@ -440,40 +441,47 @@ static const struct dvb_tuner_ops it913x_tuner_ops = { }; struct dvb_frontend *it913x_attach(struct dvb_frontend *fe, - struct i2c_adapter *i2c_adap, u8 i2c_addr, struct ite_config *config) + 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); if (state == NULL) return NULL; - if (config == NULL) - goto error; state->i2c_adap = i2c_adap; state->i2c_addr = i2c_addr; - state->config = config; - switch (state->config->tuner_id_0) { + switch (config) { + case IT9135_38: case IT9135_51: case IT9135_52: + state->chip_ver = 0x01; + break; case IT9135_60: case IT9135_61: case IT9135_62: - state->tuner_type = state->config->tuner_id_0; + state->chip_ver = 0x02; break; default: - case IT9135_38: - state->tuner_type = IT9135_38; + dev_dbg(&i2c_adap->dev, + "%s: invalid config=%02x\n", __func__, config); + goto error; } + state->tuner_type = config; + state->firmware_ver = 1; + fe->tuner_priv = state; memcpy(&fe->ops.tuner_ops, &it913x_tuner_ops, sizeof(struct dvb_tuner_ops)); - pr_info("%s: ITE Tech IT913X attached\n", KBUILD_MODNAME); + dev_info(&i2c_adap->dev, + "%s: ITE Tech IT913X successfully attached\n", + KBUILD_MODNAME); + dev_dbg(&i2c_adap->dev, "%s: config=%02x chip_ver=%02x\n", + __func__, config, state->chip_ver); return fe; error: diff --git a/drivers/media/tuners/it913x.h b/drivers/media/tuners/it913x.h index 3583e56..12dd36b 100644 --- a/drivers/media/tuners/it913x.h +++ b/drivers/media/tuners/it913x.h @@ -25,27 +25,17 @@ #include "dvb_frontend.h" -struct ite_config { - u8 chip_ver; - u16 chip_type; - u32 firmware; - u8 firmware_ver; - u8 adc_x2; - u8 tuner_id_0; - u8 tuner_id_1; - u8 dual_mode; - u8 adf; - /* option to read SIGNAL_LEVEL */ - u8 read_slevel; -}; - #if defined(CONFIG_MEDIA_TUNER_IT913X) || \ (defined(CONFIG_MEDIA_TUNER_IT913X_MODULE) && defined(MODULE)) extern struct dvb_frontend *it913x_attach(struct dvb_frontend *fe, - struct i2c_adapter *i2c_adap, u8 i2c_addr, struct ite_config *config); + struct i2c_adapter *i2c_adap, + u8 i2c_addr, + u8 config); #else static inline struct dvb_frontend *it913x_attach(struct dvb_frontend *fe, - struct i2c_adapter *i2c_adap, u8 i2c_addr, struct ite_config *config) + struct i2c_adapter *i2c_adap, + u8 i2c_addr, + u8 config) { pr_warn("%s: driver disabled by Kconfig\n", __func__); return NULL; |