Skip to content

Commit

Permalink
V4L/DVB (7383): tda18271: add attach-time parameter to limit i2c tran…
Browse files Browse the repository at this point in the history
…sfer size

Add attach-time parameter, "small_i2c" to limit i2c transfer size to write
at most 16 registers at a time during initialization.

Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
  • Loading branch information
Michael Krufky authored and Mauro Carvalho Chehab committed Apr 24, 2008
1 parent ab8b870 commit 5555309
Show file tree
Hide file tree
Showing 4 changed files with 13 additions and 1 deletion.
7 changes: 6 additions & 1 deletion drivers/media/dvb/frontends/tda18271-common.c
Original file line number Diff line number Diff line change
Expand Up @@ -311,7 +311,12 @@ int tda18271_init_regs(struct dvb_frontend *fe)
regs[R_EB22] = 0x48;
regs[R_EB23] = 0xb0;

tda18271_write_regs(fe, 0x00, TDA18271_NUM_REGS);
if (priv->small_i2c) {
tda18271_write_regs(fe, 0x00, 0x10);
tda18271_write_regs(fe, 0x10, 0x10);
tda18271_write_regs(fe, 0x20, 0x07);
} else
tda18271_write_regs(fe, 0x00, TDA18271_NUM_REGS);

/* setup agc1 gain */
regs[R_EB17] = 0x00;
Expand Down
3 changes: 3 additions & 0 deletions drivers/media/dvb/frontends/tda18271-fe.c
Original file line number Diff line number Diff line change
Expand Up @@ -1081,6 +1081,9 @@ struct dvb_frontend *tda18271_attach(struct dvb_frontend *fe, u8 addr,

fe->tuner_priv = priv;

if (cfg)
priv->small_i2c = cfg->small_i2c;

if (tda18271_get_id(fe) < 0)
goto fail;

Expand Down
1 change: 1 addition & 0 deletions drivers/media/dvb/frontends/tda18271-priv.h
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,7 @@ struct tda18271_priv {

unsigned int tm_rfcal;
unsigned int cal_initialized:1;
unsigned int small_i2c:1;

struct tda18271_map_layout *maps;
struct tda18271_std_map std;
Expand Down
3 changes: 3 additions & 0 deletions drivers/media/dvb/frontends/tda18271.h
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,9 @@ struct tda18271_config {

/* use i2c gate provided by analog or digital demod */
enum tda18271_i2c_gate gate;

/* some i2c providers cant write all 39 registers at once */
unsigned int small_i2c:1;
};

#if defined(CONFIG_DVB_TDA18271) || (defined(CONFIG_DVB_TDA18271_MODULE) && defined(MODULE))
Expand Down

0 comments on commit 5555309

Please sign in to comment.