Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit aa2a2ab7 authored by Jordan Crouse's avatar Jordan Crouse Committed by Rob Clark
Browse files

drm/msm/adreno: Call dev_pm_opp_put()



We need to call dev_pm_opp_put() to put back the reference
for the OPP struct after calling the various dev_pm_opp_get_*
functions.

Signed-off-by: default avatarJordan Crouse <jcrouse@codeaurora.org>
Signed-off-by: default avatarRob Clark <robdclark@gmail.com>
parent 9dcfbc18
Loading
Loading
Loading
Loading
+7 −1
Original line number Original line Diff line number Diff line
@@ -103,10 +103,16 @@ static inline uint32_t _get_mvolts(struct msm_gpu *gpu, uint32_t freq)
	struct msm_drm_private *priv = dev->dev_private;
	struct msm_drm_private *priv = dev->dev_private;
	struct platform_device *pdev = priv->gpu_pdev;
	struct platform_device *pdev = priv->gpu_pdev;
	struct dev_pm_opp *opp;
	struct dev_pm_opp *opp;
	u32 ret = 0;


	opp = dev_pm_opp_find_freq_exact(&pdev->dev, freq, true);
	opp = dev_pm_opp_find_freq_exact(&pdev->dev, freq, true);


	return (!IS_ERR(opp)) ? dev_pm_opp_get_voltage(opp) / 1000 : 0;
	if (!IS_ERR(opp)) {
		ret = dev_pm_opp_get_voltage(opp) / 1000;
		dev_pm_opp_put(opp);
	}

	return ret;
}
}


/* Setup thermal limit management */
/* Setup thermal limit management */
+3 −1
Original line number Original line Diff line number Diff line
@@ -247,8 +247,10 @@ static int adreno_get_pwrlevels(struct device *dev,


	/* Find the fastest defined rate */
	/* Find the fastest defined rate */
	opp = dev_pm_opp_find_freq_floor(dev, &freq);
	opp = dev_pm_opp_find_freq_floor(dev, &freq);
	if (!IS_ERR(opp))
	if (!IS_ERR(opp)) {
		config->fast_rate = dev_pm_opp_get_freq(opp);
		config->fast_rate = dev_pm_opp_get_freq(opp);
		dev_pm_opp_put(opp);
	}


	if (!config->fast_rate) {
	if (!config->fast_rate) {
		DRM_DEV_INFO(dev,
		DRM_DEV_INFO(dev,