Hi, Linux 4.16 has new battery_full_discharging_quirk code in drivers/acpi/battery.c for 5 Asus laptops which will detect when the battery is reporting that it is charging even though the charge level is full and AC power is connected. In this case it will adjust Linux's reported state to avoid stating that it is charging, just reporting that it is full. I don't think this is a good idea in it's current form, for these reasons: 1. Linux will never even get close to winning on this particular DMI blacklist. You will need to add literally hundreds of Asus models here, and realistically we'll always be seriously behind/incomplete, far from a state where the blacklist covers all affected products. 2. On the systems where we have investigated this, you will also occasionally see state where it says that the battery is charging even though it is full. Currently the quirk only covers discharging. 3. I asked Asus about this and they provided what I view as an acceptable explanation. If you leave a battery at 100% charge and just leave it in that state unused (because you're entirely running from AC power instead) then the long term battery life will just fade away. This is why - at least according to my limited understanding - all UPS, decent consumer products, etc, have a battery controller which will periodically perform a partial discharge & charge cycle under these conditions. It gives more lifetime to your battery. According to Asus's explanation this is exactly what they do, when the battery is full they do limited charge and discharge cycles for each cell, and the state returned in ACPI reflects this. I looked in the ACPI spec expecting that I would be able to argue that their DSDT is wrong, but as far as I can see, they actually comply with the spec just fine. The ACPI spec allows you to report that your battery has an estimated full charge available, but that you are discharging and also on AC power. This is what they do and according to their explanation this is an accurate reflection of reality. I see no mention in the ACPI spec that the system should hide the fact that it is doing a bit of charging or discharging when the battery charge is full. ACPI just straightforwardly says you should report when you are charging or discharging. I imagine that all major vendors have this kind of charge/discharge thing going on, but most other vendors apparently do not give you the full truth in ACPI - you could perhaps argue that they are doing it wrong, and Asus is doing it right. I do agree that at a UI level, it is confusing to see that your battery is full but also charging/discharging. The charge/discharge cycle is a technical detail/optimization/hack that I would say should not be exposed in the battery indication to the regular user. So rather than quirking it in this way, I would suggest one of the following: 1. Don't quirk it for 5 Asus laptops but make it a generic thing. Doesn't matter which system you are on, always detect if the battery is full and on AC power and in such case tweak the kernel's returned battery charge status to say "Full" instead 2. Document that the kernel is doing the right thing, in terms that it is passing on the information from ACPI which is also accurate. Ask userspace to deal with this reality instead. Userspace also has enough info available to realise that you're on AC power and the battery is full, and can decide to show the battery full indication based on that. Daniel -- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html