Lines Matching +full:performance +full:- +full:domain
1 // SPDX-License-Identifier: GPL-2.0-or-later
3 * processor_throttling.c - Throttling submodule of the ACPI processor driver
9 * - Added processor hotplug support
29 * 0 -> acpi processor driver doesn't ignore _TPC values
30 * 1 -> acpi processor driver ignores _TPC values
38 int target_state; /* target T-state */
65 return -ENOMEM; in acpi_processor_update_tsd_coord()
68 * Now that we have _TSD data from all CPUs, lets setup T-state in acpi_processor_update_tsd_coord()
76 /* Basic validity check for domain info */ in acpi_processor_update_tsd_coord()
77 pthrottling = &(pr->throttling); in acpi_processor_update_tsd_coord()
84 if (!pthrottling->tsd_valid_flag) { in acpi_processor_update_tsd_coord()
85 retval = -EINVAL; in acpi_processor_update_tsd_coord()
99 pthrottling = &pr->throttling; in acpi_processor_update_tsd_coord()
101 pdomain = &(pthrottling->domain_info); in acpi_processor_update_tsd_coord()
102 cpumask_set_cpu(i, pthrottling->shared_cpu_map); in acpi_processor_update_tsd_coord()
105 * If the number of processor in the TSD domain is 1, it is in acpi_processor_update_tsd_coord()
108 if (pdomain->num_processors <= 1) in acpi_processor_update_tsd_coord()
111 /* Validate the Domain info */ in acpi_processor_update_tsd_coord()
112 count_target = pdomain->num_processors; in acpi_processor_update_tsd_coord()
122 match_pthrottling = &(match_pr->throttling); in acpi_processor_update_tsd_coord()
123 match_pdomain = &(match_pthrottling->domain_info); in acpi_processor_update_tsd_coord()
124 if (match_pdomain->domain != pdomain->domain) in acpi_processor_update_tsd_coord()
127 /* Here i and j are in the same domain. in acpi_processor_update_tsd_coord()
128 * If two TSD packages have the same domain, they in acpi_processor_update_tsd_coord()
133 if (match_pdomain->num_processors != count_target) { in acpi_processor_update_tsd_coord()
134 retval = -EINVAL; in acpi_processor_update_tsd_coord()
138 if (pdomain->coord_type != match_pdomain->coord_type) { in acpi_processor_update_tsd_coord()
139 retval = -EINVAL; in acpi_processor_update_tsd_coord()
144 cpumask_set_cpu(j, pthrottling->shared_cpu_map); in acpi_processor_update_tsd_coord()
154 match_pthrottling = &(match_pr->throttling); in acpi_processor_update_tsd_coord()
155 match_pdomain = &(match_pthrottling->domain_info); in acpi_processor_update_tsd_coord()
156 if (match_pdomain->domain != pdomain->domain) in acpi_processor_update_tsd_coord()
160 * If some CPUS have the same domain, they in acpi_processor_update_tsd_coord()
163 cpumask_copy(match_pthrottling->shared_cpu_map, in acpi_processor_update_tsd_coord()
164 pthrottling->shared_cpu_map); in acpi_processor_update_tsd_coord()
177 * Assume no coordination on any error parsing domain info. in acpi_processor_update_tsd_coord()
181 pthrottling = &(pr->throttling); in acpi_processor_update_tsd_coord()
182 cpumask_clear(pthrottling->shared_cpu_map); in acpi_processor_update_tsd_coord()
183 cpumask_set_cpu(i, pthrottling->shared_cpu_map); in acpi_processor_update_tsd_coord()
184 pthrottling->shared_type = DOMAIN_COORD_TYPE_SW_ALL; in acpi_processor_update_tsd_coord()
192 * Update the T-state coordination after the _TSD
198 pr_debug("Assume no T-state coordination\n"); in acpi_processor_throttling_init()
210 cpu = p_tstate->cpu; in acpi_processor_throttling_notifier()
216 if (!pr->flags.throttling) { in acpi_processor_throttling_notifier()
217 acpi_handle_debug(pr->handle, in acpi_processor_throttling_notifier()
222 target_state = p_tstate->target_state; in acpi_processor_throttling_notifier()
223 p_throttling = &(pr->throttling); in acpi_processor_throttling_notifier()
227 * Prechange event is used to choose one proper t-state, in acpi_processor_throttling_notifier()
230 p_limit = &pr->limit; in acpi_processor_throttling_notifier()
231 if (p_limit->thermal.tx > target_state) in acpi_processor_throttling_notifier()
232 target_state = p_limit->thermal.tx; in acpi_processor_throttling_notifier()
233 if (p_limit->user.tx > target_state) in acpi_processor_throttling_notifier()
234 target_state = p_limit->user.tx; in acpi_processor_throttling_notifier()
235 if (pr->throttling_platform_limit > target_state) in acpi_processor_throttling_notifier()
236 target_state = pr->throttling_platform_limit; in acpi_processor_throttling_notifier()
237 if (target_state >= p_throttling->state_count) { in acpi_processor_throttling_notifier()
238 pr_warn("Exceed the limit of T-state\n"); in acpi_processor_throttling_notifier()
239 target_state = p_throttling->state_count - 1; in acpi_processor_throttling_notifier()
241 p_tstate->target_state = target_state; in acpi_processor_throttling_notifier()
242 acpi_handle_debug(pr->handle, in acpi_processor_throttling_notifier()
243 "PreChange Event: target T-state of CPU %d is T%d\n", in acpi_processor_throttling_notifier()
249 * T-state flag of acpi_processor_throttling. in acpi_processor_throttling_notifier()
251 p_throttling->state = target_state; in acpi_processor_throttling_notifier()
252 acpi_handle_debug(pr->handle, in acpi_processor_throttling_notifier()
265 * _TPC - Throttling Present Capabilities
273 return -EINVAL; in acpi_processor_get_platform_limit()
278 status = acpi_evaluate_integer(pr->handle, "_TPC", NULL, &tpc); in acpi_processor_get_platform_limit()
281 acpi_evaluation_failure_warn(pr->handle, "_TPC", status); in acpi_processor_get_platform_limit()
283 return -ENODEV; in acpi_processor_get_platform_limit()
287 pr->throttling_platform_limit = (int)tpc; in acpi_processor_get_platform_limit()
308 throttling_limit = pr->throttling_platform_limit; in acpi_processor_tstate_has_changed()
309 if (throttling_limit >= pr->throttling.state_count) { in acpi_processor_tstate_has_changed()
311 return -EINVAL; in acpi_processor_tstate_has_changed()
314 current_state = pr->throttling.state; in acpi_processor_tstate_has_changed()
319 * t-states from high to low for better performance. in acpi_processor_tstate_has_changed()
323 limit = &pr->limit; in acpi_processor_tstate_has_changed()
325 if (limit->thermal.tx > target_state) in acpi_processor_tstate_has_changed()
326 target_state = limit->thermal.tx; in acpi_processor_tstate_has_changed()
327 if (limit->user.tx > target_state) in acpi_processor_tstate_has_changed()
328 target_state = limit->user.tx; in acpi_processor_tstate_has_changed()
348 * This function is used to reevaluate whether the T-state is valid
351 * the T-state.
353 * 2. the number of supported T-state
354 * 3. TSD domain
362 /* When one CPU is offline, the T-state throttling in acpi_processor_reevaluate_tstate()
365 pr->flags.throttling = 0; in acpi_processor_reevaluate_tstate()
368 /* the following is to recheck whether the T-state is valid for in acpi_processor_reevaluate_tstate()
371 if (!pr->throttling.state_count) { in acpi_processor_reevaluate_tstate()
372 /* If the number of T-state is invalid, it is in acpi_processor_reevaluate_tstate()
375 pr->flags.throttling = 0; in acpi_processor_reevaluate_tstate()
378 pr->flags.throttling = 1; in acpi_processor_reevaluate_tstate()
381 * policy (e.g.thermal) decide to lower performance if it in acpi_processor_reevaluate_tstate()
389 if (pr->throttling.state) { in acpi_processor_reevaluate_tstate()
397 pr->flags.throttling = 0; in acpi_processor_reevaluate_tstate()
400 * _PTC - Processor Throttling Control (and status) register location
411 status = acpi_evaluate_object(pr->handle, "_PTC", NULL, &buffer); in acpi_processor_get_throttling_control()
414 acpi_evaluation_failure_warn(pr->handle, "_PTC", status); in acpi_processor_get_throttling_control()
416 return -ENODEV; in acpi_processor_get_throttling_control()
420 if (!ptc || (ptc->type != ACPI_TYPE_PACKAGE) in acpi_processor_get_throttling_control()
421 || (ptc->package.count != 2)) { in acpi_processor_get_throttling_control()
423 result = -EFAULT; in acpi_processor_get_throttling_control()
431 obj = ptc->package.elements[0]; in acpi_processor_get_throttling_control()
437 result = -EFAULT; in acpi_processor_get_throttling_control()
440 memcpy(&pr->throttling.control_register, obj.buffer.pointer, in acpi_processor_get_throttling_control()
447 obj = ptc->package.elements[1]; in acpi_processor_get_throttling_control()
453 result = -EFAULT; in acpi_processor_get_throttling_control()
457 memcpy(&pr->throttling.status_register, obj.buffer.pointer, in acpi_processor_get_throttling_control()
460 throttling = &pr->throttling; in acpi_processor_get_throttling_control()
462 if ((throttling->control_register.bit_width + in acpi_processor_get_throttling_control()
463 throttling->control_register.bit_offset) > 32) { in acpi_processor_get_throttling_control()
465 result = -EFAULT; in acpi_processor_get_throttling_control()
469 if ((throttling->status_register.bit_width + in acpi_processor_get_throttling_control()
470 throttling->status_register.bit_offset) > 32) { in acpi_processor_get_throttling_control()
472 result = -EFAULT; in acpi_processor_get_throttling_control()
483 * _TSS - Throttling Supported States
495 status = acpi_evaluate_object(pr->handle, "_TSS", NULL, &buffer); in acpi_processor_get_throttling_states()
498 acpi_evaluation_failure_warn(pr->handle, "_TSS", status); in acpi_processor_get_throttling_states()
500 return -ENODEV; in acpi_processor_get_throttling_states()
504 if (!tss || (tss->type != ACPI_TYPE_PACKAGE)) { in acpi_processor_get_throttling_states()
506 result = -EFAULT; in acpi_processor_get_throttling_states()
510 acpi_handle_debug(pr->handle, "Found %d throttling states\n", in acpi_processor_get_throttling_states()
511 tss->package.count); in acpi_processor_get_throttling_states()
513 pr->throttling.state_count = tss->package.count; in acpi_processor_get_throttling_states()
514 pr->throttling.states_tss = in acpi_processor_get_throttling_states()
515 kmalloc_array(tss->package.count, in acpi_processor_get_throttling_states()
518 if (!pr->throttling.states_tss) { in acpi_processor_get_throttling_states()
519 result = -ENOMEM; in acpi_processor_get_throttling_states()
523 for (i = 0; i < pr->throttling.state_count; i++) { in acpi_processor_get_throttling_states()
526 (struct acpi_processor_tx_tss *)&(pr->throttling. in acpi_processor_get_throttling_states()
532 acpi_handle_debug(pr->handle, "Extracting state %d\n", i); in acpi_processor_get_throttling_states()
534 status = acpi_extract_package(&(tss->package.elements[i]), in acpi_processor_get_throttling_states()
537 acpi_handle_warn(pr->handle, "Invalid _TSS data: %s\n", in acpi_processor_get_throttling_states()
539 result = -EFAULT; in acpi_processor_get_throttling_states()
540 kfree(pr->throttling.states_tss); in acpi_processor_get_throttling_states()
544 if (!tx->freqpercentage) { in acpi_processor_get_throttling_states()
546 result = -EFAULT; in acpi_processor_get_throttling_states()
547 kfree(pr->throttling.states_tss); in acpi_processor_get_throttling_states()
559 * _TSD - T-State Dependencies
572 pthrottling = &pr->throttling; in acpi_processor_get_tsd()
573 pthrottling->tsd_valid_flag = 0; in acpi_processor_get_tsd()
575 status = acpi_evaluate_object(pr->handle, "_TSD", NULL, &buffer); in acpi_processor_get_tsd()
578 acpi_evaluation_failure_warn(pr->handle, "_TSD", status); in acpi_processor_get_tsd()
580 return -ENODEV; in acpi_processor_get_tsd()
584 if (!tsd || (tsd->type != ACPI_TYPE_PACKAGE)) { in acpi_processor_get_tsd()
586 result = -EFAULT; in acpi_processor_get_tsd()
590 if (tsd->package.count != 1) { in acpi_processor_get_tsd()
592 result = -EFAULT; in acpi_processor_get_tsd()
596 pdomain = &(pr->throttling.domain_info); in acpi_processor_get_tsd()
601 status = acpi_extract_package(&(tsd->package.elements[0]), in acpi_processor_get_tsd()
605 result = -EFAULT; in acpi_processor_get_tsd()
609 if (pdomain->num_entries != ACPI_TSD_REV0_ENTRIES) { in acpi_processor_get_tsd()
611 result = -EFAULT; in acpi_processor_get_tsd()
615 if (pdomain->revision != ACPI_TSD_REV0_REVISION) { in acpi_processor_get_tsd()
617 result = -EFAULT; in acpi_processor_get_tsd()
621 pthrottling = &pr->throttling; in acpi_processor_get_tsd()
622 pthrottling->tsd_valid_flag = 1; in acpi_processor_get_tsd()
623 pthrottling->shared_type = pdomain->coord_type; in acpi_processor_get_tsd()
624 cpumask_set_cpu(pr->id, pthrottling->shared_cpu_map); in acpi_processor_get_tsd()
630 if (pdomain->coord_type != DOMAIN_COORD_TYPE_SW_ALL && in acpi_processor_get_tsd()
631 pdomain->coord_type != DOMAIN_COORD_TYPE_SW_ANY && in acpi_processor_get_tsd()
632 pdomain->coord_type != DOMAIN_COORD_TYPE_HW_ALL) { in acpi_processor_get_tsd()
633 pthrottling->tsd_valid_flag = 0; in acpi_processor_get_tsd()
634 pthrottling->shared_type = DOMAIN_COORD_TYPE_SW_ALL; in acpi_processor_get_tsd()
642 /* --------------------------------------------------------------------------
644 -------------------------------------------------------------------------- */
653 return -EINVAL; in acpi_processor_get_throttling_fadt()
655 if (!pr->flags.throttling) in acpi_processor_get_throttling_fadt()
656 return -ENODEV; in acpi_processor_get_throttling_fadt()
659 * We don't care about error returns - we just try to mark in acpi_processor_get_throttling_fadt()
665 request_region(pr->throttling.address, 6, "ACPI CPU throttle"); in acpi_processor_get_throttling_fadt()
667 pr->throttling.state = 0; in acpi_processor_get_throttling_fadt()
669 duty_mask = pr->throttling.state_count - 1; in acpi_processor_get_throttling_fadt()
671 duty_mask <<= pr->throttling.duty_offset; in acpi_processor_get_throttling_fadt()
675 value = inl(pr->throttling.address); in acpi_processor_get_throttling_fadt()
683 duty_value >>= pr->throttling.duty_offset; in acpi_processor_get_throttling_fadt()
686 state = pr->throttling.state_count - duty_value; in acpi_processor_get_throttling_fadt()
689 pr->throttling.state = state; in acpi_processor_get_throttling_fadt()
693 acpi_handle_debug(pr->handle, in acpi_processor_get_throttling_fadt()
695 state, pr->throttling.states[state].performance); in acpi_processor_get_throttling_fadt()
705 int ret = -1; in acpi_throttling_rdmsr()
724 int ret = -1; in acpi_throttling_wrmsr()
742 return -1; in acpi_throttling_rdmsr()
748 return -1; in acpi_throttling_wrmsr()
759 int ret = -1; in acpi_read_throttling_status()
761 throttling = &pr->throttling; in acpi_read_throttling_status()
762 switch (throttling->status_register.space_id) { in acpi_read_throttling_status()
764 bit_width = throttling->status_register.bit_width; in acpi_read_throttling_status()
765 bit_offset = throttling->status_register.bit_offset; in acpi_read_throttling_status()
767 acpi_os_read_port((acpi_io_address) throttling->status_register. in acpi_read_throttling_status()
770 ptc_mask = (1 << bit_width) - 1; in acpi_read_throttling_status()
779 (u32) (throttling->status_register.space_id)); in acpi_read_throttling_status()
791 int ret = -1; in acpi_write_throttling_state()
793 throttling = &pr->throttling; in acpi_write_throttling_state()
794 switch (throttling->control_register.space_id) { in acpi_write_throttling_state()
796 bit_width = throttling->control_register.bit_width; in acpi_write_throttling_state()
797 bit_offset = throttling->control_register.bit_offset; in acpi_write_throttling_state()
798 ptc_mask = (1 << bit_width) - 1; in acpi_write_throttling_state()
801 acpi_os_write_port((acpi_io_address) throttling-> in acpi_write_throttling_state()
812 (u32) (throttling->control_register.space_id)); in acpi_write_throttling_state()
822 for (i = 0; i < pr->throttling.state_count; i++) { in acpi_get_throttling_state()
824 (struct acpi_processor_tx_tss *)&(pr->throttling. in acpi_get_throttling_state()
826 if (tx->control == value) in acpi_get_throttling_state()
829 return -1; in acpi_get_throttling_state()
835 int ret = -1; in acpi_get_throttling_value()
837 if (state >= 0 && state <= pr->throttling.state_count) { in acpi_get_throttling_value()
839 (struct acpi_processor_tx_tss *)&(pr->throttling. in acpi_get_throttling_value()
841 *value = tx->control; in acpi_get_throttling_value()
854 return -EINVAL; in acpi_processor_get_throttling_ptc()
856 if (!pr->flags.throttling) in acpi_processor_get_throttling_ptc()
857 return -ENODEV; in acpi_processor_get_throttling_ptc()
859 pr->throttling.state = 0; in acpi_processor_get_throttling_ptc()
865 if (state == -1) { in acpi_processor_get_throttling_ptc()
866 acpi_handle_debug(pr->handle, in acpi_processor_get_throttling_ptc()
874 pr->throttling.state = state; in acpi_processor_get_throttling_ptc()
884 return pr->throttling.acpi_processor_get_throttling(pr); in __acpi_processor_get_throttling()
890 return -EINVAL; in acpi_processor_get_throttling()
892 if (!pr->flags.throttling) in acpi_processor_get_throttling()
893 return -ENODEV; in acpi_processor_get_throttling()
901 if (!cpu_online(pr->id)) in acpi_processor_get_throttling()
902 return -ENODEV; in acpi_processor_get_throttling()
904 return call_on_cpu(pr->id, __acpi_processor_get_throttling, pr, false); in acpi_processor_get_throttling()
911 if (!pr->throttling.address) { in acpi_processor_get_fadt_info()
912 acpi_handle_debug(pr->handle, "No throttling register\n"); in acpi_processor_get_fadt_info()
913 return -EINVAL; in acpi_processor_get_fadt_info()
914 } else if (!pr->throttling.duty_width) { in acpi_processor_get_fadt_info()
915 acpi_handle_debug(pr->handle, "No throttling states\n"); in acpi_processor_get_fadt_info()
916 return -EINVAL; in acpi_processor_get_fadt_info()
919 else if ((pr->throttling.duty_offset + pr->throttling.duty_width) > 4) { in acpi_processor_get_fadt_info()
921 return -EINVAL; in acpi_processor_get_fadt_info()
924 pr->throttling.state_count = 1 << acpi_gbl_FADT.duty_width; in acpi_processor_get_fadt_info()
928 * performance relationship (at 50% performance the CPU will consume in acpi_processor_get_fadt_info()
932 step = (1000 / pr->throttling.state_count); in acpi_processor_get_fadt_info()
934 for (i = 0; i < pr->throttling.state_count; i++) { in acpi_processor_get_fadt_info()
935 pr->throttling.states[i].performance = 1000 - step * i; in acpi_processor_get_fadt_info()
936 pr->throttling.states[i].power = 1000 - step * i; in acpi_processor_get_fadt_info()
949 return -EINVAL; in acpi_processor_set_throttling_fadt()
951 if ((state < 0) || (state > (pr->throttling.state_count - 1))) in acpi_processor_set_throttling_fadt()
952 return -EINVAL; in acpi_processor_set_throttling_fadt()
954 if (!pr->flags.throttling) in acpi_processor_set_throttling_fadt()
955 return -ENODEV; in acpi_processor_set_throttling_fadt()
957 if (!force && (state == pr->throttling.state)) in acpi_processor_set_throttling_fadt()
960 if (state < pr->throttling_platform_limit) in acpi_processor_set_throttling_fadt()
961 return -EPERM; in acpi_processor_set_throttling_fadt()
966 duty_value = pr->throttling.state_count - state; in acpi_processor_set_throttling_fadt()
968 duty_value <<= pr->throttling.duty_offset; in acpi_processor_set_throttling_fadt()
971 duty_mask = pr->throttling.state_count - 1; in acpi_processor_set_throttling_fadt()
983 value = inl(pr->throttling.address); in acpi_processor_set_throttling_fadt()
986 outl(value, pr->throttling.address); in acpi_processor_set_throttling_fadt()
996 outl(value, pr->throttling.address); in acpi_processor_set_throttling_fadt()
999 outl(value, pr->throttling.address); in acpi_processor_set_throttling_fadt()
1002 pr->throttling.state = state; in acpi_processor_set_throttling_fadt()
1006 acpi_handle_debug(pr->handle, in acpi_processor_set_throttling_fadt()
1008 (pr->throttling.states[state].performance ? pr-> in acpi_processor_set_throttling_fadt()
1009 throttling.states[state].performance / 10 : 0)); in acpi_processor_set_throttling_fadt()
1021 return -EINVAL; in acpi_processor_set_throttling_ptc()
1023 if ((state < 0) || (state > (pr->throttling.state_count - 1))) in acpi_processor_set_throttling_ptc()
1024 return -EINVAL; in acpi_processor_set_throttling_ptc()
1026 if (!pr->flags.throttling) in acpi_processor_set_throttling_ptc()
1027 return -ENODEV; in acpi_processor_set_throttling_ptc()
1029 if (!force && (state == pr->throttling.state)) in acpi_processor_set_throttling_ptc()
1032 if (state < pr->throttling_platform_limit) in acpi_processor_set_throttling_ptc()
1033 return -EPERM; in acpi_processor_set_throttling_ptc()
1039 pr->throttling.state = state; in acpi_processor_set_throttling_ptc()
1048 struct acpi_processor *pr = arg->pr; in acpi_processor_throttling_fn()
1050 return pr->throttling.acpi_processor_set_throttling(pr, in acpi_processor_throttling_fn()
1051 arg->target_state, arg->force); in acpi_processor_throttling_fn()
1065 return -EINVAL; in __acpi_processor_set_throttling()
1067 if (!pr->flags.throttling) in __acpi_processor_set_throttling()
1068 return -ENODEV; in __acpi_processor_set_throttling()
1070 if ((state < 0) || (state > (pr->throttling.state_count - 1))) in __acpi_processor_set_throttling()
1071 return -EINVAL; in __acpi_processor_set_throttling()
1073 if (cpu_is_offline(pr->id)) { in __acpi_processor_set_throttling()
1075 * the cpu pointed by pr->id is offline. Unnecessary to change in __acpi_processor_set_throttling()
1078 return -ENODEV; in __acpi_processor_set_throttling()
1082 p_throttling = &(pr->throttling); in __acpi_processor_set_throttling()
1086 * affected cpu in order to get one proper T-state. in __acpi_processor_set_throttling()
1089 for_each_cpu_and(i, cpu_online_mask, p_throttling->shared_cpu_map) { in __acpi_processor_set_throttling()
1096 * to switch T-state. If the coordination type is SW_ALL or HW_ALL, in __acpi_processor_set_throttling()
1100 if (p_throttling->shared_type == DOMAIN_COORD_TYPE_SW_ANY) { in __acpi_processor_set_throttling()
1104 ret = call_on_cpu(pr->id, acpi_processor_throttling_fn, &arg, in __acpi_processor_set_throttling()
1108 * When the T-state coordination is SW_ALL or HW_ALL, in __acpi_processor_set_throttling()
1109 * it is necessary to set T-state for every affected in __acpi_processor_set_throttling()
1113 p_throttling->shared_cpu_map) { in __acpi_processor_set_throttling()
1120 acpi_handle_debug(pr->handle, in __acpi_processor_set_throttling()
1128 if (!match_pr->flags.throttling) { in __acpi_processor_set_throttling()
1129 acpi_handle_debug(pr->handle, in __acpi_processor_set_throttling()
1137 ret = call_on_cpu(pr->id, acpi_processor_throttling_fn, in __acpi_processor_set_throttling()
1144 * affected cpu to update the T-states. in __acpi_processor_set_throttling()
1147 for_each_cpu_and(i, cpu_online_mask, p_throttling->shared_cpu_map) { in __acpi_processor_set_throttling()
1167 acpi_handle_debug(pr->handle, in acpi_processor_get_throttling_info()
1169 pr->throttling.address, in acpi_processor_get_throttling_info()
1170 pr->throttling.duty_offset, in acpi_processor_get_throttling_info()
1171 pr->throttling.duty_width); in acpi_processor_get_throttling_info()
1180 pr->throttling.acpi_processor_get_throttling = in acpi_processor_get_throttling_info()
1182 pr->throttling.acpi_processor_set_throttling = in acpi_processor_get_throttling_info()
1187 pr->throttling.acpi_processor_get_throttling = in acpi_processor_get_throttling_info()
1189 pr->throttling.acpi_processor_set_throttling = in acpi_processor_get_throttling_info()
1198 pthrottling = &pr->throttling; in acpi_processor_get_throttling_info()
1199 pthrottling->tsd_valid_flag = 0; in acpi_processor_get_throttling_info()
1200 cpumask_set_cpu(pr->id, pthrottling->shared_cpu_map); in acpi_processor_get_throttling_info()
1201 pthrottling->shared_type = DOMAIN_COORD_TYPE_SW_ALL; in acpi_processor_get_throttling_info()
1210 acpi_handle_debug(pr->handle, in acpi_processor_get_throttling_info()
1211 "Throttling not supported on PIIX4 A- or B-step\n"); in acpi_processor_get_throttling_info()
1215 acpi_handle_debug(pr->handle, "Found %d throttling states\n", in acpi_processor_get_throttling_info()
1216 pr->throttling.state_count); in acpi_processor_get_throttling_info()
1218 pr->flags.throttling = 1; in acpi_processor_get_throttling_info()
1222 * thermal) decide to lower performance if it so chooses, but for now in acpi_processor_get_throttling_info()
1230 if (pr->throttling.state) { in acpi_processor_get_throttling_info()
1231 acpi_handle_debug(pr->handle, in acpi_processor_get_throttling_info()
1233 pr->throttling.state); in acpi_processor_get_throttling_info()
1241 pr->flags.throttling = 0; in acpi_processor_get_throttling_info()