diff options
author | Matthew Garrett <mjg59@srcf.ucam.org> | 2008-11-27 12:48:13 -0500 |
---|---|---|
committer | Len Brown <len.brown@intel.com> | 2009-02-20 10:52:37 -0500 |
commit | 6503e5df08008b9a47022b5e9ebba658c8fa69af (patch) | |
tree | 8ef36d1b85d2a03ac9e61f5074d717b67f9259ba /drivers/acpi/processor_thermal.c | |
parent | d2f8d7ee1a9b4650b4e43325b321801264f7c37a (diff) |
thermal: use integers rather than strings for thermal values
The thermal API currently uses strings to pass values to userspace. This
makes it difficult to use from within the kernel. Change the interface
to use integers and fix up the consumers.
Signed-off-by: Matthew Garrett <mjg@redhat.com>
Acked-by: Zhang Rui <rui.zhang@intel.com>
Acked-by: Thomas Renninger <trenn@suse.de>
Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'drivers/acpi/processor_thermal.c')
-rw-r--r-- | drivers/acpi/processor_thermal.c | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/drivers/acpi/processor_thermal.c b/drivers/acpi/processor_thermal.c index b1eb376fae45..0e47e299a9ac 100644 --- a/drivers/acpi/processor_thermal.c +++ b/drivers/acpi/processor_thermal.c | |||
@@ -373,7 +373,8 @@ static int acpi_processor_max_state(struct acpi_processor *pr) | |||
373 | return max_state; | 373 | return max_state; |
374 | } | 374 | } |
375 | static int | 375 | static int |
376 | processor_get_max_state(struct thermal_cooling_device *cdev, char *buf) | 376 | processor_get_max_state(struct thermal_cooling_device *cdev, |
377 | unsigned long *state) | ||
377 | { | 378 | { |
378 | struct acpi_device *device = cdev->devdata; | 379 | struct acpi_device *device = cdev->devdata; |
379 | struct acpi_processor *pr = acpi_driver_data(device); | 380 | struct acpi_processor *pr = acpi_driver_data(device); |
@@ -381,28 +382,29 @@ processor_get_max_state(struct thermal_cooling_device *cdev, char *buf) | |||
381 | if (!device || !pr) | 382 | if (!device || !pr) |
382 | return -EINVAL; | 383 | return -EINVAL; |
383 | 384 | ||
384 | return sprintf(buf, "%d\n", acpi_processor_max_state(pr)); | 385 | *state = acpi_processor_max_state(pr); |
386 | return 0; | ||
385 | } | 387 | } |
386 | 388 | ||
387 | static int | 389 | static int |
388 | processor_get_cur_state(struct thermal_cooling_device *cdev, char *buf) | 390 | processor_get_cur_state(struct thermal_cooling_device *cdev, |
391 | unsigned long *cur_state) | ||
389 | { | 392 | { |
390 | struct acpi_device *device = cdev->devdata; | 393 | struct acpi_device *device = cdev->devdata; |
391 | struct acpi_processor *pr = acpi_driver_data(device); | 394 | struct acpi_processor *pr = acpi_driver_data(device); |
392 | int cur_state; | ||
393 | 395 | ||
394 | if (!device || !pr) | 396 | if (!device || !pr) |
395 | return -EINVAL; | 397 | return -EINVAL; |
396 | 398 | ||
397 | cur_state = cpufreq_get_cur_state(pr->id); | 399 | *cur_state = cpufreq_get_cur_state(pr->id); |
398 | if (pr->flags.throttling) | 400 | if (pr->flags.throttling) |
399 | cur_state += pr->throttling.state; | 401 | *cur_state += pr->throttling.state; |
400 | 402 | return 0; | |
401 | return sprintf(buf, "%d\n", cur_state); | ||
402 | } | 403 | } |
403 | 404 | ||
404 | static int | 405 | static int |
405 | processor_set_cur_state(struct thermal_cooling_device *cdev, unsigned int state) | 406 | processor_set_cur_state(struct thermal_cooling_device *cdev, |
407 | unsigned long state) | ||
406 | { | 408 | { |
407 | struct acpi_device *device = cdev->devdata; | 409 | struct acpi_device *device = cdev->devdata; |
408 | struct acpi_processor *pr = acpi_driver_data(device); | 410 | struct acpi_processor *pr = acpi_driver_data(device); |