diff options
-rw-r--r-- | Documentation/thinkpad-acpi.txt | 4 | ||||
-rw-r--r-- | drivers/acpi/asus_acpi.c | 1 | ||||
-rw-r--r-- | drivers/char/sonypi.c | 7 | ||||
-rw-r--r-- | drivers/misc/Kconfig | 22 | ||||
-rw-r--r-- | drivers/misc/sony-laptop.c | 7 | ||||
-rw-r--r-- | drivers/misc/thinkpad_acpi.c | 10 | ||||
-rw-r--r-- | drivers/misc/thinkpad_acpi.h | 2 |
7 files changed, 40 insertions, 13 deletions
diff --git a/Documentation/thinkpad-acpi.txt b/Documentation/thinkpad-acpi.txt index 6711fbcf4080..eb2f5986e1eb 100644 --- a/Documentation/thinkpad-acpi.txt +++ b/Documentation/thinkpad-acpi.txt | |||
@@ -105,10 +105,10 @@ The version of thinkpad-acpi's sysfs interface is exported by the driver | |||
105 | as a driver attribute (see below). | 105 | as a driver attribute (see below). |
106 | 106 | ||
107 | Sysfs driver attributes are on the driver's sysfs attribute space, | 107 | Sysfs driver attributes are on the driver's sysfs attribute space, |
108 | for 2.6.20 this is /sys/bus/platform/drivers/thinkpad-acpi/. | 108 | for 2.6.20 this is /sys/bus/platform/drivers/thinkpad_acpi/. |
109 | 109 | ||
110 | Sysfs device attributes are on the driver's sysfs attribute space, | 110 | Sysfs device attributes are on the driver's sysfs attribute space, |
111 | for 2.6.20 this is /sys/devices/platform/thinkpad-acpi/. | 111 | for 2.6.20 this is /sys/devices/platform/thinkpad_acpi/. |
112 | 112 | ||
113 | Driver version | 113 | Driver version |
114 | -------------- | 114 | -------------- |
diff --git a/drivers/acpi/asus_acpi.c b/drivers/acpi/asus_acpi.c index 9c4bd220c44f..86fd142f4bf3 100644 --- a/drivers/acpi/asus_acpi.c +++ b/drivers/acpi/asus_acpi.c | |||
@@ -1192,6 +1192,7 @@ static int asus_hotk_get_info(void) | |||
1192 | break; | 1192 | break; |
1193 | default: | 1193 | default: |
1194 | kfree(model); | 1194 | kfree(model); |
1195 | model = NULL; | ||
1195 | break; | 1196 | break; |
1196 | } | 1197 | } |
1197 | } | 1198 | } |
diff --git a/drivers/char/sonypi.c b/drivers/char/sonypi.c index 73037a4d3c50..aeec67e27264 100644 --- a/drivers/char/sonypi.c +++ b/drivers/char/sonypi.c | |||
@@ -1147,10 +1147,15 @@ static int sonypi_acpi_remove(struct acpi_device *device, int type) | |||
1147 | return 0; | 1147 | return 0; |
1148 | } | 1148 | } |
1149 | 1149 | ||
1150 | const static struct acpi_device_id sonypi_device_ids[] = { | ||
1151 | {"SNY6001", 0}, | ||
1152 | {"", 0}, | ||
1153 | }; | ||
1154 | |||
1150 | static struct acpi_driver sonypi_acpi_driver = { | 1155 | static struct acpi_driver sonypi_acpi_driver = { |
1151 | .name = "sonypi", | 1156 | .name = "sonypi", |
1152 | .class = "hkey", | 1157 | .class = "hkey", |
1153 | .ids = "SNY6001", | 1158 | .ids = sonypi_device_ids, |
1154 | .ops = { | 1159 | .ops = { |
1155 | .add = sonypi_acpi_add, | 1160 | .add = sonypi_acpi_add, |
1156 | .remove = sonypi_acpi_remove, | 1161 | .remove = sonypi_acpi_remove, |
diff --git a/drivers/misc/Kconfig b/drivers/misc/Kconfig index aaaa61ea4217..518d5d335464 100644 --- a/drivers/misc/Kconfig +++ b/drivers/misc/Kconfig | |||
@@ -200,14 +200,22 @@ config THINKPAD_ACPI_BAY | |||
200 | config THINKPAD_ACPI_INPUT_ENABLED | 200 | config THINKPAD_ACPI_INPUT_ENABLED |
201 | bool "Enable input layer support by default" | 201 | bool "Enable input layer support by default" |
202 | depends on THINKPAD_ACPI | 202 | depends on THINKPAD_ACPI |
203 | default y | 203 | default n |
204 | ---help--- | 204 | ---help--- |
205 | Enables hot key handling over the input layer by default. If unset, | 205 | This option enables thinkpad-acpi hot key handling over the input |
206 | the driver does not enable any hot key handling by default, and also | 206 | layer at driver load time. When it is unset, the driver does not |
207 | starts up with a mostly empty keymap. | 207 | enable hot key handling by default, and also starts up with a mostly |
208 | 208 | empty keymap. | |
209 | If you are not sure, say Y here. Say N to retain the deprecated | 209 | |
210 | behavior of ibm-acpi, and thinkpad-acpi for kernels up to 2.6.21. | 210 | This option should be enabled if you have a new enough HAL or other |
211 | userspace support that properly handles the thinkpad-acpi event | ||
212 | device. It auto-tunes the hot key support to those reported by the | ||
213 | firmware and enables it automatically. | ||
214 | |||
215 | If unsure, say N here to retain the old behaviour of ibm-acpi, and | ||
216 | thinkpad-acpi up to kernel 2.6.21: userspace will have to enable and | ||
217 | set up the thinkpad-acpi hot key handling using the sysfs interace | ||
218 | after loading the driver. | ||
211 | 219 | ||
212 | 220 | ||
213 | endif # MISC_DEVICES | 221 | endif # MISC_DEVICES |
diff --git a/drivers/misc/sony-laptop.c b/drivers/misc/sony-laptop.c index 14ee06c8f127..91da6880ae93 100644 --- a/drivers/misc/sony-laptop.c +++ b/drivers/misc/sony-laptop.c | |||
@@ -845,7 +845,7 @@ static struct sony_nc_event sony_C_events[] = { | |||
845 | }; | 845 | }; |
846 | 846 | ||
847 | /* SNC-only model map */ | 847 | /* SNC-only model map */ |
848 | struct dmi_system_id sony_nc_ids[] = { | 848 | static struct dmi_system_id sony_nc_ids[] = { |
849 | { | 849 | { |
850 | .ident = "Sony Vaio FE Series", | 850 | .ident = "Sony Vaio FE Series", |
851 | .callback = sony_nc_C_enable, | 851 | .callback = sony_nc_C_enable, |
@@ -942,6 +942,11 @@ static int sony_nc_resume(struct acpi_device *device) | |||
942 | } | 942 | } |
943 | } | 943 | } |
944 | 944 | ||
945 | /* set the last requested brightness level */ | ||
946 | if (sony_backlight_device && | ||
947 | !sony_backlight_update_status(sony_backlight_device)) | ||
948 | printk(KERN_WARNING DRV_PFX "unable to restore brightness level"); | ||
949 | |||
945 | /* re-initialize models with specific requirements */ | 950 | /* re-initialize models with specific requirements */ |
946 | dmi_check_system(sony_nc_ids); | 951 | dmi_check_system(sony_nc_ids); |
947 | 952 | ||
diff --git a/drivers/misc/thinkpad_acpi.c b/drivers/misc/thinkpad_acpi.c index fa80f355e522..f6cd34a3dbac 100644 --- a/drivers/misc/thinkpad_acpi.c +++ b/drivers/misc/thinkpad_acpi.c | |||
@@ -4668,12 +4668,15 @@ static int __init thinkpad_acpi_module_init(void) | |||
4668 | thinkpad_acpi_module_exit(); | 4668 | thinkpad_acpi_module_exit(); |
4669 | return ret; | 4669 | return ret; |
4670 | } | 4670 | } |
4671 | tp_features.platform_drv_registered = 1; | ||
4672 | |||
4671 | ret = tpacpi_create_driver_attributes(&tpacpi_pdriver.driver); | 4673 | ret = tpacpi_create_driver_attributes(&tpacpi_pdriver.driver); |
4672 | if (ret) { | 4674 | if (ret) { |
4673 | printk(IBM_ERR "unable to create sysfs driver attributes\n"); | 4675 | printk(IBM_ERR "unable to create sysfs driver attributes\n"); |
4674 | thinkpad_acpi_module_exit(); | 4676 | thinkpad_acpi_module_exit(); |
4675 | return ret; | 4677 | return ret; |
4676 | } | 4678 | } |
4679 | tp_features.platform_drv_attrs_registered = 1; | ||
4677 | 4680 | ||
4678 | 4681 | ||
4679 | /* Device initialization */ | 4682 | /* Device initialization */ |
@@ -4756,8 +4759,11 @@ static void thinkpad_acpi_module_exit(void) | |||
4756 | if (tpacpi_pdev) | 4759 | if (tpacpi_pdev) |
4757 | platform_device_unregister(tpacpi_pdev); | 4760 | platform_device_unregister(tpacpi_pdev); |
4758 | 4761 | ||
4759 | tpacpi_remove_driver_attributes(&tpacpi_pdriver.driver); | 4762 | if (tp_features.platform_drv_attrs_registered) |
4760 | platform_driver_unregister(&tpacpi_pdriver); | 4763 | tpacpi_remove_driver_attributes(&tpacpi_pdriver.driver); |
4764 | |||
4765 | if (tp_features.platform_drv_registered) | ||
4766 | platform_driver_unregister(&tpacpi_pdriver); | ||
4761 | 4767 | ||
4762 | if (proc_dir) | 4768 | if (proc_dir) |
4763 | remove_proc_entry(IBM_PROC_DIR, acpi_root_dir); | 4769 | remove_proc_entry(IBM_PROC_DIR, acpi_root_dir); |
diff --git a/drivers/misc/thinkpad_acpi.h b/drivers/misc/thinkpad_acpi.h index 88af089d6494..eee8809a50d9 100644 --- a/drivers/misc/thinkpad_acpi.h +++ b/drivers/misc/thinkpad_acpi.h | |||
@@ -246,6 +246,8 @@ static struct { | |||
246 | u16 wan:1; | 246 | u16 wan:1; |
247 | u16 fan_ctrl_status_undef:1; | 247 | u16 fan_ctrl_status_undef:1; |
248 | u16 input_device_registered:1; | 248 | u16 input_device_registered:1; |
249 | u16 platform_drv_registered:1; | ||
250 | u16 platform_drv_attrs_registered:1; | ||
249 | } tp_features; | 251 | } tp_features; |
250 | 252 | ||
251 | struct thinkpad_id_data { | 253 | struct thinkpad_id_data { |