diff --git a/drivers/acpi/ac.c b/drivers/acpi/ac.c
index 225dc6818751..0b245f9f7ec8 100644
--- a/drivers/acpi/ac.c
+++ b/drivers/acpi/ac.c
@@ -256,8 +256,8 @@ static int acpi_ac_add(struct acpi_device *device)
 	ac->battery_nb.notifier_call = acpi_ac_battery_notify;
 	register_acpi_notifier(&ac->battery_nb);
 
-	result = acpi_dev_install_notify_handler(device, ACPI_ALL_NOTIFY,
-						 acpi_ac_notify);
+	result = acpi_dev_install_notify_handler(device->handle, ACPI_ALL_NOTIFY,
+						 acpi_ac_notify, device);
 	if (result)
 		goto err_unregister;
 
@@ -306,7 +306,7 @@ static void acpi_ac_remove(struct acpi_device *device)
 
 	ac = acpi_driver_data(device);
 
-	acpi_dev_remove_notify_handler(device, ACPI_ALL_NOTIFY,
+	acpi_dev_remove_notify_handler(device->handle, ACPI_ALL_NOTIFY,
 				       acpi_ac_notify);
 	power_supply_unregister(ac->charger);
 	unregister_acpi_notifier(&ac->battery_nb);
diff --git a/drivers/acpi/acpi_video.c b/drivers/acpi/acpi_video.c
index 948e31f7ce6e..025c17890127 100644
--- a/drivers/acpi/acpi_video.c
+++ b/drivers/acpi/acpi_video.c
@@ -2059,8 +2059,8 @@ static int acpi_video_bus_add(struct acpi_device *device)
 
 	acpi_video_bus_add_notify_handler(video);
 
-	error = acpi_dev_install_notify_handler(device, ACPI_DEVICE_NOTIFY,
-						acpi_video_bus_notify);
+	error = acpi_dev_install_notify_handler(device->handle, ACPI_DEVICE_NOTIFY,
+						acpi_video_bus_notify, device);
 	if (error)
 		goto err_remove;
 
@@ -2092,7 +2092,7 @@ static void acpi_video_bus_remove(struct acpi_device *device)
 
 	video = acpi_driver_data(device);
 
-	acpi_dev_remove_notify_handler(device, ACPI_DEVICE_NOTIFY,
+	acpi_dev_remove_notify_handler(device->handle, ACPI_DEVICE_NOTIFY,
 				       acpi_video_bus_notify);
 
 	mutex_lock(&video_list_lock);
diff --git a/drivers/acpi/battery.c b/drivers/acpi/battery.c
index 969bf81e8d54..45dae32a8646 100644
--- a/drivers/acpi/battery.c
+++ b/drivers/acpi/battery.c
@@ -1213,8 +1213,8 @@ static int acpi_battery_add(struct acpi_device *device)
 
 	device_init_wakeup(&device->dev, 1);
 
-	result = acpi_dev_install_notify_handler(device, ACPI_ALL_NOTIFY,
-						 acpi_battery_notify);
+	result = acpi_dev_install_notify_handler(device->handle, ACPI_ALL_NOTIFY,
+						 acpi_battery_notify, device);
 	if (result)
 		goto fail_pm;
 
@@ -1241,7 +1241,7 @@ static void acpi_battery_remove(struct acpi_device *device)
 
 	battery = acpi_driver_data(device);
 
-	acpi_dev_remove_notify_handler(device, ACPI_ALL_NOTIFY,
+	acpi_dev_remove_notify_handler(device->handle, ACPI_ALL_NOTIFY,
 				       acpi_battery_notify);
 
 	device_init_wakeup(&device->dev, 0);
diff --git a/drivers/acpi/bus.c b/drivers/acpi/bus.c
index f41dda2d3493..479fe888d629 100644
--- a/drivers/acpi/bus.c
+++ b/drivers/acpi/bus.c
@@ -554,14 +554,13 @@ static void acpi_device_remove_notify_handler(struct acpi_device *device,
 	acpi_os_wait_events_complete();
 }
 
-int acpi_dev_install_notify_handler(struct acpi_device *adev,
-				    u32 handler_type,
-				    acpi_notify_handler handler)
+int acpi_dev_install_notify_handler(acpi_handle handle, u32 handler_type,
+				    acpi_notify_handler handler, void *context)
 {
 	acpi_status status;
 
-	status = acpi_install_notify_handler(adev->handle, handler_type,
-					     handler, adev);
+	status = acpi_install_notify_handler(handle, handler_type,
+					     handler, context);
 	if (ACPI_FAILURE(status))
 		return -ENODEV;
 
@@ -569,11 +568,10 @@ int acpi_dev_install_notify_handler(struct acpi_device *adev,
 }
 EXPORT_SYMBOL_GPL(acpi_dev_install_notify_handler);
 
-void acpi_dev_remove_notify_handler(struct acpi_device *adev,
-				    u32 handler_type,
+void acpi_dev_remove_notify_handler(acpi_handle handle, u32 handler_type,
 				    acpi_notify_handler handler)
 {
-	acpi_remove_notify_handler(adev->handle, handler_type, handler);
+	acpi_remove_notify_handler(handle, handler_type, handler);
 	acpi_os_wait_events_complete();
 }
 EXPORT_SYMBOL_GPL(acpi_dev_remove_notify_handler);
diff --git a/drivers/acpi/hed.c b/drivers/acpi/hed.c
index 46c6f8c35b43..e7e274c5cc9e 100644
--- a/drivers/acpi/hed.c
+++ b/drivers/acpi/hed.c
@@ -56,8 +56,8 @@ static int acpi_hed_add(struct acpi_device *device)
 		return -EINVAL;
 	hed_handle = device->handle;
 
-	err = acpi_dev_install_notify_handler(device, ACPI_DEVICE_NOTIFY,
-					      acpi_hed_notify);
+	err = acpi_dev_install_notify_handler(device->handle, ACPI_DEVICE_NOTIFY,
+					      acpi_hed_notify, device);
 	if (err)
 		hed_handle = NULL;
 
@@ -66,7 +66,7 @@ static int acpi_hed_add(struct acpi_device *device)
 
 static void acpi_hed_remove(struct acpi_device *device)
 {
-	acpi_dev_remove_notify_handler(device, ACPI_DEVICE_NOTIFY,
+	acpi_dev_remove_notify_handler(device->handle, ACPI_DEVICE_NOTIFY,
 				       acpi_hed_notify);
 	hed_handle = NULL;
 }
diff --git a/drivers/acpi/nfit/core.c b/drivers/acpi/nfit/core.c
index f0e6738ae3c9..821870f57862 100644
--- a/drivers/acpi/nfit/core.c
+++ b/drivers/acpi/nfit/core.c
@@ -3295,7 +3295,7 @@ static void acpi_nfit_remove_notify_handler(void *data)
 {
 	struct acpi_device *adev = data;
 
-	acpi_dev_remove_notify_handler(adev, ACPI_DEVICE_NOTIFY,
+	acpi_dev_remove_notify_handler(adev->handle, ACPI_DEVICE_NOTIFY,
 				       acpi_nfit_notify);
 }
 
@@ -3390,8 +3390,8 @@ static int acpi_nfit_add(struct acpi_device *adev)
 	if (rc)
 		return rc;
 
-	rc = acpi_dev_install_notify_handler(adev, ACPI_DEVICE_NOTIFY,
-					     acpi_nfit_notify);
+	rc = acpi_dev_install_notify_handler(adev->handle, ACPI_DEVICE_NOTIFY,
+					     acpi_nfit_notify, adev);
 	if (rc)
 		return rc;
 
diff --git a/drivers/acpi/thermal.c b/drivers/acpi/thermal.c
index 10720a038846..0218c34c16b9 100644
--- a/drivers/acpi/thermal.c
+++ b/drivers/acpi/thermal.c
@@ -978,8 +978,8 @@ static int acpi_thermal_add(struct acpi_device *device)
 	pr_info("%s [%s] (%ld C)\n", acpi_device_name(device),
 		acpi_device_bid(device), deci_kelvin_to_celsius(tz->temperature));
 
-	result = acpi_dev_install_notify_handler(device, ACPI_DEVICE_NOTIFY,
-						 acpi_thermal_notify);
+	result = acpi_dev_install_notify_handler(device->handle, ACPI_DEVICE_NOTIFY,
+						 acpi_thermal_notify, device);
 	if (result)
 		goto flush_wq;
 
@@ -1005,7 +1005,7 @@ static void acpi_thermal_remove(struct acpi_device *device)
 
 	tz = acpi_driver_data(device);
 
-	acpi_dev_remove_notify_handler(device, ACPI_DEVICE_NOTIFY,
+	acpi_dev_remove_notify_handler(device->handle, ACPI_DEVICE_NOTIFY,
 				       acpi_thermal_notify);
 
 	flush_workqueue(acpi_thermal_pm_queue);
diff --git a/include/acpi/acpi_bus.h b/include/acpi/acpi_bus.h
index 254685085c82..95d5193f236f 100644
--- a/include/acpi/acpi_bus.h
+++ b/include/acpi/acpi_bus.h
@@ -515,11 +515,10 @@ void acpi_bus_private_data_handler(acpi_handle, void *);
 int acpi_bus_get_private_data(acpi_handle, void **);
 int acpi_bus_attach_private_data(acpi_handle, void *);
 void acpi_bus_detach_private_data(acpi_handle);
-int acpi_dev_install_notify_handler(struct acpi_device *adev,
-				    u32 handler_type,
-				    acpi_notify_handler handler);
-void acpi_dev_remove_notify_handler(struct acpi_device *adev,
-				    u32 handler_type,
+int acpi_dev_install_notify_handler(acpi_handle handle, u32 handler_type,
+				    acpi_notify_handler handler,
+				    void *context);
+void acpi_dev_remove_notify_handler(acpi_handle handle, u32 handler_type,
 				    acpi_notify_handler handler);
 extern int acpi_notifier_call_chain(struct acpi_device *, u32, u32);
 extern int register_acpi_notifier(struct notifier_block *);
