From 3ab65e59d64a1ab37ad62acd54af78b4f559d990 Mon Sep 17 00:00:00 2001 From: Gerd Knorr Date: Tue, 30 Nov 2004 17:00:13 +0000 Subject: - new cx88-based dvb card by Christopher Pascoe. - cx88: IR support by Christopher Pascoe and me. --- linux/drivers/media/video/cx88/cx88-video.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) (limited to 'linux/drivers/media/video/cx88/cx88-video.c') diff --git a/linux/drivers/media/video/cx88/cx88-video.c b/linux/drivers/media/video/cx88/cx88-video.c index 45bccfeac..24a575543 100644 --- a/linux/drivers/media/video/cx88/cx88-video.c +++ b/linux/drivers/media/video/cx88/cx88-video.c @@ -1,5 +1,5 @@ /* - * $Id: cx88-video.c,v 1.47 2004/11/19 18:07:12 kraxel Exp $ + * $Id: cx88-video.c,v 1.48 2004/11/30 17:00:13 kraxel Exp $ * * device driver for Conexant 2388x based TV cards * video4linux video interface @@ -435,7 +435,7 @@ static int start_video_dma(struct cx8800_dev *dev, q->count = 1; /* enable irqs */ - cx_set(MO_PCI_INTMSK, 0x00fc01); + cx_set(MO_PCI_INTMSK, core->pci_irqmask | 0x01); cx_set(MO_VID_INTMSK, 0x0f0011); /* enable capture */ @@ -1887,19 +1887,18 @@ static irqreturn_t cx8800_irq(int irq, void *dev_id, struct pt_regs *regs) { struct cx8800_dev *dev = dev_id; struct cx88_core *core = dev->core; - u32 status, mask; + u32 status; int loop, handled = 0; for (loop = 0; loop < 10; loop++) { - status = cx_read(MO_PCI_INTSTAT) & (~0x1f | 0x01); - mask = cx_read(MO_PCI_INTMSK); - if (0 == (status & mask)) + status = cx_read(MO_PCI_INTSTAT) & (core->pci_irqmask | 0x01); + if (0 == status) goto out; cx_write(MO_PCI_INTSTAT, status); handled = 1; - if (status & mask & ~0x1f) - cx88_irq(core,status,mask); + if (status & core->pci_irqmask) + cx88_core_irq(core,status); if (status & 0x01) cx8800_vid_irq(dev); }; -- cgit v1.2.3