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 [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html