Pull bugzilla-5653 into release branch
This commit is contained in:
commit
3e8e7c93d7
|
@ -4,5 +4,6 @@ obj-$(CONFIG_ACPI_SLEEP) += sleep.o wakeup.o
|
||||||
|
|
||||||
ifneq ($(CONFIG_ACPI_PROCESSOR),)
|
ifneq ($(CONFIG_ACPI_PROCESSOR),)
|
||||||
obj-y += processor.o
|
obj-y += processor.o
|
||||||
|
processor-y := ../../../i386/kernel/acpi/processor.o ../../../i386/kernel/acpi/cstate.o
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|
|
@ -1,72 +0,0 @@
|
||||||
/*
|
|
||||||
* arch/x86_64/kernel/acpi/processor.c
|
|
||||||
*
|
|
||||||
* Copyright (C) 2005 Intel Corporation
|
|
||||||
* Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
|
|
||||||
* - Added _PDC for platforms with Intel CPUs
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <linux/kernel.h>
|
|
||||||
#include <linux/module.h>
|
|
||||||
#include <linux/init.h>
|
|
||||||
#include <linux/acpi.h>
|
|
||||||
|
|
||||||
#include <acpi/processor.h>
|
|
||||||
#include <asm/acpi.h>
|
|
||||||
|
|
||||||
static void init_intel_pdc(struct acpi_processor *pr, struct cpuinfo_x86 *c)
|
|
||||||
{
|
|
||||||
struct acpi_object_list *obj_list;
|
|
||||||
union acpi_object *obj;
|
|
||||||
u32 *buf;
|
|
||||||
|
|
||||||
/* allocate and initialize pdc. It will be used later. */
|
|
||||||
obj_list = kmalloc(sizeof(struct acpi_object_list), GFP_KERNEL);
|
|
||||||
if (!obj_list) {
|
|
||||||
printk(KERN_ERR "Memory allocation error\n");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
obj = kmalloc(sizeof(union acpi_object), GFP_KERNEL);
|
|
||||||
if (!obj) {
|
|
||||||
printk(KERN_ERR "Memory allocation error\n");
|
|
||||||
kfree(obj_list);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
buf = kmalloc(12, GFP_KERNEL);
|
|
||||||
if (!buf) {
|
|
||||||
printk(KERN_ERR "Memory allocation error\n");
|
|
||||||
kfree(obj);
|
|
||||||
kfree(obj_list);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
buf[0] = ACPI_PDC_REVISION_ID;
|
|
||||||
buf[1] = 1;
|
|
||||||
buf[2] = ACPI_PDC_EST_CAPABILITY_SMP;
|
|
||||||
|
|
||||||
obj->type = ACPI_TYPE_BUFFER;
|
|
||||||
obj->buffer.length = 12;
|
|
||||||
obj->buffer.pointer = (u8 *) buf;
|
|
||||||
obj_list->count = 1;
|
|
||||||
obj_list->pointer = obj;
|
|
||||||
pr->pdc = obj_list;
|
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Initialize _PDC data based on the CPU vendor */
|
|
||||||
void arch_acpi_processor_init_pdc(struct acpi_processor *pr)
|
|
||||||
{
|
|
||||||
unsigned int cpu = pr->id;
|
|
||||||
struct cpuinfo_x86 *c = cpu_data + cpu;
|
|
||||||
|
|
||||||
pr->pdc = NULL;
|
|
||||||
if (c->x86_vendor == X86_VENDOR_INTEL && cpu_has(c, X86_FEATURE_EST))
|
|
||||||
init_intel_pdc(pr, c);
|
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
EXPORT_SYMBOL(arch_acpi_processor_init_pdc);
|
|
|
@ -162,6 +162,8 @@ extern int acpi_pci_disabled;
|
||||||
|
|
||||||
extern u8 x86_acpiid_to_apicid[];
|
extern u8 x86_acpiid_to_apicid[];
|
||||||
|
|
||||||
|
#define ARCH_HAS_POWER_INIT 1
|
||||||
|
|
||||||
extern int acpi_skip_timer_override;
|
extern int acpi_skip_timer_override;
|
||||||
|
|
||||||
#endif /*__KERNEL__*/
|
#endif /*__KERNEL__*/
|
||||||
|
|
Reference in New Issue