Hi, Ralf I will split the coming patchset as three parts? 1. fixes of old support 2. loongson2f support 3. lemote 2f family machines support is this okay? Regards, Wu Zhangjin On Fri, 2009-11-06 at 09:30 +0100, Ralf Baechle wrote: > On Fri, Nov 06, 2009 at 01:39:44PM +0800, Wu Zhangjin wrote: > > > > > + if ((LOONGSON_INTISR & LOONGSON_INTEN) & LOONGSON_INT_BIT_INT0) { > > > > + imr = inb(0x21) | (inb(0xa1) << 8); > > > > + isr = inb(0x20) | (inb(0xa0) << 8); > > > > + isr &= ~0x4; /* irq2 for cascade */ > > > > + isr &= ~imr; > > > > + irq = ffs(isr) - 1; > > > > + } > > > > > > Any reason why you're not using i8259_irq() from <asm/i8259.h> here? > > > That function not only gets the locking right, it also minimizes the number > > > of accesses to the i8259 - which even on modern silicon can be stuningly > > > slow. > > > Just asked Yanhua, He told me there is a bug in cs5536, if using the > > i8259_irq() directly, we can not get the irq. and just tried it, the > > kernel hang on booting. > > Wonderful. Even 30 years after it was built there are still new i8259 > bugs :-) > > This is probably worth a comment in the code. > > Ralf