summaryrefslogtreecommitdiff
path: root/drivers/media/tuners
diff options
context:
space:
mode:
authorAntti Palosaari <crope@iki.fi>2013-02-28 03:14:06 (GMT)
committerMauro Carvalho Chehab <mchehab@redhat.com>2013-03-21 21:58:46 (GMT)
commit44af747f4e0174d5dbc8c565a4d329dbcf599921 (patch)
tree29a264280a58ce21305bee8e98df28b28638b647 /drivers/media/tuners
parentd19812eb5f1efed3fa0ba5d752da5f24d8c89701 (diff)
downloadlinux-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.c38
-rw-r--r--drivers/media/tuners/it913x.h22
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;