On Sun, Jul 13, 2003 at 11:00:16AM +0100, Russell King wrote: > On Sun, Jul 13, 2003 at 12:50:33PM +0300, Jaakko Niemi wrote: > > Alan Cox writes: > > > On Sad, 2003-07-12 at 17:48, Wiktor Wodecki wrote: > > >> > + * If ISA interrupts don't work, then fall back to routing card > > >> > + * interrupts to the PCI interrupt of the socket. > > >> > + */ > > >> > + if (!socket->socket.irq_mask) { > > >> > + int irqmux, devctl; > > >> > + > > > > > > See the fix posted to the list a while ago and apply that and all should > > > be well. The change you refer to breaks for some setups > > > > Was the fix against drivers/pcmcia/ti113x.h ? (other than backing off > > that patch..). If so, then I'm unable to locate it. Looks like I need > > local lkml archive anyway :) > > The patch never went anywhere near lkml. It was sent to Pat Mochel > primerily for testing (since Pat was able to produce the feedback > last time around to solve the problem.) However, I haven't heard back > from Pat. > > I won't even bother putting this into my bk tree and asking Linus to > pull; I'm sure someone else will integrate this into the kernel tree > for me. (as happened previously, and as a result I need to sort out > my bk tree.) oh, I'm sorry, I must have missed this patch. I just applied it on top of 2.5.75-bk2 and it fixes the problem for me. Please apply it and tell linus, thinks like that happen - don't be grumpy please :-) > > --- orig/drivers/pcmcia/ti113x.h Wed Jul 2 22:44:06 2003 > +++ linux/drivers/pcmcia/ti113x.h Sun Jul 6 22:52:41 2003 > @@ -179,21 +179,26 @@ > /* > * If ISA interrupts don't work, then fall back to routing card > * interrupts to the PCI interrupt of the socket. > + * > + * Tweaking this when we are using serial PCI IRQs causes hangs > + * --rmk > */ > if (!socket->socket.irq_mask) { > - int irqmux, devctl; > - > - printk (KERN_INFO "ti113x: Routing card interrupts to PCI\n"); > + u8 irqmux, devctl; > > devctl = config_readb(socket, TI113X_DEVICE_CONTROL); > - devctl &= ~TI113X_DCR_IMODE_MASK; > + if (devctl & TI113X_DCR_IMODE_MASK != TI12XX_DCR_IMODE_ALL_SERIAL) { > + printk (KERN_INFO "ti113x: Routing card interrupts to PCI\n"); > + > + devctl &= ~TI113X_DCR_IMODE_MASK; > > - irqmux = config_readl(socket, TI122X_IRQMUX); > - irqmux = (irqmux & ~0x0f) | 0x02; /* route INTA */ > - irqmux = (irqmux & ~0xf0) | 0x20; /* route INTB */ > + irqmux = config_readl(socket, TI122X_IRQMUX); > + irqmux = (irqmux & ~0x0f) | 0x02; /* route INTA */ > + irqmux = (irqmux & ~0xf0) | 0x20; /* route INTB */ > > - config_writel(socket, TI122X_IRQMUX, irqmux); > - config_writeb(socket, TI113X_DEVICE_CONTROL, devctl); > + config_writel(socket, TI122X_IRQMUX, irqmux); > + config_writeb(socket, TI113X_DEVICE_CONTROL, devctl); > + } > } > > socket->socket.ss_entry->init = ti_init; > > > -- > Russell King (rmk@arm.linux.org.uk) The developer of ARM Linux > http://www.arm.linux.org.uk/personal/aboutme.html -- Regards, Wiktor Wodecki