diff options
| -rw-r--r-- | drivers/acpi/ac.c | 46 | ||||
| -rw-r--r-- | drivers/acpi/apei/erst.c | 34 | ||||
| -rw-r--r-- | drivers/acpi/apei/hest.c | 10 | ||||
| -rw-r--r-- | drivers/acpi/battery.c | 5 | ||||
| -rw-r--r-- | drivers/acpi/ec.c | 3 | ||||
| -rw-r--r-- | drivers/acpi/osl.c | 2 | ||||
| -rw-r--r-- | drivers/acpi/power.c | 12 | ||||
| -rw-r--r-- | drivers/acpi/processor_thermal.c | 9 | ||||
| -rw-r--r-- | drivers/acpi/sleep.c | 4 | ||||
| -rw-r--r-- | drivers/pnp/pnpacpi/core.c | 2 | ||||
| -rw-r--r-- | include/acpi/video.h | 5 | ||||
| -rw-r--r-- | include/linux/video_output.h | 15 |
12 files changed, 88 insertions, 59 deletions
diff --git a/drivers/acpi/ac.c b/drivers/acpi/ac.c index ba9afeaa23a..25d3aaebc10 100644 --- a/drivers/acpi/ac.c +++ b/drivers/acpi/ac.c | |||
| @@ -100,24 +100,7 @@ static const struct file_operations acpi_ac_fops = { | |||
| 100 | .release = single_release, | 100 | .release = single_release, |
| 101 | }; | 101 | }; |
| 102 | #endif | 102 | #endif |
| 103 | static int get_ac_property(struct power_supply *psy, | ||
| 104 | enum power_supply_property psp, | ||
| 105 | union power_supply_propval *val) | ||
| 106 | { | ||
| 107 | struct acpi_ac *ac = to_acpi_ac(psy); | ||
| 108 | switch (psp) { | ||
| 109 | case POWER_SUPPLY_PROP_ONLINE: | ||
| 110 | val->intval = ac->state; | ||
| 111 | break; | ||
| 112 | default: | ||
| 113 | return -EINVAL; | ||
| 114 | } | ||
| 115 | return 0; | ||
| 116 | } | ||
| 117 | 103 | ||
| 118 | static enum power_supply_property ac_props[] = { | ||
| 119 | POWER_SUPPLY_PROP_ONLINE, | ||
| 120 | }; | ||
| 121 | /* -------------------------------------------------------------------------- | 104 | /* -------------------------------------------------------------------------- |
| 122 | AC Adapter Management | 105 | AC Adapter Management |
| 123 | -------------------------------------------------------------------------- */ | 106 | -------------------------------------------------------------------------- */ |
| @@ -140,6 +123,35 @@ static int acpi_ac_get_state(struct acpi_ac *ac) | |||
| 140 | return 0; | 123 | return 0; |
| 141 | } | 124 | } |
| 142 | 125 | ||
| 126 | /* -------------------------------------------------------------------------- | ||
| 127 | sysfs I/F | ||
| 128 | -------------------------------------------------------------------------- */ | ||
| 129 | static int get_ac_property(struct power_supply *psy, | ||
| 130 | enum power_supply_property psp, | ||
| 131 | union power_supply_propval *val) | ||
| 132 | { | ||
| 133 | struct acpi_ac *ac = to_acpi_ac(psy); | ||
| 134 | |||
| 135 | if (!ac) | ||
| 136 | return -ENODEV; | ||
| 137 | |||
| 138 | if (acpi_ac_get_state(ac)) | ||
| 139 | return -ENODEV; | ||
| 140 | |||
| 141 | switch (psp) { | ||
| 142 | case POWER_SUPPLY_PROP_ONLINE: | ||
| 143 | val->intval = ac->state; | ||
| 144 | break; | ||
| 145 | default: | ||
| 146 | return -EINVAL; | ||
| 147 | } | ||
| 148 | return 0; | ||
| 149 | } | ||
| 150 | |||
| 151 | static enum power_supply_property ac_props[] = { | ||
| 152 | POWER_SUPPLY_PROP_ONLINE, | ||
| 153 | }; | ||
| 154 | |||
| 143 | #ifdef CONFIG_ACPI_PROCFS_POWER | 155 | #ifdef CONFIG_ACPI_PROCFS_POWER |
| 144 | /* -------------------------------------------------------------------------- | 156 | /* -------------------------------------------------------------------------- |
| 145 | FS Interface (/proc) | 157 | FS Interface (/proc) |
diff --git a/drivers/acpi/apei/erst.c b/drivers/acpi/apei/erst.c index 1211c03149e..5850d320404 100644 --- a/drivers/acpi/apei/erst.c +++ b/drivers/acpi/apei/erst.c | |||
| @@ -86,7 +86,7 @@ static struct erst_erange { | |||
| 86 | * It is used to provide exclusive accessing for ERST Error Log | 86 | * It is used to provide exclusive accessing for ERST Error Log |
| 87 | * Address Range too. | 87 | * Address Range too. |
| 88 | */ | 88 | */ |
| 89 | static DEFINE_SPINLOCK(erst_lock); | 89 | static DEFINE_RAW_SPINLOCK(erst_lock); |
| 90 | 90 | ||
| 91 | static inline int erst_errno(int command_status) | 91 | static inline int erst_errno(int command_status) |
| 92 | { | 92 | { |
| @@ -421,9 +421,9 @@ ssize_t erst_get_record_count(void) | |||
| 421 | if (erst_disable) | 421 | if (erst_disable) |
| 422 | return -ENODEV; | 422 | return -ENODEV; |
| 423 | 423 | ||
| 424 | spin_lock_irqsave(&erst_lock, flags); | 424 | raw_spin_lock_irqsave(&erst_lock, flags); |
| 425 | count = __erst_get_record_count(); | 425 | count = __erst_get_record_count(); |
| 426 | spin_unlock_irqrestore(&erst_lock, flags); | 426 | raw_spin_unlock_irqrestore(&erst_lock, flags); |
| 427 | 427 | ||
| 428 | return count; | 428 | return count; |
| 429 | } | 429 | } |
| @@ -456,9 +456,9 @@ int erst_get_next_record_id(u64 *record_id) | |||
| 456 | if (erst_disable) | 456 | if (erst_disable) |
| 457 | return -ENODEV; | 457 | return -ENODEV; |
| 458 | 458 | ||
| 459 | spin_lock_irqsave(&erst_lock, flags); | 459 | raw_spin_lock_irqsave(&erst_lock, flags); |
| 460 | rc = __erst_get_next_record_id(record_id); | 460 | rc = __erst_get_next_record_id(record_id); |
| 461 | spin_unlock_irqrestore(&erst_lock, flags); | 461 | raw_spin_unlock_irqrestore(&erst_lock, flags); |
| 462 | 462 | ||
| 463 | return rc; | 463 | return rc; |
| 464 | } | 464 | } |
| @@ -624,17 +624,17 @@ int erst_write(const struct cper_record_header *record) | |||
| 624 | return -EINVAL; | 624 | return -EINVAL; |
| 625 | 625 | ||
| 626 | if (erst_erange.attr & ERST_RANGE_NVRAM) { | 626 | if (erst_erange.attr & ERST_RANGE_NVRAM) { |
| 627 | if (!spin_trylock_irqsave(&erst_lock, flags)) | 627 | if (!raw_spin_trylock_irqsave(&erst_lock, flags)) |
| 628 | return -EBUSY; | 628 | return -EBUSY; |
| 629 | rc = __erst_write_to_nvram(record); | 629 | rc = __erst_write_to_nvram(record); |
| 630 | spin_unlock_irqrestore(&erst_lock, flags); | 630 | raw_spin_unlock_irqrestore(&erst_lock, flags); |
| 631 | return rc; | 631 | return rc; |
| 632 | } | 632 | } |
| 633 | 633 | ||
| 634 | if (record->record_length > erst_erange.size) | 634 | if (record->record_length > erst_erange.size) |
| 635 | return -EINVAL; | 635 | return -EINVAL; |
| 636 | 636 | ||
| 637 | if (!spin_trylock_irqsave(&erst_lock, flags)) | 637 | if (!raw_spin_trylock_irqsave(&erst_lock, flags)) |
| 638 | return -EBUSY; | 638 | return -EBUSY; |
| 639 | memcpy(erst_erange.vaddr, record, record->record_length); | 639 | memcpy(erst_erange.vaddr, record, record->record_length); |
| 640 | rcd_erange = erst_erange.vaddr; | 640 | rcd_erange = erst_erange.vaddr; |
| @@ -642,7 +642,7 @@ int erst_write(const struct cper_record_header *record) | |||
| 642 | memcpy(&rcd_erange->persistence_information, "ER", 2); | 642 | memcpy(&rcd_erange->persistence_information, "ER", 2); |
| 643 | 643 | ||
| 644 | rc = __erst_write_to_storage(0); | 644 | rc = __erst_write_to_storage(0); |
| 645 | spin_unlock_irqrestore(&erst_lock, flags); | 645 | raw_spin_unlock_irqrestore(&erst_lock, flags); |
| 646 | 646 | ||
| 647 | return rc; | 647 | return rc; |
| 648 | } | 648 | } |
| @@ -696,9 +696,9 @@ ssize_t erst_read(u64 record_id, struct cper_record_header *record, | |||
| 696 | if (erst_disable) | 696 | if (erst_disable) |
| 697 | return -ENODEV; | 697 | return -ENODEV; |
| 698 | 698 | ||
| 699 | spin_lock_irqsave(&erst_lock, flags); | 699 | raw_spin_lock_irqsave(&erst_lock, flags); |
| 700 | len = __erst_read(record_id, record, buflen); | 700 | len = __erst_read(record_id, record, buflen); |
| 701 | spin_unlock_irqrestore(&erst_lock, flags); | 701 | raw_spin_unlock_irqrestore(&erst_lock, flags); |
| 702 | return len; | 702 | return len; |
| 703 | } | 703 | } |
| 704 | EXPORT_SYMBOL_GPL(erst_read); | 704 | EXPORT_SYMBOL_GPL(erst_read); |
| @@ -719,20 +719,20 @@ ssize_t erst_read_next(struct cper_record_header *record, size_t buflen) | |||
| 719 | if (erst_disable) | 719 | if (erst_disable) |
| 720 | return -ENODEV; | 720 | return -ENODEV; |
| 721 | 721 | ||
| 722 | spin_lock_irqsave(&erst_lock, flags); | 722 | raw_spin_lock_irqsave(&erst_lock, flags); |
| 723 | rc = __erst_get_next_record_id(&record_id); | 723 | rc = __erst_get_next_record_id(&record_id); |
| 724 | if (rc) { | 724 | if (rc) { |
| 725 | spin_unlock_irqrestore(&erst_lock, flags); | 725 | raw_spin_unlock_irqrestore(&erst_lock, flags); |
| 726 | return rc; | 726 | return rc; |
| 727 | } | 727 | } |
| 728 | /* no more record */ | 728 | /* no more record */ |
| 729 | if (record_id == APEI_ERST_INVALID_RECORD_ID) { | 729 | if (record_id == APEI_ERST_INVALID_RECORD_ID) { |
| 730 | spin_unlock_irqrestore(&erst_lock, flags); | 730 | raw_spin_unlock_irqrestore(&erst_lock, flags); |
| 731 | return 0; | 731 | return 0; |
| 732 | } | 732 | } |
| 733 | 733 | ||
| 734 | len = __erst_read(record_id, record, buflen); | 734 | len = __erst_read(record_id, record, buflen); |
| 735 | spin_unlock_irqrestore(&erst_lock, flags); | 735 | raw_spin_unlock_irqrestore(&erst_lock, flags); |
| 736 | 736 | ||
| 737 | return len; | 737 | return len; |
| 738 | } | 738 | } |
| @@ -746,12 +746,12 @@ int erst_clear(u64 record_id) | |||
| 746 | if (erst_disable) | 746 | if (erst_disable) |
| 747 | return -ENODEV; | 747 | return -ENODEV; |
| 748 | 748 | ||
| 749 | spin_lock_irqsave(&erst_lock, flags); | 749 | raw_spin_lock_irqsave(&erst_lock, flags); |
| 750 | if (erst_erange.attr & ERST_RANGE_NVRAM) | 750 | if (erst_erange.attr & ERST_RANGE_NVRAM) |
| 751 | rc = __erst_clear_from_nvram(record_id); | 751 | rc = __erst_clear_from_nvram(record_id); |
| 752 | else | 752 | else |
| 753 | rc = __erst_clear_from_storage(record_id); | 753 | rc = __erst_clear_from_storage(record_id); |
| 754 | spin_unlock_irqrestore(&erst_lock, flags); | 754 | raw_spin_unlock_irqrestore(&erst_lock, flags); |
| 755 | 755 | ||
| 756 | return rc; | 756 | return rc; |
| 757 | } | 757 | } |
diff --git a/drivers/acpi/apei/hest.c b/drivers/acpi/apei/hest.c index 1a3508a7fe0..daa7bc63f1d 100644 --- a/drivers/acpi/apei/hest.c +++ b/drivers/acpi/apei/hest.c | |||
| @@ -46,9 +46,9 @@ EXPORT_SYMBOL_GPL(hest_disable); | |||
| 46 | 46 | ||
| 47 | /* HEST table parsing */ | 47 | /* HEST table parsing */ |
| 48 | 48 | ||
| 49 | static struct acpi_table_hest *hest_tab; | 49 | static struct acpi_table_hest *__read_mostly hest_tab; |
| 50 | 50 | ||
| 51 | static int hest_esrc_len_tab[ACPI_HEST_TYPE_RESERVED] = { | 51 | static const int hest_esrc_len_tab[ACPI_HEST_TYPE_RESERVED] = { |
| 52 | [ACPI_HEST_TYPE_IA32_CHECK] = -1, /* need further calculation */ | 52 | [ACPI_HEST_TYPE_IA32_CHECK] = -1, /* need further calculation */ |
| 53 | [ACPI_HEST_TYPE_IA32_CORRECTED_CHECK] = -1, | 53 | [ACPI_HEST_TYPE_IA32_CORRECTED_CHECK] = -1, |
| 54 | [ACPI_HEST_TYPE_IA32_NMI] = sizeof(struct acpi_hest_ia_nmi), | 54 | [ACPI_HEST_TYPE_IA32_NMI] = sizeof(struct acpi_hest_ia_nmi), |
| @@ -126,7 +126,7 @@ struct ghes_arr { | |||
| 126 | unsigned int count; | 126 | unsigned int count; |
| 127 | }; | 127 | }; |
| 128 | 128 | ||
| 129 | static int hest_parse_ghes_count(struct acpi_hest_header *hest_hdr, void *data) | 129 | static int __init hest_parse_ghes_count(struct acpi_hest_header *hest_hdr, void *data) |
| 130 | { | 130 | { |
| 131 | int *count = data; | 131 | int *count = data; |
| 132 | 132 | ||
| @@ -135,7 +135,7 @@ static int hest_parse_ghes_count(struct acpi_hest_header *hest_hdr, void *data) | |||
| 135 | return 0; | 135 | return 0; |
| 136 | } | 136 | } |
| 137 | 137 | ||
| 138 | static int hest_parse_ghes(struct acpi_hest_header *hest_hdr, void *data) | 138 | static int __init hest_parse_ghes(struct acpi_hest_header *hest_hdr, void *data) |
| 139 | { | 139 | { |
| 140 | struct platform_device *ghes_dev; | 140 | struct platform_device *ghes_dev; |
| 141 | struct ghes_arr *ghes_arr = data; | 141 | struct ghes_arr *ghes_arr = data; |
| @@ -165,7 +165,7 @@ err: | |||
| 165 | return rc; | 165 | return rc; |
| 166 | } | 166 | } |
| 167 | 167 | ||
| 168 | static int hest_ghes_dev_register(unsigned int ghes_count) | 168 | static int __init hest_ghes_dev_register(unsigned int ghes_count) |
| 169 | { | 169 | { |
| 170 | int rc, i; | 170 | int rc, i; |
| 171 | struct ghes_arr ghes_arr; | 171 | struct ghes_arr ghes_arr; |
diff --git a/drivers/acpi/battery.c b/drivers/acpi/battery.c index 95649d37307..9fb9d5ac939 100644 --- a/drivers/acpi/battery.c +++ b/drivers/acpi/battery.c | |||
| @@ -130,6 +130,8 @@ struct acpi_battery { | |||
| 130 | unsigned long flags; | 130 | unsigned long flags; |
| 131 | }; | 131 | }; |
| 132 | 132 | ||
| 133 | static int acpi_battery_update(struct acpi_battery *battery); | ||
| 134 | |||
| 133 | #define to_acpi_battery(x) container_of(x, struct acpi_battery, bat); | 135 | #define to_acpi_battery(x) container_of(x, struct acpi_battery, bat); |
| 134 | 136 | ||
| 135 | inline int acpi_battery_present(struct acpi_battery *battery) | 137 | inline int acpi_battery_present(struct acpi_battery *battery) |
| @@ -184,6 +186,9 @@ static int acpi_battery_get_property(struct power_supply *psy, | |||
| 184 | int ret = 0; | 186 | int ret = 0; |
| 185 | struct acpi_battery *battery = to_acpi_battery(psy); | 187 | struct acpi_battery *battery = to_acpi_battery(psy); |
| 186 | 188 | ||
| 189 | if (acpi_battery_update(battery)) | ||
| 190 | return -ENODEV; | ||
| 191 | |||
| 187 | if (acpi_battery_present(battery)) { | 192 | if (acpi_battery_present(battery)) { |
| 188 | /* run battery update only if it is present */ | 193 | /* run battery update only if it is present */ |
| 189 | acpi_battery_get_state(battery); | 194 | acpi_battery_get_state(battery); |
diff --git a/drivers/acpi/ec.c b/drivers/acpi/ec.c index 372ff80b7b0..302b31ed31f 100644 --- a/drivers/acpi/ec.c +++ b/drivers/acpi/ec.c | |||
| @@ -934,6 +934,9 @@ static struct dmi_system_id __initdata ec_dmi_table[] = { | |||
| 934 | ec_flag_msi, "MSI hardware", { | 934 | ec_flag_msi, "MSI hardware", { |
| 935 | DMI_MATCH(DMI_CHASSIS_VENDOR, "MICRO-Star")}, NULL}, | 935 | DMI_MATCH(DMI_CHASSIS_VENDOR, "MICRO-Star")}, NULL}, |
| 936 | { | 936 | { |
| 937 | ec_flag_msi, "MSI hardware", { | ||
| 938 | DMI_MATCH(DMI_CHASSIS_VENDOR, "MICRO-STAR")}, NULL}, | ||
| 939 | { | ||
| 937 | ec_validate_ecdt, "ASUS hardware", { | 940 | ec_validate_ecdt, "ASUS hardware", { |
| 938 | DMI_MATCH(DMI_BIOS_VENDOR, "ASUS") }, NULL}, | 941 | DMI_MATCH(DMI_BIOS_VENDOR, "ASUS") }, NULL}, |
| 939 | {}, | 942 | {}, |
diff --git a/drivers/acpi/osl.c b/drivers/acpi/osl.c index d0a1bb54367..055d7b701ff 100644 --- a/drivers/acpi/osl.c +++ b/drivers/acpi/osl.c | |||
| @@ -1571,7 +1571,7 @@ acpi_status __init acpi_os_initialize(void) | |||
| 1571 | return AE_OK; | 1571 | return AE_OK; |
| 1572 | } | 1572 | } |
| 1573 | 1573 | ||
| 1574 | acpi_status acpi_os_initialize1(void) | 1574 | acpi_status __init acpi_os_initialize1(void) |
| 1575 | { | 1575 | { |
| 1576 | kacpid_wq = create_workqueue("kacpid"); | 1576 | kacpid_wq = create_workqueue("kacpid"); |
| 1577 | kacpi_notify_wq = create_workqueue("kacpi_notify"); | 1577 | kacpi_notify_wq = create_workqueue("kacpi_notify"); |
diff --git a/drivers/acpi/power.c b/drivers/acpi/power.c index 67dedeed144..4c9c2fb5d98 100644 --- a/drivers/acpi/power.c +++ b/drivers/acpi/power.c | |||
| @@ -213,11 +213,13 @@ static int acpi_power_on(acpi_handle handle) | |||
| 213 | resource->name)); | 213 | resource->name)); |
| 214 | } else { | 214 | } else { |
| 215 | result = __acpi_power_on(resource); | 215 | result = __acpi_power_on(resource); |
| 216 | if (result) | ||
| 217 | resource->ref_count--; | ||
| 216 | } | 218 | } |
| 217 | 219 | ||
| 218 | mutex_unlock(&resource->resource_lock); | 220 | mutex_unlock(&resource->resource_lock); |
| 219 | 221 | ||
| 220 | return 0; | 222 | return result; |
| 221 | } | 223 | } |
| 222 | 224 | ||
| 223 | static int acpi_power_off_device(acpi_handle handle) | 225 | static int acpi_power_off_device(acpi_handle handle) |
| @@ -465,10 +467,12 @@ int acpi_power_transition(struct acpi_device *device, int state) | |||
| 465 | struct acpi_handle_list *tl = NULL; /* Target Resources */ | 467 | struct acpi_handle_list *tl = NULL; /* Target Resources */ |
| 466 | int i = 0; | 468 | int i = 0; |
| 467 | 469 | ||
| 468 | |||
| 469 | if (!device || (state < ACPI_STATE_D0) || (state > ACPI_STATE_D3)) | 470 | if (!device || (state < ACPI_STATE_D0) || (state > ACPI_STATE_D3)) |
| 470 | return -EINVAL; | 471 | return -EINVAL; |
| 471 | 472 | ||
| 473 | if (device->power.state == state) | ||
| 474 | return 0; | ||
| 475 | |||
| 472 | if ((device->power.state < ACPI_STATE_D0) | 476 | if ((device->power.state < ACPI_STATE_D0) |
| 473 | || (device->power.state > ACPI_STATE_D3)) | 477 | || (device->power.state > ACPI_STATE_D3)) |
| 474 | return -ENODEV; | 478 | return -ENODEV; |
| @@ -488,10 +492,6 @@ int acpi_power_transition(struct acpi_device *device, int state) | |||
| 488 | goto end; | 492 | goto end; |
| 489 | } | 493 | } |
| 490 | 494 | ||
| 491 | if (device->power.state == state) { | ||
| 492 | goto end; | ||
| 493 | } | ||
| 494 | |||
| 495 | /* | 495 | /* |
| 496 | * Then we dereference all power resources used in the current list. | 496 | * Then we dereference all power resources used in the current list. |
| 497 | */ | 497 | */ |
diff --git a/drivers/acpi/processor_thermal.c b/drivers/acpi/processor_thermal.c index fde49b9b1d9..79cb6533289 100644 --- a/drivers/acpi/processor_thermal.c +++ b/drivers/acpi/processor_thermal.c | |||
| @@ -156,15 +156,6 @@ static int cpufreq_set_cur_state(unsigned int cpu, int state) | |||
| 156 | return 0; | 156 | return 0; |
| 157 | } | 157 | } |
| 158 | 158 | ||
| 159 | static int acpi_thermal_cpufreq_increase(unsigned int cpu) | ||
| 160 | { | ||
| 161 | return -ENODEV; | ||
| 162 | } | ||
| 163 | static int acpi_thermal_cpufreq_decrease(unsigned int cpu) | ||
| 164 | { | ||
| 165 | return -ENODEV; | ||
| 166 | } | ||
| 167 | |||
| 168 | #endif | 159 | #endif |
| 169 | 160 | ||
| 170 | int acpi_processor_get_limit_info(struct acpi_processor *pr) | 161 | int acpi_processor_get_limit_info(struct acpi_processor *pr) |
diff --git a/drivers/acpi/sleep.c b/drivers/acpi/sleep.c index 721d93b3cee..2182c557923 100644 --- a/drivers/acpi/sleep.c +++ b/drivers/acpi/sleep.c | |||
| @@ -27,8 +27,6 @@ | |||
| 27 | 27 | ||
| 28 | static u8 sleep_states[ACPI_S_STATE_COUNT]; | 28 | static u8 sleep_states[ACPI_S_STATE_COUNT]; |
| 29 | 29 | ||
| 30 | static u32 acpi_target_sleep_state = ACPI_STATE_S0; | ||
| 31 | |||
| 32 | static void acpi_sleep_tts_switch(u32 acpi_state) | 30 | static void acpi_sleep_tts_switch(u32 acpi_state) |
| 33 | { | 31 | { |
| 34 | union acpi_object in_arg = { ACPI_TYPE_INTEGER }; | 32 | union acpi_object in_arg = { ACPI_TYPE_INTEGER }; |
| @@ -81,6 +79,8 @@ static int acpi_sleep_prepare(u32 acpi_state) | |||
| 81 | } | 79 | } |
| 82 | 80 | ||
| 83 | #ifdef CONFIG_ACPI_SLEEP | 81 | #ifdef CONFIG_ACPI_SLEEP |
| 82 | static u32 acpi_target_sleep_state = ACPI_STATE_S0; | ||
| 83 | |||
| 84 | /* | 84 | /* |
| 85 | * The ACPI specification wants us to save NVS memory regions during hibernation | 85 | * The ACPI specification wants us to save NVS memory regions during hibernation |
| 86 | * and to restore them during the subsequent resume. Windows does that also for | 86 | * and to restore them during the subsequent resume. Windows does that also for |
diff --git a/drivers/pnp/pnpacpi/core.c b/drivers/pnp/pnpacpi/core.c index 2d73dfcecdb..57313f4658b 100644 --- a/drivers/pnp/pnpacpi/core.c +++ b/drivers/pnp/pnpacpi/core.c | |||
| @@ -180,7 +180,7 @@ struct pnp_protocol pnpacpi_protocol = { | |||
| 180 | }; | 180 | }; |
| 181 | EXPORT_SYMBOL(pnpacpi_protocol); | 181 | EXPORT_SYMBOL(pnpacpi_protocol); |
| 182 | 182 | ||
| 183 | static char *pnpacpi_get_id(struct acpi_device *device) | 183 | static char *__init pnpacpi_get_id(struct acpi_device *device) |
| 184 | { | 184 | { |
| 185 | struct acpi_hardware_id *id; | 185 | struct acpi_hardware_id *id; |
| 186 | 186 | ||
diff --git a/include/acpi/video.h b/include/acpi/video.h index 551793c9b6e..0e98e679d3a 100644 --- a/include/acpi/video.h +++ b/include/acpi/video.h | |||
| @@ -1,6 +1,10 @@ | |||
| 1 | #ifndef __ACPI_VIDEO_H | 1 | #ifndef __ACPI_VIDEO_H |
| 2 | #define __ACPI_VIDEO_H | 2 | #define __ACPI_VIDEO_H |
| 3 | 3 | ||
| 4 | #include <linux/errno.h> /* for ENODEV */ | ||
| 5 | |||
| 6 | struct acpi_device; | ||
| 7 | |||
| 4 | #define ACPI_VIDEO_DISPLAY_CRT 1 | 8 | #define ACPI_VIDEO_DISPLAY_CRT 1 |
| 5 | #define ACPI_VIDEO_DISPLAY_TV 2 | 9 | #define ACPI_VIDEO_DISPLAY_TV 2 |
| 6 | #define ACPI_VIDEO_DISPLAY_DVI 3 | 10 | #define ACPI_VIDEO_DISPLAY_DVI 3 |
| @@ -26,4 +30,3 @@ static inline int acpi_video_get_edid(struct acpi_device *device, int type, | |||
| 26 | #endif | 30 | #endif |
| 27 | 31 | ||
| 28 | #endif | 32 | #endif |
| 29 | |||
diff --git a/include/linux/video_output.h b/include/linux/video_output.h index 2fb46bc9340..ed5cdeb3604 100644 --- a/include/linux/video_output.h +++ b/include/linux/video_output.h | |||
| @@ -23,6 +23,7 @@ | |||
| 23 | #ifndef _LINUX_VIDEO_OUTPUT_H | 23 | #ifndef _LINUX_VIDEO_OUTPUT_H |
| 24 | #define _LINUX_VIDEO_OUTPUT_H | 24 | #define _LINUX_VIDEO_OUTPUT_H |
| 25 | #include <linux/device.h> | 25 | #include <linux/device.h> |
| 26 | #include <linux/err.h> | ||
| 26 | struct output_device; | 27 | struct output_device; |
| 27 | struct output_properties { | 28 | struct output_properties { |
| 28 | int (*set_state)(struct output_device *); | 29 | int (*set_state)(struct output_device *); |
| @@ -34,9 +35,23 @@ struct output_device { | |||
| 34 | struct device dev; | 35 | struct device dev; |
| 35 | }; | 36 | }; |
| 36 | #define to_output_device(obj) container_of(obj, struct output_device, dev) | 37 | #define to_output_device(obj) container_of(obj, struct output_device, dev) |
| 38 | #if defined(CONFIG_VIDEO_OUTPUT_CONTROL) || defined(CONFIG_VIDEO_OUTPUT_CONTROL_MODULE) | ||
| 37 | struct output_device *video_output_register(const char *name, | 39 | struct output_device *video_output_register(const char *name, |
| 38 | struct device *dev, | 40 | struct device *dev, |
| 39 | void *devdata, | 41 | void *devdata, |
| 40 | struct output_properties *op); | 42 | struct output_properties *op); |
| 41 | void video_output_unregister(struct output_device *dev); | 43 | void video_output_unregister(struct output_device *dev); |
| 44 | #else | ||
| 45 | static struct output_device *video_output_register(const char *name, | ||
| 46 | struct device *dev, | ||
| 47 | void *devdata, | ||
| 48 | struct output_properties *op) | ||
| 49 | { | ||
| 50 | return ERR_PTR(-ENODEV); | ||
| 51 | } | ||
| 52 | static void video_output_unregister(struct output_device *dev) | ||
| 53 | { | ||
| 54 | return; | ||
| 55 | } | ||
| 56 | #endif | ||
| 42 | #endif | 57 | #endif |
