Re: mmc: sdio: runtime PM and 8686 problems

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Dec 19, 2011 at 1:10 AM, Ohad Ben-Cohen <ohad@xxxxxxxxxx> wrote:

> We're slowly progressing towards understanding the issues we have with
> the 8686 (it seems there are a few different hw revisions of it, some
> of which do require toggling the reset pin before sending another init
> sequence), but it might take some more time until a solution fully
> materializes.
>
> Since 3.2 is just around the corner, I suggest we should now proceed
> with the revert (see patch below), and later revisit this once we have
> a complete solution in hand.

Has any progress been made on this issue?

I too have been trying to power down/up the wifi module on the Overo.
I'm seeing the same issue described in this thread.

Some additional data:

I rebuilt my kernel (3.2) with a CD GPIO enabled for the mmc port the module
is connected to and in turn connected that GPIO to another one that I
can toggle from user space.

Toggling the CD GPIO after powering back up the module does indeed
work properly -- the module is detected, the driver loaded, and proper function
restored.

So basically the procedure I've used is:

- decide wifi can be powered down
- unload the libertas modules
- put the wifi hw in reset with gpio16
- wait till wifi is needed again
- take the chip out of reset
- toggle the CD gpio
- libertas modules are autoloaded, as is the firmware
- wifi is up and functioning

So the next step is to get rid of the silly two GPIO external hardware
hack.  Is it possible to trigger a card insertion/removal event via
some standard API?

Or does the above information provide a clue as to why normal code
paths don't work?

Any other ideas?

Steve


>> When SDIO runtime PM was originally introduced, we immediately faced
>> two regressions with two different chipsets, and in response decided
>> not to enable it by default.
>>
>> With your work on the 8686 we hoped we found all the gotchas, so
>> 08da834 did make sense (at least experimentally).
>>
>> Unfortunately we now see that some setups out there still refuse to
>> work when SDIO runtime PM is enabled by default, and obviously we
>> can't live with these kind of regressions.
>>
>> commit fd9fec7a00f58a16803e37a99a014ef82543ef6f
>> Author: Ohad Ben-Cohen <ohad@xxxxxxxxxx>
>> Date:   Wed Nov 30 16:22:13 2011 +0200
>>
>>    Revert "mmc: enable runtime PM by default"
>>
>>    When SDIO runtime PM was originally introduced, we immediately faced
>>    two regressions with two different chipsets, and in response decided
>>    not to enable it by default.
>>
>>    With the recent work on the 8686 we hoped we found all the gotchas,
>>    so 08da834 did make sense (at least experimentally).
>>
>>    Unfortunately we now see that some setups out there still refuse to work
>>    when SDIO runtime PM is enabled by default (see
>>    http://www.spinics.net/lists/linux-mmc/msg11161.html), and obviously we
>>    can't live with these kind of regressions.
>>
>>    This reverts commit 08da834a24312157f512224691ad1fddd11c1073.
>>
>>    Signed-off-by: Ohad Ben-Cohen <ohad@xxxxxxxxxx>
>>    Cc: Daniel Drake <dsd@xxxxxxxxxx>
>>
>> diff --git a/drivers/mmc/core/host.c b/drivers/mmc/core/host.c
>> index e8a5eb3..d31c78b 100644
>> --- a/drivers/mmc/core/host.c
>> +++ b/drivers/mmc/core/host.c
>> @@ -302,17 +302,6 @@ struct mmc_host *mmc_alloc_host(int extra, struct
>> device *dev)
>>        host->max_blk_size = 512;
>>        host->max_blk_count = PAGE_CACHE_SIZE / 512;
>>
>> -       /*
>> -        * Enable runtime power management by default. This flag was added due
>> -        * to runtime power management causing disruption for some users, but
>> -        * the power on/off code has been improved since then.
>> -        *
>> -        * We'll enable this flag by default as an experiment, and if no
>> -        * problems are reported, we will follow up later and remove the flag
>> -        * altogether.
>> -        */
>> -       host->caps = MMC_CAP_POWER_OFF_CARD;
>> -
>>        return host;
>>
>>  free:
> --
> 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
--
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


[Index of Archives]     [Linux USB Devel]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux