Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 17 Nov 2020 11:07:00 +0300
From:      Vladimir Kondratyev <vladimir@kondratyev.su>
To:        Yuri Pankov <yuripv@yuripv.dev>
Cc:        current@freebsd.org, owner-freebsd-current@freebsd.org
Subject:   Re: acpi_wmi noisy without EC
Message-ID:  <fb0874b1cf4510a2d797a83a01d55935@kondratyev.su>
In-Reply-To: <7b80877ae59fdd90f2f3b5dbf3db2113@kondratyev.su>
References:  <7dc142d3-1e0b-41d4-bdb4-7217bd09bbef@www.fastmail.com> <7b80877ae59fdd90f2f3b5dbf3db2113@kondratyev.su>

next in thread | previous in thread | raw e-mail | index | archive | help
--=_78f0970818859361063826d296ba337a
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset=US-ASCII;
 format=flowed

On 2020-11-17 10:57, Vladimir Kondratyev wrote:
> On 2020-11-17 03:00, Yuri Pankov wrote:
>> I have started seeing the following on boot since some time:
>> 
>> acpi_wmi0: <ACPI-WMI mapping> on acpi0
>> acpi_wmi0: cannot find EC device
>> device_attach: acpi_wmi0 attach returned 6
>> acpi_wmi0: <ACPI-WMI mapping> on acpi0
>> acpi_wmi0: cannot find EC device
>> device_attach: acpi_wmi0 attach returned 6
>> acpi_wmi0: <ACPI-WMI mapping> on acpi0
>> acpi_wmi0: cannot find EC device
>> device_attach: acpi_wmi0 attach returned 6
>> acpi_wmi0: <ACPI-WMI mapping> on acpi0
>> acpi_wmi0: cannot find EC device
>> device_attach: acpi_wmi0 attach returned 6
>> 
>> Likely following this commit:
>> 
>> commit 708d048ccfdacf6199cc08a56aa05a9c899441fd
>> Author: Vladimir Kondratyev <wulf@FreeBSD.org>
>> Date:   Sat Oct 31 22:19:39 2020 +0000
>> 
>>     acpi_wmi(4): Add ACPI_PNP_INFO
>> 
>> While the reason is obvious -- there's no EC in this system (Gigabyte
>> X299X AORUS MASTER desktop motherboard), at least searching the
>> `acpidump -dt` output doesn't show any PNP0C09 entries -- it certainly
>> looks like "something is broken" when first noticed.  I wonder if we
>> could/should handle this gracefully -- no EC, do nothing, simply exit?
> 
> Following patch should ignore missing EC like Linux does. Could you 
> test it?
> 
> diff --git a/sys/dev/acpi_support/acpi_wmi.c 
> b/sys/dev/acpi_support/acpi_wmi.c
> index 379cfd1705f1..efae96cdcc9a 100644
> --- a/sys/dev/acpi_support/acpi_wmi.c
> +++ b/sys/dev/acpi_support/acpi_wmi.c
> @@ -246,7 +246,7 @@ acpi_wmi_attach(device_t dev)
>  	if ((sc->ec_dev = devclass_get_device(devclass_find("acpi_ec"), 0))
>  	    == NULL)
>  		device_printf(dev, "cannot find EC device\n");
> -	else if (ACPI_FAILURE((status = 
> AcpiInstallNotifyHandler(sc->wmi_handle,
> +	if (ACPI_FAILURE((status = AcpiInstallNotifyHandler(sc->wmi_handle,
>  		    ACPI_DEVICE_NOTIFY, acpi_wmi_notify_handler, sc))))
>  		device_printf(sc->wmi_dev, "couldn't install notify handler - %s\n",
>  		    AcpiFormatException(status));
> @@ -701,6 +701,8 @@ acpi_wmi_ec_handler(UINT32 function,
> ACPI_PHYSICAL_ADDRESS address,
>  		return (AE_BAD_PARAMETER);
>  	if (address + (width / 8) - 1 > 0xFF)
>  		return (AE_BAD_ADDRESS);
> +	if (sc->ec_dev == NULL)
> +		return (AE_NOT_FOUND);
>  	if (function == ACPI_READ)
>  		*value = 0;
>  	ec_addr = address;

@#@##! Web client ate all the tabs.

Patch is in attachment.

-- 
WBR
Vladimir Kondratyev
--=_78f0970818859361063826d296ba337a
Content-Transfer-Encoding: base64
Content-Type: text/x-diff;
 name=acpi_wmi.c.patch
Content-Disposition: attachment;
 filename=acpi_wmi.c.patch;
 size=996

ZGlmZiAtLWdpdCBhL3N5cy9kZXYvYWNwaV9zdXBwb3J0L2FjcGlfd21pLmMgYi9zeXMvZGV2L2Fj
cGlfc3VwcG9ydC9hY3BpX3dtaS5jCmluZGV4IDM3OWNmZDE3MDVmMS4uZWZhZTk2Y2RjYzlhIDEw
MDY0NAotLS0gYS9zeXMvZGV2L2FjcGlfc3VwcG9ydC9hY3BpX3dtaS5jCisrKyBiL3N5cy9kZXYv
YWNwaV9zdXBwb3J0L2FjcGlfd21pLmMKQEAgLTI0Niw3ICsyNDYsNyBAQCBhY3BpX3dtaV9hdHRh
Y2goZGV2aWNlX3QgZGV2KQogCWlmICgoc2MtPmVjX2RldiA9IGRldmNsYXNzX2dldF9kZXZpY2Uo
ZGV2Y2xhc3NfZmluZCgiYWNwaV9lYyIpLCAwKSkKIAkgICAgPT0gTlVMTCkKIAkJZGV2aWNlX3By
aW50ZihkZXYsICJjYW5ub3QgZmluZCBFQyBkZXZpY2VcbiIpOwotCWVsc2UgaWYgKEFDUElfRkFJ
TFVSRSgoc3RhdHVzID0gQWNwaUluc3RhbGxOb3RpZnlIYW5kbGVyKHNjLT53bWlfaGFuZGxlLAor
CWlmIChBQ1BJX0ZBSUxVUkUoKHN0YXR1cyA9IEFjcGlJbnN0YWxsTm90aWZ5SGFuZGxlcihzYy0+
d21pX2hhbmRsZSwKIAkJICAgIEFDUElfREVWSUNFX05PVElGWSwgYWNwaV93bWlfbm90aWZ5X2hh
bmRsZXIsIHNjKSkpKQogCQlkZXZpY2VfcHJpbnRmKHNjLT53bWlfZGV2LCAiY291bGRuJ3QgaW5z
dGFsbCBub3RpZnkgaGFuZGxlciAtICVzXG4iLAogCQkgICAgQWNwaUZvcm1hdEV4Y2VwdGlvbihz
dGF0dXMpKTsKQEAgLTcwMSw2ICs3MDEsOCBAQCBhY3BpX3dtaV9lY19oYW5kbGVyKFVJTlQzMiBm
dW5jdGlvbiwgQUNQSV9QSFlTSUNBTF9BRERSRVNTIGFkZHJlc3MsCiAJCXJldHVybiAoQUVfQkFE
X1BBUkFNRVRFUik7CiAJaWYgKGFkZHJlc3MgKyAod2lkdGggLyA4KSAtIDEgPiAweEZGKQogCQly
ZXR1cm4gKEFFX0JBRF9BRERSRVNTKTsKKwlpZiAoc2MtPmVjX2RldiA9PSBOVUxMKQorCQlyZXR1
cm4gKEFFX05PVF9GT1VORCk7CiAJaWYgKGZ1bmN0aW9uID09IEFDUElfUkVBRCkKIAkJKnZhbHVl
ID0gMDsKIAllY19hZGRyID0gYWRkcmVzczsK
--=_78f0970818859361063826d296ba337a--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?fb0874b1cf4510a2d797a83a01d55935>