ufs: Active Power Mode - configuring bActiveICCLevel
authorYaniv Gardi <ygardi@codeaurora.org>
Thu, 25 Sep 2014 12:32:27 +0000 (15:32 +0300)
committerChristoph Hellwig <hch@lst.de>
Wed, 1 Oct 2014 11:11:21 +0000 (13:11 +0200)
commit3a4bf06d1f6d7de17528b962bc91fcbb2e568b4e
treef57dcec75893f4b3505755e34b5b6a911bd236b4
parent1d337ec2f35e69a046dab0cc77e64e68d1cdcd8b
ufs: Active Power Mode - configuring bActiveICCLevel

The maximum power consumption in active is determined by bActiveICCLevel.
The configuration is done by reading max current supported by the
regulators connected to VCC, VCCQ and VCCQ2 rails on the boards, and
reading the current consumption levels from the device for each rails
(vcc/vccq/vccq2) using power descriptor.
We configure the bActiveICCLevel attribute, with the max value that
correspond to the minimum-of(VCC-current-level,VCCQ-current-level,
VCCQ2-current-level).
In order to minimize resume latency, pre-fetch icc levels and reference
clock during initialization and avoid reading them each link startup
during resume.

Signed-off-by: Raviv Shvili <rshvili@codeaurora.org>
Signed-off-by: Yaniv Gardi <ygardi@codeaurora.org>
Signed-off-by: Dolev Raviv <draviv@codeaurora.org>
Signed-off-by: Christoph Hellwig <hch@lst.de>
drivers/scsi/ufs/ufs.h
drivers/scsi/ufs/ufshcd.c
drivers/scsi/ufs/ufshcd.h