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

Reply via email to