mirror of
https://github.com/torvalds/linux.git
synced 2026-06-04 12:35:52 +02:00
Merge branches 'acpi-pmic', 'acpi-battery' and 'acpi-numa'
Merge ACPI PMIC driver changes, updates related to the ACPI battery and SBS drivers and NUMA-related ACPI updates for 6.11-rc1: - Clean up the ACPI PMIC driver in multiple ways (Andy Shevchenko, Christophe JAILLET). - Add support for charge limiting state to the ACPI battery driver and update _OSC to indicate support for it (Armin Wolf). - Clean up the sysfs interface in the ACPI battery, SBS (smart battery subsystem) and AC drivers (Thomas Weißschuh). - Coordinate header includes in the ACPI NUMA code and make it use ACCESS_COORDINATE_CPU when appropriate (Huang Ying, Thorsten Blum). * acpi-pmic: ACPI: PMIC: Constify struct pmic_table ACPI: PMIC: Replace open coded be16_to_cpu() ACPI: PMIC: Convert pr_*() to dev_*() printing macros ACPI: PMIC: Use sizeof() instead of hard coded value * acpi-battery: ACPI: bus: Indicate support for battery charge limiting thru _OSC ACPI: battery: Add support for charge limiting state ACPI: SBS: manage alarm sysfs attribute through psy core ACPI: battery: create alarm sysfs attribute atomically ACPI: battery: use sysfs_emit over sprintf ACPI: battery: constify powersupply properties ACPI: SBS: constify powersupply properties ACPI: AC: constify powersupply properties * acpi-numa: ACPI: NUMA: Consolidate header includes ACPI: HMAT: Use ACCESS_COORDINATE_CPU when appropriate
This commit is contained in:
commit
fa0d938c28
|
|
@ -112,7 +112,7 @@ static int get_ac_property(struct power_supply *psy,
|
|||
return 0;
|
||||
}
|
||||
|
||||
static enum power_supply_property ac_props[] = {
|
||||
static const enum power_supply_property ac_props[] = {
|
||||
POWER_SUPPLY_PROP_ONLINE,
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -38,9 +38,10 @@
|
|||
/* Battery power unit: 0 means mW, 1 means mA */
|
||||
#define ACPI_BATTERY_POWER_UNIT_MA 1
|
||||
|
||||
#define ACPI_BATTERY_STATE_DISCHARGING 0x1
|
||||
#define ACPI_BATTERY_STATE_CHARGING 0x2
|
||||
#define ACPI_BATTERY_STATE_CRITICAL 0x4
|
||||
#define ACPI_BATTERY_STATE_DISCHARGING 0x1
|
||||
#define ACPI_BATTERY_STATE_CHARGING 0x2
|
||||
#define ACPI_BATTERY_STATE_CRITICAL 0x4
|
||||
#define ACPI_BATTERY_STATE_CHARGE_LIMITING 0x8
|
||||
|
||||
#define MAX_STRING_LENGTH 64
|
||||
|
||||
|
|
@ -155,7 +156,7 @@ static int acpi_battery_get_state(struct acpi_battery *battery);
|
|||
|
||||
static int acpi_battery_is_charged(struct acpi_battery *battery)
|
||||
{
|
||||
/* charging, discharging or critical low */
|
||||
/* charging, discharging, critical low or charge limited */
|
||||
if (battery->state != 0)
|
||||
return 0;
|
||||
|
||||
|
|
@ -215,6 +216,8 @@ static int acpi_battery_get_property(struct power_supply *psy,
|
|||
val->intval = acpi_battery_handle_discharging(battery);
|
||||
else if (battery->state & ACPI_BATTERY_STATE_CHARGING)
|
||||
val->intval = POWER_SUPPLY_STATUS_CHARGING;
|
||||
else if (battery->state & ACPI_BATTERY_STATE_CHARGE_LIMITING)
|
||||
val->intval = POWER_SUPPLY_STATUS_NOT_CHARGING;
|
||||
else if (acpi_battery_is_charged(battery))
|
||||
val->intval = POWER_SUPPLY_STATUS_FULL;
|
||||
else
|
||||
|
|
@ -308,7 +311,7 @@ static int acpi_battery_get_property(struct power_supply *psy,
|
|||
return ret;
|
||||
}
|
||||
|
||||
static enum power_supply_property charge_battery_props[] = {
|
||||
static const enum power_supply_property charge_battery_props[] = {
|
||||
POWER_SUPPLY_PROP_STATUS,
|
||||
POWER_SUPPLY_PROP_PRESENT,
|
||||
POWER_SUPPLY_PROP_TECHNOLOGY,
|
||||
|
|
@ -326,7 +329,7 @@ static enum power_supply_property charge_battery_props[] = {
|
|||
POWER_SUPPLY_PROP_SERIAL_NUMBER,
|
||||
};
|
||||
|
||||
static enum power_supply_property charge_battery_full_cap_broken_props[] = {
|
||||
static const enum power_supply_property charge_battery_full_cap_broken_props[] = {
|
||||
POWER_SUPPLY_PROP_STATUS,
|
||||
POWER_SUPPLY_PROP_PRESENT,
|
||||
POWER_SUPPLY_PROP_TECHNOLOGY,
|
||||
|
|
@ -340,7 +343,7 @@ static enum power_supply_property charge_battery_full_cap_broken_props[] = {
|
|||
POWER_SUPPLY_PROP_SERIAL_NUMBER,
|
||||
};
|
||||
|
||||
static enum power_supply_property energy_battery_props[] = {
|
||||
static const enum power_supply_property energy_battery_props[] = {
|
||||
POWER_SUPPLY_PROP_STATUS,
|
||||
POWER_SUPPLY_PROP_PRESENT,
|
||||
POWER_SUPPLY_PROP_TECHNOLOGY,
|
||||
|
|
@ -358,7 +361,7 @@ static enum power_supply_property energy_battery_props[] = {
|
|||
POWER_SUPPLY_PROP_SERIAL_NUMBER,
|
||||
};
|
||||
|
||||
static enum power_supply_property energy_battery_full_cap_broken_props[] = {
|
||||
static const enum power_supply_property energy_battery_full_cap_broken_props[] = {
|
||||
POWER_SUPPLY_PROP_STATUS,
|
||||
POWER_SUPPLY_PROP_PRESENT,
|
||||
POWER_SUPPLY_PROP_TECHNOLOGY,
|
||||
|
|
@ -661,7 +664,7 @@ static ssize_t acpi_battery_alarm_show(struct device *dev,
|
|||
{
|
||||
struct acpi_battery *battery = to_acpi_battery(dev_get_drvdata(dev));
|
||||
|
||||
return sprintf(buf, "%d\n", battery->alarm * 1000);
|
||||
return sysfs_emit(buf, "%d\n", battery->alarm * 1000);
|
||||
}
|
||||
|
||||
static ssize_t acpi_battery_alarm_store(struct device *dev,
|
||||
|
|
@ -678,12 +681,18 @@ static ssize_t acpi_battery_alarm_store(struct device *dev,
|
|||
return count;
|
||||
}
|
||||
|
||||
static const struct device_attribute alarm_attr = {
|
||||
static struct device_attribute alarm_attr = {
|
||||
.attr = {.name = "alarm", .mode = 0644},
|
||||
.show = acpi_battery_alarm_show,
|
||||
.store = acpi_battery_alarm_store,
|
||||
};
|
||||
|
||||
static struct attribute *acpi_battery_attrs[] = {
|
||||
&alarm_attr.attr,
|
||||
NULL
|
||||
};
|
||||
ATTRIBUTE_GROUPS(acpi_battery);
|
||||
|
||||
/*
|
||||
* The Battery Hooking API
|
||||
*
|
||||
|
|
@ -823,7 +832,10 @@ static void __exit battery_hook_exit(void)
|
|||
|
||||
static int sysfs_add_battery(struct acpi_battery *battery)
|
||||
{
|
||||
struct power_supply_config psy_cfg = { .drv_data = battery, };
|
||||
struct power_supply_config psy_cfg = {
|
||||
.drv_data = battery,
|
||||
.attr_grp = acpi_battery_groups,
|
||||
};
|
||||
bool full_cap_broken = false;
|
||||
|
||||
if (!ACPI_BATTERY_CAPACITY_VALID(battery->full_charge_capacity) &&
|
||||
|
|
@ -868,7 +880,7 @@ static int sysfs_add_battery(struct acpi_battery *battery)
|
|||
return result;
|
||||
}
|
||||
battery_hook_add_battery(battery);
|
||||
return device_create_file(&battery->bat->dev, &alarm_attr);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void sysfs_remove_battery(struct acpi_battery *battery)
|
||||
|
|
@ -879,7 +891,6 @@ static void sysfs_remove_battery(struct acpi_battery *battery)
|
|||
return;
|
||||
}
|
||||
battery_hook_remove_battery(battery);
|
||||
device_remove_file(&battery->bat->dev, &alarm_attr);
|
||||
power_supply_unregister(battery->bat);
|
||||
battery->bat = NULL;
|
||||
mutex_unlock(&battery->sysfs_lock);
|
||||
|
|
|
|||
|
|
@ -329,6 +329,8 @@ static void acpi_bus_osc_negotiate_platform_control(void)
|
|||
capbuf[OSC_SUPPORT_DWORD] |= OSC_SB_PPC_OST_SUPPORT;
|
||||
if (IS_ENABLED(CONFIG_ACPI_THERMAL))
|
||||
capbuf[OSC_SUPPORT_DWORD] |= OSC_SB_FAST_THERMAL_SAMPLING_SUPPORT;
|
||||
if (IS_ENABLED(CONFIG_ACPI_BATTERY))
|
||||
capbuf[OSC_SUPPORT_DWORD] |= OSC_SB_BATTERY_CHARGE_LIMITING_SUPPORT;
|
||||
|
||||
capbuf[OSC_SUPPORT_DWORD] |= OSC_SB_HOTPLUG_OST_SUPPORT;
|
||||
capbuf[OSC_SUPPORT_DWORD] |= OSC_SB_PCLPI_SUPPORT;
|
||||
|
|
|
|||
|
|
@ -408,7 +408,7 @@ static __init void hmat_update_target(unsigned int tgt_pxm, unsigned int init_px
|
|||
if (target && target->processor_pxm == init_pxm) {
|
||||
hmat_update_target_access(target, type, value,
|
||||
ACCESS_COORDINATE_LOCAL);
|
||||
/* If the node has a CPU, update access 1 */
|
||||
/* If the node has a CPU, update access ACCESS_COORDINATE_CPU */
|
||||
if (node_state(pxm_to_node(init_pxm), N_CPU))
|
||||
hmat_update_target_access(target, type, value,
|
||||
ACCESS_COORDINATE_CPU);
|
||||
|
|
@ -948,7 +948,7 @@ static int hmat_set_default_dram_perf(void)
|
|||
target = find_mem_target(pxm);
|
||||
if (!target)
|
||||
continue;
|
||||
attrs = &target->coord[1];
|
||||
attrs = &target->coord[ACCESS_COORDINATE_CPU];
|
||||
rc = mt_set_default_dram_perf(nid, attrs, "ACPI HMAT");
|
||||
if (rc)
|
||||
return rc;
|
||||
|
|
@ -975,7 +975,7 @@ static int hmat_calculate_adistance(struct notifier_block *self,
|
|||
hmat_update_target_attrs(target, p_nodes, ACCESS_COORDINATE_CPU);
|
||||
mutex_unlock(&target_lock);
|
||||
|
||||
perf = &target->coord[1];
|
||||
perf = &target->coord[ACCESS_COORDINATE_CPU];
|
||||
|
||||
if (mt_perf_to_adistance(perf, adist))
|
||||
return NOTIFY_OK;
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ struct intel_pmic_opregion {
|
|||
|
||||
static struct intel_pmic_opregion *intel_pmic_opregion;
|
||||
|
||||
static int pmic_get_reg_bit(int address, struct pmic_table *table,
|
||||
static int pmic_get_reg_bit(int address, const struct pmic_table *table,
|
||||
int count, int *reg, int *bit)
|
||||
{
|
||||
int i;
|
||||
|
|
|
|||
|
|
@ -21,9 +21,9 @@ struct intel_pmic_opregion_data {
|
|||
u32 reg_address, u32 value, u32 mask);
|
||||
int (*lpat_raw_to_temp)(struct acpi_lpat_conversion_table *lpat_table,
|
||||
int raw);
|
||||
struct pmic_table *power_table;
|
||||
const struct pmic_table *power_table;
|
||||
int power_table_count;
|
||||
struct pmic_table *thermal_table;
|
||||
const struct pmic_table *thermal_table;
|
||||
int thermal_table_count;
|
||||
/* For generic exec_mipi_pmic_seq_element handling */
|
||||
int pmic_i2c_address;
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@
|
|||
#define VSWITCH1_OUTPUT BIT(4)
|
||||
#define VUSBPHY_CHARGE BIT(1)
|
||||
|
||||
static struct pmic_table power_table[] = {
|
||||
static const struct pmic_table power_table[] = {
|
||||
{
|
||||
.address = 0x0,
|
||||
.reg = 0x63,
|
||||
|
|
@ -177,7 +177,7 @@ static struct pmic_table power_table[] = {
|
|||
} /* MOFF -> MODEMCTRL Bit 0 */
|
||||
};
|
||||
|
||||
static struct pmic_table thermal_table[] = {
|
||||
static const struct pmic_table thermal_table[] = {
|
||||
{
|
||||
.address = 0x00,
|
||||
.reg = 0x4F39
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@
|
|||
|
||||
#define PMIC_A0LOCK_REG 0xc5
|
||||
|
||||
static struct pmic_table power_table[] = {
|
||||
static const struct pmic_table power_table[] = {
|
||||
/* {
|
||||
.address = 0x00,
|
||||
.reg = ??,
|
||||
|
|
@ -134,7 +134,7 @@ static struct pmic_table power_table[] = {
|
|||
}, /* V105 -> V1P05S, L2 SRAM */
|
||||
};
|
||||
|
||||
static struct pmic_table thermal_table[] = {
|
||||
static const struct pmic_table thermal_table[] = {
|
||||
{
|
||||
.address = 0x00,
|
||||
.reg = 0x75
|
||||
|
|
|
|||
|
|
@ -8,18 +8,22 @@
|
|||
*/
|
||||
|
||||
#include <linux/acpi.h>
|
||||
#include <linux/bits.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/mfd/intel_soc_pmic.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <asm/byteorder.h>
|
||||
#include "intel_pmic.h"
|
||||
|
||||
/* registers stored in 16bit BE (high:low, total 10bit) */
|
||||
#define PMIC_REG_MASK GENMASK(9, 0)
|
||||
|
||||
#define CHTDC_TI_VBAT 0x54
|
||||
#define CHTDC_TI_DIETEMP 0x56
|
||||
#define CHTDC_TI_BPTHERM 0x58
|
||||
#define CHTDC_TI_GPADC 0x5a
|
||||
|
||||
static struct pmic_table chtdc_ti_power_table[] = {
|
||||
static const struct pmic_table chtdc_ti_power_table[] = {
|
||||
{ .address = 0x00, .reg = 0x41 }, /* LDO1 */
|
||||
{ .address = 0x04, .reg = 0x42 }, /* LDO2 */
|
||||
{ .address = 0x08, .reg = 0x43 }, /* LDO3 */
|
||||
|
|
@ -35,7 +39,7 @@ static struct pmic_table chtdc_ti_power_table[] = {
|
|||
{ .address = 0x30, .reg = 0x4e }, /* LD14 */
|
||||
};
|
||||
|
||||
static struct pmic_table chtdc_ti_thermal_table[] = {
|
||||
static const struct pmic_table chtdc_ti_thermal_table[] = {
|
||||
{
|
||||
.address = 0x00,
|
||||
.reg = CHTDC_TI_GPADC
|
||||
|
|
@ -73,7 +77,7 @@ static int chtdc_ti_pmic_get_power(struct regmap *regmap, int reg, int bit,
|
|||
if (regmap_read(regmap, reg, &data))
|
||||
return -EIO;
|
||||
|
||||
*value = data & 1;
|
||||
*value = data & BIT(0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
@ -85,13 +89,12 @@ static int chtdc_ti_pmic_update_power(struct regmap *regmap, int reg, int bit,
|
|||
|
||||
static int chtdc_ti_pmic_get_raw_temp(struct regmap *regmap, int reg)
|
||||
{
|
||||
u8 buf[2];
|
||||
__be16 buf;
|
||||
|
||||
if (regmap_bulk_read(regmap, reg, buf, 2))
|
||||
if (regmap_bulk_read(regmap, reg, &buf, sizeof(buf)))
|
||||
return -EIO;
|
||||
|
||||
/* stored in big-endian */
|
||||
return ((buf[0] & 0x03) << 8) | buf[1];
|
||||
return be16_to_cpu(buf) & PMIC_REG_MASK;
|
||||
}
|
||||
|
||||
static const struct intel_pmic_opregion_data chtdc_ti_pmic_opregion_data = {
|
||||
|
|
|
|||
|
|
@ -70,7 +70,7 @@
|
|||
* "regulator: whiskey_cove: implements Whiskey Cove pmic VRF support"
|
||||
* https://github.com/intel-aero/meta-intel-aero/blob/master/recipes-kernel/linux/linux-yocto/0019-regulator-whiskey_cove-implements-WhiskeyCove-pmic-V.patch
|
||||
*/
|
||||
static struct pmic_table power_table[] = {
|
||||
static const struct pmic_table power_table[] = {
|
||||
{
|
||||
.address = 0x0,
|
||||
.reg = CHT_WC_V1P8A_CTRL,
|
||||
|
|
@ -236,11 +236,12 @@ static int intel_cht_wc_exec_mipi_pmic_seq_element(struct regmap *regmap,
|
|||
u32 reg_address,
|
||||
u32 value, u32 mask)
|
||||
{
|
||||
struct device *dev = regmap_get_device(regmap);
|
||||
u32 address;
|
||||
|
||||
if (i2c_client_address > 0xff || reg_address > 0xff) {
|
||||
pr_warn("%s warning addresses too big client 0x%x reg 0x%x\n",
|
||||
__func__, i2c_client_address, reg_address);
|
||||
dev_warn(dev, "warning addresses too big client 0x%x reg 0x%x\n",
|
||||
i2c_client_address, reg_address);
|
||||
return -ERANGE;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@
|
|||
#define AXP288_ADC_TS_CURRENT_ON_ONDEMAND (2 << 0)
|
||||
#define AXP288_ADC_TS_CURRENT_ON (3 << 0)
|
||||
|
||||
static struct pmic_table power_table[] = {
|
||||
static const struct pmic_table power_table[] = {
|
||||
{
|
||||
.address = 0x00,
|
||||
.reg = 0x13,
|
||||
|
|
@ -129,7 +129,7 @@ static struct pmic_table power_table[] = {
|
|||
};
|
||||
|
||||
/* TMP0 - TMP5 are the same, all from GPADC */
|
||||
static struct pmic_table thermal_table[] = {
|
||||
static const struct pmic_table thermal_table[] = {
|
||||
{
|
||||
.address = 0x00,
|
||||
.reg = XPOWER_GPADC_LOW
|
||||
|
|
@ -255,7 +255,7 @@ static int intel_xpower_pmic_get_raw_temp(struct regmap *regmap, int reg)
|
|||
if (ret)
|
||||
return ret;
|
||||
|
||||
ret = regmap_bulk_read(regmap, AXP288_GP_ADC_H, buf, 2);
|
||||
ret = regmap_bulk_read(regmap, AXP288_GP_ADC_H, buf, sizeof(buf));
|
||||
if (ret == 0)
|
||||
ret = (buf[0] << 4) + ((buf[1] >> 4) & 0x0f);
|
||||
|
||||
|
|
@ -274,11 +274,12 @@ static int intel_xpower_exec_mipi_pmic_seq_element(struct regmap *regmap,
|
|||
u16 i2c_address, u32 reg_address,
|
||||
u32 value, u32 mask)
|
||||
{
|
||||
struct device *dev = regmap_get_device(regmap);
|
||||
int ret;
|
||||
|
||||
if (i2c_address != 0x34) {
|
||||
pr_err("%s: Unexpected i2c-addr: 0x%02x (reg-addr 0x%x value 0x%x mask 0x%x)\n",
|
||||
__func__, i2c_address, reg_address, value, mask);
|
||||
dev_err(dev, "Unexpected i2c-addr: 0x%02x (reg-addr 0x%x value 0x%x mask 0x%x)\n",
|
||||
i2c_address, reg_address, value, mask);
|
||||
return -ENXIO;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -77,7 +77,6 @@ struct acpi_battery {
|
|||
u16 spec;
|
||||
u8 id;
|
||||
u8 present:1;
|
||||
u8 have_sysfs_alarm:1;
|
||||
};
|
||||
|
||||
#define to_acpi_battery(x) power_supply_get_drvdata(x)
|
||||
|
|
@ -241,11 +240,11 @@ static int acpi_sbs_battery_get_property(struct power_supply *psy,
|
|||
return 0;
|
||||
}
|
||||
|
||||
static enum power_supply_property sbs_ac_props[] = {
|
||||
static const enum power_supply_property sbs_ac_props[] = {
|
||||
POWER_SUPPLY_PROP_ONLINE,
|
||||
};
|
||||
|
||||
static enum power_supply_property sbs_charge_battery_props[] = {
|
||||
static const enum power_supply_property sbs_charge_battery_props[] = {
|
||||
POWER_SUPPLY_PROP_STATUS,
|
||||
POWER_SUPPLY_PROP_PRESENT,
|
||||
POWER_SUPPLY_PROP_TECHNOLOGY,
|
||||
|
|
@ -263,7 +262,7 @@ static enum power_supply_property sbs_charge_battery_props[] = {
|
|||
POWER_SUPPLY_PROP_MANUFACTURER,
|
||||
};
|
||||
|
||||
static enum power_supply_property sbs_energy_battery_props[] = {
|
||||
static const enum power_supply_property sbs_energy_battery_props[] = {
|
||||
POWER_SUPPLY_PROP_STATUS,
|
||||
POWER_SUPPLY_PROP_PRESENT,
|
||||
POWER_SUPPLY_PROP_TECHNOLOGY,
|
||||
|
|
@ -462,12 +461,18 @@ static ssize_t acpi_battery_alarm_store(struct device *dev,
|
|||
return count;
|
||||
}
|
||||
|
||||
static const struct device_attribute alarm_attr = {
|
||||
static struct device_attribute alarm_attr = {
|
||||
.attr = {.name = "alarm", .mode = 0644},
|
||||
.show = acpi_battery_alarm_show,
|
||||
.store = acpi_battery_alarm_store,
|
||||
};
|
||||
|
||||
static struct attribute *acpi_battery_attrs[] = {
|
||||
&alarm_attr.attr,
|
||||
NULL
|
||||
};
|
||||
ATTRIBUTE_GROUPS(acpi_battery);
|
||||
|
||||
/* --------------------------------------------------------------------------
|
||||
Driver Interface
|
||||
-------------------------------------------------------------------------- */
|
||||
|
|
@ -518,7 +523,10 @@ static int acpi_battery_read(struct acpi_battery *battery)
|
|||
static int acpi_battery_add(struct acpi_sbs *sbs, int id)
|
||||
{
|
||||
struct acpi_battery *battery = &sbs->battery[id];
|
||||
struct power_supply_config psy_cfg = { .drv_data = battery, };
|
||||
struct power_supply_config psy_cfg = {
|
||||
.drv_data = battery,
|
||||
.attr_grp = acpi_battery_groups,
|
||||
};
|
||||
int result;
|
||||
|
||||
battery->id = id;
|
||||
|
|
@ -548,10 +556,6 @@ static int acpi_battery_add(struct acpi_sbs *sbs, int id)
|
|||
goto end;
|
||||
}
|
||||
|
||||
result = device_create_file(&battery->bat->dev, &alarm_attr);
|
||||
if (result)
|
||||
goto end;
|
||||
battery->have_sysfs_alarm = 1;
|
||||
end:
|
||||
pr_info("%s [%s]: Battery Slot [%s] (battery %s)\n",
|
||||
ACPI_SBS_DEVICE_NAME, acpi_device_bid(sbs->device),
|
||||
|
|
@ -563,11 +567,8 @@ static void acpi_battery_remove(struct acpi_sbs *sbs, int id)
|
|||
{
|
||||
struct acpi_battery *battery = &sbs->battery[id];
|
||||
|
||||
if (battery->bat) {
|
||||
if (battery->have_sysfs_alarm)
|
||||
device_remove_file(&battery->bat->dev, &alarm_attr);
|
||||
if (battery->bat)
|
||||
power_supply_unregister(battery->bat);
|
||||
}
|
||||
}
|
||||
|
||||
static int acpi_charger_add(struct acpi_sbs *sbs)
|
||||
|
|
|
|||
|
|
@ -24,6 +24,7 @@ struct irq_domain_ops;
|
|||
#define _LINUX
|
||||
#endif
|
||||
#include <acpi/acpi.h>
|
||||
#include <acpi/acpi_numa.h>
|
||||
|
||||
#ifdef CONFIG_ACPI
|
||||
|
||||
|
|
@ -35,7 +36,6 @@ struct irq_domain_ops;
|
|||
|
||||
#include <acpi/acpi_bus.h>
|
||||
#include <acpi/acpi_drivers.h>
|
||||
#include <acpi/acpi_numa.h>
|
||||
#include <acpi/acpi_io.h>
|
||||
#include <asm/acpi.h>
|
||||
|
||||
|
|
@ -576,6 +576,7 @@ acpi_status acpi_run_osc(acpi_handle handle, struct acpi_osc_context *context);
|
|||
#define OSC_SB_CPC_FLEXIBLE_ADR_SPACE 0x00004000
|
||||
#define OSC_SB_GENERIC_INITIATOR_SUPPORT 0x00020000
|
||||
#define OSC_SB_NATIVE_USB4_SUPPORT 0x00040000
|
||||
#define OSC_SB_BATTERY_CHARGE_LIMITING_SUPPORT 0x00080000
|
||||
#define OSC_SB_PRM_SUPPORT 0x00200000
|
||||
#define OSC_SB_FFH_OPR_SUPPORT 0x00400000
|
||||
|
||||
|
|
@ -777,8 +778,6 @@ const char *acpi_get_subsystem_id(acpi_handle handle);
|
|||
#define acpi_dev_uid_match(adev, uid2) (adev && false)
|
||||
#define acpi_dev_hid_uid_match(adev, hid2, uid2) (adev && false)
|
||||
|
||||
#include <acpi/acpi_numa.h>
|
||||
|
||||
struct fwnode_handle;
|
||||
|
||||
static inline bool acpi_dev_found(const char *hid)
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user