Lines Matching +full:used +full:- +full:by +full:- +full:rtas
1 // SPDX-License-Identifier: GPL-2.0
3 * cpuidle-pseries - idle state cpuidle driver.
24 #include <asm/rtas.h>
47 dev->poll_time_limit = false; in snooze_loop()
58 dev->poll_time_limit = true; in snooze_loop()
80 * were soft-disabled in check_and_cede_processor()
94 * "ibm,get-systems-parameter" RTAS call with the token
100 * table with all the parameters to ibm,get-system-parameters.
117 * -----------------------------
120 * -----------------------------
123 * -----------------------------
126 * | tb-ticks | |
127 * -----------------------------
131 * -----------------------------
138 * xcede_latency_parameter is what gets returned by
139 * ibm,get-systems-parameter RTAS call when made with
142 * These structures are only used to represent the data obtained by the RTAS
143 * call. The data is in big-endian.
174 ret = rtas_call(rtas_token("ibm,get-system-parameter"), 3, 1, in parse_cede_parameters()
185 xcede_record_size = payload->record_size + 1; in parse_cede_parameters()
188 pr_err("xcede: Expected record-size %lu. Observed size %u.\n", in parse_cede_parameters()
190 return -EINVAL; in parse_cede_parameters()
200 total_xcede_records_size = payload_size - 2; in parse_cede_parameters()
204 struct xcede_latency_record *record = &payload->records[i]; in parse_cede_parameters()
205 u64 latency_ticks = be64_to_cpu(record->latency_ticks); in parse_cede_parameters()
206 u8 wake_on_irqs = record->wake_on_irqs; in parse_cede_parameters()
207 u8 hint = record->hint; in parse_cede_parameters()
209 pr_info("xcede: Record %d : hint = %u, latency = 0x%llx tb ticks, Wake-on-irq = %u\n", in parse_cede_parameters()
226 get_lppaca()->donate_dedicated_cpu = 1; in dedicated_cede_loop()
227 old_latency_hint = get_lppaca()->cede_latency_hint; in dedicated_cede_loop()
228 get_lppaca()->cede_latency_hint = cede_latency_hint[index]; in dedicated_cede_loop()
234 get_lppaca()->donate_dedicated_cpu = 0; in dedicated_cede_loop()
235 get_lppaca()->cede_latency_hint = old_latency_hint; in dedicated_cede_loop()
334 drv->state_count = 0; in pseries_cpuidle_driver_init()
341 drv->states[drv->state_count] = /* structure copy */ in pseries_cpuidle_driver_init()
344 drv->state_count += 1; in pseries_cpuidle_driver_init()
372 struct xcede_latency_record *record = &payload->records[i]; in fixup_cede0_latency()
373 u8 hint = record->hint; in fixup_cede0_latency()
374 u64 latency_tb = be64_to_cpu(record->latency_ticks); in fixup_cede0_latency()
379 * state to be non-zero, it to since it takes at least in fixup_cede0_latency()
384 * So we consider only non-zero value for performing in fixup_cede0_latency()
414 return -ENODEV; in pseries_idle_probe()
440 return -ENODEV; in pseries_idle_probe()