Well, I'm not Guylhem, but here's how I've compiled it inside the kernel tree - just put Guylhem's mmc.c file into linux/drivers/block directory and added the following:
"tristate 'MMC SPI driver' CONFIG_BLK_DEV_MMC"
to linux/drivers/block/Config.in
and
"obj-$(CONFIG_BLK_DEV_MMC) += mmc.o"
to linux/drivers/block/Makefile
`make menuconfig` then choose "MMC SPI driver" to compile as a module.
That should do it.
Don't enable MMC support that exists in the latest kernels, it has nothing to do with this driver.
As far as power management goes, I think Guylhem is right. The driver needs hooks to apm to properly re-init the card after loss of power. I have my card powered up all the time, so I don't have this problem, but power drain even in idle mode seems to be significant, so I'm planning to re-wire it to some controlled 3.3V domain. Removing/Reloading the driver on apm events is not an option with storage devices IMHO, since it would invalidate its mount state. I'm not sure what would happen if the card is used as a swap device/file in this case...
-albertr