linux/drivers/media/dvb/frontends
Trent Piepho d9e54324d0 V4L/DVB (5374): Or51132: refactor i2c code, improve error resilience
The code the i2c transactions was leftover from the old V4L-based ATSC
driver.  It did too little with too much code.  It is re-written to
remove unnecessary parameters and be more efficient.  A demod register
can now be read with one function call, instead of repeating a dozen line
block of code each time.

There were msleep()'s, which appear to be unnecessary, spread around all
the I2C transactions.  These have been removed.  Reading SNR used to take
about 130 ms, now it's down to 1.8 ms.

Reads from the demodulator's registers do not return correct results
sometimes.  Adding or removing the delays in the I2C transactions did not
appear to effect the probability of failure.  If anything, the
transactions without delays were less likely to fail, but since far more
transactions could be made per second the number of failures per hour was
greater.

To increase reliability, the SNR and get_params functions will now retry
once if they get bad data back.  This appears to have reduced the
probability of failure to effectively zero.
Some error messages are cleaned up or given KERN_* levels when they were
missing.  

or51132_setmode() wasn't returning correct error codes, which is fixed as
well.

CC: Rusty Scott <rustys@ieee.org>
Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-04-27 15:44:09 -03:00
..
bcm3510_priv.h [PATCH] dvb: flexcop: add BCM3510 ATSC frontend support for Air2PC card 2005-06-24 00:05:31 -07:00
bcm3510.c V4L/DVB (4028): Change dvb_frontend_ops to be a real field instead of a pointer field inside dvb_frontend 2006-06-25 02:00:42 -03:00
bcm3510.h V4L/DVB (4751): Fix DBV_FE_CUSTOMISE for card drivers compiled into kernel 2006-11-03 00:49:40 -03:00
bsbe1.h V4L/DVB (4028): Change dvb_frontend_ops to be a real field instead of a pointer field inside dvb_frontend 2006-06-25 02:00:42 -03:00
bsru6.h V4L/DVB (4028): Change dvb_frontend_ops to be a real field instead of a pointer field inside dvb_frontend 2006-06-25 02:00:42 -03:00
cx22700.c V4L/DVB (4289): Missing statement in drivers/media/dvb/frontends/cx22700.c 2006-06-30 15:59:51 -03:00
cx22700.h V4L/DVB (4751): Fix DBV_FE_CUSTOMISE for card drivers compiled into kernel 2006-11-03 00:49:40 -03:00
cx22702.c V4L/DVB (4600): Fix DVB Front-End Signal Strength Inconsistency 2006-09-26 12:30:35 -03:00
cx22702.h V4L/DVB (4751): Fix DBV_FE_CUSTOMISE for card drivers compiled into kernel 2006-11-03 00:49:40 -03:00
cx24110.c V4L/DVB (5202): DVB: Use ARRAY_SIZE macro when appropriate 2007-02-21 13:35:18 -02:00
cx24110.h V4L/DVB (4751): Fix DBV_FE_CUSTOMISE for card drivers compiled into kernel 2006-11-03 00:49:40 -03:00
cx24123.c V4L/DVB (5202): DVB: Use ARRAY_SIZE macro when appropriate 2007-02-21 13:35:18 -02:00
cx24123.h V4L/DVB (4751): Fix DBV_FE_CUSTOMISE for card drivers compiled into kernel 2006-11-03 00:49:40 -03:00
dib3000.h V4L/DVB (4751): Fix DBV_FE_CUSTOMISE for card drivers compiled into kernel 2006-11-03 00:49:40 -03:00
dib3000mb_priv.h V4L/DVB: Complete rewrite of the DiB3000mc-driver 2006-09-26 11:53:46 -03:00
dib3000mb.c Fix typos concerning hierarchy 2007-02-17 19:23:03 +01:00
dib3000mc.c V4L/DVB (4998): [PATCH] DIB3000MC and NOVA T USB2 #2 2007-02-21 13:34:14 -02:00
dib3000mc.h V4L/DVB (4751): Fix DBV_FE_CUSTOMISE for card drivers compiled into kernel 2006-11-03 00:49:40 -03:00
dib7000m.c V4L/DVB (4773): Misc fixes for DiB3000 and DiB7000 2006-12-10 08:51:04 -02:00
dib7000m.h V4L/DVB (4766): Add working dib7000m-module 2006-12-10 08:51:00 -02:00
dib7000p.c V4L/DVB (4772): Add support for DiBcom DiB7000PC 2006-12-10 08:51:03 -02:00
dib7000p.h V4L/DVB (4772): Add support for DiBcom DiB7000PC 2006-12-10 08:51:03 -02:00
dibx000_common.c V4L/DVB (4794): Dvb: dibx000_common-fix 2006-12-10 08:51:11 -02:00
dibx000_common.h V4L/DVB (4766): Add working dib7000m-module 2006-12-10 08:51:00 -02:00
dvb_dummy_fe.c V4L/DVB (4028): Change dvb_frontend_ops to be a real field instead of a pointer field inside dvb_frontend 2006-06-25 02:00:42 -03:00
dvb_dummy_fe.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
dvb-pll.c V4L/DVB (5363): Dvb: Remove lgh06xf driver 2007-04-27 15:44:05 -03:00
dvb-pll.h V4L/DVB (5362): Dvb-pll: add code for doing tuner initialization 2007-04-27 15:44:04 -03:00
isl6421.c V4L/DVB (5472): Isl6421: don't reference freed memory 2007-03-27 08:45:56 -03:00
isl6421.h V4L/DVB (4751): Fix DBV_FE_CUSTOMISE for card drivers compiled into kernel 2006-11-03 00:49:40 -03:00
Kconfig V4L/DVB (5363): Dvb: Remove lgh06xf driver 2007-04-27 15:44:05 -03:00
l64781.c [PATCH] make 1-bit bitfields unsigned 2006-12-07 08:39:38 -08:00
l64781.h V4L/DVB (4751): Fix DBV_FE_CUSTOMISE for card drivers compiled into kernel 2006-11-03 00:49:40 -03:00
lgdt330x_priv.h V4L/DVB (4789): Lgdt330x: SNR and signal strength reporting 2006-12-10 08:51:09 -02:00
lgdt330x.c V4L/DVB (4891): Lgdt330x: fix broken whitespace 2006-12-10 09:05:24 -02:00
lgdt330x.h V4L/DVB (4751): Fix DBV_FE_CUSTOMISE for card drivers compiled into kernel 2006-11-03 00:49:40 -03:00
lnbp21.c V4L/DVB (4493): [lnbp21] release callback fixed 2006-09-26 12:30:32 -03:00
lnbp21.h V4L/DVB (4751): Fix DBV_FE_CUSTOMISE for card drivers compiled into kernel 2006-11-03 00:49:40 -03:00
Makefile V4L/DVB (5363): Dvb: Remove lgh06xf driver 2007-04-27 15:44:05 -03:00
mt312_priv.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
mt312.c V4L/DVB (4028): Change dvb_frontend_ops to be a real field instead of a pointer field inside dvb_frontend 2006-06-25 02:00:42 -03:00
mt312.h V4L/DVB (4751): Fix DBV_FE_CUSTOMISE for card drivers compiled into kernel 2006-11-03 00:49:40 -03:00
mt352_priv.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
mt352.c V4L/DVB (4384): Remove remaining static function calls 2006-09-26 11:53:24 -03:00
mt352.h V4L/DVB (4751): Fix DBV_FE_CUSTOMISE for card drivers compiled into kernel 2006-11-03 00:49:40 -03:00
mt2060_priv.h V4L/DVB: Update for MT2060 to use dvb_tuner_ops 2006-09-26 11:53:45 -03:00
mt2060.c V4L/DVB (4648): Hauppauge Nova-T 500 support added 2006-10-03 15:12:36 -03:00
mt2060.h V4L/DVB (4752): DVB: Add DVB_FE_CUSTOMISE support for MT2060 2006-11-02 23:58:04 -03:00
nxt200x.c [PATCH] cx88-dvb: fix nxt200x rf input switching 2007-03-24 16:49:22 -07:00
nxt200x.h V4L/DVB (4751): Fix DBV_FE_CUSTOMISE for card drivers compiled into kernel 2006-11-03 00:49:40 -03:00
nxt6000_priv.h [PATCH] dvb: nxt6000: support frontend status reads 2005-05-17 07:59:29 -07:00
nxt6000.c V4L/DVB (4028): Change dvb_frontend_ops to be a real field instead of a pointer field inside dvb_frontend 2006-06-25 02:00:42 -03:00
nxt6000.h V4L/DVB (4751): Fix DBV_FE_CUSTOMISE for card drivers compiled into kernel 2006-11-03 00:49:40 -03:00
or51132.c V4L/DVB (5374): Or51132: refactor i2c code, improve error resilience 2007-04-27 15:44:09 -03:00
or51132.h V4L/DVB (4751): Fix DBV_FE_CUSTOMISE for card drivers compiled into kernel 2006-11-03 00:49:40 -03:00
or51211.c V4L/DVB (4940): Or51211: Changed SNR and signal strength calculations 2006-12-10 09:22:53 -02:00
or51211.h V4L/DVB (4751): Fix DBV_FE_CUSTOMISE for card drivers compiled into kernel 2006-11-03 00:49:40 -03:00
qt1010_priv.h V4L/DVB (5137): Dvb: add new qt1010 tuner module 2007-02-21 13:34:53 -02:00
qt1010.c V4L/DVB (5253): Qt1010: whitespace / 80 column cleanups 2007-02-21 13:35:33 -02:00
qt1010.h V4L/DVB (5137): Dvb: add new qt1010 tuner module 2007-02-21 13:34:53 -02:00
s5h1420.c V4L/DVB (4028): Change dvb_frontend_ops to be a real field instead of a pointer field inside dvb_frontend 2006-06-25 02:00:42 -03:00
s5h1420.h V4L/DVB (4751): Fix DBV_FE_CUSTOMISE for card drivers compiled into kernel 2006-11-03 00:49:40 -03:00
sp887x.c [PATCH] release_firmware() fixes 2006-07-10 13:24:15 -07:00
sp887x.h V4L/DVB (4751): Fix DBV_FE_CUSTOMISE for card drivers compiled into kernel 2006-11-03 00:49:40 -03:00
sp8870.c [PATCH] release_firmware() fixes 2006-07-10 13:24:15 -07:00
sp8870.h V4L/DVB (4751): Fix DBV_FE_CUSTOMISE for card drivers compiled into kernel 2006-11-03 00:49:40 -03:00
stv0297.c V4L/DVB (5247): Stv0297: Enable BER/UNC counting 2007-02-21 13:35:32 -02:00
stv0297.h V4L/DVB (4751): Fix DBV_FE_CUSTOMISE for card drivers compiled into kernel 2006-11-03 00:49:40 -03:00
stv0299.c V4L/DVB (5195): Frontends: make 4 functions static 2007-02-21 13:35:16 -02:00
stv0299.h V4L/DVB (4751): Fix DBV_FE_CUSTOMISE for card drivers compiled into kernel 2006-11-03 00:49:40 -03:00
tda826x.c V4L/DVB (4864): TDA826x I2C read with 2 messages 2006-12-10 09:05:02 -02:00
tda826x.h V4L/DVB (4751): Fix DBV_FE_CUSTOMISE for card drivers compiled into kernel 2006-11-03 00:49:40 -03:00
tda827x.c V4L/DVB (5369): Fixed 1 byte too short buffer in tda827x.c 2007-04-27 15:44:07 -03:00
tda827x.h V4L/DVB (5317): Create tda827x dvb tuner module 2007-04-27 15:43:35 -03:00
tda1004x.c V4L/DVB (5369): Fixed 1 byte too short buffer in tda827x.c 2007-04-27 15:44:07 -03:00
tda1004x.h V4L/DVB (5317): Create tda827x dvb tuner module 2007-04-27 15:43:35 -03:00
tda8083.c V4L/DVB (4788): Tda8083: support for uncorrectable blocks and bit error rate 2006-12-10 08:51:08 -02:00
tda8083.h V4L/DVB (4751): Fix DBV_FE_CUSTOMISE for card drivers compiled into kernel 2006-11-03 00:49:40 -03:00
tda10021.c V4L/DVB (5297): Fix identation on tda10021.c 2007-04-27 15:43:24 -03:00
tda10021.h V4L/DVB (4751): Fix DBV_FE_CUSTOMISE for card drivers compiled into kernel 2006-11-03 00:49:40 -03:00
tda10086.c V4L/DVB (5495): Tda10086: fix DiSEqC message length 2007-04-02 11:03:04 -03:00
tda10086.h V4L/DVB (4751): Fix DBV_FE_CUSTOMISE for card drivers compiled into kernel 2006-11-03 00:49:40 -03:00
tua6100.c V4L/DVB (4847): Drivers/media/dvb/frontends: kfree() cleanups 2006-12-10 08:51:33 -02:00
tua6100.h V4L/DVB (4751): Fix DBV_FE_CUSTOMISE for card drivers compiled into kernel 2006-11-03 00:49:40 -03:00
ves1x93.c V4L/DVB (4028): Change dvb_frontend_ops to be a real field instead of a pointer field inside dvb_frontend 2006-06-25 02:00:42 -03:00
ves1x93.h V4L/DVB (4751): Fix DBV_FE_CUSTOMISE for card drivers compiled into kernel 2006-11-03 00:49:40 -03:00
ves1820.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
ves1820.h V4L/DVB (4751): Fix DBV_FE_CUSTOMISE for card drivers compiled into kernel 2006-11-03 00:49:40 -03:00
zl10353_priv.h V4L/DVB (5218): Zl10353: register definitions update 2007-02-21 13:35:25 -02:00
zl10353.c V4L/DVB (5218): Zl10353: register definitions update 2007-02-21 13:35:25 -02:00
zl10353.h V4L/DVB (5217): Zl10353: Implement TRL nominal rate calculation 2007-02-21 13:35:24 -02:00