summaryrefslogtreecommitdiff
path: root/linux/drivers
diff options
context:
space:
mode:
authorMichael Krufky <mkrufky@linuxtv.org>2008-06-27 22:06:50 -0400
committerMichael Krufky <mkrufky@linuxtv.org>2008-06-27 22:06:50 -0400
commitbfb4325a65fbbab08820f19bdf0b48ca01a1cad8 (patch)
treeff698924835e4e2042177b02207162db57179370 /linux/drivers
parent3e29577789b39a5bba471dfc7aea7a93e2153715 (diff)
downloadmediapointer-dvb-s2-bfb4325a65fbbab08820f19bdf0b48ca01a1cad8.tar.gz
mediapointer-dvb-s2-bfb4325a65fbbab08820f19bdf0b48ca01a1cad8.tar.bz2
lgdt330x: add additional FEC control configuration option
From: Michael Krufky <mkrufky@linuxtv.org> Allow the following configuration, by passing clock_polarity_flip = 2: Enable FEC automatic reset. Disable spectrum inversion. Enable viterbi resynchronization. Set polarity indicator high. Enable error flag insertion. Thanks to Daniel Gimpelevich, for discovering that this configuration is used on the AVerMedia AVerTVHD Volar. Cc: Daniel Gimpelevich <daniel@gimpelevich.san-francisco.ca.us> Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Diffstat (limited to 'linux/drivers')
-rw-r--r--linux/drivers/media/dvb/frontends/lgdt330x.c24
1 files changed, 19 insertions, 5 deletions
diff --git a/linux/drivers/media/dvb/frontends/lgdt330x.c b/linux/drivers/media/dvb/frontends/lgdt330x.c
index 3a3658238..9a63bafc3 100644
--- a/linux/drivers/media/dvb/frontends/lgdt330x.c
+++ b/linux/drivers/media/dvb/frontends/lgdt330x.c
@@ -227,11 +227,16 @@ static int lgdt330x_init(struct dvb_frontend* fe)
0x4c, 0x14
};
- static u8 flip_lgdt3303_init_data[] = {
+ static u8 flip_1_lgdt3303_init_data[] = {
0x4c, 0x14,
0x87, 0xf3
};
+ static u8 flip_2_lgdt3303_init_data[] = {
+ 0x4c, 0x14,
+ 0x87, 0xda
+ };
+
struct lgdt330x_state* state = fe->demodulator_priv;
char *chip_name;
int err;
@@ -244,10 +249,19 @@ static int lgdt330x_init(struct dvb_frontend* fe)
break;
case LGDT3303:
chip_name = "LGDT3303";
- if (state->config->clock_polarity_flip) {
- err = i2c_write_demod_bytes(state, flip_lgdt3303_init_data,
- sizeof(flip_lgdt3303_init_data));
- } else {
+ switch (state->config->clock_polarity_flip) {
+ case 2:
+ err = i2c_write_demod_bytes(state,
+ flip_2_lgdt3303_init_data,
+ sizeof(flip_2_lgdt3303_init_data));
+ break;
+ case 1:
+ err = i2c_write_demod_bytes(state,
+ flip_1_lgdt3303_init_data,
+ sizeof(flip_1_lgdt3303_init_data));
+ break;
+ case 0:
+ default:
err = i2c_write_demod_bytes(state, lgdt3303_init_data,
sizeof(lgdt3303_init_data));
}