RE: [PATCH 1/2] scsi: ufs: Add DeepSleep feature

From: Avri Altman
Date: Mon Oct 05 2020 - 04:02:20 EST


HI,

> Drivers that wish to support DeepSleep need to set a new capability flag
> UFSHCD_CAP_DEEPSLEEP and provide a hardware reset via the existing
> ->device_reset() callback.
I would expect that this capability controls sending SSU 4, but it only controls the sysfs entry?

>
> It is assumed that UFS devices with wspecversion >= 0x310 support
> DeepSleep.
>
> The UFS specification says to set the IMMED (immediate) flag for the
> Start/Stop Unit command when entering DeepSleep. However some UFS
> devices object to that, which is addressed in a subsequent patch.
After failing to understand what the proper behavior should be with respect of the IMMED bit,
Although I read the applicable section few time, I gave up and consult our system guy,
Which is our jedec representative. This is his answer:
"...
In order to avoid uncertainty - the host need to set IMMED bit to '0' (this is explicitly specified by the standard).
The device responds only after it switches to Pre-DeepSleep state. The host then switch to H8 and this would trigger the device to transition to DeepSleep state.
..."

So maybe the 2nd patch isn't really needed.
Thanks,
Avri