diff options
Diffstat (limited to 'drivers/power/supply/axp288_fuel_gauge.c')
| -rw-r--r-- | drivers/power/supply/axp288_fuel_gauge.c | 24 |
1 files changed, 18 insertions, 6 deletions
diff --git a/drivers/power/supply/axp288_fuel_gauge.c b/drivers/power/supply/axp288_fuel_gauge.c index 8e6f8a655079..a3d71fc72064 100644 --- a/drivers/power/supply/axp288_fuel_gauge.c +++ b/drivers/power/supply/axp288_fuel_gauge.c @@ -21,7 +21,7 @@ #include <linux/platform_device.h> #include <linux/power_supply.h> #include <linux/iio/consumer.h> -#include <asm/unaligned.h> +#include <linux/unaligned.h> #include <asm/iosf_mbi.h> #define PS_STAT_VBUS_TRIGGER (1 << 0) @@ -507,7 +507,7 @@ static void fuel_gauge_external_power_changed(struct power_supply *psy) mutex_lock(&info->lock); info->valid = 0; /* Force updating of the cached registers */ mutex_unlock(&info->lock); - power_supply_changed(info->bat); + power_supply_changed(psy); } static struct power_supply_desc fuel_gauge_desc = { @@ -550,18 +550,20 @@ static const struct dmi_system_id axp288_quirks[] = { .driver_data = (void *)AXP288_QUIRK_NO_BATTERY, }, { - /* Intel Cherry Trail Compute Stick, Windows version */ + /* Intel Bay Trail Compute Stick */ .matches = { DMI_MATCH(DMI_SYS_VENDOR, "Intel"), - DMI_MATCH(DMI_PRODUCT_NAME, "STK1AW32SC"), + /* Partial match for STCK1A32WFC STCK1A32FC, STCK1A8LFC variants */ + DMI_MATCH(DMI_PRODUCT_NAME, "STCK1A"), }, .driver_data = (void *)AXP288_QUIRK_NO_BATTERY, }, { - /* Intel Cherry Trail Compute Stick, version without an OS */ + /* Intel Cherry Trail Compute Stick */ .matches = { DMI_MATCH(DMI_SYS_VENDOR, "Intel"), - DMI_MATCH(DMI_PRODUCT_NAME, "STK1A32SC"), + /* Partial match for STK1AW32SC and STK1A32SC variants */ + DMI_MATCH(DMI_PRODUCT_NAME, "STK1A"), }, .driver_data = (void *)AXP288_QUIRK_NO_BATTERY, }, @@ -600,6 +602,14 @@ static const struct dmi_system_id axp288_quirks[] = { .driver_data = NULL, }, { + /* Radxa ROCK Pi X Single Board Computer */ + .matches = { + DMI_MATCH(DMI_BOARD_NAME, "ROCK Pi X"), + DMI_MATCH(DMI_BOARD_VENDOR, "Radxa"), + }, + .driver_data = (void *)AXP288_QUIRK_NO_BATTERY, + }, + { /* * Various Ace PC/Meegopad/MinisForum/Wintel Mini-PCs/HDMI-sticks * This entry must be last because it is generic, this allows @@ -724,6 +734,8 @@ static int axp288_fuel_gauge_probe(struct platform_device *pdev) for (i = 0; i < AXP288_FG_INTR_NUM; i++) { pirq = platform_get_irq(pdev, i); + if (pirq < 0) + continue; ret = regmap_irq_get_virq(axp20x->regmap_irqc, pirq); if (ret < 0) return dev_err_probe(dev, ret, "getting vIRQ %d\n", pirq); |
