diff options
| author | Christoph Niedermaier <cniedermaier@dh-electronics.com> | 2023-05-12 17:07:11 +0200 | 
|---|---|---|
| committer | Viresh Kumar <viresh.kumar@linaro.org> | 2023-05-15 14:42:33 +0530 | 
| commit | 11a3b0ac33d95aa84be426e801f800997262a225 (patch) | |
| tree | 10e09ad65187af7c6e722d80a4a1c58753d20402 | |
| parent | dcfce7c2cee481853e7717890e1e2d6daba354c4 (diff) | |
cpufreq: imx6q: don't warn for disabling a non-existing frequency
It is confusing if a warning is given for disabling a non-existent
frequency of the operating performance points (OPP). In this case
the function dev_pm_opp_disable() returns -ENODEV. Check the return
value and avoid the output of a warning in this case. Avoid code
duplication by using a separate function.
Signed-off-by: Christoph Niedermaier <cniedermaier@dh-electronics.com>
[ Viresh : Updated commit subject ]
Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
| -rw-r--r-- | drivers/cpufreq/imx6q-cpufreq.c | 30 | 
1 files changed, 16 insertions, 14 deletions
| diff --git a/drivers/cpufreq/imx6q-cpufreq.c b/drivers/cpufreq/imx6q-cpufreq.c index 48e1772e98fd..9fb1501033bb 100644 --- a/drivers/cpufreq/imx6q-cpufreq.c +++ b/drivers/cpufreq/imx6q-cpufreq.c @@ -209,6 +209,14 @@ static struct cpufreq_driver imx6q_cpufreq_driver = {  	.suspend = cpufreq_generic_suspend,  }; +static void imx6x_disable_freq_in_opp(struct device *dev, unsigned long freq) +{ +	int ret = dev_pm_opp_disable(dev, freq); + +	if (ret < 0 && ret != -ENODEV) +		dev_warn(dev, "failed to disable %ldMHz OPP\n", freq / 1000000); +} +  #define OCOTP_CFG3			0x440  #define OCOTP_CFG3_SPEED_SHIFT		16  #define OCOTP_CFG3_SPEED_1P2GHZ		0x3 @@ -254,17 +262,15 @@ static int imx6q_opp_check_speed_grading(struct device *dev)  	val &= 0x3;  	if (val < OCOTP_CFG3_SPEED_996MHZ) -		if (dev_pm_opp_disable(dev, 996000000)) -			dev_warn(dev, "failed to disable 996MHz OPP\n"); +		imx6x_disable_freq_in_opp(dev, 996000000);  	if (of_machine_is_compatible("fsl,imx6q") ||  	    of_machine_is_compatible("fsl,imx6qp")) {  		if (val != OCOTP_CFG3_SPEED_852MHZ) -			if (dev_pm_opp_disable(dev, 852000000)) -				dev_warn(dev, "failed to disable 852MHz OPP\n"); +			imx6x_disable_freq_in_opp(dev, 852000000); +  		if (val != OCOTP_CFG3_SPEED_1P2GHZ) -			if (dev_pm_opp_disable(dev, 1200000000)) -				dev_warn(dev, "failed to disable 1.2GHz OPP\n"); +			imx6x_disable_freq_in_opp(dev, 1200000000);  	}  	return 0; @@ -316,20 +322,16 @@ static int imx6ul_opp_check_speed_grading(struct device *dev)  	val >>= OCOTP_CFG3_SPEED_SHIFT;  	val &= 0x3; -	if (of_machine_is_compatible("fsl,imx6ul")) { +	if (of_machine_is_compatible("fsl,imx6ul"))  		if (val != OCOTP_CFG3_6UL_SPEED_696MHZ) -			if (dev_pm_opp_disable(dev, 696000000)) -				dev_warn(dev, "failed to disable 696MHz OPP\n"); -	} +			imx6x_disable_freq_in_opp(dev, 696000000);  	if (of_machine_is_compatible("fsl,imx6ull")) {  		if (val != OCOTP_CFG3_6ULL_SPEED_792MHZ) -			if (dev_pm_opp_disable(dev, 792000000)) -				dev_warn(dev, "failed to disable 792MHz OPP\n"); +			imx6x_disable_freq_in_opp(dev, 792000000);  		if (val != OCOTP_CFG3_6ULL_SPEED_900MHZ) -			if (dev_pm_opp_disable(dev, 900000000)) -				dev_warn(dev, "failed to disable 900MHz OPP\n"); +			imx6x_disable_freq_in_opp(dev, 900000000);  	}  	return ret; | 
