]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
ACPI: scan: Reduce code duplication related to fixed event devices
authorRafael J. Wysocki <rafael.j.wysocki@intel.com>
Mon, 15 Dec 2025 13:54:17 +0000 (14:54 +0100)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Fri, 26 Dec 2025 14:08:57 +0000 (15:08 +0100)
Move duplicate fixed event device registration code
from acpi_bus_scan_fixed() into a new function called
acpi_bus_add_fixed_device_object() and make acpi_bus_scan_fixed()
invoke that function as needed.

No intentional functional impact.

Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Link: https://patch.msgid.link/1916860.atdPhlSkOF@rafael.j.wysocki
drivers/acpi/scan.c

index da4da565f257449b4d31787a033979b8b9d61ffc..0ae36ab7b6ee4ef96a46d11e17369637d2f3c041 100644 (file)
@@ -2759,37 +2759,29 @@ int acpi_bus_register_early_device(int type)
 }
 EXPORT_SYMBOL_GPL(acpi_bus_register_early_device);
 
-static void acpi_bus_scan_fixed(void)
+static void acpi_bus_add_fixed_device_object(enum acpi_bus_device_type type)
 {
-       if (!(acpi_gbl_FADT.flags & ACPI_FADT_POWER_BUTTON)) {
-               struct acpi_device *adev = NULL;
+       struct acpi_device *adev = NULL;
 
-               acpi_add_single_object(&adev, NULL, ACPI_BUS_TYPE_POWER_BUTTON,
-                                      false);
-               if (adev) {
-                       adev->flags.match_driver = true;
-                       if (device_attach(&adev->dev) >= 0)
-                               device_init_wakeup(&adev->dev, true);
-                       else
-                               dev_dbg(&adev->dev, "No driver\n");
+       acpi_add_single_object(&adev, NULL, type, false);
+       if (adev) {
+               adev->flags.match_driver = true;
+               if (device_attach(&adev->dev) >= 0)
+                       device_init_wakeup(&adev->dev, true);
+               else
+                       dev_dbg(&adev->dev, "No driver\n");
 
-                       acpi_default_enumeration(adev);
-               }
+               acpi_default_enumeration(adev);
        }
+}
 
-       if (!(acpi_gbl_FADT.flags & ACPI_FADT_SLEEP_BUTTON)) {
-               struct acpi_device *adev = NULL;
-
-               acpi_add_single_object(&adev, NULL, ACPI_BUS_TYPE_SLEEP_BUTTON,
-                                      false);
-               if (adev) {
-                       adev->flags.match_driver = true;
-                       if (device_attach(&adev->dev) < 0)
-                               dev_dbg(&adev->dev, "No driver\n");
+static void acpi_bus_scan_fixed(void)
+{
+       if (!(acpi_gbl_FADT.flags & ACPI_FADT_POWER_BUTTON))
+               acpi_bus_add_fixed_device_object(ACPI_BUS_TYPE_POWER_BUTTON);
 
-                       acpi_default_enumeration(adev);
-               }
-       }
+       if (!(acpi_gbl_FADT.flags & ACPI_FADT_SLEEP_BUTTON))
+               acpi_bus_add_fixed_device_object(ACPI_BUS_TYPE_SLEEP_BUTTON);
 }
 
 static void __init acpi_get_spcr_uart_addr(void)