1
linux/drivers/media/video/cx88
Trent Piepho 59fd8f8d8e V4L/DVB (6066): cx88-alsa: Change order of interrupt enabling, fix spurious IRQs
Currently the driver turns on audio interrupts, then sets the audio interrupt
mask to select which interrupts to get.  One could received unwanted
interrupts since the mask is set _after_ interrupts have already been turned
on.  Change the order of the operations, and clear any audio interrupt status
bits that are already set for good measure.

Before changing the SRAM FIFO parameters, make sure the FIFO isn't being used.
This shouldn't happen with just the ALSA driver, as it should never try to
turn on FIFO/RISC/DMA while they are already on.  However, the V4L driver
needs to turn the audio FIFO on for analog audio output to work (undocumented
cx88 bug).  The FIFO parameters are in an inconsistent state while they are
updated, and this results in many FIFO sync error IRQs if the FIFO is in use
while it's in this inconsistent state.

Also create and use a bunch of symbolic constants for audio interrupt mask
bits.

Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-10-09 22:05:55 -03:00
..
cx88-alsa.c V4L/DVB (6066): cx88-alsa: Change order of interrupt enabling, fix spurious IRQs 2007-10-09 22:05:55 -03:00
cx88-blackbird.c V4L/DVB (6021): cx88: Copy board information into card state 2007-10-09 22:05:16 -03:00
cx88-cards.c V4L/DVB (6064): cx88: Add symbolic names for the PCI interrupt bits 2007-10-09 22:05:54 -03:00
cx88-core.c V4L/DVB (6064): cx88: Add symbolic names for the PCI interrupt bits 2007-10-09 22:05:54 -03:00
cx88-dvb.c V4L/DVB (6023): cx88: Clean up some ugly and inconsistent printk()s 2007-10-09 22:05:17 -03:00
cx88-i2c.c V4L/DVB (6021): cx88: Copy board information into card state 2007-10-09 22:05:16 -03:00
cx88-input.c V4L/DVB (6064): cx88: Add symbolic names for the PCI interrupt bits 2007-10-09 22:05:54 -03:00
cx88-mpeg.c V4L/DVB (6064): cx88: Add symbolic names for the PCI interrupt bits 2007-10-09 22:05:54 -03:00
cx88-reg.h V4L/DVB (6066): cx88-alsa: Change order of interrupt enabling, fix spurious IRQs 2007-10-09 22:05:55 -03:00
cx88-tvaudio.c V4L/DVB (6034): cx88: Add parameter to control radio deemphasis time constant 2007-10-09 22:05:21 -03:00
cx88-vbi.c V4L/DVB (6064): cx88: Add symbolic names for the PCI interrupt bits 2007-10-09 22:05:54 -03:00
cx88-video.c V4L/DVB (6064): cx88: Add symbolic names for the PCI interrupt bits 2007-10-09 22:05:54 -03:00
cx88-vp3054-i2c.c V4L/DVB (6021): cx88: Copy board information into card state 2007-10-09 22:05:16 -03:00
cx88-vp3054-i2c.h V4L/DVB (5629): Cx88: VP3054 support can't be a module when cx88 is compiled in 2007-07-18 14:23:11 -03:00
cx88.h V4L/DVB (6022): cx88: Move card core creation from cx88-core.c to cx88-cards.c 2007-10-09 22:05:16 -03:00
Kconfig V4L/DVB (5780): Dvb: Remove static dependencies on dvb-pll 2007-07-18 14:24:16 -03:00
Makefile V4L/DVB (5166): Remove obsolete alias defines of CONFIG_* settings 2007-02-21 13:35:11 -02:00