Re: [PATCH] mmc: dw_mmc: Disable low power mode if SDIO interruptsare used

From: Will Newton
Date: Mon Jul 23 2012 - 05:19:11 EST


On Mon, Jul 23, 2012 at 3:48 AM, Doug Anderson <dianders@xxxxxxxxxxxx> wrote:
> On Sat, Jul 21, 2012 at 3:40 AM, Will Newton <will.newton@xxxxxxxxx> wrote:
>>> static void dw_mci_enable_sdio_irq(struct mmc_host *mmc, int enb)
>>> {
>>> struct dw_mci_slot *slot = mmc_priv(mmc);
>>> @@ -871,6 +896,14 @@ static void dw_mci_enable_sdio_irq(struct mmc_host *mmc, int enb)
>>> /* Enable/disable Slot Specific SDIO interrupt */
>>> int_mask = mci_readl(host, INTMASK);
>>> if (enb) {
>>> + /*
>>> + * Turn off low power mode if it was enabled. This is a bit of
>>> + * a heavy operation and we disable / enable IRQs a lot, so
>>> + * we'll leave them disabled; they will get re-enabled again in
>>> + * dw_mci_setup_bus().
>>> + */
>>> + dw_mci_disable_low_power(mmc);
>>> +
>>
>> Is it safe to just disable low power here or could the setting be
>> overwritten in setup_bus?
>
> Very good question. In my current setup I don't see setup_bus()
> called during normal operation. If it were, my kernel messages would
> be constantly spammed with messages like:
> Bus speed (slot %d) = %dHz (slot req %dHz, actual %dHZ div = %d)
>
> ...and they're not. Things may be different with different SDIO cards perhaps?

Yeah I think setup_bus should only setup the card clock once at
startup but it may also be required on resume?

I should probably mention I have not tested this driver with any SDIO
devices, although I believe there are other people out there who do!
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/