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>
78 * were soft-disabled in check_and_cede_processor()
92 * "ibm,get-systems-parameter" RTAS call with the token
98 * table with all the parameters to ibm,get-system-parameters.
115 * -----------------------------
118 * -----------------------------
121 * -----------------------------
124 * | tb-ticks | |
125 * -----------------------------
129 * -----------------------------
136 * xcede_latency_parameter is what gets returned by
137 * ibm,get-systems-parameter RTAS call when made with
140 * These structures are only used to represent the data obtained by the RTAS
141 * call. The data is in big-endian.
172 ret = rtas_call(rtas_token("ibm,get-system-parameter"), 3, 1, in parse_cede_parameters()
183 xcede_record_size = payload->record_size + 1; in parse_cede_parameters()
186 pr_err("xcede: Expected record-size %lu. Observed size %u.\n", in parse_cede_parameters()
188 return -EINVAL; in parse_cede_parameters()
198 total_xcede_records_size = payload_size - 2; in parse_cede_parameters()
202 struct xcede_latency_record *record = &payload->records[i]; in parse_cede_parameters()
203 u64 latency_ticks = be64_to_cpu(record->latency_ticks); in parse_cede_parameters()
204 u8 wake_on_irqs = record->wake_on_irqs; in parse_cede_parameters()
205 u8 hint = record->hint; in parse_cede_parameters()
207 pr_info("xcede: Record %d : hint = %u, latency = 0x%llx tb ticks, Wake-on-irq = %u\n", in parse_cede_parameters()
224 get_lppaca()->donate_dedicated_cpu = 1; in dedicated_cede_loop()
225 old_latency_hint = get_lppaca()->cede_latency_hint; in dedicated_cede_loop()
226 get_lppaca()->cede_latency_hint = cede_latency_hint[index]; in dedicated_cede_loop()
232 get_lppaca()->donate_dedicated_cpu = 0; in dedicated_cede_loop()
233 get_lppaca()->cede_latency_hint = old_latency_hint; in dedicated_cede_loop()
330 drv->state_count = 0; in pseries_cpuidle_driver_init()
337 drv->states[drv->state_count] = /* structure copy */ in pseries_cpuidle_driver_init()
340 drv->state_count += 1; in pseries_cpuidle_driver_init()
362 struct xcede_latency_record *record = &payload->records[i]; in fixup_cede0_latency()
363 u64 latency_tb = be64_to_cpu(record->latency_ticks); in fixup_cede0_latency()
374 * By default, we assume that CEDE(0) has exit latency 10us, in fixup_cede0_latency()
381 * Perform the fix-up. in fixup_cede0_latency()
391 cede0_latency = min_latency_us - 1; in fixup_cede0_latency()
409 return -ENODEV; in pseries_idle_probe()
418 if (lppaca_shared_proc(local_paca->lppaca_ptr)) { in pseries_idle_probe()
427 return -ENODEV; in pseries_idle_probe()