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

Commit 6253be0f authored by Saravana Kannan's avatar Saravana Kannan
Browse files

PM / devfreq: Use freq_table for available_frequencies



Some devices use freq_table instead of OPP. For those devices, the
available_frequencies file shows up empty. Fix that by using freq_table to
generate the available_frequencies data when OPP is not present.

Change-Id: Ibea8b388ee81c55d2eeddd8a1e2c18c91faed8c7
Signed-off-by: default avatarSaravana Kannan <skannan@codeaurora.org>
parent 8c0c40d9
Loading
Loading
Loading
Loading
+11 −4
Original line number Diff line number Diff line
@@ -940,19 +940,26 @@ static ssize_t show_available_freqs(struct device *d,
	struct devfreq *df = to_devfreq(d);
	struct device *dev = df->dev.parent;
	struct opp *opp;
	unsigned int i = 0, max_state = df->profile->max_state;
	bool use_opp;
	ssize_t count = 0;
	unsigned long freq = 0;

	rcu_read_lock();
	use_opp = dev_pm_opp_get_opp_count(dev) > 0;
	do {
		if (use_opp) {
			opp = dev_pm_opp_find_freq_ceil(dev, &freq);
			if (IS_ERR(opp))
				break;
		} else {
			freq = df->profile->freq_table[i++];
		}

		count += scnprintf(&buf[count], (PAGE_SIZE - count - 2),
				   "%lu ", freq);
		freq++;
	} while (1);
	} while (use_opp || (!use_opp && i < max_state));
	rcu_read_unlock();

	/* Truncate the trailing space */