2022-06-14 11:42:49 +00:00
|
|
|
From 0f0c7c99159906bcdfdee9d318a40eb639a3fc15 Mon Sep 17 00:00:00 2001
|
2022-05-07 16:26:07 +00:00
|
|
|
From: Werner Sembach <wse@tuxedocomputers.com>
|
|
|
|
Date: Wed, 27 Apr 2022 17:40:53 +0200
|
|
|
|
Subject: [PATCH] ACPI: battery: Make "not-charging" the default on no charging
|
|
|
|
or full info
|
2022-04-26 00:32:12 +00:00
|
|
|
|
2022-05-07 16:26:07 +00:00
|
|
|
When the battery is neither charging or discharging and is not full,
|
|
|
|
"not-charging" is a useful status description for the case in general.
|
|
|
|
Currently this state is set as "unknown" by default, expect when this is
|
|
|
|
explicitly replaced with "not-charging" on a per device or per vendor
|
|
|
|
basis.
|
2022-04-26 00:32:12 +00:00
|
|
|
|
2022-05-07 16:26:07 +00:00
|
|
|
A lot of devices have this state without a BIOS specification available
|
|
|
|
explicitly describing it. e.g. some current Clevo barebones have a BIOS
|
|
|
|
setting to stop charging at a user defined battery level.
|
2022-04-26 00:32:12 +00:00
|
|
|
|
2022-05-07 16:26:07 +00:00
|
|
|
Signed-off-by: Werner Sembach <wse@tuxedocomputers.com>
|
|
|
|
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
|
2022-04-26 00:32:12 +00:00
|
|
|
Patchset: surface-battery
|
|
|
|
---
|
2022-05-07 16:26:07 +00:00
|
|
|
drivers/acpi/battery.c | 24 +-----------------------
|
|
|
|
1 file changed, 1 insertion(+), 23 deletions(-)
|
2022-04-26 00:32:12 +00:00
|
|
|
|
|
|
|
diff --git a/drivers/acpi/battery.c b/drivers/acpi/battery.c
|
2022-05-07 16:26:07 +00:00
|
|
|
index dc208f5f5a1f..306513fec1e1 100644
|
2022-04-26 00:32:12 +00:00
|
|
|
--- a/drivers/acpi/battery.c
|
|
|
|
+++ b/drivers/acpi/battery.c
|
2022-05-07 16:26:07 +00:00
|
|
|
@@ -52,7 +52,6 @@ static bool battery_driver_registered;
|
|
|
|
static int battery_bix_broken_package;
|
|
|
|
static int battery_notification_delay_ms;
|
|
|
|
static int battery_ac_is_broken;
|
|
|
|
-static int battery_quirk_notcharging;
|
|
|
|
static unsigned int cache_time = 1000;
|
|
|
|
module_param(cache_time, uint, 0644);
|
|
|
|
MODULE_PARM_DESC(cache_time, "cache time in milliseconds");
|
|
|
|
@@ -216,10 +215,8 @@ static int acpi_battery_get_property(struct power_supply *psy,
|
|
|
|
val->intval = POWER_SUPPLY_STATUS_CHARGING;
|
|
|
|
else if (acpi_battery_is_charged(battery))
|
|
|
|
val->intval = POWER_SUPPLY_STATUS_FULL;
|
|
|
|
- else if (battery_quirk_notcharging)
|
|
|
|
- val->intval = POWER_SUPPLY_STATUS_NOT_CHARGING;
|
|
|
|
else
|
|
|
|
- val->intval = POWER_SUPPLY_STATUS_UNKNOWN;
|
|
|
|
+ val->intval = POWER_SUPPLY_STATUS_NOT_CHARGING;
|
|
|
|
break;
|
|
|
|
case POWER_SUPPLY_PROP_PRESENT:
|
|
|
|
val->intval = acpi_battery_present(battery);
|
|
|
|
@@ -1105,12 +1102,6 @@ battery_ac_is_broken_quirk(const struct dmi_system_id *d)
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
-static int __init battery_quirk_not_charging(const struct dmi_system_id *d)
|
|
|
|
-{
|
|
|
|
- battery_quirk_notcharging = 1;
|
|
|
|
- return 0;
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
static const struct dmi_system_id bat_dmi_table[] __initconst = {
|
|
|
|
{
|
|
|
|
/* NEC LZ750/LS */
|
|
|
|
@@ -1139,19 +1130,6 @@ static const struct dmi_system_id bat_dmi_table[] __initconst = {
|
|
|
|
DMI_MATCH(DMI_BIOS_DATE, "08/22/2014"),
|
2022-04-26 00:32:12 +00:00
|
|
|
},
|
|
|
|
},
|
2022-05-07 16:26:07 +00:00
|
|
|
- {
|
|
|
|
- /*
|
|
|
|
- * On Lenovo ThinkPads the BIOS specification defines
|
|
|
|
- * a state when the bits for charging and discharging
|
|
|
|
- * are both set to 0. That state is "Not Charging".
|
|
|
|
- */
|
|
|
|
- .callback = battery_quirk_not_charging,
|
|
|
|
- .ident = "Lenovo ThinkPad",
|
|
|
|
- .matches = {
|
|
|
|
- DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
|
|
|
|
- DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad"),
|
|
|
|
- },
|
|
|
|
- },
|
2022-04-26 00:32:12 +00:00
|
|
|
{
|
|
|
|
/* Microsoft Surface Go 3 */
|
|
|
|
.callback = battery_notification_delay_quirk,
|
|
|
|
--
|
2022-05-16 19:57:53 +00:00
|
|
|
2.36.1
|
2022-04-26 00:32:12 +00:00
|
|
|
|
2022-06-14 11:42:49 +00:00
|
|
|
From 8d958ad7373a56e188dea9645cb75c261c9ae42d Mon Sep 17 00:00:00 2001
|
2022-05-25 15:24:33 +00:00
|
|
|
From: Maximilian Luz <luzmaximilian@gmail.com>
|
|
|
|
Date: Wed, 25 May 2022 14:20:10 +0200
|
|
|
|
Subject: [PATCH] HID: hid-input: add Surface Go battery quirk
|
|
|
|
|
|
|
|
Similar to the Surface Go (1), the (Elantech) touchscreen/digitizer in
|
|
|
|
the Surface Go 2 mistakenly reports the battery of the stylus. Instead
|
|
|
|
of over the touchsreen device, battery information is provided via
|
|
|
|
bluetooth and the touchscreen device reports an empty battery.
|
|
|
|
|
|
|
|
Apply the HID_BATTERY_QUIRK_IGNORE quirk to to ignore this battery and
|
|
|
|
prevent the erroneous low battery warnings.
|
|
|
|
|
|
|
|
Signed-off-by: Maximilian Luz <luzmaximilian@gmail.com>
|
|
|
|
Patchset: surface-battery
|
|
|
|
---
|
|
|
|
drivers/hid/hid-ids.h | 1 +
|
|
|
|
drivers/hid/hid-input.c | 2 ++
|
|
|
|
2 files changed, 3 insertions(+)
|
|
|
|
|
|
|
|
diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
|
2022-06-14 11:42:49 +00:00
|
|
|
index aca7909c726d..741e38477a91 100644
|
2022-05-25 15:24:33 +00:00
|
|
|
--- a/drivers/hid/hid-ids.h
|
|
|
|
+++ b/drivers/hid/hid-ids.h
|
|
|
|
@@ -405,6 +405,7 @@
|
|
|
|
#define USB_DEVICE_ID_ASUS_UX550VE_TOUCHSCREEN 0x2544
|
|
|
|
#define USB_DEVICE_ID_ASUS_UX550_TOUCHSCREEN 0x2706
|
|
|
|
#define I2C_DEVICE_ID_SURFACE_GO_TOUCHSCREEN 0x261A
|
|
|
|
+#define I2C_DEVICE_ID_SURFACE_GO2_TOUCHSCREEN 0x2A1C
|
|
|
|
|
|
|
|
#define USB_VENDOR_ID_ELECOM 0x056e
|
|
|
|
#define USB_DEVICE_ID_ELECOM_BM084 0x0061
|
|
|
|
diff --git a/drivers/hid/hid-input.c b/drivers/hid/hid-input.c
|
|
|
|
index 56ec27398a00..263a977801bf 100644
|
|
|
|
--- a/drivers/hid/hid-input.c
|
|
|
|
+++ b/drivers/hid/hid-input.c
|
|
|
|
@@ -336,6 +336,8 @@ static const struct hid_device_id hid_battery_quirks[] = {
|
|
|
|
HID_BATTERY_QUIRK_IGNORE },
|
|
|
|
{ HID_I2C_DEVICE(USB_VENDOR_ID_ELAN, I2C_DEVICE_ID_SURFACE_GO_TOUCHSCREEN),
|
|
|
|
HID_BATTERY_QUIRK_IGNORE },
|
|
|
|
+ { HID_I2C_DEVICE(USB_VENDOR_ID_ELAN, I2C_DEVICE_ID_SURFACE_GO2_TOUCHSCREEN),
|
|
|
|
+ HID_BATTERY_QUIRK_IGNORE },
|
|
|
|
{}
|
|
|
|
};
|
|
|
|
|
|
|
|
--
|
|
|
|
2.36.1
|
|
|
|
|