Commit Graph

1161 Commits

Author SHA1 Message Date
jruoho
303587c62f ACPICA 20100915:
Removed the AcpiOsDerivePciId OSL interface. The various host
implementations of this function were not OS-dependent and are now obsolete
and can be removed from all host OSLs.  This function has been replaced by
AcpiHwDerivePciId, which is now part of the ACPICA core code.
AcpiHwDerivePciId has been implemented without recursion.  Adds one new
module, hwpci.c.  ACPICA BZ 857.
2011-02-17 10:20:32 +00:00
jruoho
3b274ab6bf Switch acpi(4) to use the new location of ACPICA. 2011-02-17 07:34:42 +00:00
jruoho
3993e0d154 Make the WMI modules depend on the parent mapper. 2011-02-16 13:15:49 +00:00
jruoho
5f852a8424 Change the preprocessor defines around the module(9)'s modcmd() calls such
that the modules show in modstat(8) even though these are "builtin".
2011-02-16 09:05:12 +00:00
jruoho
2b0b13f21f Use ioconf for the module declarations. 2011-02-16 08:35:51 +00:00
jruoho
b9f301d5a2 Convert the homegrown module declarations to use ioconf. 2011-02-16 08:19:56 +00:00
jruoho
7e0b5b7921 Add a skeleton driver for Asus EeePC acpiwmi(4) mappings. 2011-02-16 07:30:26 +00:00
jruoho
2e742e4a77 Reset the firmware waking vector on resume. Adapted from FreeBSD and Linux.
No functional change intended.
2011-02-15 20:24:11 +00:00
jruoho
23501c315c Fix small negligence mistake. 2011-02-14 18:51:44 +00:00
jruoho
512cae94de Improve error reporting. 2011-01-30 08:55:52 +00:00
jmcneill
c93b203331 If the thermal zone has a _PSL method, print a list of processors
associated with the zone at attach time.

  acpitz0 at acpi0 (THM0)
  acpitz0: levels: critical 127.0 C, passive cooling
  acpitz1 at acpi0 (THM1): cpu0 cpu1
  acpitz1: levels: critical 100.0 C, passive 95.5 C, passive cooling
2011-01-18 21:15:54 +00:00
jmcneill
2dd19c519d Use AcpiOsReadPort/AcpiOsWritePort instead of inb/outb so I can get rid of
of the i386 and x86_64 ifdefs.
2011-01-18 18:56:25 +00:00
jmcneill
138a9407d2 use PRIx64 instead of llx, fixes build on amd64 2011-01-17 17:32:11 +00:00
jmcneill
8ddcdc25a9 acpiwdrt needs sysmon_wdog 2011-01-17 15:55:24 +00:00
jmcneill
27686d11fe Add a driver for ACPI "Watchdog Resource Table" devices.
acpiwdrt0 at acpi0: mem 0xfed01000,0xfed01004
  acpiwdrt0: PCI 0:000:00:0 vendor 0x1106 product 0x3337
  acpiwdrt0: watchdog interval 1-1023 sec.
2011-01-17 15:49:13 +00:00
jruoho
f82830f374 Postpone the sensor update with sysmon_taskq(9). 2011-01-13 14:25:33 +00:00
jruoho
3c51ce4b05 Upon request from jmcneill@, put the check back that prevents unnecessary
readings during the sysmon_envsys(9) poll cycle. Some systems (notably,
Asus EeePC) have so badly implemented AML that reading the values via
envstat(8) alone can cause considerable delays.
2011-01-13 13:05:13 +00:00
jruoho
f861d1bc75 Clean-up acpi_print(). XXX: The 'acpiverbose' module is still broken... 2011-01-13 05:58:05 +00:00
jruoho
710112e7c7 Scan for docking stations. 2011-01-13 05:14:48 +00:00
jruoho
3dd22c3c2c Do not try to attach more ACPI CPUs than the amount of "real" CPUs. 2011-01-13 04:18:19 +00:00
jruoho
99d6864d21 Move the function that counts the CPUs from acpicpu(4) to the MD layer. 2011-01-13 03:40:50 +00:00
jruoho
c2df94f224 Disable all GPEs when entering S5. Also add a comment that the function
acpi_enter_sleep_state() must be called with interrupts enabled.
2011-01-11 20:35:24 +00:00
jruoho
322f6c439c Regen. 2011-01-10 17:04:55 +00:00
jruoho
93da29999d Add SMO1200 (yet another TPM chip). From ThinkPad x201i. 2011-01-10 17:04:22 +00:00
jruoho
2304727048 Small clean-up in the match and attach functions. Namely, use the attach
args instead of referencing the global softc. No functional change.
2011-01-10 09:07:27 +00:00
jruoho
f640132d0b Convert aprint_error(9) to ACPI_DEBUG_PRINT. 2011-01-09 16:22:07 +00:00
jruoho
1b00e79140 Remove also rest of the ACPI_DEVICE_POWER checks. 2011-01-09 16:15:25 +00:00
jruoho
930b9f2eb4 After consulting jmcneill@, set the state to D0 ("on") upon shutdown and
detach. A safety measure so that we do not accidentally fry anything.
2011-01-09 15:43:20 +00:00
jruoho
37f5de3ab8 Add a dummy-driver for ACPI fans. 2011-01-09 15:12:33 +00:00
jruoho
019ba6b902 Use acpi_power_register() for consistency. No functional change. 2011-01-09 14:58:10 +00:00
jruoho
1dee4ee9e2 We use config_defer(9) now when scanning power resource and wake-up
capabilities, so do not fail in acpi_power_register() if ACPI_DEVICE_POWER is
not set in struct acpi_devnode::ad_flags.
2011-01-09 14:56:06 +00:00
jruoho
c40255f958 Print a message if ACPI 4.0 functionality is present (in which case the
driver should be updated).
2011-01-09 09:47:55 +00:00
jruoho
74a4ee7fc0 Rearrange (use two tabs). 2011-01-09 05:06:17 +00:00
jruoho
f422341f8e Regen. 2011-01-09 04:59:00 +00:00
jruoho
04e39f05b5 Add INTC0102 (Intel TPM chip). From ThinkPad T500. 2011-01-09 04:58:34 +00:00
cegger
21fd508d09 use aprint_error_dev 2011-01-07 14:08:29 +00:00
jruoho
ef2b108701 Fix a comment. 2011-01-06 18:57:22 +00:00
jruoho
0af1ebd4ab Split the code that makes a string from ACPI_DEVICE_INFO::Name to a function. 2011-01-06 07:05:00 +00:00
jruoho
1bb3132df6 Move the ACPI_ACTIVATE_DEV block around for clarity. 2011-01-06 06:49:12 +00:00
jruoho
e067d18bf0 Add a driver for ACPI power meters. 2011-01-05 20:08:12 +00:00
jruoho
d982261b67 Adjust previous slightly. 2011-01-05 08:08:47 +00:00
jruoho
740a9e0c0e Make a two-pass scan for acpinodebus. This should ensure that devices such
as acpiec(4) are attached before anything else. Numerous bugs are expected
to be fixed with this change.
2011-01-05 07:58:04 +00:00
jruoho
c96fe4ba5e Revert the changes made in the commit:
"Do not queue functions via sysmon_taskq(9) in the pmf(9) resume hooks.
   There is a small and unlikely race when the drivers are loaded as modules;
   suspend, resume, queue a function, and immediately unload the module."

Queueing the checks in the resume hooks was observed to improve the resume
time by several seconds (!) on a system with poorly implemented AML code.
The observed race condition is a wider issue related to modules; things like
sysmon_taskq(9) should be modified to allow cancelling of queued functions.
2011-01-04 05:48:48 +00:00
jruoho
a26fa60e11 Fix previous. 2011-01-04 04:28:48 +00:00
jruoho
6a3b9e2cde Scan for devices that are "hot-pluggable". 2011-01-03 08:50:23 +00:00
jruoho
6248a51d8a Adjust error messages for the previous commit. 2011-01-02 12:06:02 +00:00
jruoho
e008cf160e Use "real" device names for the hw.acpi.wake and hw.acpi.power sysctl(8)
trees. For instance, instead of hw.acpi.wake.DURT, we have hw.acpi.wake.wm0
for wm(4). This is a temporary solution, but without solving the big
abstraction questions, this is the best we can do.
2011-01-02 06:05:47 +00:00
jruoho
9a11653a7b Print a warning if the BIOS thinks that the timer is unreliable. However, do
not touch the quality of the timecounter(9) based on this information.
2011-01-02 05:48:55 +00:00
jruoho
8aaffbf4e9 Include <dev/acpi/acpi_pci.h>. 2010-12-31 14:05:15 +00:00
jruoho
396210649d acpi_pcidev_find_dev(): take struct acpi_devnode as a parameter. 2010-12-31 10:56:39 +00:00
jruoho
aa705fc95d Move the function that finds a device_t for the corresponding ACPI device
node from ACPIVERBOSE to the ACPI PCI code.
2010-12-31 10:23:44 +00:00
jruoho
b99cdd8ef8 Move the ACPI sleep-specific sysctl variables to hw.acpi.sleep. The old
machdep-variables are provided for backwards compatibility (eventually these
should be removed). All ACPI sysctl variables are now under hw.acpi.
2010-12-31 09:19:43 +00:00
jruoho
77f707c929 Use "temperature #" and "fan speed #" rather than "TMP#" and "FAN#" for the
sensor names. Remove white space. No functional change.
2010-12-31 08:17:54 +00:00
jruoho
3dc9396c46 Regen. 2010-12-30 19:38:03 +00:00
jruoho
47c7d9897b Add IBM0079. 2010-12-30 19:37:39 +00:00
jruoho
a5a73b2a05 Change the default behavior to enforce the maximum frequency when the
firmware requests to do so. This cures severe overhating (> 120 C) observed
on many laptops, being also on par with the specification(s). This can be
reverted by using the new "hw.acpi.cpu.dynamic" sysctl variable.
2010-12-30 12:05:02 +00:00
jruoho
82e1351b37 Regen. 2010-12-22 22:29:19 +00:00
jruoho
e3cfc8ab23 Add IPI0001, an identifier for ipmi(4). From Dell M710. 2010-12-22 22:28:35 +00:00
jruoho
8e53b1ce30 Use branch annotations in couple of places. Add two comments. 2010-12-20 08:13:04 +00:00
jruoho
e1de74391b Add AMD C1E quirk. Tested by cegger@.
(a) This should be removed once C-states are supported.

  (b) As there seems to be no reliable way to detect whether C1E is present,
      the quirk blindly assumes that C1E is used on families 10h and 11h.
2010-11-30 04:31:00 +00:00
gsutre
4e1e5c3604 Replace ACPI_UINT64 by ACPICA's ACPI_INTEGER. Remove superfluous casts.
No functional change.
2010-11-07 16:36:26 +00:00
gsutre
64448b4070 Hm, the warning sign was not big enough. 2010-11-05 10:35:00 +00:00
gsutre
e0b5016656 Merge ACPI Fujitsu Driver. Provides support for hotkeys and other
built-in components through vendor-specific ACPI devices.

ok jruoho@
2010-11-05 10:28:20 +00:00
jruoho
01720ae0de Initialize pointers to NULL to avoid accidentally free(9)'ing garbage.
Should address the panic reported by Alan Bueno in PR # 44042. The root
cause (an empty _DOD) is yet to be determined.
2010-11-04 20:08:12 +00:00
gsutre
678179dfe4 acpi_eval_integer: check that the evaluation produced a result.
ok jruoho@
2010-11-02 16:45:48 +00:00
gsutre
027c57ec40 Lock the _DGS values (desired output state) during the display
output switch.

ok jruoho@
2010-10-29 09:04:38 +00:00
gsutre
a9f3b6413d Simplify the sysctl variable for BIOS switch policy, and document it
in acpivga(4).  The previous hw.acpi.acpivga0.policy variable is
renamed into bios_policy for consistency, and is for ACPI_DEBUG only.

ok jruoho@
2010-10-28 21:45:02 +00:00
jruoho
b6050c6897 Be silent if we get a notification to tell us that we woke up the system. 2010-10-28 18:03:11 +00:00
jruoho
639d1b9782 Install EC space handler and pass everything to acpiec(4).
Should fix PR # 43659.
2010-10-28 15:55:04 +00:00
jruoho
fcd284181f Fix a comment typo. 2010-10-28 04:28:29 +00:00
jruoho
a4915ab4db Only override data from XPSS if the conventional _PSS did not contain the
required information. Problem found and diagnosed by jakllsch@; on some AMD
systems vendors fill _PSS correctly, but do not duplicate the data in XPSS.
2010-10-28 04:27:40 +00:00
gsutre
f32ca0cfec Make acpi(4) debug aware of ACPI_DISPLAY_COMPONENT. 2010-10-27 14:39:26 +00:00
gsutre
af565a28d4 An _ADR object is not required for PCI root bridges. To solve
this, the structure acpi_pciinfo now tells whether the ACPI
device node is a PCI bridge, a regular PCI device, or both.

Problem reported by jmcneill@, who also suggested the solution.

