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]

 



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.

I've got a question to this one. You mean a power cycle of a card, right? 
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?

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