pull asus sony thinkpad into release branch

This commit is contained in:
Len Brown 2007-08-12 00:17:12 -04:00
commit 3b6919e536
7 changed files with 39 additions and 12 deletions

View File

@ -105,10 +105,10 @@ The version of thinkpad-acpi's sysfs interface is exported by the driver
as a driver attribute (see below). as a driver attribute (see below).
Sysfs driver attributes are on the driver's sysfs attribute space, Sysfs driver attributes are on the driver's sysfs attribute space,
for 2.6.20 this is /sys/bus/platform/drivers/thinkpad-acpi/. for 2.6.20 this is /sys/bus/platform/drivers/thinkpad_acpi/.
Sysfs device attributes are on the driver's sysfs attribute space, Sysfs device attributes are on the driver's sysfs attribute space,
for 2.6.20 this is /sys/devices/platform/thinkpad-acpi/. for 2.6.20 this is /sys/devices/platform/thinkpad_acpi/.
Driver version Driver version
-------------- --------------

View File

@ -1192,6 +1192,7 @@ static int asus_hotk_get_info(void)
break; break;
default: default:
kfree(model); kfree(model);
model = NULL;
break; break;
} }
} }

View File

@ -1147,10 +1147,15 @@ static int sonypi_acpi_remove(struct acpi_device *device, int type)
return 0; return 0;
} }
const static struct acpi_device_id sonypi_device_ids[] = {
{"SNY6001", 0},
{"", 0},
};
static struct acpi_driver sonypi_acpi_driver = { static struct acpi_driver sonypi_acpi_driver = {
.name = "sonypi", .name = "sonypi",
.class = "hkey", .class = "hkey",
.ids = "SNY6001", .ids = sonypi_device_ids,
.ops = { .ops = {
.add = sonypi_acpi_add, .add = sonypi_acpi_add,
.remove = sonypi_acpi_remove, .remove = sonypi_acpi_remove,

View File

@ -200,14 +200,22 @@ config THINKPAD_ACPI_BAY
config THINKPAD_ACPI_INPUT_ENABLED config THINKPAD_ACPI_INPUT_ENABLED
bool "Enable input layer support by default" bool "Enable input layer support by default"
depends on THINKPAD_ACPI depends on THINKPAD_ACPI
default y default n
---help--- ---help---
Enables hot key handling over the input layer by default. If unset, This option enables thinkpad-acpi hot key handling over the input
the driver does not enable any hot key handling by default, and also layer at driver load time. When it is unset, the driver does not
starts up with a mostly empty keymap. enable hot key handling by default, and also starts up with a mostly
empty keymap.
If you are not sure, say Y here. Say N to retain the deprecated This option should be enabled if you have a new enough HAL or other
behavior of ibm-acpi, and thinkpad-acpi for kernels up to 2.6.21. userspace support that properly handles the thinkpad-acpi event
device. It auto-tunes the hot key support to those reported by the
firmware and enables it automatically.
If unsure, say N here to retain the old behaviour of ibm-acpi, and
thinkpad-acpi up to kernel 2.6.21: userspace will have to enable and
set up the thinkpad-acpi hot key handling using the sysfs interace
after loading the driver.
endif # MISC_DEVICES endif # MISC_DEVICES

View File

@ -845,7 +845,7 @@ static struct sony_nc_event sony_C_events[] = {
}; };
/* SNC-only model map */ /* SNC-only model map */
struct dmi_system_id sony_nc_ids[] = { static struct dmi_system_id sony_nc_ids[] = {
{ {
.ident = "Sony Vaio FE Series", .ident = "Sony Vaio FE Series",
.callback = sony_nc_C_enable, .callback = sony_nc_C_enable,
@ -942,6 +942,11 @@ static int sony_nc_resume(struct acpi_device *device)
} }
} }
/* set the last requested brightness level */
if (sony_backlight_device &&
!sony_backlight_update_status(sony_backlight_device))
printk(KERN_WARNING DRV_PFX "unable to restore brightness level");
/* re-initialize models with specific requirements */ /* re-initialize models with specific requirements */
dmi_check_system(sony_nc_ids); dmi_check_system(sony_nc_ids);

View File

@ -4668,12 +4668,15 @@ static int __init thinkpad_acpi_module_init(void)
thinkpad_acpi_module_exit(); thinkpad_acpi_module_exit();
return ret; return ret;
} }
tp_features.platform_drv_registered = 1;
ret = tpacpi_create_driver_attributes(&tpacpi_pdriver.driver); ret = tpacpi_create_driver_attributes(&tpacpi_pdriver.driver);
if (ret) { if (ret) {
printk(IBM_ERR "unable to create sysfs driver attributes\n"); printk(IBM_ERR "unable to create sysfs driver attributes\n");
thinkpad_acpi_module_exit(); thinkpad_acpi_module_exit();
return ret; return ret;
} }
tp_features.platform_drv_attrs_registered = 1;
/* Device initialization */ /* Device initialization */
@ -4756,7 +4759,10 @@ static void thinkpad_acpi_module_exit(void)
if (tpacpi_pdev) if (tpacpi_pdev)
platform_device_unregister(tpacpi_pdev); platform_device_unregister(tpacpi_pdev);
if (tp_features.platform_drv_attrs_registered)
tpacpi_remove_driver_attributes(&tpacpi_pdriver.driver); tpacpi_remove_driver_attributes(&tpacpi_pdriver.driver);
if (tp_features.platform_drv_registered)
platform_driver_unregister(&tpacpi_pdriver); platform_driver_unregister(&tpacpi_pdriver);
if (proc_dir) if (proc_dir)

View File

@ -246,6 +246,8 @@ static struct {
u16 wan:1; u16 wan:1;
u16 fan_ctrl_status_undef:1; u16 fan_ctrl_status_undef:1;
u16 input_device_registered:1; u16 input_device_registered:1;
u16 platform_drv_registered:1;
u16 platform_drv_attrs_registered:1;
} tp_features; } tp_features;
struct thinkpad_id_data { struct thinkpad_id_data {