Loading MAINTAINERS +7 −0 Original line number Diff line number Diff line Loading @@ -247,6 +247,13 @@ L: linux-acpi@vger.kernel.org W: http://acpi.sourceforge.net/ S: Supported ACPI VIDEO DRIVER P: Luming Yu M: luming.yu@intel.com L: linux-acpi@vger.kernel.org W: http://acpi.sourceforge.net/ S: Supported AD1816 SOUND DRIVER P: Thorsten Knabe M: Thorsten Knabe <linux@thorsten-knabe.de> Loading drivers/acpi/Kconfig +1 −0 Original line number Diff line number Diff line Loading @@ -13,6 +13,7 @@ config ACPI depends on IA64 || X86 depends on PCI depends on PM select PNP default y ---help--- Advanced Configuration and Power Interface (ACPI) support for Loading drivers/acpi/asus_acpi.c +13 −1 Original line number Diff line number Diff line Loading @@ -141,6 +141,7 @@ struct asus_hotk { W5A, //W5A W3V, //W3030V xxN, //M2400N, M3700N, M5200N, M6800N, S1300N, S5200N A4S, //Z81sp //(Centrino) END_MODEL } model; //Models currently supported Loading Loading @@ -397,7 +398,16 @@ static struct model_data model_conf[END_MODEL] = { .brightness_set = "SPLV", .brightness_get = "GPLV", .display_set = "SDSP", .display_get = "\\ADVG"} .display_get = "\\ADVG"}, { .name = "A4S", .brightness_set = "SPLV", .brightness_get = "GPLV", .mt_bt_switch = "BLED", .mt_wled = "WLED" } }; /* procdir we use */ Loading Loading @@ -1117,6 +1127,8 @@ static int asus_model_match(char *model) return W3V; else if (strncmp(model, "W5A", 3) == 0) return W5A; else if (strncmp(model, "A4S", 3) == 0) return A4S; else return END_MODEL; } Loading drivers/acpi/bay.c +5 −96 Original line number Diff line number Diff line Loading @@ -47,18 +47,6 @@ MODULE_LICENSE("GPL"); acpi_get_name(h, ACPI_FULL_PATHNAME, &buffer);\ printk(KERN_DEBUG PREFIX "%s: %s\n", prefix, s); } static void bay_notify(acpi_handle handle, u32 event, void *data); static int acpi_bay_add(struct acpi_device *device); static int acpi_bay_remove(struct acpi_device *device, int type); static struct acpi_driver acpi_bay_driver = { .name = ACPI_BAY_DRIVER_NAME, .class = ACPI_BAY_CLASS, .ids = ACPI_BAY_HID, .ops = { .add = acpi_bay_add, .remove = acpi_bay_remove, }, }; struct bay { acpi_handle handle; Loading Loading @@ -234,14 +222,6 @@ int eject_removable_drive(struct device *dev) } EXPORT_SYMBOL_GPL(eject_removable_drive); static int acpi_bay_add(struct acpi_device *device) { bay_dprintk(device->handle, "adding bay device"); strcpy(acpi_device_name(device), "Dockable Bay"); strcpy(acpi_device_class(device), "bay"); return 0; } static int acpi_bay_add_fs(struct bay *bay) { int ret; Loading Loading @@ -303,7 +283,7 @@ static int bay_add(acpi_handle handle, int id) /* initialize platform device stuff */ pdev = platform_device_register_simple(ACPI_BAY_CLASS, id, NULL, 0); if (pdev == NULL) { if (IS_ERR(pdev)) { printk(KERN_ERR PREFIX "Error registering bay device\n"); goto bay_add_err; } Loading Loading @@ -339,52 +319,6 @@ static int bay_add(acpi_handle handle, int id) return -ENODEV; } static int acpi_bay_remove(struct acpi_device *device, int type) { /*** FIXME: do something here */ return 0; } /** * bay_create_acpi_device - add new devices to acpi * @handle - handle of the device to add * * This function will create a new acpi_device for the given * handle if one does not exist already. This should cause * acpi to scan for drivers for the given devices, and call * matching driver's add routine. * * Returns a pointer to the acpi_device corresponding to the handle. */ static struct acpi_device * bay_create_acpi_device(acpi_handle handle) { struct acpi_device *device = NULL; struct acpi_device *parent_device; acpi_handle parent; int ret; bay_dprintk(handle, "Trying to get device"); if (acpi_bus_get_device(handle, &device)) { /* * no device created for this object, * so we should create one. */ bay_dprintk(handle, "No device for handle"); acpi_get_parent(handle, &parent); if (acpi_bus_get_device(parent, &parent_device)) parent_device = NULL; ret = acpi_bus_add(&device, parent_device, handle, ACPI_BUS_TYPE_DEVICE); if (ret) { pr_debug("error adding bus, %x\n", -ret); return NULL; } } return device; } /** * bay_notify - act upon an acpi bay notification * @handle: the bay handle Loading @@ -394,38 +328,19 @@ static struct acpi_device * bay_create_acpi_device(acpi_handle handle) */ static void bay_notify(acpi_handle handle, u32 event, void *data) { struct acpi_device *dev; struct bay *bay_dev = (struct bay *)data; struct device *dev = &bay_dev->pdev->dev; bay_dprintk(handle, "Bay event"); switch(event) { case ACPI_NOTIFY_BUS_CHECK: printk("Bus Check\n"); case ACPI_NOTIFY_DEVICE_CHECK: printk("Device Check\n"); dev = bay_create_acpi_device(handle); if (dev) acpi_bus_generate_event(dev, event, 0); else printk("No device for generating event\n"); /* wouldn't it be a good idea to just rescan SATA * right here? */ break; case ACPI_NOTIFY_EJECT_REQUEST: printk("Eject request\n"); dev = bay_create_acpi_device(handle); if (dev) acpi_bus_generate_event(dev, event, 0); else printk("No device for generating eventn"); /* wouldn't it be a good idea to just call the * eject_device here if we were a SATA device? */ kobject_uevent(&dev->kobj, KOBJ_CHANGE); break; default: printk("unknown event %d\n", event); printk(KERN_ERR PREFIX "Bay: unknown event %d\n", event); } } Loading Loading @@ -457,10 +372,6 @@ static int __init bay_init(void) acpi_walk_namespace(ACPI_TYPE_DEVICE, ACPI_ROOT_OBJECT, ACPI_UINT32_MAX, find_bay, &bays, NULL); if (bays) if ((acpi_bus_register_driver(&acpi_bay_driver) < 0)) printk(KERN_ERR "Unable to register bay driver\n"); if (!bays) return -ENODEV; Loading @@ -481,8 +392,6 @@ static void __exit bay_exit(void) kfree(bay->name); kfree(bay); } acpi_bus_unregister_driver(&acpi_bay_driver); } postcore_initcall(bay_init); Loading drivers/acpi/ec.c +3 −1 Original line number Diff line number Diff line Loading @@ -280,9 +280,11 @@ static int acpi_ec_transaction(struct acpi_ec *ec, u8 command, mutex_lock(&ec->lock); if (ec->global_lock) { status = acpi_acquire_global_lock(ACPI_EC_UDELAY_GLK, &glk); if (ACPI_FAILURE(status)) if (ACPI_FAILURE(status)) { mutex_unlock(&ec->lock); return -ENODEV; } } /* Make sure GPE is enabled before doing transaction */ acpi_enable_gpe(NULL, ec->gpe, ACPI_NOT_ISR); Loading Loading
MAINTAINERS +7 −0 Original line number Diff line number Diff line Loading @@ -247,6 +247,13 @@ L: linux-acpi@vger.kernel.org W: http://acpi.sourceforge.net/ S: Supported ACPI VIDEO DRIVER P: Luming Yu M: luming.yu@intel.com L: linux-acpi@vger.kernel.org W: http://acpi.sourceforge.net/ S: Supported AD1816 SOUND DRIVER P: Thorsten Knabe M: Thorsten Knabe <linux@thorsten-knabe.de> Loading
drivers/acpi/Kconfig +1 −0 Original line number Diff line number Diff line Loading @@ -13,6 +13,7 @@ config ACPI depends on IA64 || X86 depends on PCI depends on PM select PNP default y ---help--- Advanced Configuration and Power Interface (ACPI) support for Loading
drivers/acpi/asus_acpi.c +13 −1 Original line number Diff line number Diff line Loading @@ -141,6 +141,7 @@ struct asus_hotk { W5A, //W5A W3V, //W3030V xxN, //M2400N, M3700N, M5200N, M6800N, S1300N, S5200N A4S, //Z81sp //(Centrino) END_MODEL } model; //Models currently supported Loading Loading @@ -397,7 +398,16 @@ static struct model_data model_conf[END_MODEL] = { .brightness_set = "SPLV", .brightness_get = "GPLV", .display_set = "SDSP", .display_get = "\\ADVG"} .display_get = "\\ADVG"}, { .name = "A4S", .brightness_set = "SPLV", .brightness_get = "GPLV", .mt_bt_switch = "BLED", .mt_wled = "WLED" } }; /* procdir we use */ Loading Loading @@ -1117,6 +1127,8 @@ static int asus_model_match(char *model) return W3V; else if (strncmp(model, "W5A", 3) == 0) return W5A; else if (strncmp(model, "A4S", 3) == 0) return A4S; else return END_MODEL; } Loading
drivers/acpi/bay.c +5 −96 Original line number Diff line number Diff line Loading @@ -47,18 +47,6 @@ MODULE_LICENSE("GPL"); acpi_get_name(h, ACPI_FULL_PATHNAME, &buffer);\ printk(KERN_DEBUG PREFIX "%s: %s\n", prefix, s); } static void bay_notify(acpi_handle handle, u32 event, void *data); static int acpi_bay_add(struct acpi_device *device); static int acpi_bay_remove(struct acpi_device *device, int type); static struct acpi_driver acpi_bay_driver = { .name = ACPI_BAY_DRIVER_NAME, .class = ACPI_BAY_CLASS, .ids = ACPI_BAY_HID, .ops = { .add = acpi_bay_add, .remove = acpi_bay_remove, }, }; struct bay { acpi_handle handle; Loading Loading @@ -234,14 +222,6 @@ int eject_removable_drive(struct device *dev) } EXPORT_SYMBOL_GPL(eject_removable_drive); static int acpi_bay_add(struct acpi_device *device) { bay_dprintk(device->handle, "adding bay device"); strcpy(acpi_device_name(device), "Dockable Bay"); strcpy(acpi_device_class(device), "bay"); return 0; } static int acpi_bay_add_fs(struct bay *bay) { int ret; Loading Loading @@ -303,7 +283,7 @@ static int bay_add(acpi_handle handle, int id) /* initialize platform device stuff */ pdev = platform_device_register_simple(ACPI_BAY_CLASS, id, NULL, 0); if (pdev == NULL) { if (IS_ERR(pdev)) { printk(KERN_ERR PREFIX "Error registering bay device\n"); goto bay_add_err; } Loading Loading @@ -339,52 +319,6 @@ static int bay_add(acpi_handle handle, int id) return -ENODEV; } static int acpi_bay_remove(struct acpi_device *device, int type) { /*** FIXME: do something here */ return 0; } /** * bay_create_acpi_device - add new devices to acpi * @handle - handle of the device to add * * This function will create a new acpi_device for the given * handle if one does not exist already. This should cause * acpi to scan for drivers for the given devices, and call * matching driver's add routine. * * Returns a pointer to the acpi_device corresponding to the handle. */ static struct acpi_device * bay_create_acpi_device(acpi_handle handle) { struct acpi_device *device = NULL; struct acpi_device *parent_device; acpi_handle parent; int ret; bay_dprintk(handle, "Trying to get device"); if (acpi_bus_get_device(handle, &device)) { /* * no device created for this object, * so we should create one. */ bay_dprintk(handle, "No device for handle"); acpi_get_parent(handle, &parent); if (acpi_bus_get_device(parent, &parent_device)) parent_device = NULL; ret = acpi_bus_add(&device, parent_device, handle, ACPI_BUS_TYPE_DEVICE); if (ret) { pr_debug("error adding bus, %x\n", -ret); return NULL; } } return device; } /** * bay_notify - act upon an acpi bay notification * @handle: the bay handle Loading @@ -394,38 +328,19 @@ static struct acpi_device * bay_create_acpi_device(acpi_handle handle) */ static void bay_notify(acpi_handle handle, u32 event, void *data) { struct acpi_device *dev; struct bay *bay_dev = (struct bay *)data; struct device *dev = &bay_dev->pdev->dev; bay_dprintk(handle, "Bay event"); switch(event) { case ACPI_NOTIFY_BUS_CHECK: printk("Bus Check\n"); case ACPI_NOTIFY_DEVICE_CHECK: printk("Device Check\n"); dev = bay_create_acpi_device(handle); if (dev) acpi_bus_generate_event(dev, event, 0); else printk("No device for generating event\n"); /* wouldn't it be a good idea to just rescan SATA * right here? */ break; case ACPI_NOTIFY_EJECT_REQUEST: printk("Eject request\n"); dev = bay_create_acpi_device(handle); if (dev) acpi_bus_generate_event(dev, event, 0); else printk("No device for generating eventn"); /* wouldn't it be a good idea to just call the * eject_device here if we were a SATA device? */ kobject_uevent(&dev->kobj, KOBJ_CHANGE); break; default: printk("unknown event %d\n", event); printk(KERN_ERR PREFIX "Bay: unknown event %d\n", event); } } Loading Loading @@ -457,10 +372,6 @@ static int __init bay_init(void) acpi_walk_namespace(ACPI_TYPE_DEVICE, ACPI_ROOT_OBJECT, ACPI_UINT32_MAX, find_bay, &bays, NULL); if (bays) if ((acpi_bus_register_driver(&acpi_bay_driver) < 0)) printk(KERN_ERR "Unable to register bay driver\n"); if (!bays) return -ENODEV; Loading @@ -481,8 +392,6 @@ static void __exit bay_exit(void) kfree(bay->name); kfree(bay); } acpi_bus_unregister_driver(&acpi_bay_driver); } postcore_initcall(bay_init); Loading
drivers/acpi/ec.c +3 −1 Original line number Diff line number Diff line Loading @@ -280,9 +280,11 @@ static int acpi_ec_transaction(struct acpi_ec *ec, u8 command, mutex_lock(&ec->lock); if (ec->global_lock) { status = acpi_acquire_global_lock(ACPI_EC_UDELAY_GLK, &glk); if (ACPI_FAILURE(status)) if (ACPI_FAILURE(status)) { mutex_unlock(&ec->lock); return -ENODEV; } } /* Make sure GPE is enabled before doing transaction */ acpi_enable_gpe(NULL, ec->gpe, ACPI_NOT_ISR); Loading