acpi_pad.c (4b4193256c8d3bc3a5397b5cd9494c2ad386317d) | acpi_pad.c (0f39ee8324e75c9d370e84a61323ceb194641a18) |
---|---|
1// SPDX-License-Identifier: GPL-2.0-only 2/* 3 * acpi_pad.c ACPI Processor Aggregator Driver 4 * 5 * Copyright (c) 2009, Intel Corporation. 6 */ 7 8#include <linux/kernel.h> --- 247 unchanged lines hidden (view full) --- 256 put_online_cpus(); 257} 258 259static uint32_t acpi_pad_idle_cpus_num(void) 260{ 261 return ps_tsk_num; 262} 263 | 1// SPDX-License-Identifier: GPL-2.0-only 2/* 3 * acpi_pad.c ACPI Processor Aggregator Driver 4 * 5 * Copyright (c) 2009, Intel Corporation. 6 */ 7 8#include <linux/kernel.h> --- 247 unchanged lines hidden (view full) --- 256 put_online_cpus(); 257} 258 259static uint32_t acpi_pad_idle_cpus_num(void) 260{ 261 return ps_tsk_num; 262} 263 |
264static ssize_t acpi_pad_rrtime_store(struct device *dev, | 264static ssize_t rrtime_store(struct device *dev, |
265 struct device_attribute *attr, const char *buf, size_t count) 266{ 267 unsigned long num; 268 if (kstrtoul(buf, 0, &num)) 269 return -EINVAL; 270 if (num < 1 || num >= 100) 271 return -EINVAL; 272 mutex_lock(&isolated_cpus_lock); 273 round_robin_time = num; 274 mutex_unlock(&isolated_cpus_lock); 275 return count; 276} 277 | 265 struct device_attribute *attr, const char *buf, size_t count) 266{ 267 unsigned long num; 268 if (kstrtoul(buf, 0, &num)) 269 return -EINVAL; 270 if (num < 1 || num >= 100) 271 return -EINVAL; 272 mutex_lock(&isolated_cpus_lock); 273 round_robin_time = num; 274 mutex_unlock(&isolated_cpus_lock); 275 return count; 276} 277 |
278static ssize_t acpi_pad_rrtime_show(struct device *dev, | 278static ssize_t rrtime_show(struct device *dev, |
279 struct device_attribute *attr, char *buf) 280{ 281 return scnprintf(buf, PAGE_SIZE, "%d\n", round_robin_time); 282} | 279 struct device_attribute *attr, char *buf) 280{ 281 return scnprintf(buf, PAGE_SIZE, "%d\n", round_robin_time); 282} |
283static DEVICE_ATTR(rrtime, S_IRUGO|S_IWUSR, 284 acpi_pad_rrtime_show, 285 acpi_pad_rrtime_store); | 283static DEVICE_ATTR_RW(rrtime); |
286 | 284 |
287static ssize_t acpi_pad_idlepct_store(struct device *dev, | 285static ssize_t idlepct_store(struct device *dev, |
288 struct device_attribute *attr, const char *buf, size_t count) 289{ 290 unsigned long num; 291 if (kstrtoul(buf, 0, &num)) 292 return -EINVAL; 293 if (num < 1 || num >= 100) 294 return -EINVAL; 295 mutex_lock(&isolated_cpus_lock); 296 idle_pct = num; 297 mutex_unlock(&isolated_cpus_lock); 298 return count; 299} 300 | 286 struct device_attribute *attr, const char *buf, size_t count) 287{ 288 unsigned long num; 289 if (kstrtoul(buf, 0, &num)) 290 return -EINVAL; 291 if (num < 1 || num >= 100) 292 return -EINVAL; 293 mutex_lock(&isolated_cpus_lock); 294 idle_pct = num; 295 mutex_unlock(&isolated_cpus_lock); 296 return count; 297} 298 |
301static ssize_t acpi_pad_idlepct_show(struct device *dev, | 299static ssize_t idlepct_show(struct device *dev, |
302 struct device_attribute *attr, char *buf) 303{ 304 return scnprintf(buf, PAGE_SIZE, "%d\n", idle_pct); 305} | 300 struct device_attribute *attr, char *buf) 301{ 302 return scnprintf(buf, PAGE_SIZE, "%d\n", idle_pct); 303} |
306static DEVICE_ATTR(idlepct, S_IRUGO|S_IWUSR, 307 acpi_pad_idlepct_show, 308 acpi_pad_idlepct_store); | 304static DEVICE_ATTR_RW(idlepct); |
309 | 305 |
310static ssize_t acpi_pad_idlecpus_store(struct device *dev, | 306static ssize_t idlecpus_store(struct device *dev, |
311 struct device_attribute *attr, const char *buf, size_t count) 312{ 313 unsigned long num; 314 if (kstrtoul(buf, 0, &num)) 315 return -EINVAL; 316 mutex_lock(&isolated_cpus_lock); 317 acpi_pad_idle_cpus(num); 318 mutex_unlock(&isolated_cpus_lock); 319 return count; 320} 321 | 307 struct device_attribute *attr, const char *buf, size_t count) 308{ 309 unsigned long num; 310 if (kstrtoul(buf, 0, &num)) 311 return -EINVAL; 312 mutex_lock(&isolated_cpus_lock); 313 acpi_pad_idle_cpus(num); 314 mutex_unlock(&isolated_cpus_lock); 315 return count; 316} 317 |
322static ssize_t acpi_pad_idlecpus_show(struct device *dev, | 318static ssize_t idlecpus_show(struct device *dev, |
323 struct device_attribute *attr, char *buf) 324{ 325 return cpumap_print_to_pagebuf(false, buf, 326 to_cpumask(pad_busy_cpus_bits)); 327} 328 | 319 struct device_attribute *attr, char *buf) 320{ 321 return cpumap_print_to_pagebuf(false, buf, 322 to_cpumask(pad_busy_cpus_bits)); 323} 324 |
329static DEVICE_ATTR(idlecpus, S_IRUGO|S_IWUSR, 330 acpi_pad_idlecpus_show, 331 acpi_pad_idlecpus_store); | 325static DEVICE_ATTR_RW(idlecpus); |
332 333static int acpi_pad_add_sysfs(struct acpi_device *device) 334{ 335 int result; 336 337 result = device_create_file(&device->dev, &dev_attr_idlecpus); 338 if (result) 339 return -ENODEV; --- 158 unchanged lines hidden --- | 326 327static int acpi_pad_add_sysfs(struct acpi_device *device) 328{ 329 int result; 330 331 result = device_create_file(&device->dev, &dev_attr_idlecpus); 332 if (result) 333 return -ENODEV; --- 158 unchanged lines hidden --- |