Commit Graph

58 Commits

Author SHA1 Message Date
mav
1610fb0c22 Add acpi_asus_wmi(4) -- driver for random extras found on WMI-compatible
Asus laptops. It is alike to acpi_asus(4), but uses WMI interface instead
of separate ACPI device.

On Asus EeePC T101MT netbook it allows to handle hotkeys and on/off WLAN,
Bluetooth, LCD backlight, camera, cardreader and touchpad.

On Asus UX31A ultrabook it allows to handle hotkeys, on/off WLAN, Bluetooth,
Wireless LED, control keyboard backlight brightness, monitor temperature
and fan speed. LCD brightness control doesn't work now for unknown reason,
possibly requiring some video card initialization.

Sponsored by:	iXsystems, Inc.
2012-07-02 08:31:29 +00:00
jhb
a59d81971c Disconnect acpi.ko from the build on i386. ACPI is now only supported when
compiled into the kernel, not as a loadable module.
2010-11-08 20:30:59 +00:00
rpaulo
ce6b8c2746 Remove the acpi_aiboost driver. It has been replaced by aibs(4). 2010-07-25 17:55:57 +00:00
rpaulo
5bba5f6503 Import the acpi_aibs(4) driver written by Constantine A. Murenin.
It has more features than acpi_aiboost(4) and it will eventually replace
acpi_aiboost(4).

Submitted by:	Constantine A. Murenin <cnst at FreeBSD.org>
Reviewed by:	freebsd-acpi, imp
MFC after:	1 month
2010-06-25 15:32:46 +00:00
rpaulo
792757454a * Driver for ACPI WMI (Windows Management Instrumentation)
* Driver for ACPI HP extra functionations, which required
  ACPI WMI driver.

Submitted by:	Michael <freebsdusb at bindone.de>
Approved by:	re
MFC after:	2 weeks
2009-06-23 13:17:25 +00:00
jkim
c06098a406 Catch up with ACPI-CA 20070320 import. 2007-03-22 18:16:43 +00:00
takawata
eba5c4adb4 Hook acpi gadget driver modules to other acpi archs. 2006-12-18 05:54:50 +00:00
emaste
1aa7069d4f Clarify the error message when trying to build an ACPI module on amd64
or ia64.

The old message implied to me that ACPI can't be compiled in on platforms
other than amd64 and ia64.  The amd64@ mailing list archive has messages
from users with the same confusion.

Approved by:	scottl
2006-11-10 20:06:03 +00:00
takawata
8535245927 Hook acpi_aiboost module to build. 2006-10-30 06:05:10 +00:00
iwasaki
0613b693d0 Import ACPI Dock Station support. Note that this is still very young.
Additional detach implementaions (or maybe improvement) for other
deivce drivers is required.

Reviewed by:	njl, imp
MFC after:	1 week
2006-04-15 12:31:34 +00:00
philip
40a49548e5 Add acpi_fujitsu for handling acpi-controlled buttons on Fujitsu laptops.
Submitted by:	Anish Mistry <mistry.7 -at- osu.edu>
Reviewed by:	njl
X-MFC after:	5.4-RELEASE
2005-03-18 08:48:10 +00:00
njl
42a55e2441 Move acpi_perf and acpi_throttle into acpi.ko. Remove the acpi_perf
build structure.
2005-02-24 20:48:07 +00:00
njl
45af79d5a7 Hook up the cpufreq framework, acpi_perf(4), and cpufreq(4) drivers. 2005-02-04 05:49:36 +00:00
takawata
177099d758 Connect acpi_ibm to build.
Submitted by: rushani, sumikawa
2004-12-09 16:47:07 +00:00
nyan
b5f85e2fdb PC98 does not have ACPI. 2004-11-15 13:28:03 +00:00
imp
8dabebd604 After discussions with Nate, repo copy the acpi assist drivers from
i386 to dev/acpi_support.  In theory, these devices could be found
other than in i386 machines only as amd64 becomes more popular.  These
drivers don't appear to do anything i386 specific, so move them to
dev/acpi_support.  Move config lines to files so that those
architectures that don't support kernel modules can build them into
the kernel.  At the same time, rename acpi_snc to acpi_sony to follow
the lead of all the other specialty devices.
2004-11-15 05:54:15 +00:00
scottl
4b4f25fcb1 Make it clear that the acpi modules can only be compiled on i386. 2004-11-14 20:53:17 +00:00
imp
9b37fa7711 Commit takawata-san's Sony Notebook Controller driver, integrated into
the tree.  Small tweaks were made by myself to eliminate unnecessary
includes and some other minor issues.  Last time I asked takawata-san
about this driver, he suggested I commit it.

Submitted by: takawata
2004-11-11 22:54:58 +00:00
nyan
3c92d13fb3 Add the ACPI Panasonic extras driver.
Submitted by:	OGAWA Takaya <t-ogawa@triaez.kaisei.org> and nyan
2004-07-21 14:47:54 +00:00
philip
3fd35f61f6 Hook up acpi_asus and its manual page in two more places I managed to overlook
last night.  Sorry about that :-o

