hp-wmi: return -ENODEV if BIOS does not export any supported hp wmi guid
authorThomas Renninger <trenn@suse.de>
Tue, 20 Jul 2010 22:19:29 +0000 (15:19 -0700)
committerMatthew Garrett <mjg@redhat.com>
Tue, 3 Aug 2010 13:48:54 +0000 (09:48 -0400)
Signed-off-by: Thomas Renninger <trenn@suse.de>
Cc: Matthew Garrett <mjg@redhat.com>
Cc: Len Brown <len.brown@intel.com>
Cc: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Matthew Garrett <mjg@redhat.com>
drivers/platform/x86/hp-wmi.c

index d55bf58ce8f9b87112da50b5a74f0171a682c1e0..34b417848e29546d7e309a5a51771361bf379e9a 100644 (file)
@@ -711,8 +711,10 @@ static int hp_wmi_resume_handler(struct device *device)
 static int __init hp_wmi_init(void)
 {
        int err;
+       int event_capable = wmi_has_guid(HPWMI_EVENT_GUID);
+       int bios_capable = wmi_has_guid(HPWMI_BIOS_GUID);
 
-       if (wmi_has_guid(HPWMI_EVENT_GUID)) {
+       if (event_capable) {
                err = wmi_install_notify_handler(HPWMI_EVENT_GUID,
                                                 hp_wmi_notify, NULL);
                if (ACPI_FAILURE(err))
@@ -724,7 +726,7 @@ static int __init hp_wmi_init(void)
                }
        }
 
-       if (wmi_has_guid(HPWMI_BIOS_GUID)) {
+       if (bios_capable) {
                err = platform_driver_register(&hp_wmi_driver);
                if (err)
                        goto err_driver_reg;
@@ -738,6 +740,9 @@ static int __init hp_wmi_init(void)
                        goto err_device_add;
        }
 
+       if (!bios_capable && !event_capable)
+               return -ENODEV;
+
        return 0;
 
 err_device_add: