diff options
Diffstat (limited to 'target/linux')
| -rw-r--r-- | target/linux/ar7-2.6/files/arch/mips/ar7/vlynq-pci.c | 4 | ||||
| -rw-r--r-- | target/linux/ar7-2.6/files/arch/mips/ar7/vlynq.c | 2 | 
2 files changed, 5 insertions, 1 deletions
| diff --git a/target/linux/ar7-2.6/files/arch/mips/ar7/vlynq-pci.c b/target/linux/ar7-2.6/files/arch/mips/ar7/vlynq-pci.c index eb32de031..a32ea8d44 100644 --- a/target/linux/ar7-2.6/files/arch/mips/ar7/vlynq-pci.c +++ b/target/linux/ar7-2.6/files/arch/mips/ar7/vlynq-pci.c @@ -22,6 +22,7 @@  #include <linux/pci.h>  #include <linux/kernel.h>  #include <linux/init.h> +#include <linux/irq.h>  #include <asm/ar7/vlynq.h>  #define VLYNQ_PCI_SLOTS 2 @@ -61,6 +62,7 @@ static struct vlynq_pci_config known_devices[] = {  			{ .size = 0x0, .offset = 0x0 },  		},  		.irq = 0, .chip = 0x9066104c, +		.irq_type = IRQ_TYPE_EDGE_RISING,  		.class = PCI_CLASS_NETWORK_OTHER,  		.num_regs = 5,  		.regs = {  @@ -313,6 +315,8 @@ static int vlynq_pci_probe(struct vlynq_device *dev)  	vlynq_set_local_mapping(dev, dev->mem_start, mapping);  	vlynq_set_remote_mapping(dev, 0, config->rx_mapping); +	set_irq_type(vlynq_virq_to_irq(dev, config->irq), config->irq_type); +  	addr = (u32)ioremap_nocache(dev->mem_start, 0x10000);  	if (!addr) {  		printk(KERN_ERR "%s: failed to remap io memory\n", diff --git a/target/linux/ar7-2.6/files/arch/mips/ar7/vlynq.c b/target/linux/ar7-2.6/files/arch/mips/ar7/vlynq.c index 80cb836d9..e0d3b1ffe 100644 --- a/target/linux/ar7-2.6/files/arch/mips/ar7/vlynq.c +++ b/target/linux/ar7-2.6/files/arch/mips/ar7/vlynq.c @@ -117,7 +117,7 @@ static void vlynq_irq_unmask(unsigned int irq)  	BUG_ON(!dev);  	virq = irq - dev->irq_start;  	val = dev->remote->int_device[virq >> 2]; -	val |= VINT_ENABLE << VINT_OFFSET(virq); +	val |= (VINT_ENABLE | virq) << VINT_OFFSET(virq);  	dev->remote->int_device[virq >> 2] = val;  } | 
