Re: [PATCH 0/7] mmc: core: Fixup ocr mask setup to prevent spec violation

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

 



On 16 September 2013 22:57, Guennadi Liakhovetski <g.liakhovetski@xxxxxx> wrote:
> Hi Ulf
>
> On Mon, 16 Sep 2013, Ulf Hansson wrote:
>
>> According to the eMMC/SD/SDIO specs the VDD voltage level must not be changed
>> during the initialization, without a complete power cycle of the card.
>>
>> Before this patchset, some host drivers were trying to change voltage level
>> at MMC_POWER_ON state, which is also what the protocol layer advised them to.
>> This was not correctly done and is the reason to why quite messy code in
>> the protocol layer has been needed, to handle a re-initialization sequence,
>> typically triggered from a power_restore or resume.
>>
>> I have tried to make each patch in the patchset as small and separate as
>> possible, surely the is room for improvments. Any suggestions are appreciated.
>>
>> An important note; MMC_CAP2_FULL_PWR_CYCLE, will need to be set by a host
>> to tell the protocol layer that the host is able to perform a complete power
>> cycle. Thus the protocol layer will try to negotiate the lowest possible VDD
>> voltage level between the card and host.

Hi Guennadi,

>
> I've got a question to this one. You mean a power cycle of a card, right?

Correct!

> What if the card power is supplied by a regulator. How do you tell whether
> you can power cycle it or not? Maybe you can theoretically switch that
> regulator - sometimes. On other occasions other users might be preventing
> it from really powering off. Do you really need a guarantee, that every
> time you issue a power down .set_ios() the card will really be switched
> off? I don't see how this can be possible in my example?

Yes, we need a guarantee to be able to conform to the specs.

In one of my cases I am also using a regulator, but from a board
configuration point of view I know I am the only user on this
regulator, thus I can be sure I can switch it off when I want.

I see your point though, and I am not sure how to adapt to this
configuration. I suggest you to not set the MMC_CAP2_FULL_PWR_CYCLE
for that mmc host - unless you can find a way to make sure you can cut
and restore power when needed.

Kind regards
Ulf Hansson

>
> Thanks
> Guennadi
>
>>
>>
>> Ulf Hansson (7):
>>   mmc: core: Let mmc_power_up|cycle take ocr as parameter
>>   mmc: core: Let mmc_set_signal_voltage take ocr as parameter
>>   mmc: core: Remove unnecessary retry mechanism at SDIO attach
>>   mmc: core: Cleanup code for setting ocr mask for SDIO
>>   mmc: core: Move cached value of the negotiated ocr mask to card
>>     struct
>>   mmc: core: Prevent violation of specs while initializing cards
>>   mmc: core: Collect common code for card ocr validation
>>
>>  drivers/mmc/core/core.c  |   66 +++++++++++++++++--------------------
>>  drivers/mmc/core/core.h  |    6 ++--
>>  drivers/mmc/core/mmc.c   |   29 +++++-----------
>>  drivers/mmc/core/sd.c    |   41 +++++++----------------
>>  drivers/mmc/core/sdio.c  |   82 ++++++++++++++--------------------------------
>>  include/linux/mmc/card.h |    1 +
>>  include/linux/mmc/host.h |    1 -
>>  7 files changed, 79 insertions(+), 147 deletions(-)
>>
>> --
>> 1.7.9.5
>>
>> --
>> 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
>>
>
> ---
> Guennadi Liakhovetski, Ph.D.
> Freelance Open-Source Software Developer
> http://www.open-technology.de/
--
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