Skip to contentSkip to conversation

power: supply: axp288_fuel_gauge: Add the ECS EF20EA to the blacklist

PATCH In review Chris Chiu 2 participants 3 messages Dec 9, 2020 – Dec 10, 2020

Subsystems (3)
lore
Share & tools
lore

Chris Chiu

author
#0 lore raw

PATCH 1/1 power: supply: axp288_fuel_gauge: Add the ECS EF20EA to the blacklist

The ECS EF20EA laptop ships an AXP288 but it is actually using a different, separate FG chip for AC and battery monitoring. On this laptop we need to keep using the regular ACPI driver and disable the AXP288 FG to avoid reporting two batteries to userspace.

---
 drivers/power/supply/axp288_fuel_gauge.c | 6 ++++++
 1 file changed, 6 insertions(+)
drivers/power/supply/axp288_fuel_gauge.c +6 -0
index 148eb8105803..a15c322c79ea 100644
@@ -739,6 +739,12 @@ static const struct dmi_system_id axp288_fuel_gauge_blacklist[] = {
 			DMI_MATCH(DMI_PRODUCT_NAME, "Z83-4"),
 		}
 	},
+	{
+		/* ECS EF20 */
+		.matches = {
+			DMI_MATCH(DMI_PRODUCT_NAME, "EF20"),
+		},
+	},
 	{}
 };
 
Signature · 1 line
2.20.1
#1 lore raw

Hi,

Quoted 16 lines · Chris Chiu

The ECS EF20EA laptop ships an AXP288 but it is actually using a different, separate FG chip for AC and battery monitoring. On this laptop we need to keep using the regular ACPI driver and disable the AXP288 FG to avoid reporting two batteries to userspace.

---
 drivers/power/supply/axp288_fuel_gauge.c | 6 ++++++
 1 file changed, 6 insertions(+)
drivers/power/supply/axp288_fuel_gauge.c +0 -0
index 148eb8105803..a15c322c79ea 100644
@@ -739,6 +739,12 @@ static const struct dmi_system_id axp288_fuel_gauge_blacklist[] = {
 			DMI_MATCH(DMI_PRODUCT_NAME, "Z83-4"),

drivers/power/supply/axp288_fuel_gauge.c static const struct dmi_system_id axp288_fuel_gauge_blacklist[] = { · line 749

Quoted 10 lines
drivers/power/supply/axp288_fuel_gauge.c +6 -0
 		}
 	},
+	{
+		/* ECS EF20 */
+		.matches = {
+			DMI_MATCH(DMI_PRODUCT_NAME, "EF20"),
+		},
+	},
 	{}
 };

The axp288_fuel_gauge_blacklist already has the following entry:

        {
                /* ECS EF20EA */
                .matches = {
                        DMI_MATCH(DMI_PRODUCT_NAME, "EF20EA"),
                },
        },

So is this real entry really necessary? The existing entry matches the quirk for this in drivers/acpi/battery.c:

        {
                /* ECS EF20EA, AXP288 PMIC but uses separate fuel-gauge */
                .callback = battery_do_not_check_pmic_quirk,
                .matches = {
                        DMI_MATCH(DMI_PRODUCT_NAME, "EF20EA"),
                },
        },

And the one in drivers/acpi/ac.c:

        {
                /* ECS EF20EA, AXP288 PMIC but uses separate fuel-gauge */
                .callback = ac_do_not_check_pmic_quirk,
                .matches = {
                        DMI_MATCH(DMI_PRODUCT_NAME, "EF20EA"),
                },
        },

So I don't think that this patch is necessary...

Regards,

Hans

author
#2 lore raw
Quoted 61 lines · Hans de Goede

Hi,

Quoted 16 lines · Chris Chiu

The ECS EF20EA laptop ships an AXP288 but it is actually using a different, separate FG chip for AC and battery monitoring. On this laptop we need to keep using the regular ACPI driver and disable the AXP288 FG to avoid reporting two batteries to userspace.

---
 drivers/power/supply/axp288_fuel_gauge.c | 6 ++++++
 1 file changed, 6 insertions(+)
drivers/power/supply/axp288_fuel_gauge.c +0 -0
index 148eb8105803..a15c322c79ea 100644
@@ -739,6 +739,12 @@ static const struct dmi_system_id axp288_fuel_gauge_blacklist[] = {
                      DMI_MATCH(DMI_PRODUCT_NAME, "Z83-4"),

drivers/power/supply/axp288_fuel_gauge.c static const struct dmi_system_id axp288_fuel_gauge_blacklist[] = { · line 749

Quoted 10 lines
drivers/power/supply/axp288_fuel_gauge.c +6 -0
              }
      },
+     {
+             /* ECS EF20 */
+             .matches = {
+                     DMI_MATCH(DMI_PRODUCT_NAME, "EF20"),
+             },
+     },
      {}
 };

The axp288_fuel_gauge_blacklist already has the following entry:

        {
                /* ECS EF20EA */
                .matches = {
                        DMI_MATCH(DMI_PRODUCT_NAME, "EF20EA"),
                },
        },

So is this real entry really necessary? The existing entry matches the quirk for this in drivers/acpi/battery.c:

        {
                /* ECS EF20EA, AXP288 PMIC but uses separate fuel-gauge */
                .callback = battery_do_not_check_pmic_quirk,
                .matches = {
                        DMI_MATCH(DMI_PRODUCT_NAME, "EF20EA"),
                },
        },

And the one in drivers/acpi/ac.c:

        {
                /* ECS EF20EA, AXP288 PMIC but uses separate fuel-gauge */
                .callback = ac_do_not_check_pmic_quirk,
                .matches = {
                        DMI_MATCH(DMI_PRODUCT_NAME, "EF20EA"),
                },
        },
Quoted 7 lines

So I don't think that this patch is necessary...

Regards,

Hans

Thanks for pointing that out. We kept this downstreamly for a long time and didn't notice it's already there.