Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 74711
b: refs/heads/master
c: e17bcb4
h: refs/heads/master
i:
  74709: a9d4fa8
  74707: 42a583b
  74703: 5897c4e
v: v3
  • Loading branch information
Thomas Gleixner authored and Ingo Molnar committed Dec 7, 2007
1 parent efd5582 commit 1c366b2
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 6 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 167b1de3ee4e50d65a2bd0a2667c9cd48faf54f3
refs/heads/master: e17bcb43a26a7111f851b5ff6d1258ecd355de75
19 changes: 14 additions & 5 deletions trunk/drivers/acpi/processor_idle.c
Original file line number Diff line number Diff line change
Expand Up @@ -530,6 +530,11 @@ static void acpi_processor_idle(void)
break;

case ACPI_STATE_C3:
/*
* Must be done before busmaster disable as we might
* need to access HPET !
*/
acpi_state_timer_broadcast(pr, cx, 1);
/*
* disable bus master
* bm_check implies we need ARB_DIS
Expand Down Expand Up @@ -557,7 +562,6 @@ static void acpi_processor_idle(void)
/* Get start time (ticks) */
t1 = inl(acpi_gbl_FADT.xpm_timer_block.address);
/* Invoke C3 */
acpi_state_timer_broadcast(pr, cx, 1);
/* Tell the scheduler that we are going deep-idle: */
sched_clock_idle_sleep_event();
acpi_cstate_enter(cx);
Expand Down Expand Up @@ -1401,9 +1405,6 @@ static int acpi_idle_enter_simple(struct cpuidle_device *dev,
if (acpi_idle_suspend)
return(acpi_idle_enter_c1(dev, state));

if (pr->flags.bm_check)
acpi_idle_update_bm_rld(pr, cx);

local_irq_disable();
current_thread_info()->status &= ~TS_POLLING;
/*
Expand All @@ -1418,13 +1419,21 @@ static int acpi_idle_enter_simple(struct cpuidle_device *dev,
return 0;
}

/*
* Must be done before busmaster disable as we might need to
* access HPET !
*/
acpi_state_timer_broadcast(pr, cx, 1);

if (pr->flags.bm_check)
acpi_idle_update_bm_rld(pr, cx);

if (cx->type == ACPI_STATE_C3)
ACPI_FLUSH_CPU_CACHE();

t1 = inl(acpi_gbl_FADT.xpm_timer_block.address);
/* Tell the scheduler that we are going deep-idle: */
sched_clock_idle_sleep_event();
acpi_state_timer_broadcast(pr, cx, 1);
acpi_idle_do_entry(cx);
t2 = inl(acpi_gbl_FADT.xpm_timer_block.address);

Expand Down

0 comments on commit 1c366b2

Please sign in to comment.