diff --git a/drivers/platform/x86/hp-wmi.c b/drivers/platform/x86/hp-wmi.c index d55bf58ce8f9b87112da50b5a74f0171a682c1e0..34b417848e29546d7e309a5a51771361bf379e9a 100644 --- a/drivers/platform/x86/hp-wmi.c +++ b/drivers/platform/x86/hp-wmi.c @@ -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: