Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge master.kernel.org:/home/rmk/linux-2.6-arm

* master.kernel.org:/home/rmk/linux-2.6-arm:
[ARM] Fix Integrator and Versatile interrupt initialisation
[ARM] 3546/1: PATCH: subtle lost interrupts bug on i.MX
[ARM] 3547/1: PXA-OHCI: Allow platforms to specify a power budget
[ARM] Fix Neponset IRQ handling

+18 -8
+1 -1
arch/arm/mach-imx/irq.c
··· 127 127 imx_gpio_ack_irq(unsigned int irq) 128 128 { 129 129 DEBUG_IRQ("%s: irq %d\n", __FUNCTION__, irq); 130 - ISR(IRQ_TO_REG(irq)) |= 1 << ((irq - IRQ_GPIOA(0)) % 32); 130 + ISR(IRQ_TO_REG(irq)) = 1 << ((irq - IRQ_GPIOA(0)) % 32); 131 131 } 132 132 133 133 static void
+1 -4
arch/arm/mach-integrator/integrator_cp.c
··· 232 232 for (i = IRQ_PIC_START; i <= IRQ_PIC_END; i++) { 233 233 if (i == 11) 234 234 i = 22; 235 - if (i == IRQ_CP_CPPLDINT) 236 - i++; 237 235 if (i == 29) 238 236 break; 239 237 set_irq_chip(i, &pic_chip); ··· 257 259 set_irq_flags(i, IRQF_VALID | IRQF_PROBE); 258 260 } 259 261 260 - set_irq_handler(IRQ_CP_CPPLDINT, sic_handle_irq); 261 - pic_unmask_irq(IRQ_CP_CPPLDINT); 262 + set_irq_chained_handler(IRQ_CP_CPPLDINT, sic_handle_irq); 262 263 } 263 264 264 265 /*
+1
arch/arm/mach-pxa/spitz.c
··· 371 371 static struct pxaohci_platform_data spitz_ohci_platform_data = { 372 372 .port_mode = PMM_NPS_MODE, 373 373 .init = spitz_ohci_init, 374 + .power_budget = 150, 374 375 }; 375 376 376 377
+8
arch/arm/mach-sa1100/neponset.c
··· 59 59 if (irr & (IRR_ETHERNET | IRR_USAR)) { 60 60 desc->chip->mask(irq); 61 61 62 + /* 63 + * Ack the interrupt now to prevent re-entering 64 + * this neponset handler. Again, this is safe 65 + * since we'll check the IRR register prior to 66 + * leaving. 67 + */ 68 + desc->chip->ack(irq); 69 + 62 70 if (irr & IRR_ETHERNET) { 63 71 d = irq_desc + IRQ_NEPONSET_SMC9196; 64 72 desc_handle_irq(IRQ_NEPONSET_SMC9196, d, regs);
+2 -3
arch/arm/mach-versatile/core.c
··· 112 112 { 113 113 unsigned int i; 114 114 115 - vic_init(VA_VIC_BASE, IRQ_VIC_START, ~(1 << 31)); 115 + vic_init(VA_VIC_BASE, IRQ_VIC_START, ~0); 116 116 117 - set_irq_handler(IRQ_VICSOURCE31, sic_handle_irq); 118 - enable_irq(IRQ_VICSOURCE31); 117 + set_irq_chained_handler(IRQ_VICSOURCE31, sic_handle_irq); 119 118 120 119 /* Do second interrupt controller */ 121 120 writel(~0, VA_SIC_BASE + SIC_IRQ_ENABLE_CLEAR);
+3
drivers/usb/host/ohci-pxa27x.c
··· 185 185 /* Select Power Management Mode */ 186 186 pxa27x_ohci_select_pmm(inf->port_mode); 187 187 188 + if (inf->power_budget) 189 + hcd->power_budget = inf->power_budget; 190 + 188 191 ohci_hcd_init(hcd_to_ohci(hcd)); 189 192 190 193 retval = usb_add_hcd(hcd, pdev->resource[1].start, SA_INTERRUPT);
+2
include/asm-arm/arch-pxa/ohci.h
··· 11 11 #define PMM_NPS_MODE 1 12 12 #define PMM_GLOBAL_MODE 2 13 13 #define PMM_PERPORT_MODE 3 14 + 15 + int power_budget; 14 16 }; 15 17 16 18 extern void pxa_set_ohci_info(struct pxaohci_platform_data *info);