878a82c234
Right now, is impossible for battery hook callbacks to access instance-specific data, forcing most drivers to provide some sort of global state. This however is difficult for drivers which can be instantiated multiple times and/or are hotplug-capable. Pass a pointer to the battery hook to those callbacks for usage with container_of(). Signed-off-by: Armin Wolf <W_Armin@gmx.de> Acked-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> Link: https://lore.kernel.org/r/20220927204521.601887-2-W_Armin@gmx.de Reviewed-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
24 lines
658 B
C
24 lines
658 B
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
#ifndef __ACPI_BATTERY_H
|
|
#define __ACPI_BATTERY_H
|
|
|
|
#include <linux/power_supply.h>
|
|
|
|
#define ACPI_BATTERY_CLASS "battery"
|
|
|
|
#define ACPI_BATTERY_NOTIFY_STATUS 0x80
|
|
#define ACPI_BATTERY_NOTIFY_INFO 0x81
|
|
#define ACPI_BATTERY_NOTIFY_THRESHOLD 0x82
|
|
|
|
struct acpi_battery_hook {
|
|
const char *name;
|
|
int (*add_battery)(struct power_supply *battery, struct acpi_battery_hook *hook);
|
|
int (*remove_battery)(struct power_supply *battery, struct acpi_battery_hook *hook);
|
|
struct list_head list;
|
|
};
|
|
|
|
void battery_hook_register(struct acpi_battery_hook *hook);
|
|
void battery_hook_unregister(struct acpi_battery_hook *hook);
|
|
|
|
#endif
|