Spotted by:	njl (mentor, spotter of forgetfulness)
2004-04-23 06:29:08 +00:00
njl
0b1110f652 Hook acpi_video up to the build. 2004-03-01 08:15:26 +00:00
njl
3f4a150002 Hook up acpi_toshiba 2004-01-12 19:30:57 +00:00
njl
09140a0699 Move the acpi module down a directory. This will allow us to import
other ACPI-specific drivers into sys/modules/acpi/.
2003-12-24 03:49:38 +00:00
jhb
c9692bbff8 Remove SMP option support from building the ACPI module as it is no longer
needed.

Approved by:	re (murray)
Requested by:	njl
2003-12-05 15:49:01 +00:00
jhb
af58c0d9f3 Add madt.c to the list of sources for i386.
Approved by:	re (scottl / blanket)
2003-12-03 21:10:02 +00:00
njl
de5ea0895c * Add acpi_pcpu_get_id(idx, *acpi_id, *cpu_id) which fetches the
idx'th present CPU with pc_acpi_id equal to *acpi_id.  If *acpi_id
  does not match that processor's pc_acpi_id, return the value for
  ProcId derived from the MADT in *acpi_id.  If pc_acpi_id is 0xffffffff,
  always override it with the value of *acpi_id.  Finally, return
  pc_cpuid in *cpu_id and use that as our primary key.

* Use pc_cpuid as our unique key because we know it is valid since
  MD code set it.  The values for ProcId in the ASL and MADT don't
  match up on some machines (!), forcing us to fall back to ordered
  probing in that case.

* Remove some #ifdef SMP since the refcount doesn't hurt performance
  and will be needed for dynamic _CST objects.  Only one #ifdef SMP
  (for smp_rendezvous) remains.

* Hook up SMP in the compile flags in the Makefile.

Tested by:	marcel, truckman
Approved by:	re (scottl)
2003-11-26 19:01:33 +00:00
njl
36b03f2409 Implement Cx CPU idle states and updated throttling support.
* Use the cpu_idle_hook() to do idling for C1-C3.
* Use both _CST and the FADT to detect Cx states.
* Use both _PTC and P_CNT for controlling throttling.
* Add a notify handler to detect changes in _CST and _PSS
* Call the _INI function for each processor if present.  This will be
  done by ACPI-CA in the future.
* Fix a bug on SMP systems where CPUs will attach multiple times if the
  bus is rescan.
* Document new sysctls for controlling idling.
2003-11-15 19:26:06 +00:00
njl
b5438b5430 Use the ACPICA AcpiEnterSleepStateS4bios instead of rolling our own. This
change also disables interrupts around non-S4 suspends whereas before we
did not do this.  Our version of AcpiEnterSleepStateS4bios was almost
identical to the ACPICA version.
2003-08-29 04:02:19 +00:00
njl
711369e68f Fix the ACPI_DEBUG build for the non-module case. Move the #define into
acfreebsd.h and remove it from the Makefile.  Now ACPI_DEBUG implies
ACPI_DISASSEMBLER.

Noticed by:	marcel
2003-07-15 19:18:41 +00:00
njl
3e799fd208 Fix build with ACPI_DEBUG option.
Reported by:	Mark Santcroos <marks@ripe.net>, des+tinderbox
2003-07-14 17:19:45 +00:00
jhb
7e662706e8 Add an ACPI to ISA psuedo bridge driver. It attaches an isab(4) device to
ACPI nodes with the plug and play ID's defined for a "Generic ISA Bus
Device" as defined in section 10.7 of the ACPI 2.0 specification.  This
gives machines like the Libretto that contain a fake ISA bus that is not
connected via a PCI-ISA bridge an ISA bus for ISA devices to attach to.

Tested by:	markm
2003-07-08 18:59:32 +00:00
njl
32b2682952 Support functions for the new ACPI import.
* AcpiOsDerivePciId(): finds a bus number, given the slot/func and the
    acpi parse tree.
  * AcpiOsPredefinedOverride(): use the sysctl hw.acpi.os_name to
    override the value for _OS.

Ideas from:	takawata, jhb
Reviewed by:	takawata, marcel
Tested on:	i386, ia64
2003-04-29 18:50:34 +00:00
iwasaki
8db9ba4b9e Add code for ACPI PCI link object manipulation.
This allocate the best IRQ to boot-disable devices (have IRQ 0).
Allocated IRQ will be used for PCI interrupt routing when ACPI is
enabled.

Note that verbose messaging enabled for the time being so that
people can easily notice the strange behavior if it happened.
2002-10-05 02:01:05 +00:00
bde
1fd9de2bed Removed explicit rule for creating a null opt_bus.h. kmod.mk does this
automatically once opt_foo.h is in SRCS, modulo some carelessness in
removing garbage in stale versions of opt_foo.h (touch(1) should not
be used to create opt_foo.h in kmod.mk or elsewhere).

Cleaned up nearby rule for creating opt_ddb.h.
2002-08-27 13:39:31 +00:00
jhb
a6ed2080e7 Have to create opt_bus.h for sys/bus.h to be happy. *sigh*
Noticed by:	imp and others
2002-08-26 21:11:56 +00:00
jhb
f3ec374742 Oops, forgot to hook up the ACPI PCI bus in the module.
Noticed by:	imp
2002-08-26 19:00:36 +00:00
jhb
85e5115e58 Hook up the new ACPI PCI bus and catch up to ACPI PCI bridge driver changes. 2002-08-26 18:32:00 +00:00
iwasaki
b2baff05fb Resolve conflicts arising from the ACPI CA 20020725 import. 2002-07-30 19:35:32 +00:00
iwasaki
57bb0b6ca4 Resolve conflicts arising from the ACPI CA 20020611 import. 2002-07-09 17:54:02 +00:00
iwasaki
3f245d8dd1 Add generalized power profile code.
This makes other power-management system (APM for now) to be able to
generate power profile change events (ie. AC-line status changes), and
other kernel components, not only the ACPI components, can be notified
the events.

 - move subroutines in acpi_powerprofile.c (removed) to kern/subr_power.c
 - call power_profile_set_state() also from APM driver when AC-line
   status changes
 - add call-back function for Crusoe LongRun controlling on power
   profile changes for a example
2002-03-04 18:46:13 +00:00
iwasaki
4c7abcd337 Add OS layer ACPI mutex and threading support.
- Temporary fix a bug of Intel ACPI CA core code.
 - Add OS layer ACPI mutex support.  This can be disabled by
   specifying option ACPI_NO_SEMAPHORES.
 - Add ACPI threading support.  Now that we have a dedicate taskqueue for
   ACPI tasks and more ACPI task threads can be created by specifying option
   ACPI_MAX_THREADS.
 - Change acpi_EvaluateIntoBuffer() behavior slightly to reuse given
   caller's buffer unless AE_BUFFER_OVERFLOW occurs.  Also CM battery's
   evaluations were changed to use acpi_EvaluateIntoBuffer().
 - Add new utility function acpi_ConvertBufferToInteger().
 - Add simple locking for CM battery and temperature updating.
 - Fix a minor problem on EC locking.
 - Make the thermal zone polling rate to be changeable.
 - Change minor things on AcpiOsSignal(); in ACPI_SIGNAL_FATAL case,
   entering Debugger is easier to investigate the problem rather than panic.
2001-12-22 16:05:41 +00:00
iwasaki
37688d6327 Add S4BIOS sleep (BIOS hibernation) and DSDT overriding support.
- Add S4BIOS sleep implementation.  This will works well if MIB
   hw.acpi.s4bios is set (and of course BIOS supports it and hibernation
   is enabled correctly).
 - Add DSDT overriding support which is submitted by takawata originally.
   If loader tunable acpi_dsdt_load="YES" and DSDT file is set to
   acpi_dsdt_name (default DSDT file name is /boot/acpi_dsdt.aml),
   ACPI CA core loads DSDT from given file rather than BIOS memory block.
   DSDT file can be generated by iasl in ports/devel/acpicatools/.
 - Add new files so that we can add our proposed additional code to Intel
   ACPI CA into these files temporary.  They will be removed when
   similar code is added into ACPI CA officially.
2001-11-06 15:00:30 +00:00
msmith
05445bb80c Update to reflect files added/removed with the 20011018 ACPI CA update. 2001-10-31 02:35:43 +00:00
iwasaki
1b24a8aa4e Add APM compatibility feature to ACPI.
This emulates APM device node interface APIs (mainly ioctl) and
provides APM services for the applications.  The goal is to support
most of APM applications without any changes.
Implemented ioctls in this commit are:
 - APMIO_SUSPEND (mapped ACPI S3 as default but changable by sysctl)
 - APMIO_STANDBY (mapped ACPI S1 as default but changable by sysctl)
 - APMIO_GETINFO and APMIO_GETINFO_OLD
 - APMIO_GETPWSTATUS

With above, many APM applications which get batteries, ac-line
info. and transition the system into suspend/standby mode (such as
wmapm, xbatt) should work with ACPI enabled kernel (if ACPI works well :-)

Reviewed by:	arch@, audit@ and some guys
2001-10-26 17:43:05 +00:00
msmith
06d963bb08 Update list of sources to match 20010920 snapshot. 2001-10-04 23:19:17 +00:00
nyan
126bc821c0 Use MACHINE_ARCH instead of MACHINE to fix pc98 module. 2001-09-06 12:53:53 +00:00
msmith
e58ac88304 Update for slightly changed ACPI OSD module. Make debugging code conditional
on ACPI_DEBUG, so we can set it in /etc/make.conf.
2001-08-30 00:53:13 +00:00
takawata
d3d1b151d3 Add ACPI S2-S4BIOS Suspend/Resume code.
Some problems may remain.

Reviewed by:iwasaki
2001-07-20 06:07:34 +00:00
msmith
2e6ecd9dc9 Ha! This time, I remembered the ACPI module. Update the sources list
to reflect recent changes in the code.
2001-07-07 23:36:13 +00:00
takawata
1fff29b6c6 Follow Mike's commit by adding acpi_powerres.c. 2001-06-28 17:07:37 +00:00