diff options
| -rw-r--r-- | Documentation/feature-removal-schedule.txt | 9 | ||||
| -rw-r--r-- | drivers/acpi/ec.c | 22 | ||||
| -rw-r--r-- | drivers/acpi/internal.h | 5 | ||||
| -rw-r--r-- | drivers/acpi/processor_idle.c | 17 | ||||
| -rw-r--r-- | drivers/acpi/sleep.c | 57 |
5 files changed, 55 insertions, 55 deletions
diff --git a/Documentation/feature-removal-schedule.txt b/Documentation/feature-removal-schedule.txt index 672be0109d02..c268783bc4e7 100644 --- a/Documentation/feature-removal-schedule.txt +++ b/Documentation/feature-removal-schedule.txt | |||
| @@ -578,15 +578,6 @@ Who: Avi Kivity <avi@redhat.com> | |||
| 578 | 578 | ||
| 579 | ---------------------------- | 579 | ---------------------------- |
| 580 | 580 | ||
| 581 | What: "acpi=ht" boot option | ||
| 582 | When: 2.6.35 | ||
| 583 | Why: Useful in 2003, implementation is a hack. | ||
| 584 | Generally invoked by accident today. | ||
| 585 | Seen as doing more harm than good. | ||
| 586 | Who: Len Brown <len.brown@intel.com> | ||
| 587 | |||
| 588 | ---------------------------- | ||
| 589 | |||
| 590 | What: iwlwifi 50XX module parameters | 581 | What: iwlwifi 50XX module parameters |
| 591 | When: 2.6.40 | 582 | When: 2.6.40 |
| 592 | Why: The "..50" modules parameters were used to configure 5000 series and | 583 | Why: The "..50" modules parameters were used to configure 5000 series and |
diff --git a/drivers/acpi/ec.c b/drivers/acpi/ec.c index e61d4f8e62a5..5f2027d782e8 100644 --- a/drivers/acpi/ec.c +++ b/drivers/acpi/ec.c | |||
| @@ -79,7 +79,7 @@ enum { | |||
| 79 | EC_FLAGS_GPE_STORM, /* GPE storm detected */ | 79 | EC_FLAGS_GPE_STORM, /* GPE storm detected */ |
| 80 | EC_FLAGS_HANDLERS_INSTALLED, /* Handlers for GPE and | 80 | EC_FLAGS_HANDLERS_INSTALLED, /* Handlers for GPE and |
| 81 | * OpReg are installed */ | 81 | * OpReg are installed */ |
| 82 | EC_FLAGS_FROZEN, /* Transactions are suspended */ | 82 | EC_FLAGS_BLOCKED, /* Transactions are blocked */ |
| 83 | }; | 83 | }; |
| 84 | 84 | ||
| 85 | /* If we find an EC via the ECDT, we need to keep a ptr to its context */ | 85 | /* If we find an EC via the ECDT, we need to keep a ptr to its context */ |
| @@ -293,7 +293,7 @@ static int acpi_ec_transaction(struct acpi_ec *ec, struct transaction *t) | |||
| 293 | if (t->rdata) | 293 | if (t->rdata) |
| 294 | memset(t->rdata, 0, t->rlen); | 294 | memset(t->rdata, 0, t->rlen); |
| 295 | mutex_lock(&ec->lock); | 295 | mutex_lock(&ec->lock); |
| 296 | if (test_bit(EC_FLAGS_FROZEN, &ec->flags)) { | 296 | if (test_bit(EC_FLAGS_BLOCKED, &ec->flags)) { |
| 297 | status = -EINVAL; | 297 | status = -EINVAL; |
| 298 | goto unlock; | 298 | goto unlock; |
| 299 | } | 299 | } |
| @@ -459,7 +459,7 @@ int ec_transaction(u8 command, | |||
| 459 | 459 | ||
| 460 | EXPORT_SYMBOL(ec_transaction); | 460 | EXPORT_SYMBOL(ec_transaction); |
| 461 | 461 | ||
| 462 | void acpi_ec_suspend_transactions(void) | 462 | void acpi_ec_block_transactions(void) |
| 463 | { | 463 | { |
| 464 | struct acpi_ec *ec = first_ec; | 464 | struct acpi_ec *ec = first_ec; |
| 465 | 465 | ||
| @@ -468,11 +468,11 @@ void acpi_ec_suspend_transactions(void) | |||
| 468 | 468 | ||
| 469 | mutex_lock(&ec->lock); | 469 | mutex_lock(&ec->lock); |
| 470 | /* Prevent transactions from being carried out */ | 470 | /* Prevent transactions from being carried out */ |
| 471 | set_bit(EC_FLAGS_FROZEN, &ec->flags); | 471 | set_bit(EC_FLAGS_BLOCKED, &ec->flags); |
| 472 | mutex_unlock(&ec->lock); | 472 | mutex_unlock(&ec->lock); |
| 473 | } | 473 | } |
| 474 | 474 | ||
| 475 | void acpi_ec_resume_transactions(void) | 475 | void acpi_ec_unblock_transactions(void) |
| 476 | { | 476 | { |
| 477 | struct acpi_ec *ec = first_ec; | 477 | struct acpi_ec *ec = first_ec; |
| 478 | 478 | ||
| @@ -481,10 +481,20 @@ void acpi_ec_resume_transactions(void) | |||
| 481 | 481 | ||
| 482 | mutex_lock(&ec->lock); | 482 | mutex_lock(&ec->lock); |
| 483 | /* Allow transactions to be carried out again */ | 483 | /* Allow transactions to be carried out again */ |
| 484 | clear_bit(EC_FLAGS_FROZEN, &ec->flags); | 484 | clear_bit(EC_FLAGS_BLOCKED, &ec->flags); |
| 485 | mutex_unlock(&ec->lock); | 485 | mutex_unlock(&ec->lock); |
| 486 | } | 486 | } |
| 487 | 487 | ||
| 488 | void acpi_ec_unblock_transactions_early(void) | ||
| 489 | { | ||
| 490 | /* | ||
| 491 | * Allow transactions to happen again (this function is called from | ||
| 492 | * atomic context during wakeup, so we don't need to acquire the mutex). | ||
| 493 | */ | ||
| 494 | if (first_ec) | ||
| 495 | clear_bit(EC_FLAGS_BLOCKED, &first_ec->flags); | ||
| 496 | } | ||
| 497 | |||
| 488 | static int acpi_ec_query_unlocked(struct acpi_ec *ec, u8 * data) | 498 | static int acpi_ec_query_unlocked(struct acpi_ec *ec, u8 * data) |
| 489 | { | 499 | { |
| 490 | int result; | 500 | int result; |
diff --git a/drivers/acpi/internal.h b/drivers/acpi/internal.h index e28411367239..f8f190ec066e 100644 --- a/drivers/acpi/internal.h +++ b/drivers/acpi/internal.h | |||
| @@ -49,8 +49,9 @@ void acpi_early_processor_set_pdc(void); | |||
| 49 | int acpi_ec_init(void); | 49 | int acpi_ec_init(void); |
| 50 | int acpi_ec_ecdt_probe(void); | 50 | int acpi_ec_ecdt_probe(void); |
| 51 | int acpi_boot_ec_enable(void); | 51 | int acpi_boot_ec_enable(void); |
| 52 | void acpi_ec_suspend_transactions(void); | 52 | void acpi_ec_block_transactions(void); |
| 53 | void acpi_ec_resume_transactions(void); | 53 | void acpi_ec_unblock_transactions(void); |
| 54 | void acpi_ec_unblock_transactions_early(void); | ||
| 54 | 55 | ||
| 55 | /*-------------------------------------------------------------------------- | 56 | /*-------------------------------------------------------------------------- |
| 56 | Suspend/Resume | 57 | Suspend/Resume |
diff --git a/drivers/acpi/processor_idle.c b/drivers/acpi/processor_idle.c index 2e8c27d48f2b..b1b385692f46 100644 --- a/drivers/acpi/processor_idle.c +++ b/drivers/acpi/processor_idle.c | |||
| @@ -80,7 +80,7 @@ module_param(nocst, uint, 0000); | |||
| 80 | static unsigned int latency_factor __read_mostly = 2; | 80 | static unsigned int latency_factor __read_mostly = 2; |
| 81 | module_param(latency_factor, uint, 0644); | 81 | module_param(latency_factor, uint, 0644); |
| 82 | 82 | ||
| 83 | static s64 us_to_pm_timer_ticks(s64 t) | 83 | static u64 us_to_pm_timer_ticks(s64 t) |
| 84 | { | 84 | { |
| 85 | return div64_u64(t * PM_TIMER_FREQUENCY, 1000000); | 85 | return div64_u64(t * PM_TIMER_FREQUENCY, 1000000); |
| 86 | } | 86 | } |
| @@ -731,10 +731,10 @@ static int acpi_processor_power_seq_show(struct seq_file *seq, void *offset) | |||
| 731 | 731 | ||
| 732 | seq_puts(seq, "demotion[--] "); | 732 | seq_puts(seq, "demotion[--] "); |
| 733 | 733 | ||
| 734 | seq_printf(seq, "latency[%03d] usage[%08d] duration[%020llu]\n", | 734 | seq_printf(seq, "latency[%03d] usage[%08d] duration[%020Lu]\n", |
| 735 | pr->power.states[i].latency, | 735 | pr->power.states[i].latency, |
| 736 | pr->power.states[i].usage, | 736 | pr->power.states[i].usage, |
| 737 | (unsigned long long)pr->power.states[i].time); | 737 | us_to_pm_timer_ticks(pr->power.states[i].time)); |
| 738 | } | 738 | } |
| 739 | 739 | ||
| 740 | end: | 740 | end: |
| @@ -861,7 +861,6 @@ static int acpi_idle_enter_simple(struct cpuidle_device *dev, | |||
| 861 | ktime_t kt1, kt2; | 861 | ktime_t kt1, kt2; |
| 862 | s64 idle_time_ns; | 862 | s64 idle_time_ns; |
| 863 | s64 idle_time; | 863 | s64 idle_time; |
| 864 | s64 sleep_ticks = 0; | ||
| 865 | 864 | ||
| 866 | pr = __get_cpu_var(processors); | 865 | pr = __get_cpu_var(processors); |
| 867 | 866 | ||
| @@ -906,8 +905,6 @@ static int acpi_idle_enter_simple(struct cpuidle_device *dev, | |||
| 906 | idle_time = idle_time_ns; | 905 | idle_time = idle_time_ns; |
| 907 | do_div(idle_time, NSEC_PER_USEC); | 906 | do_div(idle_time, NSEC_PER_USEC); |
| 908 | 907 | ||
| 909 | sleep_ticks = us_to_pm_timer_ticks(idle_time); | ||
| 910 | |||
| 911 | /* Tell the scheduler how much we idled: */ | 908 | /* Tell the scheduler how much we idled: */ |
| 912 | sched_clock_idle_wakeup_event(idle_time_ns); | 909 | sched_clock_idle_wakeup_event(idle_time_ns); |
| 913 | 910 | ||
| @@ -918,7 +915,7 @@ static int acpi_idle_enter_simple(struct cpuidle_device *dev, | |||
| 918 | cx->usage++; | 915 | cx->usage++; |
| 919 | 916 | ||
| 920 | lapic_timer_state_broadcast(pr, cx, 0); | 917 | lapic_timer_state_broadcast(pr, cx, 0); |
| 921 | cx->time += sleep_ticks; | 918 | cx->time += idle_time; |
| 922 | return idle_time; | 919 | return idle_time; |
| 923 | } | 920 | } |
| 924 | 921 | ||
| @@ -940,7 +937,6 @@ static int acpi_idle_enter_bm(struct cpuidle_device *dev, | |||
| 940 | ktime_t kt1, kt2; | 937 | ktime_t kt1, kt2; |
| 941 | s64 idle_time_ns; | 938 | s64 idle_time_ns; |
| 942 | s64 idle_time; | 939 | s64 idle_time; |
| 943 | s64 sleep_ticks = 0; | ||
| 944 | 940 | ||
| 945 | 941 | ||
| 946 | pr = __get_cpu_var(processors); | 942 | pr = __get_cpu_var(processors); |
| @@ -1022,11 +1018,10 @@ static int acpi_idle_enter_bm(struct cpuidle_device *dev, | |||
| 1022 | spin_unlock(&c3_lock); | 1018 | spin_unlock(&c3_lock); |
| 1023 | } | 1019 | } |
| 1024 | kt2 = ktime_get_real(); | 1020 | kt2 = ktime_get_real(); |
