| 68 | } |
| 69 | |
| 70 | int |
| 71 | rte_power_set_env(enum power_management_env env) |
| 72 | { |
| 73 | rte_spinlock_lock(&global_env_cfg_lock); |
| 74 | |
| 75 | if (global_default_env != PM_ENV_NOT_SET) { |
| 76 | RTE_LOG(ERR, POWER, "Power Management Environment already set.\n"); |
| 77 | rte_spinlock_unlock(&global_env_cfg_lock); |
| 78 | return -1; |
| 79 | } |
| 80 | |
| 81 | int ret = 0; |
| 82 | |
| 83 | if (env == PM_ENV_ACPI_CPUFREQ) { |
| 84 | rte_power_freqs = power_acpi_cpufreq_freqs; |
| 85 | rte_power_get_freq = power_acpi_cpufreq_get_freq; |
| 86 | rte_power_set_freq = power_acpi_cpufreq_set_freq; |
| 87 | rte_power_freq_up = power_acpi_cpufreq_freq_up; |
| 88 | rte_power_freq_down = power_acpi_cpufreq_freq_down; |
| 89 | rte_power_freq_min = power_acpi_cpufreq_freq_min; |
| 90 | rte_power_freq_max = power_acpi_cpufreq_freq_max; |
| 91 | rte_power_turbo_status = power_acpi_turbo_status; |
| 92 | rte_power_freq_enable_turbo = power_acpi_enable_turbo; |
| 93 | rte_power_freq_disable_turbo = power_acpi_disable_turbo; |
| 94 | rte_power_get_capabilities = power_acpi_get_capabilities; |
| 95 | } else if (env == PM_ENV_KVM_VM) { |
| 96 | rte_power_freqs = power_kvm_vm_freqs; |
| 97 | rte_power_get_freq = power_kvm_vm_get_freq; |
| 98 | rte_power_set_freq = power_kvm_vm_set_freq; |
| 99 | rte_power_freq_up = power_kvm_vm_freq_up; |
| 100 | rte_power_freq_down = power_kvm_vm_freq_down; |
| 101 | rte_power_freq_min = power_kvm_vm_freq_min; |
| 102 | rte_power_freq_max = power_kvm_vm_freq_max; |
| 103 | rte_power_turbo_status = power_kvm_vm_turbo_status; |
| 104 | rte_power_freq_enable_turbo = power_kvm_vm_enable_turbo; |
| 105 | rte_power_freq_disable_turbo = power_kvm_vm_disable_turbo; |
| 106 | rte_power_get_capabilities = power_kvm_vm_get_capabilities; |
| 107 | } else if (env == PM_ENV_PSTATE_CPUFREQ) { |
| 108 | rte_power_freqs = power_pstate_cpufreq_freqs; |
| 109 | rte_power_get_freq = power_pstate_cpufreq_get_freq; |
| 110 | rte_power_set_freq = power_pstate_cpufreq_set_freq; |
| 111 | rte_power_freq_up = power_pstate_cpufreq_freq_up; |
| 112 | rte_power_freq_down = power_pstate_cpufreq_freq_down; |
| 113 | rte_power_freq_min = power_pstate_cpufreq_freq_min; |
| 114 | rte_power_freq_max = power_pstate_cpufreq_freq_max; |
| 115 | rte_power_turbo_status = power_pstate_turbo_status; |
| 116 | rte_power_freq_enable_turbo = power_pstate_enable_turbo; |
| 117 | rte_power_freq_disable_turbo = power_pstate_disable_turbo; |
| 118 | rte_power_get_capabilities = power_pstate_get_capabilities; |
| 119 | |
| 120 | } else if (env == PM_ENV_CPPC_CPUFREQ) { |
| 121 | rte_power_freqs = power_cppc_cpufreq_freqs; |
| 122 | rte_power_get_freq = power_cppc_cpufreq_get_freq; |
| 123 | rte_power_set_freq = power_cppc_cpufreq_set_freq; |
| 124 | rte_power_freq_up = power_cppc_cpufreq_freq_up; |
| 125 | rte_power_freq_down = power_cppc_cpufreq_freq_down; |
| 126 | rte_power_freq_min = power_cppc_cpufreq_freq_min; |
| 127 | rte_power_freq_max = power_cppc_cpufreq_freq_max; |