linux/drivers/media/video/pvrusb2
Andy Walls 3ccc646b56 V4L/DVB: cx25840, v4l2-subdev, ivtv, pvrusb2: Fix ivtv/cx25840 tinny audio
This change attempts to fix the ivtv tinny audio problem by keeping digitizer
to encoder audio clocks running, while disabling the video clocks as needed to
avoid unpredictable PCI bus hangs.

To accomplish this, for the cx25840 module enabling of audio streaming had
to be separated from enabling video streaming, requiring an additional
v4l2_subdev_audio_op and calls to this new op in the pvrusb2 and ivtv drivers.

The cx231xx and cx23885 driver use the cx25840 module for affecting only
video on s_stream calls, so those drivers needed no change.

The CX23418 hardware does not exhibit either the tinny audio problem nor the PCI
bus hang, so the cx18 driver did not need corresponding changes.

CX2341[56] based cards that are not using the CX2584x family of chips
do not seem to be affected by the tinny audio problem, and this change should
not affect how they are configured. It will delay their first capture by
starting by another 300 msec though.

Many thanks go to Argus <pthorn-ivtvd@styx2002.no-ip.org> and
Martin Dauskardt <martin.dauskardt@gmx.de> whose persistent testing and
investigation of this problem will hopefully fix this problem once and for all
for many ivtv users.

Reported-by: Martin Dauskardt <martin.dauskardt@gmx.de>
Reported-by: Argus <pthorn-ivtvd@styx2002.no-ip.org>
Signed-off-by: Andy Walls <awalls@radix.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2010-02-26 15:10:41 -03:00
..
Kconfig V4L/DVB (11127): Kconfig: replace all occurrences of CUSTOMIZE to CUSTOMISE 2009-03-30 12:43:31 -03:00
Makefile V4L/DVB (11207): pvrusb2: Add composite and s-video input support for OnAir devices 2009-03-30 12:43:40 -03:00
pvrusb2-audio.c V4L/DVB (12426): pvrusb2: fix compile warning 2009-09-12 12:18:49 -03:00
pvrusb2-audio.h V4L/DVB (11204): pvrusb2: Remove old i2c layer; we use v4l2-subdev now 2009-03-30 12:43:39 -03:00
pvrusb2-context.c
pvrusb2-context.h
pvrusb2-cs53l32a.c V4L/DVB (12122): pvrusb2: De-obfuscate code which handles routing schemes 2009-06-23 03:15:17 -03:00
pvrusb2-cs53l32a.h V4L/DVB (11207): pvrusb2: Add composite and s-video input support for OnAir devices 2009-03-30 12:43:40 -03:00
pvrusb2-ctrl.c V4L/DVB (11332): pvrusb2: Fix incorrect reporting of default value for non-integer controls 2009-04-06 21:43:51 -03:00
pvrusb2-ctrl.h
pvrusb2-cx2584x-v4l.c V4L/DVB (12122): pvrusb2: De-obfuscate code which handles routing schemes 2009-06-23 03:15:17 -03:00
pvrusb2-cx2584x-v4l.h V4L/DVB (11204): pvrusb2: Remove old i2c layer; we use v4l2-subdev now 2009-03-30 12:43:39 -03:00
pvrusb2-debug.h
pvrusb2-debugifc.c V4L/DVB (13496): pvrusb2: Support manual extraction of 16KB FX2 firmware 2009-12-05 18:42:09 -02:00
pvrusb2-debugifc.h V4L/DVB (11173): pvrusb2: Fix backwards function header comments 2009-03-30 12:43:35 -03:00
pvrusb2-devattr.c V4L/DVB (13500): pvrusb2: Fix lingering 16KB FX2 Firmware issues 2009-12-05 18:42:11 -02:00
pvrusb2-devattr.h V4L/DVB (13495): pvrusb2: Support 16KB FX2 firmware 2009-12-05 18:42:09 -02:00
pvrusb2-dvb.c V4L/DVB (11200): pvrusb2: Make a bunch of dvb config structures const (trivial) 2009-03-30 12:43:39 -03:00
pvrusb2-dvb.h
pvrusb2-eeprom.c
pvrusb2-eeprom.h
pvrusb2-encoder.c V4L/DVB (13223): pvrusb2: Soften encoder warning message 2009-12-05 18:40:58 -02:00
pvrusb2-encoder.h
pvrusb2-fx2-cmd.h
pvrusb2-hdw-internal.h Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6 2009-12-09 19:50:49 -08:00
pvrusb2-hdw.c V4L/DVB: cx25840, v4l2-subdev, ivtv, pvrusb2: Fix ivtv/cx25840 tinny audio 2010-02-26 15:10:41 -03:00
pvrusb2-hdw.h V4L/DVB (13496): pvrusb2: Support manual extraction of 16KB FX2 firmware 2009-12-05 18:42:09 -02:00
pvrusb2-i2c-core.c V4L/DVB (13498): pvrusb2: Bind I2C address 0x71 for Zilog IR devices 2009-12-05 18:42:10 -02:00
pvrusb2-i2c-core.h V4L/DVB (11154): pvrusb2: Split i2c module handling from i2c adapter 2009-03-30 12:43:32 -03:00
pvrusb2-io.c
pvrusb2-io.h
pvrusb2-ioread.c
pvrusb2-ioread.h
pvrusb2-main.c V4L/DVB (10259): pvrusb2: Code module name directly in printk 2009-03-30 12:42:23 -03:00
pvrusb2-std.c
pvrusb2-std.h
pvrusb2-sysfs.c V4L/DVB (11739): remove driver_data direct access of struct device 2009-06-16 18:20:58 -03:00
pvrusb2-sysfs.h
pvrusb2-util.h
pvrusb2-v4l2.c V4L/DVB (13550): v4l: Use the new video_device_node_name function 2009-12-16 00:17:55 -02:00
pvrusb2-v4l2.h
pvrusb2-video-v4l.c V4L/DVB (12122): pvrusb2: De-obfuscate code which handles routing schemes 2009-06-23 03:15:17 -03:00
pvrusb2-video-v4l.h V4L/DVB (11204): pvrusb2: Remove old i2c layer; we use v4l2-subdev now 2009-03-30 12:43:39 -03:00
pvrusb2-wm8775.c V4L/DVB (11380): v4l2-subdev: change s_routing prototype 2009-04-06 21:44:27 -03:00
pvrusb2-wm8775.h V4L/DVB (11204): pvrusb2: Remove old i2c layer; we use v4l2-subdev now 2009-03-30 12:43:39 -03:00
pvrusb2.h