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

Commit e4f69372 authored by Venkatesh Pallipadi's avatar Venkatesh Pallipadi Committed by Len Brown
Browse files

ACPI x86: Cleanup acpi_cpufreq structures related to aperf/mperf



Change structure name to make the code cleaner and simpler. No
functionality change in this patch.

Signed-off-by: default avatarVenkatesh Pallipadi <venkatesh.pallipadi@intel.com>
Signed-off-by: default avatarLen Brown <len.brown@intel.com>
parent 577c9c45
Loading
Loading
Loading
Loading
+20 −22
Original line number Diff line number Diff line
@@ -241,23 +241,23 @@ static u32 get_cur_val(const struct cpumask *mask)
	return cmd.val;
}

struct perf_cur {
struct perf_pair {
	union {
		struct {
			u32 lo;
			u32 hi;
		} split;
		u64 whole;
	} aperf_cur, mperf_cur;
	} aperf, mperf;
};


static long read_measured_perf_ctrs(void *_cur)
{
	struct perf_cur *cur = _cur;
	struct perf_pair *cur = _cur;

	rdmsr(MSR_IA32_APERF, cur->aperf_cur.split.lo, cur->aperf_cur.split.hi);
	rdmsr(MSR_IA32_MPERF, cur->mperf_cur.split.lo, cur->mperf_cur.split.hi);
	rdmsr(MSR_IA32_APERF, cur->aperf.split.lo, cur->aperf.split.hi);
	rdmsr(MSR_IA32_MPERF, cur->mperf.split.lo, cur->mperf.split.hi);

	wrmsr(MSR_IA32_APERF, 0, 0);
	wrmsr(MSR_IA32_MPERF, 0, 0);
@@ -281,7 +281,7 @@ static long read_measured_perf_ctrs(void *_cur)
static unsigned int get_measured_perf(struct cpufreq_policy *policy,
				      unsigned int cpu)
{
	struct perf_cur cur;
	struct perf_pair cur;
	unsigned int perf_percent;
	unsigned int retval;

@@ -294,39 +294,37 @@ static unsigned int get_measured_perf(struct cpufreq_policy *policy,
	 * Get an approximate value. Return failure in case we cannot get
	 * an approximate value.
	 */
	if (unlikely(cur.aperf_cur.split.hi || cur.mperf_cur.split.hi)) {
	if (unlikely(cur.aperf.split.hi || cur.mperf.split.hi)) {
		int shift_count;
		u32 h;

		h = max_t(u32, cur.aperf_cur.split.hi, cur.mperf_cur.split.hi);
		h = max_t(u32, cur.aperf.split.hi, cur.mperf.split.hi);
		shift_count = fls(h);

		cur.aperf_cur.whole >>= shift_count;
		cur.mperf_cur.whole >>= shift_count;
		cur.aperf.whole >>= shift_count;
		cur.mperf.whole >>= shift_count;
	}

	if (((unsigned long)(-1) / 100) < cur.aperf_cur.split.lo) {
	if (((unsigned long)(-1) / 100) < cur.aperf.split.lo) {
		int shift_count = 7;
		cur.aperf_cur.split.lo >>= shift_count;
		cur.mperf_cur.split.lo >>= shift_count;
		cur.aperf.split.lo >>= shift_count;
		cur.mperf.split.lo >>= shift_count;
	}

	if (cur.aperf_cur.split.lo && cur.mperf_cur.split.lo)
		perf_percent = (cur.aperf_cur.split.lo * 100) /
				cur.mperf_cur.split.lo;
	if (cur.aperf.split.lo && cur.mperf.split.lo)
		perf_percent = (cur.aperf.split.lo * 100) / cur.mperf.split.lo;
	else
		perf_percent = 0;

#else
	if (unlikely(((unsigned long)(-1) / 100) < cur.aperf_cur.whole)) {
	if (unlikely(((unsigned long)(-1) / 100) < cur.aperf.whole)) {
		int shift_count = 7;
		cur.aperf_cur.whole >>= shift_count;
		cur.mperf_cur.whole >>= shift_count;
		cur.aperf.whole >>= shift_count;
		cur.mperf.whole >>= shift_count;
	}

	if (cur.aperf_cur.whole && cur.mperf_cur.whole)
		perf_percent = (cur.aperf_cur.whole * 100) /
				cur.mperf_cur.whole;
	if (cur.aperf.whole && cur.mperf.whole)
		perf_percent = (cur.aperf.whole * 100) / cur.mperf.whole;
	else
		perf_percent = 0;