Skip to content

Commit

Permalink
dell-wmi: do not keep driver loaded on unsupported boxes
Browse files Browse the repository at this point in the history
There is no point in having the driver loaded in memory if we fail
to locate particular WMI GUID.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
Acked-by: Matthew Garrett <mjg@redhat.com>
Signed-off-by: Len Brown <len.brown@intel.com>
  • Loading branch information
dtor authored and lenb committed Dec 24, 2009
1 parent 3e9b988 commit 1fdd407
Showing 1 changed file with 19 additions and 22 deletions.
41 changes: 19 additions & 22 deletions drivers/platform/x86/dell-wmi.c
Original file line number Diff line number Diff line change
Expand Up @@ -325,37 +325,34 @@ static int __init dell_wmi_init(void)
int err;

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);

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;
}
dmi_walk(find_hk_type, NULL);
acpi_video = acpi_video_backlight_support();

acpi_video = acpi_video_backlight_support();
err = dell_wmi_input_setup();
if (err)
return err;

} else
printk(KERN_WARNING "dell-wmi: No known WMI GUID found\n");
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;
}

return 0;
}

static void __exit dell_wmi_exit(void)
{
if (wmi_has_guid(DELL_EVENT_GUID)) {
wmi_remove_notify_handler(DELL_EVENT_GUID);
input_unregister_device(dell_wmi_input_dev);
}
wmi_remove_notify_handler(DELL_EVENT_GUID);
input_unregister_device(dell_wmi_input_dev);
}

module_init(dell_wmi_init);
Expand Down

0 comments on commit 1fdd407

Please sign in to comment.