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

From: Adrian Hunter
Date: Wed Nov 04 2020 - 06:55:31 EST


On 4/11/20 12:57 pm, Bean Huo wrote:
> On Tue, 2020-11-03 at 16:14 +0200, Adrian Hunter wrote:
>> DeepSleep is a UFS v3.1 feature that achieves the lowest power
>> consumption
>> of the device, apart from power off.
>>
>> In DeepSleep mode, no commands are accepted, and the only way to exit
>> is
>> using a hardware reset or power cycle.
>>
>> This patch assumes that if a power cycle was an option, then power
>> off
>> would be preferable, so only exit via a hardware reset is supported.
>>
>> 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.
>>
>> It is assumed that UFS devices with wspecversion >= 0x310 support
>> DeepSleep.
>>
>> Signed-off-by: Adrian Hunter <adrian.hunter@xxxxxxxxx>
>> ---
>> Documentation/ABI/testing/sysfs-driver-ufs | 34 +++++++++++--------
>> drivers/scsi/ufs/ufs-sysfs.c | 7 ++++
>> drivers/scsi/ufs/ufs.h | 1 +
>> drivers/scsi/ufs/ufshcd.c | 39
>> ++++++++++++++++++++--
>> drivers/scsi/ufs/ufshcd.h | 17 +++++++++-
>> include/trace/events/ufs.h | 3 +-
>> 6 files changed, 83 insertions(+), 18 deletions(-)
>>
>> diff --git a/Documentation/ABI/testing/sysfs-driver-ufs
>> b/Documentation/ABI/testing/sysfs-driver-ufs
>> index adc0d0e91607..e77fa784d6d8 100644
>> --- a/Documentation/ABI/testing/sysfs-driver-ufs
>> +++ b/Documentation/ABI/testing/sysfs-driver-ufs
>> @@ -916,21 +916,24 @@ Date: September 2014
>> Contact: Subhash Jadavani <subhashj@xxxxxxxxxxxxxx>
>> Description: This entry could be used to set or show the UFS device
>> runtime power management level. The current driver
>> - implementation supports 6 levels with next target
>> states:
>> + implementation supports 7 levels with next target
>> states:
>>
>> == ===================================================
>> =
>> - 0 an UFS device will stay active, an UIC link will
>> + 0 UFS device will stay active, UIC link will
>> stay active
>> - 1 an UFS device will stay active, an UIC link will
>> + 1 UFS device will stay active, UIC link will
>> hibernate
>> - 2 an UFS device will moved to sleep, an UIC link will
>> + 2 UFS device will be moved to sleep, UIC link will
>> stay active
>> - 3 an UFS device will moved to sleep, an UIC link will
>> + 3 UFS device will be moved to sleep, UIC link will
>> hibernate
>> - 4 an UFS device will be powered off, an UIC link will
>> + 4 UFS device will be powered off, UIC link will
>> hibernate
>> - 5 an UFS device will be powered off, an UIC link will
>> + 5 UFS device will be powered off, UIC link will
>> be powered off
>> + 6 UFS device will be moved to deep sleep, UIC link
>> + will be powered off. Note, deep sleep might not be
>> + supported in which case this value will not be accepted
>> == ===================================================
>> =
>>
>> What: /sys/bus/platform/drivers/ufshcd/*/rpm_target_d
>> ev_state
>> @@ -954,21 +957,24 @@ Date: September 2014
>> Contact: Subhash Jadavani <subhashj@xxxxxxxxxxxxxx>
>> Description: This entry could be used to set or show the UFS device
>> system power management level. The current driver
>> - implementation supports 6 levels with next target
>> states:
>> + implementation supports 7 levels with next target
>> states:
>>
>> == ===================================================
>> =
>
> Hi Adrian
> There doesn't have these equal sign lines in the sysfs-driver-ufs.
> maybe you should remove these. or add + prefix.

The "=" are from the patch below which is in v5.10-rc2

commit 54a19b4d3fe0fa0a31b46cd60951e8177cac25fa
Author: Mauro Carvalho Chehab <mchehab+huawei@xxxxxxxxxx>
Date: Fri Oct 30 08:40:50 2020 +0100

docs: ABI: cleanup several ABI documents

There are some ABI documents that, while they don't generate
any warnings, they have issues when parsed by get_abi.pl script
on its output result.

Address them, in order to provide a clean output.

Reviewed-by: Tom Rix <trix@xxxxxxxxxx> # for fpga-manager
Reviewed-By: Kajol Jain<kjain@xxxxxxxxxxxxx> # for sysfs-bus-event_source-devices-hv_gpci and sysfs-bus-event_source-devices-hv_24x7
Acked-by: Jonathan Cameron <Jonathan.Cameron@xxxxxxxxxx> #for IIO
Acked-by: Oded Gabbay <oded.gabbay@xxxxxxxxx> # for Habanalabs
Acked-by: Vaibhav Jain <vaibhav@xxxxxxxxxxxxx> # for sysfs-bus-papr-pmem
Acked-by: Cezary Rojewski <cezary.rojewski@xxxxxxxxx> # for catpt
Acked-by: Suzuki K Poulose <suzuki.poulose@xxxxxxx>
Acked-by: Ilya Dryomov <idryomov@xxxxxxxxx> # for rbd
Acked-by: Jonathan Corbet <corbet@xxxxxxx>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@xxxxxxxxxx>
Link: https://lore.kernel.org/r/5bc78e5b68ed1e9e39135173857cb2e753be868f.1604042072.git.mchehab+huawei@xxxxxxxxxx
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>