aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/video/cx18/cx18-io.c
diff options
context:
space:
mode:
authorAndy Walls <awalls@radix.net>2008-11-09 16:14:07 -0500
committerMauro Carvalho Chehab <mchehab@redhat.com>2008-12-30 06:38:04 -0500
commitd20ceecd0c5370cfe6b6eee2f63fecb65222c747 (patch)
treebb6f74956d73d4208aaeaf35a9af82904da3997d /drivers/media/video/cx18/cx18-io.c
parent2d1a1b055be8598dbcc8a7b905d07bcf05eaff3a (diff)
V4L/DVB (9598): cx18: Prevent CX23418 from clearing it's outgoing ack interrupts to driver
When the CX23418 CPU unit sent out an ack interrupt to the linux driver, it also received that interrupt and cleared the flag before the linux driver could see what the interrupt was for. This fix prevents the CPU from receiving an IRQ for it's own outgoing ack's to the linux driver. This fix is critical now that the linux driver doesn't poll but relies on these ack interrupts. Signed-off-by: Andy Walls <awalls@radix.net> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/video/cx18/cx18-io.c')
-rw-r--r--drivers/media/video/cx18/cx18-io.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/media/video/cx18/cx18-io.c b/drivers/media/video/cx18/cx18-io.c
index 48a8adc83c2f..3c6485fceea0 100644
--- a/drivers/media/video/cx18/cx18-io.c
+++ b/drivers/media/video/cx18/cx18-io.c
@@ -262,6 +262,13 @@ void cx18_sw2_irq_disable(struct cx18 *cx, u32 val)
262 cx18_write_reg(cx, r & ~val, SW2_INT_ENABLE_PCI); 262 cx18_write_reg(cx, r & ~val, SW2_INT_ENABLE_PCI);
263} 263}
264 264
265void cx18_sw2_irq_disable_cpu(struct cx18 *cx, u32 val)
266{
267 u32 r;
268 r = cx18_read_reg(cx, SW2_INT_ENABLE_CPU);
269 cx18_write_reg(cx, r & ~val, SW2_INT_ENABLE_CPU);
270}
271
265void cx18_setup_page(struct cx18 *cx, u32 addr) 272void cx18_setup_page(struct cx18 *cx, u32 addr)
266{ 273{
267 u32 val; 274 u32 val;