Mailing List archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[linux-dvb] Handling of frontend automatic inversion?
Attached are two patches which tweak the handling of the INVERSION_AUTO
by the grundig_29504-401 and tda1004x frontends.
When reading through the grundig datasheet some time ago I noticed that
the driver already enables the "automatic TPS update" feature of the
frontend. I believe that this feature allows the frontend to determine
the correct inversion setting automatically, but the driver doesn't
claim to support this feature. The patch for this frontend adds support
for setting this mode (but the auto TPS mode was already permenantly
enabled anyway).
The tda1004x driver claims to support auto inversion, but was rejecting
it as an invalid parameter if the application (e.g. scan) tried to use
it. I assume that this frontend uses the same auto-TPS mechanism as the
grundig frontend.
The datasheet that i've found seems a bit light on technical information
but it does claim:
"For maximum ease of use, the TDA10045 features fully automatic
transmission parameter detection"
Does anyone have a more detailed register guide to confirm whether this
feature is actually enabled? I'll try tuning with both inversion on and
off and see whether it really does get it correct.
Jon
diff -urw dvb-kernel-cvs/linux/drivers/media/dvb/frontends/tda1004x.c dvb-kernel/linux/drivers/media/dvb/frontends/tda1004x.c
--- dvb-kernel-cvs/linux/drivers/media/dvb/frontends/tda1004x.c 2003-09-11 17:35:55.000000000 +0100
+++ dvb-kernel/linux/drivers/media/dvb/frontends/tda1004x.c 2003-09-14 00:09:15.000000000 +0100
@@ -681,6 +681,7 @@
// set inversion
switch (fe_params->inversion) {
case INVERSION_OFF:
+ case INVERSION_AUTO:
tda1004x_write_mask(i2c, tda_state, TDA1004X_CONFC1, 0x20, 0);
break;
--- dvb-kernel-cvs/linux/drivers/media/dvb/frontends/grundig_29504-401.c 2003-09-11 17:35:55.000000000 +0100
+++ dvb-kernel/linux/drivers/media/dvb/frontends/grundig_29504-401.c 2003-09-14 00:19:02.000000000 +0100
@@ -45,7 +45,8 @@
/* .frequency_tolerance = ???,*/
/* .symbol_rate_tolerance = ???,*/
.notifier_delay = 0,
- .caps = FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | FE_CAN_FEC_3_4 |
+ .caps = FE_CAN_INVERSION_AUTO |
+ FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | FE_CAN_FEC_3_4 |
FE_CAN_FEC_5_6 | FE_CAN_FEC_7_8 |
FE_CAN_QPSK | FE_CAN_QAM_16 | FE_CAN_QAM_64 |
FE_CAN_MUTE_TS /*| FE_CAN_CLEAN_SETUP*/
@@ -179,7 +180,8 @@
int bw = p->bandwidth - BANDWIDTH_8_MHZ;
if (param->inversion != INVERSION_ON &&
- param->inversion != INVERSION_OFF)
+ param->inversion != INVERSION_OFF &&
+ param->inversion != INVERSION_AUTO)
return -EINVAL;
if (bw < 0 || bw > 2)
Home |
Main Index |
Thread Index