In sdhci_set_ios() we call sdhci_set_power() this code assumes that the SDHCI_POWER_CONTROL register works in the SD controller. In our controller it does not. We need a regulator to do the right thing. I hae added regulator support (patch coming) BUT the code crashes because we are scheduling in atomic context when sdhci_set_power() is called. the current "hack" is spin_unlock_irqrestore(&host->lock, flags); printk("%s/%d: ios->power_mode = %x\n", __func__, __LINE__, ios->power_mode); if (ios->power_mode == MMC_POWER_OFF) sdhci_set_power(host, -1); else sdhci_set_power(host, ios->vdd); spin_lock_irqsave(&host->lock, flags); I could just disable the interrupt line on the controller while I do this change (like I proposed before) but maybe someone knows another way to get there from here. Philip -- 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