Commit 2df38a8e authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'acpi-5.13-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm

Pull ACPI fixes from Rafael Wysocki:
 "These revert an unnecessary revert of an ACPI power management commit,
  add a missing device ID to one of the lists and fix a possible memory
  leak in an error path.

  Specifics:

   - Revert a revert of a recent ACPI power management change that does
     not need to be reverted after all (Rafael Wysocki).

   - Add missing fan device ID to the list of device IDs for which the
     devices should not be put into the ACPI PM domain (Sumeet
     Pawnikar).

   - Fix possible memory leak in an error path in the ACPI device
     enumeration code (Christophe JAILLET)"

* tag 'acpi-5.13-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
  ACPI: PM: Add ACPI ID of Alder Lake Fan
  ACPI: scan: Fix a memory leak in an error handling path
  Revert "Revert "ACPI: scan: Turn off unused power resources during initialization""
parents adc12a74 fd386517
...@@ -1313,6 +1313,7 @@ int acpi_dev_pm_attach(struct device *dev, bool power_on) ...@@ -1313,6 +1313,7 @@ int acpi_dev_pm_attach(struct device *dev, bool power_on)
{"PNP0C0B", }, /* Generic ACPI fan */ {"PNP0C0B", }, /* Generic ACPI fan */
{"INT3404", }, /* Fan */ {"INT3404", }, /* Fan */
{"INTC1044", }, /* Fan for Tiger Lake generation */ {"INTC1044", }, /* Fan for Tiger Lake generation */
{"INTC1048", }, /* Fan for Alder Lake generation */
{} {}
}; };
struct acpi_device *adev = ACPI_COMPANION(dev); struct acpi_device *adev = ACPI_COMPANION(dev);
......
...@@ -142,6 +142,7 @@ int acpi_device_sleep_wake(struct acpi_device *dev, ...@@ -142,6 +142,7 @@ int acpi_device_sleep_wake(struct acpi_device *dev,
int acpi_power_get_inferred_state(struct acpi_device *device, int *state); int acpi_power_get_inferred_state(struct acpi_device *device, int *state);
int acpi_power_on_resources(struct acpi_device *device, int state); int acpi_power_on_resources(struct acpi_device *device, int state);
int acpi_power_transition(struct acpi_device *device, int state); int acpi_power_transition(struct acpi_device *device, int state);
void acpi_turn_off_unused_power_resources(void);
/* -------------------------------------------------------------------------- /* --------------------------------------------------------------------------
Device Power Management Device Power Management
......
...@@ -995,6 +995,7 @@ void acpi_resume_power_resources(void) ...@@ -995,6 +995,7 @@ void acpi_resume_power_resources(void)
mutex_unlock(&power_resource_list_lock); mutex_unlock(&power_resource_list_lock);
} }
#endif
void acpi_turn_off_unused_power_resources(void) void acpi_turn_off_unused_power_resources(void)
{ {
...@@ -1015,4 +1016,3 @@ void acpi_turn_off_unused_power_resources(void) ...@@ -1015,4 +1016,3 @@ void acpi_turn_off_unused_power_resources(void)
mutex_unlock(&power_resource_list_lock); mutex_unlock(&power_resource_list_lock);
} }
#endif
...@@ -700,6 +700,7 @@ int acpi_device_add(struct acpi_device *device, ...@@ -700,6 +700,7 @@ int acpi_device_add(struct acpi_device *device,
result = acpi_device_set_name(device, acpi_device_bus_id); result = acpi_device_set_name(device, acpi_device_bus_id);
if (result) { if (result) {
kfree_const(acpi_device_bus_id->bus_id);
kfree(acpi_device_bus_id); kfree(acpi_device_bus_id);
goto err_unlock; goto err_unlock;
} }
...@@ -2359,6 +2360,8 @@ int __init acpi_scan_init(void) ...@@ -2359,6 +2360,8 @@ int __init acpi_scan_init(void)
} }
} }
acpi_turn_off_unused_power_resources();
acpi_scan_initialized = true; acpi_scan_initialized = true;
out: out:
......
...@@ -8,7 +8,6 @@ extern struct list_head acpi_wakeup_device_list; ...@@ -8,7 +8,6 @@ extern struct list_head acpi_wakeup_device_list;
extern struct mutex acpi_device_lock; extern struct mutex acpi_device_lock;
extern void acpi_resume_power_resources(void); extern void acpi_resume_power_resources(void);
extern void acpi_turn_off_unused_power_resources(void);
static inline acpi_status acpi_set_waking_vector(u32 wakeup_address) static inline acpi_status acpi_set_waking_vector(u32 wakeup_address)
{ {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment