Unverified Commit 53e977b1 authored by Jonathan Teh's avatar Jonathan Teh Committed by Ilpo Järvinen
Browse files

platform/x86: thinkpad_acpi: Fix errors reading battery thresholds

Check whether the battery supports the relevant charge threshold before
reading the value to silence these errors:

thinkpad_acpi: acpi_evalf(BCTG, dd, ...) failed: AE_NOT_FOUND
ACPI: \_SB_.PCI0.LPC_.EC__.HKEY: BCTG: evaluate failed
thinkpad_acpi: acpi_evalf(BCSG, dd, ...) failed: AE_NOT_FOUND
ACPI: \_SB_.PCI0.LPC_.EC__.HKEY: BCSG: evaluate failed

when reading the charge thresholds via sysfs on platforms that do not
support them such as the ThinkPad T400.

Fixes: 2801b968 ("thinkpad_acpi: Add support for battery thresholds")
Closes: https://bugzilla.kernel.org/show_bug.cgi?id=202619


Signed-off-by: default avatarJonathan Teh <jonathan.teh@outlook.com>
Reviewed-by: default avatarMark Pearson <mpearson-lenovo@squebb.ca>
Link: https://patch.msgid.link/MI0P293MB01967B206E1CA6F337EBFB12926CA@MI0P293MB0196.ITAP293.PROD.OUTLOOK.COM


Reviewed-by: default avatarIlpo Järvinen <ilpo.jarvinen@linux.intel.com>
Signed-off-by: default avatarIlpo Järvinen <ilpo.jarvinen@linux.intel.com>
parent 13fa3aaf
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -9525,14 +9525,16 @@ static int tpacpi_battery_get(int what, int battery, int *ret)
{
	switch (what) {
	case THRESHOLD_START:
		if ACPI_FAILURE(tpacpi_battery_acpi_eval(GET_START, ret, battery))
		if (!battery_info.batteries[battery].start_support ||
		    ACPI_FAILURE(tpacpi_battery_acpi_eval(GET_START, ret, battery)))
			return -ENODEV;

		/* The value is in the low 8 bits of the response */
		*ret = *ret & 0xFF;
		return 0;
	case THRESHOLD_STOP:
		if ACPI_FAILURE(tpacpi_battery_acpi_eval(GET_STOP, ret, battery))
		if (!battery_info.batteries[battery].stop_support ||
		    ACPI_FAILURE(tpacpi_battery_acpi_eval(GET_STOP, ret, battery)))
			return -ENODEV;
		/* Value is in lower 8 bits */
		*ret = *ret & 0xFF;