Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 188085
b: refs/heads/master
c: 5d554a7
h: refs/heads/master
i:
  188083: 9a12bd0
v: v3
  • Loading branch information
Alex Chiang authored and Len Brown committed Mar 15, 2010
1 parent ce3ce07 commit cf269bf
Show file tree
Hide file tree
Showing 2 changed files with 43 additions and 1 deletion.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 78ed8bd2944b6400f742306e5fe9d1b9b6bf18ba
refs/heads/master: 5d554a7bb0643a6151a84319bfeba8270bf5269e
42 changes: 42 additions & 0 deletions trunk/drivers/acpi/processor_core.c
Original file line number Diff line number Diff line change
Expand Up @@ -194,6 +194,45 @@ int acpi_get_cpuid(acpi_handle handle, int type, u32 acpi_id)
EXPORT_SYMBOL_GPL(acpi_get_cpuid);
#endif

static bool processor_physically_present(acpi_handle handle)
{
int cpuid, type;
u32 acpi_id;
acpi_status status;
acpi_object_type acpi_type;
unsigned long long tmp;
union acpi_object object = { 0 };
struct acpi_buffer buffer = { sizeof(union acpi_object), &object };

status = acpi_get_type(handle, &acpi_type);
if (ACPI_FAILURE(status))
return false;

switch (acpi_type) {
case ACPI_TYPE_PROCESSOR:
status = acpi_evaluate_object(handle, NULL, NULL, &buffer);
if (ACPI_FAILURE(status))
return false;
acpi_id = object.processor.proc_id;
break;
case ACPI_TYPE_DEVICE:
status = acpi_evaluate_integer(handle, "_UID", NULL, &tmp);
if (ACPI_FAILURE(status))
return false;
acpi_id = tmp;
break;
default:
return false;
}

type = (acpi_type == ACPI_TYPE_DEVICE) ? 1 : 0;
cpuid = acpi_get_cpuid(handle, type, acpi_id);

if (cpuid == -1)
return false;

return true;
}

static void acpi_set_pdc_bits(u32 *buf)
{
Expand Down Expand Up @@ -335,6 +374,9 @@ static struct dmi_system_id __cpuinitdata early_pdc_optin_table[] = {
static acpi_status
early_init_pdc(acpi_handle handle, u32 lvl, void *context, void **rv)
{
if (processor_physically_present(handle) == false)
return AE_OK;

acpi_processor_set_pdc(handle);
return AE_OK;
}
Expand Down

0 comments on commit cf269bf

Please sign in to comment.