aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/acpi
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/acpi')
-rw-r--r--drivers/acpi/numa.c4
-rw-r--r--drivers/acpi/processor_idle.c19
-rw-r--r--drivers/acpi/video.c4
3 files changed, 18 insertions, 9 deletions
diff --git a/drivers/acpi/numa.c b/drivers/acpi/numa.c
index ab04d848b19d..0822d9fc1cb4 100644
--- a/drivers/acpi/numa.c
+++ b/drivers/acpi/numa.c
@@ -38,9 +38,9 @@ ACPI_MODULE_NAME("numa");
38static nodemask_t nodes_found_map = NODE_MASK_NONE; 38static nodemask_t nodes_found_map = NODE_MASK_NONE;
39 39
40/* maps to convert between proximity domain and logical node ID */ 40/* maps to convert between proximity domain and logical node ID */
41static int __cpuinitdata pxm_to_node_map[MAX_PXM_DOMAINS] 41static int pxm_to_node_map[MAX_PXM_DOMAINS]
42 = { [0 ... MAX_PXM_DOMAINS - 1] = NID_INVAL }; 42 = { [0 ... MAX_PXM_DOMAINS - 1] = NID_INVAL };
43static int __cpuinitdata node_to_pxm_map[MAX_NUMNODES] 43static int node_to_pxm_map[MAX_NUMNODES]
44 = { [0 ... MAX_NUMNODES - 1] = PXM_INVAL }; 44 = { [0 ... MAX_NUMNODES - 1] = PXM_INVAL };
45 45
46int pxm_to_node(int pxm) 46int pxm_to_node(int pxm)
diff --git a/drivers/acpi/processor_idle.c b/drivers/acpi/processor_idle.c
index b1fbee3f7fe1..2fe34cc73c13 100644
--- a/drivers/acpi/processor_idle.c
+++ b/drivers/acpi/processor_idle.c
@@ -531,6 +531,11 @@ static void acpi_processor_idle(void)
531 531
532 case ACPI_STATE_C3: 532 case ACPI_STATE_C3:
533 /* 533 /*
534 * Must be done before busmaster disable as we might
535 * need to access HPET !
536 */
537 acpi_state_timer_broadcast(pr, cx, 1);
538 /*
534 * disable bus master 539 * disable bus master
535 * bm_check implies we need ARB_DIS 540 * bm_check implies we need ARB_DIS
536 * !bm_check implies we need cache flush 541 * !bm_check implies we need cache flush
@@ -557,7 +562,6 @@ static void acpi_processor_idle(void)
557 /* Get start time (ticks) */ 562 /* Get start time (ticks) */
558 t1 = inl(acpi_gbl_FADT.xpm_timer_block.address); 563 t1 = inl(acpi_gbl_FADT.xpm_timer_block.address);
559 /* Invoke C3 */ 564 /* Invoke C3 */
560 acpi_state_timer_broadcast(pr, cx, 1);
561 /* Tell the scheduler that we are going deep-idle: */ 565 /* Tell the scheduler that we are going deep-idle: */
562 sched_clock_idle_sleep_event(); 566 sched_clock_idle_sleep_event();
563 acpi_cstate_enter(cx); 567 acpi_cstate_enter(cx);
@@ -1401,9 +1405,6 @@ static int acpi_idle_enter_simple(struct cpuidle_device *dev,
1401 if (acpi_idle_suspend) 1405 if (acpi_idle_suspend)
1402 return(acpi_idle_enter_c1(dev, state)); 1406 return(acpi_idle_enter_c1(dev, state));
1403 1407
1404 if (pr->flags.bm_check)
1405 acpi_idle_update_bm_rld(pr, cx);
1406
1407 local_irq_disable(); 1408 local_irq_disable();
1408 current_thread_info()->status &= ~TS_POLLING; 1409 current_thread_info()->status &= ~TS_POLLING;
1409 /* 1410 /*
@@ -1418,13 +1419,21 @@ static int acpi_idle_enter_simple(struct cpuidle_device *dev,
1418 return 0; 1419 return 0;
1419 } 1420 }
1420 1421
1422 /*
1423 * Must be done before busmaster disable as we might need to
1424 * access HPET !
1425 */
1426 acpi_state_timer_broadcast(pr, cx, 1);
1427
1428 if (pr->flags.bm_check)
1429 acpi_idle_update_bm_rld(pr, cx);
1430
1421 if (cx->type == ACPI_STATE_C3) 1431 if (cx->type == ACPI_STATE_C3)
1422 ACPI_FLUSH_CPU_CACHE(); 1432 ACPI_FLUSH_CPU_CACHE();
1423 1433
1424 t1 = inl(acpi_gbl_FADT.xpm_timer_block.address); 1434 t1 = inl(acpi_gbl_FADT.xpm_timer_block.address);
1425 /* Tell the scheduler that we are going deep-idle: */ 1435 /* Tell the scheduler that we are going deep-idle: */
1426 sched_clock_idle_sleep_event(); 1436 sched_clock_idle_sleep_event();
1427 acpi_state_timer_broadcast(pr, cx, 1);
1428 acpi_idle_do_entry(cx); 1437 acpi_idle_do_entry(cx);
1429 t2 = inl(acpi_gbl_FADT.xpm_timer_block.address); 1438 t2 = inl(acpi_gbl_FADT.xpm_timer_block.address);
1430 1439
diff --git a/drivers/acpi/video.c b/drivers/acpi/video.c
index 44a0d9ba9bd6..bd77e81e81c1 100644
--- a/drivers/acpi/video.c
+++ b/drivers/acpi/video.c
@@ -577,7 +577,7 @@ static void acpi_video_device_find_cap(struct acpi_video_device *device)
577 struct acpi_video_device_brightness *br = NULL; 577 struct acpi_video_device_brightness *br = NULL;
578 578
579 579
580 memset(&device->cap, 0, 4); 580 memset(&device->cap, 0, sizeof(device->cap));
581 581
582 if (ACPI_SUCCESS(acpi_get_handle(device->dev->handle, "_ADR", &h_dummy1))) { 582 if (ACPI_SUCCESS(acpi_get_handle(device->dev->handle, "_ADR", &h_dummy1))) {
583 device->cap._ADR = 1; 583 device->cap._ADR = 1;
@@ -697,7 +697,7 @@ static void acpi_video_bus_find_cap(struct acpi_video_bus *video)
697{ 697{
698 acpi_handle h_dummy1; 698 acpi_handle h_dummy1;
699 699
700 memset(&video->cap, 0, 4); 700 memset(&video->cap, 0, sizeof(video->cap));
701 if (ACPI_SUCCESS(acpi_get_handle(video->device->handle, "_DOS", &h_dummy1))) { 701 if (ACPI_SUCCESS(acpi_get_handle(video->device->handle, "_DOS", &h_dummy1))) {
702 video->cap._DOS = 1; 702 video->cap._DOS = 1;
703 } 703 }