summaryrefslogtreecommitdiff
path: root/linux/drivers/media/dvb/frontends
diff options
context:
space:
mode:
Diffstat (limited to 'linux/drivers/media/dvb/frontends')
-rw-r--r--linux/drivers/media/dvb/frontends/tda1004x.c4
-rw-r--r--linux/drivers/media/dvb/frontends/tda1004x.h3
2 files changed, 7 insertions, 0 deletions
diff --git a/linux/drivers/media/dvb/frontends/tda1004x.c b/linux/drivers/media/dvb/frontends/tda1004x.c
index 394f9eb68..ce7dbcf8f 100644
--- a/linux/drivers/media/dvb/frontends/tda1004x.c
+++ b/linux/drivers/media/dvb/frontends/tda1004x.c
@@ -533,6 +533,8 @@ static int tda10045_init(struct dvb_frontend* fe)
tda1004x_write_mask(state, TDA1004X_CONFC1, 0x10, 0); // VAGC polarity
tda1004x_write_byteI(state, TDA1004X_CONFADC1, 0x2e);
+ tda1004x_write_mask(state, 0x1f, 0x01, state->config->invert_oclk);
+
state->initialised = 1;
return 0;
}
@@ -585,6 +587,8 @@ static int tda10046_init(struct dvb_frontend* fe)
tda1004x_write_mask(state, TDA10046H_GPIO_SELECT, 8, 8); // GPIO select
tda10046h_set_bandwidth(state, BANDWIDTH_8_MHZ); // default bandwidth 8 MHz
+ tda1004x_write_mask(state, 0x3a, 0x80, state->config->invert_oclk << 7);
+
state->initialised = 1;
return 0;
}
diff --git a/linux/drivers/media/dvb/frontends/tda1004x.h b/linux/drivers/media/dvb/frontends/tda1004x.h
index 22004e188..e452fc0ba 100644
--- a/linux/drivers/media/dvb/frontends/tda1004x.h
+++ b/linux/drivers/media/dvb/frontends/tda1004x.h
@@ -34,6 +34,9 @@ struct tda1004x_config
/* does the "inversion" need inverted? */
u8 invert:1;
+ /* Does the OCLK signal need inverted? */
+ u8 invert_oclk:1;
+
/* PLL maintenance */
int (*pll_init)(struct dvb_frontend* fe);
int (*pll_set)(struct dvb_frontend* fe, struct dvb_frontend_parameters* params);