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

Commit 345ca962 authored by Saravana Kannan's avatar Saravana Kannan Committed by Stephen Boyd
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 da676f5d
Loading
Loading
Loading
Loading
+12 −5
Original line number Diff line number Diff line
@@ -1133,19 +1133,26 @@ static ssize_t available_frequencies_show(struct device *d,
	struct devfreq *df = to_devfreq(d);
	struct device *dev = df->dev.parent;
	struct dev_pm_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();
	do {
	use_opp = dev_pm_opp_get_opp_count(dev) > 0;
	while (use_opp || (!use_opp && i < max_state)) {
		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);
	}
	rcu_read_unlock();

	/* Truncate the trailing space */