Christophe JAILLET
6049aae523
PM: AVS: qcom-cpr: Fix an error handling path in cpr_probe()
...
If an error occurs after a successful pm_genpd_init() call, it should be
undone by a corresponding pm_genpd_remove().
Add the missing call in the error handling path, as already done in the
remove function.
Fixes: bf6910abf5 ("power: avs: Add support for CPR (Core Power Reduction)")
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr >
Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org >
Signed-off-by: Bjorn Andersson <andersson@kernel.org >
Link: https://lore.kernel.org/r/0f520597dbad89ab99c217c8986912fa53eaf5f9.1671293108.git.christophe.jaillet@wanadoo.fr
2023-01-10 09:48:13 -06:00
Changcheng Deng
92c550f9ff
PM: AVS: qcom-cpr: Use div64_ul instead of do_div
...
do_div() does a 64-by-32 division. Here the divisor is an unsigned long
which on some platforms is 64 bit wide. So use div64_ul instead of do_div
to avoid a possible truncation.
Reported-by: Zeal Robot <zealci@zte.com.cn >
Signed-off-by: Changcheng Deng <deng.changcheng@zte.com.cn >
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org >
Link: https://lore.kernel.org/r/20211125014311.45942-1-deng.changcheng@zte.com.cn
2021-12-20 19:10:09 -06:00
Cai Huoqing
0e6fda9c65
PM: AVS: qcom-cpr: Make use of the helper function devm_platform_ioremap_resource()
...
Use the devm_platform_ioremap_resource() helper instead of
calling platform_get_resource() and devm_ioremap_resource()
separately
Signed-off-by: Cai Huoqing <caihuoqing@baidu.com >
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org >
Link: https://lore.kernel.org/r/20210908080216.1301-1-caihuoqing@baidu.com
2021-09-21 17:41:48 -05:00
Douglas Anderson
6feba6a62c
PM: AVS: qcom-cpr: Use nvmem_cell_read_variable_le_u32()
...
Let's delete the private function cpr_read_efuse() since it does the
basically the same thing as the new API call
nvmem_cell_read_variable_le_u32().
Differences between the new API call and the old private function:
* less error printing (I assume this is OK).
* will give an error if the value doesn't fit in 32-bits (the old code
would have truncated silently).
Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org >
Acked-by: Niklas Cassel <nks@flawful.org >
Signed-off-by: Douglas Anderson <dianders@chromium.org >
Link: https://lore.kernel.org/r/20210521134437.v2.1.Id1c70158722750aec0673d60c12e46a9c66bbfed@changeid
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org >
2021-08-03 18:00:18 -05:00
Ulf Hansson
a7305e684f
PM: AVS: qcom-cpr: Move the driver to the qcom specific drivers
...
The avs drivers are all SoC specific drivers that doesn't share any code.
Instead they are located in a directory, mostly to keep similar
functionality together. From a maintenance point of view, it makes better
sense to collect SoC specific drivers like these, into the SoC specific
directories.
Therefore, let's move the qcom-cpr driver to the qcom directory.
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org >
Acked-by: Bjorn Andersson <bjorn.andersson@linaro.org >
Acked-by: Niklas Cassel <nks@flawful.org >
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com >
2020-10-22 18:38:21 +02:00