diff options
author | Michael Hunold <devnull@localhost> | 2002-12-19 13:48:34 +0000 |
---|---|---|
committer | Michael Hunold <devnull@localhost> | 2002-12-19 13:48:34 +0000 |
commit | 80228210e514b5617dcc81b1fc32294e88aaf1d5 (patch) | |
tree | 3870a9ee2a7cfb429def68e4da7c268e2aefb693 /linux | |
parent | 0164a253485b3a532830b59ae532f723fd85a5e7 (diff) | |
download | mediapointer-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.h | 1 | ||||
-rw-r--r-- | linux/drivers/media/common/saa7146_core.c | 14 |
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 */ |