Re: [PATCH] mmc: sleep notification

Ulf Hansson
2015-03-10T17:22:11Z

On 10 March 2015 at 17:32, Alex Lemberg <Alex.Lemberg@sandisk.com> wrote:
> Hi Adrian,
>
>> -----Original Message-----
>> From: Adrian Hunter [mailto:adrian.hunter@intel.com]
>> Sent: Tuesday, March 10, 2015 6:36 AM
>> To: Avi Shchislowski; ulf.hansson@linaro.org
>> Cc: linux-mmc@vger.kernel.org; chris@printf.net; Alex Lemberg
>> Subject: Re: [PATCH] mmc: sleep notification
>>
>> On 10/03/15 11:36, Avi Shchislowski wrote:
>> > This patch is implements the new additional state of
>> > Power_Off_Notification - SLEEP_NOTIFICATION.
>> > Until now, the implementation of Power_Off_Notification supported only
>> > three modes - POWERED_ON (0x01), POWER_OFF_SHORT (0x02) and
>> > POWER_OFF_LONG (0x03).
>> >
>> > As part of eMMC5.0 before moving to Sleep state hosts may set the
>> > POWER_OFF_NOTIFICATION byte to SLEEP_NOTIFICATION (0x04).
>> > After setting SLEEP_NOTIFICATION, host should wait for the busy line
>> > to be de-asserted.
>> > The max timeout allowed for busy line de-assertion defined in
>> > SLEEP_NOTIFICATION_TIME byte in EXT_CSD [216].
>> > HPI may interrupt the SLEEP_NOTIFICATION operation.
>> > In that case POWER_OFF_NOTIFICATION byte will restore to POWERED_ON.
>>
>> Is it so that the point of SLEEP_NOTIFICATION is to notify that VCC will be
>> powered off after the device is put to sleep by CMD5?
>
> From the spec:
>
> the host should issue a power off notification (POWER_OFF_LONG, POWER_OFF_SHORT )
> if it intends to turn off both VCC and VCCQ power supplies or it may use
> to a power off notification (SLEEP_NOTIFICATION ) if it intends to turn-off VCC
> after moving the device to Sleep state.

Ah, so CMD5 will still need to be issued. Thanks for clarifying.

>
>>
>> At the moment, the card does not get put to sleep if there is support for power-
>> off-notification?
>
> Driver will send Sleep only if PON is not supported...

Nope, that's not entirely correct.

The MMC core requires PON to be supported by the card and the host to
have MMC_CAP2_FULL_PWR_CYCLE set. Else it will send sleep (CMD5)
instead.

Kind regards
Uffe