On Sunday 13 February 2011 18:53:02 Shawn Guo wrote: > On Fri, Feb 11, 2011 at 08:35:34AM +0800, Shawn Guo wrote: > > > > > > + unsigned present:1; > > > > > > Your card detection by polling through this variable is > > > really bad for power management. Is there really no interrupt > > > that gets triggered when installing or removing a card? > > > > > Good point. Will try to use interrupt. > > > I'm trying to use interrupt for card detection. But unfortunately, > I got stuck for some reason. > > There is a known issue that mx28 gpio interrupt from bank0 can not > work, because the pin bank0 irq number 127 was used in > get_irqnr_and_base (entry-macro.S) to tell there is no pending > interrupt any more. > > The mmc0 cd pin has no problem to trigger interrupt, as it's GPIO_2_9. > But mmc1 cd pin can not, because it's GPIO_0_20. > > So I probably have to stay with polling. I'm not sure if I understand completely. Is this a fundamental restriction, or something that only happens on a specific board? Maybe you can do both polling and interrupt driven card detection in the driver, and make it depend on a board-specific quirk. E.g. if you pass an interrupt number in the platform data, it should just use the interrupt, but if the interrupt is missing, you can fall back to polling. Arnd -- To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html