Hello, The following set of patches remove demoboard-specific code from the au1xmmc.c driver and adds new features. My main motivation was to let boards implement other carddetect schemes, since on one of my boards the driver-implemented poll timer doesn't work for some unknown reason. But this board does have a dedicated carddetect IRQ and card-present/card-readonly indicators which are incompatible with the Db1200 implementation. I also took the opportunity to clean up the drivers probe() and irq() handlers to make it a "proper" platform device (patches #3 and #4) and add a few other features. Patch #1 is required to get the driver to build as a module. Patch #2 is required to be able to load/unload the driver > 16 times. Patches #5 and #6 implement new features. Patch #7 does a little codingstyle cleanup, no functional changes. Patch #8 adds an optimization to the request callback. Patch #9 adds back pb1200 MMC activity LED support (patch #3 removes it). patches #3-#9 are intended to be applied on top of each other, against current mainline git (2.6.23-rc3). Changes since V2: - address almost all Sergei Shtylyov's comments: pb1200/db1200 mmc device registration moved back to original location, remove the au1xmmc.h header as part of codingstyle cleanup other nits. - 2 more patches (#8, #9) Changes since V1: - fix a bug in patch #6: SDIO irq should be checked for independently from other irq events. - more trivial cleanups Db1200 users, please test! I verified the poll timer works on one of older boards, however since I don't have Db1200 and Pb1200 boards I'm not sure whether the driver still works with both SD controllers enabled! Thanks! Manuel Lauss