VServer 1.9.2 (patch-2.6.8.1-vs1.9.2.diff)
[linux-2.6.git] / drivers / media / video / saa7134 / saa7134-core.c
index d343d1e..cf87dda 100644 (file)
@@ -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: