freebsd-dev/sys/x86
Vladimir Kondratyev 2b4ee39838 atrtc(4): install ACPI RTC/CMOS operation region handler
FreeBSD base system does not provide an ACPI handler for the PC/AT RTC/CMOS
device with PnP ID PNP0B00; on some HP laptops, the absence of this handler
causes suspend/resume and poweroff(8) to hang or fail [1], [2]. On these
laptops EC _REG method queries the RTC date/time registers via ACPI
before suspending/powering off. The handler should be registered before
acpi_ec driver is loaded.

This change adds handler to access CMOS RTC operation region described in
section 9.15 of ACPI-6.2 specification [3]. It is installed only for ACPI
version of atrtc(4) so it should not affect old ACPI-less i386 systems.

It is possible to disable the handler with loader tunable:
debug.acpi.disabled=atrtc

Informational debugging printf can be enabled by setting hw.acpi.verbose=1
in loader.conf

[1] https://wiki.freebsd.org/Laptops/HP_Envy_6Z-1100
[2] https://wiki.freebsd.org/Laptops/HP_Notebook_15-af104ur
[3] https://uefi.org/sites/default/files/resources/ACPI_6_2.pdf

PR:		207419, 213039
Submitted by:	Anthony Jenkins <Scoobi_doo@yahoo.com>
Reviewed by:	ian
Discussed on:	acpi@, 2013-2015, several threads
MFC after:	2 weeks
Differential Revision:	https://reviews.freebsd.org/D19314
2019-03-10 20:19:43 +00:00
..
acpica Drop "All rights reserved" from my copyright statements. 2019-03-06 22:11:45 +00:00
bios
cpufreq
include Drop "All rights reserved" from my copyright statements. 2019-03-06 22:11:45 +00:00
iommu
isa atrtc(4): install ACPI RTC/CMOS operation region handler 2019-03-10 20:19:43 +00:00
pci
x86 Drop "All rights reserved" from my copyright statements. 2019-03-06 22:11:45 +00:00
xen Drop "All rights reserved" from my copyright statements. 2019-03-06 22:11:45 +00:00