Граф коммитов

9 Коммитов

Автор SHA1 Сообщение Дата
Nathan Chancellor e093e53f4f power: avs: qcom-cpr: Avoid clang -Wsometimes-uninitialized in cpr_scale
Clang warns (trimmed for brevity):

../drivers/power/avs/qcom-cpr.c:570:13: warning: variable 'reg_mask' is
used uninitialized whenever 'if' condition is false
[-Wsometimes-uninitialized]

../drivers/power/avs/qcom-cpr.c:520:13: warning: variable 'new_uV' is
used uninitialized whenever 'if' condition is false
[-Wsometimes-uninitialized]

Due to the fact that Clang's static analysis happens before any
optimization passes are taken into account, it cannot see that both
branches in the if statement must be taken because dir cannot be
something other than UP or DOWN due to the check at the top of this
function. Change the else if condition to else to fix this false
positive.

Fixes: bf6910abf5 ("power: avs: Add support for CPR (Core Power Reduction)")
Link: https://github.com/ClangBuiltLinux/linux/issues/840
Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
Acked-by: Kevin Hilman <khilman@baylibre.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2020-01-31 11:07:43 +01:00
Niklas Cassel 03b10951e9 power: avs: qcom-cpr: add a printout after the driver has been initialized
In order to easier inform the user that the driver has been initialized
successfully, add a printout after the driver has been initialized.

At the same time, remove a dev_dbg() that is now redundant.

Signed-off-by: Niklas Cassel <nks@flawful.org>
Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2020-01-31 11:07:43 +01:00
YueHaibing f9900c178d power: avs: qcom-cpr: remove duplicated include from qcom-cpr.c
Remove duplicated include.

Signed-off-by: YueHaibing <yuehaibing@huawei.com>
Acked-by: Niklas Cassel <nks@flawful.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2020-01-08 23:25:22 +01:00
Colin Ian King 5aa0c46751 power: avs: fix uninitialized error return on failed cpr_read_fuse_uV() call
Currently when the call cpr_read_fuse_uV returns an error the value in the
uninitialized variable ret is returned. Fix this by instread returning the
error value in the variable uV.

Addresses-Coverity: ("Uninitialized scalar variable")
Fixes: bf6910abf5 ("power: avs: Add support for CPR (Core Power Reduction)")
Signed-off-by: Colin Ian King <colin.king@canonical.com>
Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2020-01-07 11:57:45 +01:00
Niklas Cassel 207ca274cd power: avs: qcom-cpr: make cpr_get_opp_hz_for_req() static
drivers/power/avs/qcom-cpr.c:1081:15:
warning: no previous prototype for ‘cpr_get_opp_hz_for_req’

Detected when running make with W=1.

Signed-off-by: Niklas Cassel <nks@flawful.org>
Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2019-12-29 22:11:22 +01:00
Niklas Cassel 9b8c249ee9 power: avs: qcom-cpr: remove set but unused variable
drivers/power/avs/qcom-cpr.c:896:35:
warning: variable ‘prev’ set but not used

Detected when running make with W=1.

Signed-off-by: Niklas Cassel <nks@flawful.org>
Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2019-12-29 22:11:22 +01:00
Niklas Cassel cad12cdeea power: avs: qcom-cpr: fix unsigned expression compared with zero
drivers/power/avs/qcom-cpr.c:1539:5-21:
warning: unsigned expression compared with zero: drv->num_corners < 0

Reported-by: kbuild test robot <lkp@intel.com>
Reported-by: Julia Lawall <julia.lawall@lip6.fr>
Signed-off-by: Niklas Cassel <nks@flawful.org>
Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2019-12-29 22:11:22 +01:00
Niklas Cassel e808926b4d power: avs: qcom-cpr: fix invalid printk specifier in debug print
drivers/power/avs/qcom-cpr.c:838:15:
warning: format ‘%ld’ expects argument of type ‘long int’, but argument 6 has type ‘ssize_t’

Reported-by: kbuild test robot <lkp@intel.com>
Signed-off-by: Niklas Cassel <nks@flawful.org>
Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2019-12-29 22:11:22 +01:00
Niklas Cassel bf6910abf5 power: avs: Add support for CPR (Core Power Reduction)
CPR (Core Power Reduction) is a technology that reduces core power on a
CPU or other device. It reads voltage settings in efuse from product
test process as initial settings.
Each OPP corresponds to a "corner" that has a range of valid voltages
for a particular frequency. While the device is running at a particular
frequency, CPR monitors dynamic factors such as temperature, etc. and
adjusts the voltage for that frequency accordingly to save power
and meet silicon characteristic requirements.

This driver is based on an RFC by Stephen Boyd[1], which in turn is
based on work by others on codeaurora.org[2].

[1] https://lkml.org/lkml/2015/9/18/833
[2] https://source.codeaurora.org/quic/la/kernel/msm-4.14/tree/drivers/regulator/cpr-regulator.c?h=msm-4.14

Co-developed-by: Jorge Ramirez-Ortiz <jorge.ramirez-ortiz@linaro.org>
Signed-off-by: Jorge Ramirez-Ortiz <jorge.ramirez-ortiz@linaro.org>
Signed-off-by: Niklas Cassel <niklas.cassel@linaro.org>
Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2019-12-20 10:25:24 +01:00