X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=drivers%2Fmedia%2Fvideo%2Fsaa7134%2Fsaa7134-core.c;h=cf87dda32711a7eeaff6486170ab4bd0c477bb82;hb=9bf4aaab3e101692164d49b7ca357651eb691cb6;hp=d343d1e935995ebc516f4cfdbc1ea11627b2ac9e;hpb=db216c3d5e4c040e557a50f8f5d35d5c415e8c1c;p=linux-2.6.git diff --git a/drivers/media/video/saa7134/saa7134-core.c b/drivers/media/video/saa7134/saa7134-core.c index d343d1e93..cf87dda32 100644 --- a/drivers/media/video/saa7134/saa7134-core.c +++ b/drivers/media/video/saa7134/saa7134-core.c @@ -324,7 +324,7 @@ int saa7134_buffer_queue(struct saa7134_dev *dev, struct saa7134_buf *buf) { struct saa7134_buf *next = NULL; -#if DEBUG_SPINLOCKS +#ifdef DEBUG_SPINLOCKS BUG_ON(!spin_is_locked(&dev->slock)); #endif @@ -353,7 +353,7 @@ void saa7134_buffer_finish(struct saa7134_dev *dev, struct saa7134_dmaqueue *q, unsigned int state) { -#if DEBUG_SPINLOCKS +#ifdef DEBUG_SPINLOCKS BUG_ON(!spin_is_locked(&dev->slock)); #endif dprintk("buffer_finish %p\n",q->curr); @@ -370,7 +370,7 @@ void saa7134_buffer_next(struct saa7134_dev *dev, { struct saa7134_buf *buf,*next = NULL; -#if DEBUG_SPINLOCKS +#ifdef DEBUG_SPINLOCKS BUG_ON(!spin_is_locked(&dev->slock)); #endif BUG_ON(NULL != q->curr); @@ -427,7 +427,7 @@ int saa7134_set_dmabits(struct saa7134_dev *dev) enum v4l2_field cap = V4L2_FIELD_ANY; enum v4l2_field ov = V4L2_FIELD_ANY; -#if DEBUG_SPINLOCKS +#ifdef DEBUG_SPINLOCKS BUG_ON(!spin_is_locked(&dev->slock)); #endif @@ -607,10 +607,18 @@ static irqreturn_t saa7134_irq(int irq, void *dev_id, struct pt_regs *regs) }; if (10 == loop) { print_irqstatus(dev,loop,report,status); - printk(KERN_WARNING "%s/irq: looping -- clearing enable bits\n",dev->name); - /* disable all irqs */ - saa_writel(SAA7134_IRQ1,0); - saa_writel(SAA7134_IRQ2,0); + if (report & SAA7134_IRQ_REPORT_PE) { + /* disable all parity error */ + printk(KERN_WARNING "%s/irq: looping -- " + "clearing PE (parity error!) enable bit\n",dev->name); + saa_clearl(SAA7134_IRQ2,SAA7134_IRQ2_INTE_PE); + } else { + /* disable all irqs */ + printk(KERN_WARNING "%s/irq: looping -- " + "clearing all enable bits\n",dev->name); + saa_writel(SAA7134_IRQ1,0); + saa_writel(SAA7134_IRQ2,0); + } } out: