linux/drivers/media/dvb/frontends
Mauro Carvalho Chehab c736a5f28e [media] mb86a20s: Be sure that device is initialized before starting DVB
Due to a hard to track bug between tda829x/tda18271/saa7134, tda829x
wants to go to analog mode during DVB initialization, causing some
I2C errors.

The analog failure doesn't cause any harm, as the device were already
properly initialized in analog mode. However, the failure at the digital
mode causes the frontend mb86a20s to not initialize. Fortunately, at
least on my tests, it was possible to detect that the device is a
mb86a20s before the failure.

What happens is that tda8290 is a very bad boy: during DVB setup, it
keeps insisting to call tda18271 analog_set_params, that calls
tune_agc code. The tune_agc code calls saa7134 driver, changing the
value of GPIO 27, switching from digital to analog mode and disabling
the access to mb86a20s, as, on Kworld SBTVD, the same GPIO used
to switch the hardware AGC mode seems to be used to enable the I2C
switch that allows access to the frontend (mb86a20s).

So, a call to analog_set_params ultimately disables the access to
the frontend, and causes a failure at the init frontend logic.

This patch is a workaround for this issue: it simply checks if the
frontend init had any failure. If so, it will init the frontend when
some DTV application will try to set DVB mode.

Even being a hack for Kworld SBTVD to work, and assumning that we could
teach tda8290 to be a good boy, this is actually an improvement at the
frontend driver, as it will be more reliable to initialization failures.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-01-19 11:45:25 -02:00
..
af9013_priv.h [media] af9013: optimize code size 2010-10-21 01:17:54 -02:00
af9013.c [media] af9013: fix AF9013 TDA18271 IF config 2011-01-19 11:44:52 -02:00
af9013.h V4L/DVB: af9013: add support for MaxLinear MxL5007T tuner 2010-10-21 01:05:51 -02:00
atbm8830_priv.h V4L/DVB: Fix bad whitespacing 2010-05-18 00:47:01 -03:00
atbm8830.c [media] drivers/media: Removed unnecessary KERN_<level>s from dprintk uses 2010-12-29 08:16:29 -02:00
atbm8830.h V4L/DVB (13374): AltoBeam ATBM8830 GB20600-2006(DMB-TH) demodulator 2009-12-05 18:41:34 -02:00
au8522_decoder.c [media] au8522: Handle differences in comb filter config for s-video input 2010-12-29 08:16:34 -02:00
au8522_dig.c V4L/DVB: au8522: fix case where we don't perform the first tune after going digital 2010-05-18 00:46:22 -03:00
au8522_priv.h [media] au8522: Handle differences in comb filter config for s-video input 2010-12-29 08:16:34 -02:00
au8522.h V4L/DVB (11065): au8522: add support for analog side of demodulator 2009-03-30 12:43:25 -03:00
bcm3510_priv.h
bcm3510.c dvb frontends: treat firmware data as const 2008-07-10 14:26:31 +01:00
bcm3510.h
bsbe1.h
bsru6.h
cx22700.c V4L/DVB (12575): Fix test of bandwidth range in cx22700_set_tps() 2009-09-12 12:19:34 -03:00
cx22700.h
cx22702.c V4L/DVB: cx22702: Simplify cx22702_set_tps() 2010-10-21 01:06:10 -02:00
cx22702.h V4L/DVB (9256): cx22702: Checkpatch compliance 2008-10-17 17:27:42 -03:00
cx24110.c V4L/DVB: drivers/media: Make static data tables and strings const 2010-10-21 01:04:52 -02:00
cx24110.h V4L/DVB (8906): v4l-dvb: fix assorted sparse warnings 2008-10-12 09:36:58 -02:00
cx24113.c tree-wide: fix assorted typos all over the place 2009-12-04 15:39:55 +01:00
cx24113.h V4L/DVB (9811): Add support for the CX24113 DVB-S tuner driver 2008-12-30 09:38:34 -02:00
cx24116.c Revert "V4L/DVB: Add FE_CAN_PSK_8 to allow apps to identify PSK_8 capable DVB devices" 2010-05-19 12:57:48 -03:00
cx24116.h V4L/DVB (10144): cx24116: build fix 2009-01-02 17:12:12 -02:00
cx24123.c [media] i2c: Stop using I2C_CLASS_TV_DIGITAL 2010-10-21 07:54:26 -02:00
cx24123.h V4L/DVB (9260): cx24123: Checkpatch compliance 2008-10-17 17:27:56 -03:00
dib0070.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
dib0070.h V4L/DVB (13583): DiB8090: Add the DiB0090 tuner driver and STK8096GP-board 2009-12-16 00:18:16 -02:00
dib0090.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
dib0090.h V4L/DVB (13684): Fix some cut-and-paste noise in dib0090.h 2009-12-16 09:27:54 -02:00
dib3000.h
dib3000mb_priv.h V4L/DVB: remove obsolete conditionalizing on DVB_DIBCOM_DEBUG 2010-08-02 16:42:46 -03:00
dib3000mb.c V4L/DVB: remove obsolete conditionalizing on DVB_DIBCOM_DEBUG 2010-08-02 16:42:46 -03:00
dib3000mc.c V4L/DVB: "dib3000mc: reduce large stack usage" fix 2010-08-02 16:42:59 -03:00
dib3000mc.h V4L/DVB (10903): cleanup linewraps in dib3000mc.h 2009-03-30 12:43:14 -03:00
dib7000m.c [media] dib7000m/dib7000p: Add support for TRANSMISSION_MODE_4K 2010-12-29 08:17:13 -02:00
dib7000m.h V4L/DVB (10902): cleanup linewraps in dib7000m.h 2009-03-30 12:43:14 -03:00
dib7000p.c [media] dib7000m/dib7000p: Add support for TRANSMISSION_MODE_4K 2010-12-29 08:17:13 -02:00
dib7000p.h V4L/DVB: dib7000p: add disable sample and hold, and diversity delay parameter 2010-09-27 22:21:58 -03:00
dib8000.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
dib8000.h V4L/DVB: dvb/dib8000: fix build warning 2010-05-19 12:57:11 -03:00
dibx000_common.c [media] BZ#22292: dibx000_common: Restore i2c algo pointer 2010-11-08 22:32:09 -02:00
dibx000_common.h V4L/DVB (13584): DiBXXX0: fix most of the Codingstyle violations from the previous patch 2009-12-16 00:18:16 -02:00
drx397xD_fw.h V4L/DVB (10129): dvb: remove deprecated use of RW_LOCK_UNLOCKED in frontends 2008-12-30 09:40:40 -02:00
drx397xD.c V4L/DVB: drivers/media: Use available error codes 2010-10-21 01:04:48 -02:00
drx397xD.h V4L/DVB (8725): drx397xD.c sparse annotations 2008-10-12 09:36:51 -02:00
ds3000.c V4L/DVB: drivers/media: Use kzalloc 2010-06-01 01:23:16 -03:00
ds3000.h V4L/DVB (13493): TeVii S470 and TBS 6920 fixes 2009-12-05 18:42:08 -02:00
dvb_dummy_fe.c V4L/DVB (12440): Use kzalloc for frontend states to have struct dvb_frontend properly 2009-08-13 20:39:14 -03:00
dvb_dummy_fe.h V4L/DVB (11111): dvb_dummy_fe: Fix compilation breakage 2009-03-30 12:43:29 -03:00
dvb-pll.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
dvb-pll.h V4L/DVB (12290): dvb-pll: Add support for Alps TDEE4 DVB-C NIM 2009-09-12 12:17:50 -03:00
ec100_priv.h V4L/DVB (13363): ec100: add new driver for E3C EC100 DVB-T demodulator 2009-12-05 18:41:32 -02:00
ec100.c V4L/DVB (13363): ec100: add new driver for E3C EC100 DVB-T demodulator 2009-12-05 18:41:32 -02:00
ec100.h V4L/DVB (13363): ec100: add new driver for E3C EC100 DVB-T demodulator 2009-12-05 18:41:32 -02:00
eds1547.h V4L/DVB (9176): Add support for DvbWorld USB cards with STV0288 demodulator. 2008-10-13 12:27:03 -02:00
isl6405.c
isl6405.h
isl6421.c
isl6421.h
isl6423.c V4L/DVB (11583): isl6423: Various fixes to use external modulation 2009-06-16 18:20:38 -03:00
isl6423.h V4L/DVB (11579): Initial go at TT S2-1600 2009-06-16 18:20:37 -03:00
itd1000_priv.h V4L/DVB (11284): Fix i2c code of flexcop-driver for rare revisions 2009-03-30 12:43:47 -03:00
itd1000.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
itd1000.h
ix2505v.c [media] IX2505V: i2c transfer error code ignored 2010-12-29 08:16:46 -02:00
ix2505v.h V4L/DVB: Support for Sharp IX2505V (marked B0017) DVB-S silicon tuner 2010-10-21 01:04:53 -02:00
Kconfig [media] add a driver for mb86a20s 2010-12-29 08:16:27 -02:00
l64781.c V4L/DVB: dvb: l64781.ko broken with gcc 4.5 2010-02-19 03:19:01 -02:00
l64781.h
lgdt330x_priv.h
lgdt330x.c tree-wide: fix assorted typos all over the place 2009-12-04 15:39:55 +01:00
lgdt330x.h
lgdt3305.c V4L/DVB: lgdt3305: enable FE_HAS_SIGNAL hack for the lgdt3304 in QAM mode 2010-08-02 14:47:41 -03:00
lgdt3305.h V4L/DVB: lgdt3305: update copyright date and MODULE_VERSION 2010-08-02 14:47:19 -03:00
lgs8gl5.c V4L/DVB (12440): Use kzalloc for frontend states to have struct dvb_frontend properly 2009-08-13 20:39:14 -03:00
lgs8gl5.h V4L/DVB (8657): cxusb: add lgs8gl5 and support for Magic-Pro DMB-TH usb stick 2008-10-12 09:36:49 -02:00
lgs8gxx_priv.h V4L/DVB (12271): lgs8gxx: add lgs8g75 support 2009-09-12 12:17:38 -03:00
lgs8gxx.c [media] drivers/media: Removed unnecessary KERN_<level>s from dprintk uses 2010-12-29 08:16:29 -02:00
lgs8gxx.h V4L/DVB (12271): lgs8gxx: add lgs8g75 support 2009-09-12 12:17:38 -03:00
lnbh24.h V4L/DVB (10800): Add support for ST LNBH24 LNB power controller. 2009-03-30 12:43:04 -03:00
lnbp21.c V4L/DVB: 22-kHz set_tone fix for NetUP Dual DVB-S2-CI card. 22kHz logic controlled by demod 2010-02-26 15:10:41 -03:00
lnbp21.h V4L/DVB (10800): Add support for ST LNBH24 LNB power controller. 2009-03-30 12:43:04 -03:00
Makefile [media] add a driver for mb86a20s 2010-12-29 08:16:27 -02:00
mb86a16_priv.h V4L/DVB (13811): [MB86A16] Update Copyright header 2010-01-17 11:55:45 -02:00
mb86a16.c V4L/DVB: drivers/media/dvb/frontends: remove duplicate structure field initialization 2010-08-02 15:29:18 -03:00
mb86a16.h V4L/DVB (13811): [MB86A16] Update Copyright header 2010-01-17 11:55:45 -02:00
mb86a20s.c [media] mb86a20s: Be sure that device is initialized before starting DVB 2011-01-19 11:45:25 -02:00
mb86a20s.h [media] mb86a20s: add support for serial streams 2010-12-29 08:16:28 -02:00
mt312_priv.h
mt312.c V4L/DVB (12200): mt312: Fix checkpatch warnings 2009-09-12 12:17:24 -03:00
mt312.h V4L/DVB (7861): mt312: Prefix functions only with mt312_, Add zl10313 to kconfig description 2008-05-14 02:54:12 -03:00
mt352_priv.h
mt352.c V4L/DVB: drivers/media: Make static data tables and strings const 2010-10-21 01:04:52 -02:00
mt352.h V4L/DVB: drivers/media: Make static data tables and strings const 2010-10-21 01:04:52 -02:00
nxt200x.c V4L/DVB (11723): Link firmware to physical device 2009-06-16 18:20:56 -03:00
nxt200x.h
nxt6000_priv.h
nxt6000.c V4L/DVB (12440): Use kzalloc for frontend states to have struct dvb_frontend properly 2009-08-13 20:39:14 -03:00
nxt6000.h
or51132.c V4L/DVB (12440): Use kzalloc for frontend states to have struct dvb_frontend properly 2009-08-13 20:39:14 -03:00
or51132.h
or51211.c V4L/DVB (12440): Use kzalloc for frontend states to have struct dvb_frontend properly 2009-08-13 20:39:14 -03:00
or51211.h
s5h1409.c V4L/DVB (13332): s5h1409: remove a set register that would cause lock to be lost. 2009-12-05 18:41:23 -02:00
s5h1409.h V4L/DVB (13329): s5h1409: provide HVR-1600 specific optimizations 2009-12-05 18:41:22 -02:00
s5h1411.c V4L/DVB (12440): Use kzalloc for frontend states to have struct dvb_frontend properly 2009-08-13 20:39:14 -03:00
s5h1411.h V4L/DVB (9313): s5h1411: Add the #define for an existing supporting I/F 2008-10-21 14:30:59 -02:00
s5h1420_priv.h
s5h1420.c [media] i2c: Stop using I2C_CLASS_TV_DIGITAL 2010-10-21 07:54:26 -02:00
s5h1420.h V4L/DVB (9037): Fix support for Hauppauge Nova-S SE 2008-10-04 23:00:46 -03:00
s5h1432.c [media] CodingStyle cleanup at s5h1432 and cx231xx 2010-10-21 01:17:45 -02:00
s5h1432.h [media] CodingStyle cleanup at s5h1432 and cx231xx 2010-10-21 01:17:45 -02:00
s921.c [media] Re-write the s921 frontend 2010-12-29 08:16:26 -02:00
s921.h [media] Re-write the s921 frontend 2010-12-29 08:16:26 -02:00
si21xx.c V4L/DVB: drivers/media: Make static data tables and strings const 2010-10-21 01:04:52 -02:00
si21xx.h V4L/DVB (9017): Add support for Silicon Laboratories SI2109/2110 demodulators. 2008-10-12 09:37:06 -02:00
sp887x.c V4L/DVB (12440): Use kzalloc for frontend states to have struct dvb_frontend properly 2009-08-13 20:39:14 -03:00
sp887x.h
sp8870.c V4L/DVB (12440): Use kzalloc for frontend states to have struct dvb_frontend properly 2009-08-13 20:39:14 -03:00
sp8870.h
stb0899_algo.c V4L/DVB (10975): Bug: Use signed types, Offsets and range can be negative 2009-03-13 13:19:16 -03:00
stb0899_cfg.h V4L/DVB (9450): Code Review: #4 Consolidate configurations 2008-12-29 17:53:22 -02:00
stb0899_drv.c [media] stb0899: fix diseqc messages getting lost 2010-12-29 08:16:49 -02:00
stb0899_drv.h V4L/DVB (9462): Allow specifying clock per device 2008-12-29 17:53:23 -02:00
stb0899_priv.h V4L/DVB (10975): Bug: Use signed types, Offsets and range can be negative 2009-03-13 13:19:16 -03:00
stb0899_reg.h V4L/DVB (9468): Miscellaneous fixes 2008-12-29 17:53:24 -02:00
stb6000.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
stb6000.h V4L/DVB (9026): Add support for ST STV0288 demodulator and cards with it. 2008-10-12 09:37:07 -02:00
stb6100_cfg.h V4L/DVB (11248): Remove debug output from stb6100_cfg.h 2009-03-30 12:43:43 -03:00
stb6100_proc.h V4L/DVB (13407): Add Prof 7301 PCI DVB-S2 card 2009-12-05 18:41:43 -02:00
stb6100.c [media] stb6100: warning cleanup 2010-12-29 08:16:52 -02:00
stb6100.h V4L/DVB: drivers/media: Make static data tables and strings const 2010-10-21 01:04:52 -02:00
stv090x_priv.h V4L/DVB (13976): [STV090x] Added mutex protection around tuner I2C access. 2010-02-26 15:10:36 -03:00
stv090x_reg.h V4L/DVB (13352): stv090x: fixes errors and typos in register definitions 2009-12-05 18:41:28 -02:00
stv090x.c [media] stv090x: Fix some compilation warnings 2010-12-29 08:17:14 -02:00
stv090x.h V4L/DVB: [STV090x, STV6110x] Use tuner sleep within the demodulator control 2010-05-18 00:46:47 -03:00
stv0288.c [media] DiSEqC bug fixed for stv0288 based interfaces 2010-10-21 07:55:58 -02:00
stv0288.h V4L/DVB (9174): Allow custom inittab for ST STV0288 demodulator. 2008-10-13 12:26:01 -02:00
stv0297.c V4L/DVB (12440): Use kzalloc for frontend states to have struct dvb_frontend properly 2009-08-13 20:39:14 -03:00
stv0297.h
stv0299.c V4L/DVB: drivers/media: Make static data tables and strings const 2010-10-21 01:04:52 -02:00
stv0299.h V4L/DVB: drivers/media: Make static data tables and strings const 2010-10-21 01:04:52 -02:00
stv0900_core.c V4L/DVB: stv0900: Whitespace cleanup 2010-05-18 00:50:20 -03:00
stv0900_init.h V4L/DVB (13338): stv0900: big rework to support cut 3.0. 2009-12-05 18:41:25 -02:00
stv0900_priv.h V4L/DVB (13818): Add Prof 7500 DVB-S2 USB card 2010-02-26 15:10:24 -03:00
stv0900_reg.h V4L/DVB (13818): Add Prof 7500 DVB-S2 USB card 2010-02-26 15:10:24 -03:00
stv0900_sw.c V4L/DVB: STV0900 Cut 3.0 AGC2 fix for NetUP Dual DVB-S2-CI card 2010-02-26 15:10:56 -03:00
stv0900.h V4L/DVB (13818): Add Prof 7500 DVB-S2 USB card 2010-02-26 15:10:24 -03:00
stv6110.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
stv6110.h V4L/DVB (13334): stv6110: add configurable gain 2009-12-05 18:41:23 -02:00
stv6110x_priv.h V4L/DVB (13981): [STV6110x] Add a local register map for each instance of the driver. 2010-02-26 15:10:36 -03:00
stv6110x_reg.h V4L/DVB (11579): Initial go at TT S2-1600 2009-06-16 18:20:37 -03:00
stv6110x.c V4L/DVB: stv6110x: Fix kernel null pointer deref 2010-06-01 01:21:50 -03:00
stv6110x.h V4L/DVB: [STV090x, STV6110x] Use tuner sleep within the demodulator control 2010-05-18 00:46:47 -03:00
tda665x.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
tda665x.h V4L/DVB (13809): Fix Checkpatch violations 2010-01-17 11:55:44 -02:00
tda826x.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
tda826x.h
tda1002x.h V4L/DVB (8334): tda10023: Fix typo in tda10023_attach dummy routine 2008-07-20 07:25:08 -03:00
tda1004x.c V4L/DVB: drivers/media: Make static data tables and strings const 2010-10-21 01:04:52 -02:00
tda1004x.h
tda8083.c V4L/DVB (12440): Use kzalloc for frontend states to have struct dvb_frontend properly 2009-08-13 20:39:14 -03:00
tda8083.h
tda8261_cfg.h V4L/DVB (9450): Code Review: #4 Consolidate configurations 2008-12-29 17:53:22 -02:00
tda8261.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
tda8261.h V4L/DVB (9450): Code Review: #4 Consolidate configurations 2008-12-29 17:53:22 -02:00
tda10021.c V4L/DVB (13791): [TDA10021] Do not claim TDA10023 2010-01-17 11:55:42 -02:00
tda10023.c V4L/DVB (8030): TDA10023: make TS output mode configurable 2008-07-20 07:09:24 -03:00
tda10048.c V4L/DVB: tda10048: clear the uncorrected packet registers when saturated 2010-08-02 15:35:39 -03:00
tda10048.h V4L/DVB (11854): TDA10048: Ensure the I/F changes during DVB-T 6/7/8 bandwidth changes. 2009-06-16 18:21:13 -03:00
tda10086.c V4L/DVB (12440): Use kzalloc for frontend states to have struct dvb_frontend properly 2009-08-13 20:39:14 -03:00
tda10086.h
tdhd1.h V4L/DVB (8890): budget: Add callback to load firmware for the TDHD1 tuner 2008-10-12 09:36:57 -02:00
tua6100.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
tua6100.h
ves1x93.c V4L/DVB (12440): Use kzalloc for frontend states to have struct dvb_frontend properly 2009-08-13 20:39:14 -03:00
ves1x93.h
ves1820.c V4L/DVB (12483): Use DIV_ROUND_CLOSEST 2009-09-12 12:19:08 -03:00
ves1820.h
z0194a.h V4L/DVB (9296): Patch to remove warning message during cx88-dvb compilation 2008-10-17 17:41:30 -03:00
zl10036.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
zl10036.h V4L/DVB (10822): Add support for Zarlink ZL10036 DVB-S tuner. 2009-03-30 12:43:06 -03:00
zl10039.c V4L/DVB (13965): zl10039, jump to error on error 2010-02-26 15:10:35 -03:00
zl10039.h V4L/DVB (12461): Add ce5039(zl10039) tuner support. 2009-09-12 12:18:55 -03:00
zl10353_priv.h V4L/DVB (11215): zl10353: add support for Intel CE6230 and Intel CE6231 2009-03-30 12:43:40 -03:00
zl10353.c V4L/DVB: drivers/media: Make static data tables and strings const 2010-10-21 01:04:52 -02:00
zl10353.h V4L/DVB (11215): zl10353: add support for Intel CE6230 and Intel CE6231 2009-03-30 12:43:40 -03:00