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 { |
