static int __init dell_wmi_aio_init(void) { int err; const char *guid; guid = dell_wmi_aio_find(); if (!guid) { pr_warn("No known WMI GUID found\n"); return -ENXIO; } err = dell_wmi_aio_input_setup(); if (err) return err; err = wmi_install_notify_handler(guid, dell_wmi_aio_notify, NULL); if (err) { pr_err("Unable to register notify handler - %d\n", err); sparse_keymap_free(dell_wmi_aio_input_dev); input_unregister_device(dell_wmi_aio_input_dev); return err; } return 0; }
static int __init dell_wmi_init(void) { int err; if (wmi_has_guid(DELL_EVENT_GUID)) { dmi_walk(find_hk_type, NULL); err = dell_wmi_input_setup(); if (err) return err; err = wmi_install_notify_handler(DELL_EVENT_GUID, dell_wmi_notify, NULL); if (err) { input_unregister_device(dell_wmi_input_dev); printk(KERN_ERR "dell-wmi: Unable to register" " notify handler - %d\n", err); return err; } acpi_video = acpi_video_backlight_support(); } else printk(KERN_WARNING "dell-wmi: No known WMI GUID found\n"); return 0; }
static int __init dell_wmi_init(void) { int err; acpi_status status; if (!wmi_has_guid(DELL_EVENT_GUID)) { printk(KERN_WARNING "dell-wmi: No known WMI GUID found\n"); return -ENODEV; } dmi_walk(find_hk_type, NULL); acpi_video = acpi_video_backlight_support(); err = dell_wmi_input_setup(); if (err) return err; status = wmi_install_notify_handler(DELL_EVENT_GUID, dell_wmi_notify, NULL); if (ACPI_FAILURE(status)) { input_unregister_device(dell_wmi_input_dev); printk(KERN_ERR "dell-wmi: Unable to register notify handler - %d\n", status); return -ENODEV; } return 0; }
static int __init dell_wmi_aio_init(void) { int err; char *guid; guid = dell_wmi_aio_find(); if (guid) { err = dell_wmi_aio_input_setup(); if (err) return err; err = wmi_install_notify_handler(guid, dell_wmi_aio_notify, NULL); if (err) { input_unregister_device(dell_wmi_aio_input_dev); pr_err(AIO_PREFIX "Unable to register" " notify handler - %d\n", err); return err; } } else pr_warning(AIO_PREFIX "No known WMI GUID found\n"); return 0; }
static int __init hp_wmi_input_setup(void) { acpi_status status; int err, val; hp_wmi_input_dev = input_allocate_device(); if (!hp_wmi_input_dev) return -ENOMEM; hp_wmi_input_dev->name = "HP WMI hotkeys"; hp_wmi_input_dev->phys = "wmi/input0"; hp_wmi_input_dev->id.bustype = BUS_HOST; __set_bit(EV_SW, hp_wmi_input_dev->evbit); /* Dock */ val = hp_wmi_hw_state(HPWMI_DOCK_MASK); if (!(val < 0)) { __set_bit(SW_DOCK, hp_wmi_input_dev->swbit); input_report_switch(hp_wmi_input_dev, SW_DOCK, val); } /* Tablet mode */ val = hp_wmi_hw_state(HPWMI_TABLET_MASK); if (!(val < 0)) { __set_bit(SW_TABLET_MODE, hp_wmi_input_dev->swbit); input_report_switch(hp_wmi_input_dev, SW_TABLET_MODE, val); } err = sparse_keymap_setup(hp_wmi_input_dev, hp_wmi_keymap, NULL); if (err) goto err_free_dev; /* Set initial hardware state */ input_sync(hp_wmi_input_dev); if (!hp_wmi_bios_2009_later() && hp_wmi_bios_2008_later()) hp_wmi_enable_hotkeys(); status = wmi_install_notify_handler(HPWMI_EVENT_GUID, hp_wmi_notify, NULL); if (ACPI_FAILURE(status)) { err = -EIO; goto err_free_dev; } err = input_register_device(hp_wmi_input_dev); if (err) goto err_uninstall_notifier; return 0; err_uninstall_notifier: wmi_remove_notify_handler(HPWMI_EVENT_GUID); err_free_dev: input_free_device(hp_wmi_input_dev); return err; }
static int __init msi_wmi_init(void) { int err; int i; for (i = 0; i < ARRAY_SIZE(event_wmis); i++) { if (!wmi_has_guid(event_wmis[i].guid)) continue; err = msi_wmi_input_setup(); if (err) { pr_err("Unable to setup input device\n"); return err; } err = wmi_install_notify_handler(event_wmis[i].guid, msi_wmi_notify, NULL); if (ACPI_FAILURE(err)) { pr_err("Unable to setup WMI notify handler\n"); goto err_free_input; } pr_debug("Event handler installed\n"); event_wmi = &event_wmis[i]; break; } if (wmi_has_guid(MSIWMI_BIOS_GUID) && acpi_video_get_backlight_type() == acpi_backlight_vendor) { err = msi_wmi_backlight_setup(); if (err) { pr_err("Unable to setup backlight device\n"); goto err_uninstall_handler; } pr_debug("Backlight device created\n"); } if (!event_wmi && !backlight) { pr_err("This machine doesn't have neither MSI-hotkeys nor backlight through WMI\n"); return -ENODEV; } return 0; err_uninstall_handler: if (event_wmi) wmi_remove_notify_handler(event_wmi->guid); err_free_input: if (event_wmi) input_unregister_device(msi_wmi_input_dev); return err; }
static int __init msi_wmi_init(void) { int err; if (!wmi_has_guid(MSIWMI_EVENT_GUID)) { pr_err("This machine doesn't have MSI-hotkeys through WMI\n"); return -ENODEV; } err = wmi_install_notify_handler(MSIWMI_EVENT_GUID, msi_wmi_notify, NULL); if (ACPI_FAILURE(err)) return -EINVAL; err = msi_wmi_input_setup(); if (err) goto err_uninstall_notifier; if (!acpi_video_backlight_support()) { struct backlight_properties props; memset(&props, 0, sizeof(struct backlight_properties)); props.type = BACKLIGHT_PLATFORM; props.max_brightness = ARRAY_SIZE(backlight_map) - 1; backlight = backlight_device_register(DRV_NAME, NULL, NULL, &msi_backlight_ops, &props); if (IS_ERR(backlight)) { err = PTR_ERR(backlight); goto err_free_input; } err = bl_get(NULL); if (err < 0) goto err_free_backlight; backlight->props.brightness = err; } pr_debug("Event handler installed\n"); return 0; err_free_backlight: backlight_device_unregister(backlight); err_free_input: sparse_keymap_free(msi_wmi_input_dev); input_unregister_device(msi_wmi_input_dev); err_uninstall_notifier: wmi_remove_notify_handler(MSIWMI_EVENT_GUID); return err; }
static int __init gb_wmi_init(void) { int err; if (!wmi_has_guid(GB_WMI_EVENT_GUID)) { pr_err("This machine doesn't have GB input through WMI\n"); return -ENODEV; } err = gb_wmi_input_setup(); if (err) return err; err = wmi_install_notify_handler(GB_WMI_EVENT_GUID, gb_wmi_notify, NULL); if (ACPI_FAILURE(err)) { return -ENODEV; } pr_info("GB WMI driver loaded\n"); return 0; }
static int __init msi_wmi_init(void) { int err; if (!wmi_has_guid(MSIWMI_EVENT_GUID)) { printk(KERN_ERR "This machine doesn't have MSI-hotkeys through WMI\n"); return -ENODEV; } err = wmi_install_notify_handler(MSIWMI_EVENT_GUID, msi_wmi_notify, NULL); if (err) return -EINVAL; err = msi_wmi_input_setup(); if (err) goto err_uninstall_notifier; if (!acpi_video_backlight_support()) { backlight = backlight_device_register(DRV_NAME, NULL, NULL, &msi_backlight_ops); if (IS_ERR(backlight)) goto err_free_input; backlight->props.max_brightness = ARRAY_SIZE(backlight_map) - 1; err = bl_get(NULL); if (err < 0) goto err_free_backlight; backlight->props.brightness = err; } dprintk("Event handler installed\n"); return 0; err_free_backlight: backlight_device_unregister(backlight); err_free_input: input_unregister_device(msi_wmi_input_dev); err_uninstall_notifier: wmi_remove_notify_handler(MSIWMI_EVENT_GUID); return err; }
static int __init hello_start(void) { int status; printk(KERN_INFO "Loading hello module...\n"); printk(KERN_INFO "Hello world\n"); if (!wmi_has_guid(EEEPC_WMI_EVENT_GUID)) { printk("No known WMI GUID found\n"); return -ENODEV; } status = wmi_install_notify_handler(EEEPC_WMI_EVENT_GUID, eeepc_wmi_notify, NULL); if (ACPI_FAILURE(status)) { return -ENODEV; } return 0; }
static int __init toshiba_wmi_input_setup(void) { acpi_status status; int err; toshiba_wmi_input_dev = input_allocate_device(); if (!toshiba_wmi_input_dev) return -ENOMEM; toshiba_wmi_input_dev->name = "Toshiba WMI hotkeys"; toshiba_wmi_input_dev->phys = "wmi/input0"; toshiba_wmi_input_dev->id.bustype = BUS_HOST; err = sparse_keymap_setup(toshiba_wmi_input_dev, toshiba_wmi_keymap, NULL); if (err) goto err_free_dev; status = wmi_install_notify_handler(TOSHIBA_WMI_EVENT_GUID, toshiba_wmi_notify, NULL); if (ACPI_FAILURE(status)) { err = -EIO; goto err_free_keymap; } err = input_register_device(toshiba_wmi_input_dev); if (err) goto err_remove_notifier; return 0; err_remove_notifier: wmi_remove_notify_handler(TOSHIBA_WMI_EVENT_GUID); err_free_keymap: sparse_keymap_free(toshiba_wmi_input_dev); err_free_dev: input_free_device(toshiba_wmi_input_dev); return err; }
static int __init dell_wmi_init(void) { int err; if (wmi_has_guid(DELL_EVENT_GUID)) { err = dell_wmi_input_setup(); if (err) return err; err = wmi_install_notify_handler(DELL_EVENT_GUID, dell_wmi_notify, NULL); if (err) { input_unregister_device(dell_wmi_input_dev); printk(KERN_ERR "dell-wmi: Unable to register" " notify handler - %d\n", err); return err; } } else printk(KERN_WARNING "dell-wmi: No known WMI GUID found\n"); return 0; }