Commit 151531f7 authored by Dmitry Osipenko's avatar Dmitry Osipenko Committed by MyungJoo Ham
Browse files

PM / devfreq: tegra: Avoid inconsistency of current frequency value



The frequency value potentially could change in-between. It doesn't
cause any real problem at all right now, but that could change in the
future. Hence let's avoid the inconsistency.

Reviewed-by: default avatarChanwoo Choi <cw00.choi@samsung.com>
Signed-off-by: default avatarDmitry Osipenko <digetx@gmail.com>
Acked-by: default avatarThierry Reding <treding@nvidia.com>
Signed-off-by: default avatarMyungJoo Ham <myungjoo.ham@samsung.com>
parent 8fda5c1f
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -497,13 +497,15 @@ static int tegra_devfreq_get_dev_status(struct device *dev,
{
	struct tegra_devfreq *tegra = dev_get_drvdata(dev);
	struct tegra_devfreq_device *actmon_dev;
	unsigned long cur_freq;

	stat->current_frequency = tegra->cur_freq * KHZ;
	cur_freq = READ_ONCE(tegra->cur_freq);

	/* To be used by the tegra governor */
	stat->private_data = tegra;

	/* The below are to be used by the other governors */
	stat->current_frequency = cur_freq * KHZ;

	actmon_dev = &tegra->devices[MCALL];

@@ -514,7 +516,7 @@ static int tegra_devfreq_get_dev_status(struct device *dev,
	stat->busy_time *= 100 / BUS_SATURATION_RATIO;

	/* Number of cycles in a sampling period */
	stat->total_time = ACTMON_SAMPLING_PERIOD * tegra->cur_freq;
	stat->total_time = ACTMON_SAMPLING_PERIOD * cur_freq;

	stat->busy_time = min(stat->busy_time, stat->total_time);