Re: [PATCH v2 02/17] scsi: ufs: add option to change default UFS power management level

From: Rob Herring
Date: Thu Nov 12 2015 - 12:39:53 EST

On Mon, Oct 26, 2015 at 05:40:57PM +0200, Yaniv Gardi wrote:
> UFS device and link can be put in multiple different low power modes
> hence UFS driver supports multiple different low power modes.
> By default UFS driver selects the default (optimal) low power mode
> (which gives moderate power savings and have relatively less enter
> and exit latencies) but we might have to tune this default power
> mode for different chipset platforms to meet the low power
> requirements/goals. Hence this patch adds option to change default
> UFS low power mode (level).
> Signed-off-by: Subhash Jadavani <subhashj@xxxxxxxxxxxxxx>
> Signed-off-by: Yaniv Gardi <ygardi@xxxxxxxxxxxxxx>
> ---
> .../devicetree/bindings/ufs/ufshcd-pltfrm.txt | 8 +++++
> drivers/scsi/ufs/ufshcd-pltfrm.c | 17 +++++++++-
> drivers/scsi/ufs/ufshcd.c | 39 ++++++++++++++++++++++
> drivers/scsi/ufs/ufshcd.h | 4 +--
> 4 files changed, 65 insertions(+), 3 deletions(-)
> diff --git a/Documentation/devicetree/bindings/ufs/ufshcd-pltfrm.txt b/Documentation/devicetree/bindings/ufs/ufshcd-pltfrm.txt
> index 9fea0de..b7db1c9 100644
> --- a/Documentation/devicetree/bindings/ufs/ufshcd-pltfrm.txt
> +++ b/Documentation/devicetree/bindings/ufs/ufshcd-pltfrm.txt
> @@ -38,6 +38,14 @@ Optional properties:
> defined or a value in the array is "0" then it is assumed
> that the frequency is set by the parent clock or a
> fixed rate clock source.
> +- rpm-level : UFS Runtime power management level. Following PM levels are supported:
> + 0 - Both UFS device and Link in active state (Highest power consumption)
> + 1 - UFS device in active state but Link in Hibern8 state
> + 2 - UFS device in Sleep state but Link in active state
> + 3 - UFS device in Sleep state and Link in hibern8 state (default PM level)
> + 4 - UFS device in Power-down state and Link in Hibern8 state
> + 5 - UFS device in Power-down state and Link in OFF state (Lowest power consumption)
> +- spm-level : UFS System power management level. Allowed PM levels are same as rpm-level.

These seem too Linux specific. What would make them different for
runtime-PM vs. system suspend? Power mgmt capabilities in the kernel
change over time (and vary by OS), so you don't want to encode them into
DT. I would probably define separately what modes the phy supports and
the device supports.

Isn't hibern8 required by the MPHY or UniPro spec? If so, that should be
assumed to be supported and then have a quirk property to flag it as

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at