Skip to content

Commit

Permalink
CPPC: Probe for CPPC tables for each ACPI Processor object
Browse files Browse the repository at this point in the history
For each detected ACPI Processor object (ACPI0007), search its
device handle for CPPC specific tables (i.e. _CPC) and extract
CPU specific performance capabilities.

Signed-off-by: Ashwin Chaugule <ashwin.chaugule@linaro.org>
Reviewed-by: Al Stone <al.stone@linaro.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
  • Loading branch information
Ashwin Chaugule authored and rafaeljw committed Oct 12, 2015
1 parent 56cdc2a commit 4f2f757
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 0 deletions.
6 changes: 6 additions & 0 deletions drivers/acpi/processor_driver.c
Original file line number Diff line number Diff line change
Expand Up @@ -242,6 +242,10 @@ static int __acpi_processor_start(struct acpi_device *device)
if (pr->flags.need_hotplug_init)
return 0;

result = acpi_cppc_processor_probe(pr);
if (result)
return -ENODEV;

if (!cpuidle_get_driver() || cpuidle_get_driver() == &acpi_idle_driver)
acpi_processor_power_init(pr);

Expand Down Expand Up @@ -287,6 +291,8 @@ static int acpi_processor_stop(struct device *dev)

acpi_pss_perf_exit(pr, device);

acpi_cppc_processor_exit(pr);

return 0;
}

Expand Down
14 changes: 14 additions & 0 deletions include/acpi/processor.h
Original file line number Diff line number Diff line change
Expand Up @@ -311,6 +311,20 @@ phys_cpuid_t acpi_get_phys_id(acpi_handle, int type, u32 acpi_id);
int acpi_map_cpuid(phys_cpuid_t phys_id, u32 acpi_id);
int acpi_get_cpuid(acpi_handle, int type, u32 acpi_id);

#ifdef CONFIG_ACPI_CPPC_LIB
extern int acpi_cppc_processor_probe(struct acpi_processor *pr);
extern void acpi_cppc_processor_exit(struct acpi_processor *pr);
#else
static inline int acpi_cppc_processor_probe(struct acpi_processor *pr)
{
return 0;
}
static inline void acpi_cppc_processor_exit(struct acpi_processor *pr)
{
return;
}
#endif /* CONFIG_ACPI_CPPC_LIB */

/* in processor_pdc.c */
void acpi_processor_set_pdc(acpi_handle handle);

Expand Down

0 comments on commit 4f2f757

Please sign in to comment.