summaryrefslogtreecommitdiff
path: root/linux
diff options
context:
space:
mode:
authorMichael Hunold <devnull@localhost>2002-12-19 13:48:34 +0000
committerMichael Hunold <devnull@localhost>2002-12-19 13:48:34 +0000
commit80228210e514b5617dcc81b1fc32294e88aaf1d5 (patch)
tree3870a9ee2a7cfb429def68e4da7c268e2aefb693 /linux
parent0164a253485b3a532830b59ae532f723fd85a5e7 (diff)
downloadmediapointer-dvb-s2-80228210e514b5617dcc81b1fc32294e88aaf1d5.tar.gz
mediapointer-dvb-s2-80228210e514b5617dcc81b1fc32294e88aaf1d5.tar.bz2
The IER should be cleared in config_a_device, otherwise it's possible that
unwanted interrupts are raised. (copy & paste bug)
Diffstat (limited to 'linux')
-rw-r--r--linux/drivers/media/common/saa7146.h1
-rw-r--r--linux/drivers/media/common/saa7146_core.c14
2 files changed, 9 insertions, 6 deletions
diff --git a/linux/drivers/media/common/saa7146.h b/linux/drivers/media/common/saa7146.h
index 97aa765b8..b62566fd4 100644
--- a/linux/drivers/media/common/saa7146.h
+++ b/linux/drivers/media/common/saa7146.h
@@ -38,6 +38,7 @@
#define __stringify(x) __stringify_fs(x)
extern int debug;
+//#define DEBUG_PROLOG printk("(0x%08x) %s: %s(): ",(dev==0?-1:(dev->mem==0?-1:saa7146_read(dev,IER))),__stringify(KBUILD_MODNAME),__FUNCTION__)
#define DEBUG_PROLOG printk("%s: %s(): ",__stringify(KBUILD_MODNAME),__FUNCTION__)
#define DEB_S(x) if (0!=(debug&0x01)) { DEBUG_PROLOG; printk x; } /* simple debug messages */
diff --git a/linux/drivers/media/common/saa7146_core.c b/linux/drivers/media/common/saa7146_core.c
index 21d1fde81..5a3182769 100644
--- a/linux/drivers/media/common/saa7146_core.c
+++ b/linux/drivers/media/common/saa7146_core.c
@@ -27,12 +27,11 @@
#endif
/* global variables */
-struct list_head devices;
-struct semaphore devices_lock;
+static struct list_head devices;
+static struct semaphore devices_lock;
-int saa7146_num = 0;
-/* fixme */
-int debug = 247;
+static int saa7146_num = 0;
+static int debug = 0;
#ifdef MODULE
MODULE_PARM(debug,"i");
@@ -380,7 +379,9 @@ static void interrupt_hw(int irq, void *dev_id, struct pt_regs *regs)
saa7146_vbi_uops.irq_done(dev,isr);
}
if( 0 != isr ) {
- ERR(("warning: interrupt enabled, but not handled properly. (0x%08x)\n",isr));
+ ERR(("warning: interrupt enabled, but not handled properly.(0x%08x)\n",isr));
+ ERR(("disabling interrupt source(s)!\n"));
+ IER_DISABLE(dev,isr);
}
}
@@ -725,6 +726,7 @@ static int config_a_device(struct pci_dev *pci)
*/
/* disable alle irqs, clear irq-mask */
+ saa7146_write(dev, IER, 0);
saa7146_write(dev, ISR, 0xffffffff);
/* shut down all dma transfers */