Lines Matching refs:policy

223 	if (epp > 0 && cpudata->policy == CPUFREQ_POLICY_PERFORMANCE) {
224 pr_debug("EPP cannot be set under performance policy\n");
478 static int amd_pstate_verify(struct cpufreq_policy_data *policy)
480 cpufreq_verify_within_cpu_limits(policy);
485 static int amd_pstate_update_min_max_limit(struct cpufreq_policy *policy)
488 struct amd_cpudata *cpudata = policy->driver_data;
490 max_limit_perf = div_u64(policy->max * cpudata->highest_perf, cpudata->max_freq);
491 min_limit_perf = div_u64(policy->min * cpudata->highest_perf, cpudata->max_freq);
502 WRITE_ONCE(cpudata->max_limit_freq, policy->max);
503 WRITE_ONCE(cpudata->min_limit_freq, policy->min);
508 static int amd_pstate_update_freq(struct cpufreq_policy *policy,
512 struct amd_cpudata *cpudata = policy->driver_data;
518 if (policy->min != cpudata->min_limit_freq || policy->max != cpudata->max_limit_freq)
519 amd_pstate_update_min_max_limit(policy);
525 freqs.old = policy->cur;
531 WARN_ON(fast_switch && !policy->fast_switch_enabled);
538 cpufreq_freq_transition_begin(policy, &freqs);
541 max_perf, fast_switch, policy->governor->flags);
544 cpufreq_freq_transition_end(policy, &freqs, false);
549 static int amd_pstate_target(struct cpufreq_policy *policy,
553 return amd_pstate_update_freq(policy, target_freq, false);
556 static unsigned int amd_pstate_fast_switch(struct cpufreq_policy *policy,
559 if (!amd_pstate_update_freq(policy, target_freq, true))
561 return policy->cur;
571 struct cpufreq_policy *policy = cpufreq_cpu_get(cpu);
572 struct amd_cpudata *cpudata = policy->driver_data;
575 if (policy->min != cpudata->min_limit_freq || policy->max != cpudata->max_limit_freq)
576 amd_pstate_update_min_max_limit(policy);
600 policy->cur = target_freq;
603 policy->governor->flags);
604 cpufreq_cpu_put(policy);
679 static int amd_pstate_set_boost(struct cpufreq_policy *policy, int state)
681 struct amd_cpudata *cpudata = policy->driver_data;
690 policy->cpuinfo.max_freq = cpudata->max_freq;
692 policy->cpuinfo.max_freq = cpudata->nominal_freq;
694 policy->max = policy->cpuinfo.max_freq;
697 policy->cpuinfo.max_freq);
799 struct cpufreq_policy *policy = cpufreq_cpu_get(cpu);
800 struct amd_cpudata *cpudata = policy->driver_data;
823 cpufreq_cpu_put(policy);
831 static int amd_pstate_cpu_init(struct cpufreq_policy *policy)
841 amd_perf_ctl_reset(policy->cpu);
842 dev = get_cpu_device(policy->cpu);
850 cpudata->cpu = policy->cpu;
870 policy->cpuinfo.transition_latency = AMD_PSTATE_TRANSITION_LATENCY;
871 policy->transition_delay_us = AMD_PSTATE_TRANSITION_DELAY;
873 policy->min = min_freq;
874 policy->max = max_freq;
876 policy->cpuinfo.min_freq = min_freq;
877 policy->cpuinfo.max_freq = max_freq;
880 policy->cur = policy->cpuinfo.min_freq;
883 policy->fast_switch_possible = true;
885 ret = freq_qos_add_request(&policy->constraints, &cpudata->req[0],
886 FREQ_QOS_MIN, policy->cpuinfo.min_freq);
892 ret = freq_qos_add_request(&policy->constraints, &cpudata->req[1],
893 FREQ_QOS_MAX, policy->cpuinfo.max_freq);
907 policy->driver_data = cpudata;
922 static int amd_pstate_cpu_exit(struct cpufreq_policy *policy)
924 struct amd_cpudata *cpudata = policy->driver_data;
928 policy->fast_switch_possible = false;
934 static int amd_pstate_cpu_resume(struct cpufreq_policy *policy)
945 static int amd_pstate_cpu_suspend(struct cpufreq_policy *policy)
963 static ssize_t show_amd_pstate_max_freq(struct cpufreq_policy *policy,
967 struct amd_cpudata *cpudata = policy->driver_data;
976 static ssize_t show_amd_pstate_lowest_nonlinear_freq(struct cpufreq_policy *policy,
980 struct amd_cpudata *cpudata = policy->driver_data;
993 static ssize_t show_amd_pstate_highest_perf(struct cpufreq_policy *policy,
997 struct amd_cpudata *cpudata = policy->driver_data;
1004 static ssize_t show_amd_pstate_prefcore_ranking(struct cpufreq_policy *policy,
1008 struct amd_cpudata *cpudata = policy->driver_data;
1015 static ssize_t show_amd_pstate_hw_prefcore(struct cpufreq_policy *policy,
1019 struct amd_cpudata *cpudata = policy->driver_data;
1027 struct cpufreq_policy *policy, char *buf)
1031 struct amd_cpudata *cpudata = policy->driver_data;
1033 if (cpudata->policy == CPUFREQ_POLICY_PERFORMANCE)
1046 struct cpufreq_policy *policy, const char *buf, size_t count)
1048 struct amd_cpudata *cpudata = policy->driver_data;
1068 struct cpufreq_policy *policy, char *buf)
1070 struct amd_cpudata *cpudata = policy->driver_data;
1291 static int amd_pstate_epp_cpu_init(struct cpufreq_policy *policy)
1302 amd_perf_ctl_reset(policy->cpu);
1303 dev = get_cpu_device(policy->cpu);
1311 cpudata->cpu = policy->cpu;
1331 policy->cpuinfo.min_freq = min_freq;
1332 policy->cpuinfo.max_freq = max_freq;
1334 policy->cur = policy->cpuinfo.min_freq;
1342 policy->driver_data = cpudata;
1346 policy->min = policy->cpuinfo.min_freq;
1347 policy->max = policy->cpuinfo.max_freq;
1350 * Set the policy to provide a valid fallback value in case
1355 policy->policy = CPUFREQ_POLICY_PERFORMANCE;
1357 policy->policy = CPUFREQ_POLICY_POWERSAVE;
1379 static int amd_pstate_epp_cpu_exit(struct cpufreq_policy *policy)
1381 pr_debug("CPU %d exiting\n", policy->cpu);
1385 static void amd_pstate_epp_update_limit(struct cpufreq_policy *policy)
1387 struct amd_cpudata *cpudata = policy->driver_data;
1394 max_limit_perf = div_u64(policy->max * cpudata->highest_perf, cpudata->max_freq);
1395 min_limit_perf = div_u64(policy->min * cpudata->highest_perf, cpudata->max_freq);
1412 if (cpudata->policy == CPUFREQ_POLICY_PERFORMANCE)
1426 cpudata->epp_policy = cpudata->policy;
1438 if (cpudata->policy == CPUFREQ_POLICY_PERFORMANCE)
1451 static int amd_pstate_epp_set_policy(struct cpufreq_policy *policy)
1453 struct amd_cpudata *cpudata = policy->driver_data;
1455 if (!policy->cpuinfo.max_freq)
1458 pr_debug("set_policy: cpuinfo.max %u policy->max %u\n",
1459 policy->cpuinfo.max_freq, policy->max);
1461 cpudata->policy = policy->policy;
1463 amd_pstate_epp_update_limit(policy);
1490 static int amd_pstate_epp_cpu_online(struct cpufreq_policy *policy)
1492 struct amd_cpudata *cpudata = policy->driver_data;
1504 static void amd_pstate_epp_offline(struct cpufreq_policy *policy)
1506 struct amd_cpudata *cpudata = policy->driver_data;
1533 static int amd_pstate_epp_cpu_offline(struct cpufreq_policy *policy)
1535 struct amd_cpudata *cpudata = policy->driver_data;
1543 amd_pstate_epp_offline(policy);
1548 static int amd_pstate_epp_verify_policy(struct cpufreq_policy_data *policy)
1550 cpufreq_verify_within_cpu_limits(policy);
1551 pr_debug("policy_max =%d, policy_min=%d\n", policy->max, policy->min);
1555 static int amd_pstate_epp_suspend(struct cpufreq_policy *policy)
1557 struct amd_cpudata *cpudata = policy->driver_data;
1575 static int amd_pstate_epp_resume(struct cpufreq_policy *policy)
1577 struct amd_cpudata *cpudata = policy->driver_data;