ok jmcneill@, jruoho@
2010-10-26 22:27:44 +00:00
jruoho
85aafab84b Add LEN0014. (And to the previous commit; a driver for this, not PNP0C32, is
possibly coming.)
2010-10-26 09:13:54 +00:00
jruoho
4e313088ed Regen. 2010-10-26 08:59:06 +00:00
jruoho
91c0c3fd42 Add more identifiers for ATM chips.
Also add PNP0C32 for "quickstart buttons". A driver for this comes later.
2010-10-26 08:57:46 +00:00
jruoho
6fdfbe79c2 Add support for module(9). 2010-10-26 05:28:29 +00:00
jruoho
8eae6f006a Bump WARNS to 4. 2010-10-26 04:37:33 +00:00
jruoho
a953788eba Use kmem(9) instead of malloc(9). 2010-10-26 04:24:21 +00:00
jruoho
6b1e267f66 Refactor slightly and bump WARNS to 4. 2010-10-26 03:11:10 +00:00
jruoho
9fad28a567 Add support for module(9). 2010-10-25 17:06:58 +00:00
jruoho
a60aadf22e Fix build failure. 2010-10-25 15:38:05 +00:00
jruoho
70e14dc983 Bump WARNS to 4. 2010-10-25 07:48:03 +00:00
jmcneill
9750ca2f9c add support for building as a module 2010-10-24 18:26:29 +00:00
jmcneill
4e44999554 add support for building as modules 2010-10-24 16:25:31 +00:00
jmcneill
5991cdfeba add rescan support 2010-10-24 15:07:20 +00:00
jruoho
117351d1b6 Add acpiwmi(4) mappings for MSI laptops.
XXX: It may be necessary to fix PR # 43659 before this works on all models.
2010-10-24 08:54:14 +00:00
jruoho
c99562cb83 Simplify acpi_enter_sleep_state() and guard it against NULL pointer
dereferences. Try to avoid referencing the global acpi_softc, which should
really be static or at least internal to acpi(4).
2010-10-24 07:53:04 +00:00
gsutre
e28e04ce32 Merge ACPI display driver. Provides generic support for brightness
control and output switching, through ACPI video extensions.

TODO: use wsconsctl(8) instead of sysctl(8) for brightness control.

ok jruoho@
also discussed with cegger@ and jmcneill@
2010-10-12 19:10:49 +00:00
gsutre
646cb7e223 Store sysctl MIBs instead of a pointer to the root of the sysctl
sub-tree (because the pointer may be invalid at the time we use it).

ok jruoho@
2010-10-08 07:04:31 +00:00
gsutre
92e792e4a4 Drop _HID requirement for attachment under acpi(4). From now on,
drivers attaching to the acpinodebus interface should not assume
that the passed acpi_devnode has a valid _HID.

ok jruoho@
2010-10-02 18:06:47 +00:00
gsutre
a9c0568376 Do not discard ACPI PCI addresses with function number 0xFFFF: the
ACPI specification allows them (ACPI 4.0a, p. 200).

ok jruoho@
2010-09-24 07:48:59 +00:00
jmcneill
eb0e82d870 Add support for blacklisting ACPI BIOS implementations by year. By default,
don't use ACPI on BIOS which advertise release years <= 2000. This
can be changed by setting option ACPI_BLACKLIST_YEAR=0 or by setting
acpi_force_load=1.
2010-09-06 15:54:26 +00:00
jakllsch
eb044d2951 Remove quirk added in rev 1.14. Even after the change of 1.16, it
still matches more boards that just the one with the problem.

Interrupts from the SATA controllers on my MSI K8N Neo3 boards
(which both versions of this quirk matched) are broken when ACPI
is disabled.  My board does not exhibit AE_AML_INFINITE_LOOP
problems.

If we want to avoid manually specifying RB_MD2 in boothowto on
pgoyette@'s board, we're going to have to find another way; perhaps
with the DMI strings available from pmf(9).

Anyhow, some boards needing RB_MD2 during boot(8) is in my opinion
better than others needing to set acpi_force_load in ddb or gdb.
2010-09-06 14:09:54 +00:00
jruoho
40ac1b9f62 Use FADT instead of DSDT in the quirk added in the revision 1.14. 2010-09-04 17:48:26 +00:00
jruoho
a8cdc50f5d Fix PR kern/43765 from Scott Ellis.
Note that the solution is not optimal. If ichlpcib(4) provides SpeedStep
support, possible I/O resource conflicts may occur with acpicpu(4). Ideally,
as noted for instance in Windows design documents, ichlpcib(4) should never
expose SpeedStep when ACPI is being used. The probability for potential race
conditions is however very small, being limited to few P4-era machines and
being dependent on user actions.
2010-08-27 03:05:26 +00:00
jruoho
9d3272e78a From jmcneill@: fix and rework the obscure _OSC evaluation. 2010-08-27 02:44:05 +00:00
jruoho
8c53a12242 Bypass ACPI_NOTIFY_DEVICE_WAKE also in acpilid(4). Use aprint_debug_dev(9)
for an unknown notify. (The ACPI drivers should really not print anything
as we now have a global notify handler that can catch the debug information.)
2010-08-24 15:03:34 +00:00
jruoho
22be5f8eda Remove phony spl(9). XXX: This driver needs to be cleaned up. 2010-08-24 14:53:45 +00:00
jruoho
42a7d04b04 Add native support for AMD family 0Fh processors. This is the furthest we
will go backwards; K7 will not be supported already due doubts about
availability and reliability of ACPI during that era. Some unfortunate code
duplication is present (but not overly much). Thanks to cegger@ and jakllsch@
for patiently testing this.
2010-08-24 07:27:59 +00:00