- Move includes.nav*.sgml to share/sgml/navibar.ent and <lang>/share/sgml/nabibar.l10n.ent. - Move includes.sgml and includes.xsl to share/sgml/common.ent, share/sgml/header.ent, <lang>/share/sgml/l10n.ent, and <lang>?share/sgml/header.l10n.ent. - Move most of XSLT libraries to share/sgml/*.xsl and <lang>/share/sgml/*.xsl. - Move news.xml and other *.xml files for the similar purpose to share/sgml/*.xml and <lang>/share/sgml/*.xml. - Switch to use a custom DTD for HTML document. Now we use "-//FreeBSD//DTD HTML 4.01 Transitional-Based Extension", which is HTML 4.01 + some entities previously pulled via "<!ENTITY % includes SYSTEM "includes.sgml"> %includes;" line. The location of entity file will be resolved by using catalog file. - Add DOCTYPE declearation to XML documents. This makes the followings possible: * Use of &foo; entities for SGML in an XML file instead of defining {$foo} as the same content. * &symbolic; entities for Latin characters. - Duplicated information between SGML and XML, or English and translated doc, has been removed as much as possible.
447 lines
13 KiB
Text
447 lines
13 KiB
Text
<!DOCTYPE HTML PUBLIC "-//FreeBSD//DTD HTML 4.01 Transitional-Based Extension//EN" [
|
|
<!ENTITY base CDATA "../..">
|
|
<!ENTITY date "$FreeBSD: www/en/projects/acpi/completed.sgml,v 1.5 2006/08/04 14:14:39 joel Exp $">
|
|
<!ENTITY title "FreeBSD ACPI completed projects">
|
|
<!ENTITY email 'marks'>
|
|
<!ENTITY acpi-mail 'freebsd-acpi@FreeBSD.org'>
|
|
<!ENTITY % navinclude.developers "INCLUDE">
|
|
<!ENTITY % developers SYSTEM "../../developers.sgml"> %developers;
|
|
|
|
]>
|
|
|
|
<html>
|
|
&header;
|
|
|
|
|
|
<h2>Completed Project List</h2>
|
|
|
|
<table class="tblbasic">
|
|
<tr>
|
|
<td>Add methods to get/set ints
|
|
acpi_EvaluateInteger only gets an int. Update api to get/set
|
|
so that every consumer does not end up defining their own.
|
|
<td>&a.marks;</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>Fix getenv_string. Does not seem to work in
|
|
sys/dev/acpica/Osd/OsdTable.c. Turned out the name
|
|
should not end in "_name".</td>
|
|
<td>&a.marks; and &a.grehan;</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>acpi_video manpage. See appendix B of the ACPI 2.0
|
|
spec for info on what this driver does as well as look
|
|
at the sysctls it exports.</td>
|
|
<td>&a.marks;</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>fd0 not working on Intel boards. The floppy device did not
|
|
work due to the _CRS object on some systems splitting the IO
|
|
port into three 2 port resources (6 ports total). Fix committed
|
|
to sys/isa/fd.c to work with this type of resource
|
|
specification.</td>
|
|
<td>&a.njl; and &a.jhb;</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>Some BIOSs use 0x3f2-0x3f5 as the port range
|
|
-- the real range is 0x3f0-0x3f5, 0x3f7. Workaround
|
|
committed.</td>
|
|
<td>&a.imp;</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>ACPI Debugging Handbook Page --
|
|
Introduction to ACPI for new users as well as how to assist
|
|
us in fixing problems as they arise.</td>
|
|
<td>&a.njl; and &a.trhodes;</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>acpi_video driver (njl) -- Imported.</td>
|
|
<td>&a.njl; and Taku YAMAMOTO (driver author)</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>BIOS blacklist -- implement a mechanism and specific
|
|
quirks to disable features or ACPI entirely on known
|
|
broken systems. If a custom DSDT is loaded, do not
|
|
check it against the blacklist (since a user may fix
|
|
the DSDT without changing the vendor/revision fields.) Add
|
|
blacklist option for disabling acpi on certain
|
|
systems.</td>
|
|
<td>&a.njl</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>acpi_toshiba man page -- Driver submitted by Hiroyuki Aizu
|
|
and committed. All it needs is someone to try it out and
|
|
document the sysctls.</td>
|
|
<td>&a.philip;</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>Invalid PBLK length workaround -- Accept a PBLK of length 5
|
|
(spec says 6). Only enable C2 for this though. Some people
|
|
may be using 7 to indicate another C3 state but we do not
|
|
support the extra state.</td>
|
|
<td>&a.njl;</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>Check EcSpacehandler to make sure it is correct for
|
|
multi-byte access. Found off-by-one in that the last
|
|
address (0xff) could never be written or read.</td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>Pick a default MS OS to claim -- Too much ASL depends on
|
|
a MS OS string so we should masquerade as the most accurate
|
|
one. Picked Win2k™ ("Microsoft Windows NT™"),
|
|
then reverted once _OSI support was available. ACPI-CA still
|
|
has a default of "Microsoft Windows NT™".</td>
|
|
<td>&a.njl;</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>Handle DPF resource types in acpi_pcib.c -- Some _PRS values
|
|
are bracketed with start/end dependent function resource
|
|
descriptors. Parse/skip them to fix PCI IRQ routing.</td>
|
|
<td>&a.njl;</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>acpi_toshiba updates -- Implement support for DSSX which
|
|
appears to be the only way to do display switching (other
|
|
than acpi_video).</td>
|
|
<td>&a.njl;</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>ASUS driver -- Driver for ASUS ACPI extras (hotkeys).
|
|
Similar to the acpi4asus.sf.net Linux project.</td>
|
|
<td>&a.philip;</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>Fix sysctls for debug layer/level -- setting from usermode
|
|
via a sysctl did not work.</td>
|
|
<td>&a.njl;</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>Make lid and sleep button sysctls default to
|
|
min(supported_states) -- lid switch now defaults to
|
|
NONE, sleep button to minimum sleep state available.</td>
|
|
<td>&a.njl;</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>newbus attachments for cpu -- Get cpu devices under
|
|
newbus so drivers like cpufreq can probe/attach.</td>
|
|
<td>&a.njl;</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>Make CPU cx_lowest sysctl more readable -- Use C[1-9]
|
|
instead of the index value.</td>
|
|
<td>&a.njl;</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>Update EC GLK check -- Use the handle from the table to
|
|
read _GLK instead of always defaulting to using the global
|
|
lock.</td>
|
|
<td>&a.njl;</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>Merge ECDT/EC probe</td>
|
|
<td>&a.njl;</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>_INI methods -- run for all devices, not just Device
|
|
objects. ACPI-CA now calls _INI for Devices,
|
|
ThermalZones and Processors.</td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>Fix acpidump failing on several systems -- acpidump(8) fails
|
|
on some systems. I suspect this may be in how we search low
|
|
memory for the RSDP. Changed to only search EBDA (1 KB
|
|
pointed to by 16 bit pointer at 0x40E) and high memory
|
|
(0xE0000 - 0xFFFFF) according to the spec
|
|
(section 5.2.2).</td>
|
|
<td>&a.njl;</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>Fix apm compat interface -- Hacked around this in the
|
|
userland utility by marking values >= 255 as
|
|
"unknown".</td>
|
|
<td>&a.njl;</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>Update GPE code to handle general device wake -- Also,
|
|
disable GPEs that are not valid when entering a new sleep
|
|
state. Without this, GPEs for the lid left enabled on a
|
|
Thinkpad™ X22 restart the system after power off.
|
|
Add userland interface for enabling device wake (done as
|
|
per-device sysctls).</td>
|
|
<td>&a.njl;</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>Fix shutdown routines to not poke all the events (causes
|
|
auto power on for some people). Workaround is to set
|
|
hw.acpi.disable_on_poweroff=0. Now that GPEs are properly
|
|
disabled based on _PRW during suspend and poweroff, we can
|
|
hopefully remove the call to acpi_Disable() in the poweroff
|
|
path. We now handle the reboot case also by hooking
|
|
device_shutdown().</td>
|
|
<td>&a.njl;</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>Cleanup acpidump/boot EBDA lengths.</td>
|
|
<td>&a.njl;</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>Fix acpi_cpu busy refcount -- We no longer use a refcount
|
|
but instead avoid doing any housekeeping after re-enabling
|
|
interrupts at the end of acpi_cpu_idle(). Otherwise, the
|
|
context switch after unmasking ints could disrupt device
|
|
state.</td>
|
|
<td>&a.njl;</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>Do not print an error message for _PR0 method -- If not
|
|
present, do not print an error in switch_consumer.</td>
|
|
<td>&a.njl;</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>acpi sysresource probing -- Probe/attach acpi resources
|
|
in the acpi bus and then dole it out to children as necessary.
|
|
Requires rman(9). Includes more sophisticated handling of
|
|
device ordering in scan.</td>
|
|
<td>&a.njl;</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>Update ACPI blacklist -- Read entries from various OS's
|
|
and add them to our blacklist table.</td>
|
|
<td>&a.njl;, &a.marks;</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>Fix general wake code -- remove use of device_t flags as
|
|
they may collide with the driver. Use an acpi ivar
|
|
instead. Fix for non-acpi devices as well by using a bus
|
|
walk routine instead of device_suspend. Add code to turn
|
|
on appropriate power resources. Disable EC in shutdown
|
|
path.</td>
|
|
<td>&a.njl;</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>Fix drivers and the apm compat interface -- Currently,
|
|
the apm compat interface expects byte values but the ABI used
|
|
is a set of u_ints and an int. Either the apm or acpi battery
|
|
drivers (or both) are setting the value to -1,
|
|
which results in 0xffffffff being passed back as the current
|
|
state. Really, only 255 should be returned in this case.
|
|
The apm userland utility marks values >= 255 as "unknown"
|
|
to work around this. But really the underlying drivers should
|
|
be fixed.</td>
|
|
<td>&a.imp;</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>Fix EC timeouts -- move to a sx lock to cover EcWait instead
|
|
of a mutex so we can hold it across msleep. This fixed the
|
|
timed out errors that occurred occasionally for some
|
|
users.</td>
|
|
<td>&a.njl;</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>Package all info on how to do an ACPI import -- done and
|
|
handed off to &a.marks; for inclusion in the acpi projects
|
|
website.</td>
|
|
<td>&a.njl;</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>ACPI floppy driver probing -- Add a fdc_acpi_probe method
|
|
to enumerate floppies using _FDE, _FDI methods.</td>
|
|
<td>&a.njl;</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>Rework ACPI PCI link support -- _DIS all links, ignore
|
|
invalid _CRS, ignore _STA, assume _SRS succeeds.</td>
|
|
<td>&a.njl;</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>Fix EISA probe not to write to registers. Turns out an
|
|
inb actually triggers the boot hang. Patch committed to
|
|
only probe the first slot; however, this breaks the Adaptec
|
|
VLB adapter (not EISA). &a.gibbs; is fixing that device's
|
|
probe. Done.</td>
|
|
<td>&a.njl;</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>Giant-free locking -- Remove dependency on Giant.</td>
|
|
<td>&a.njl;</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>Add SSDT support to acpidump(8) -- Right now we only dump
|
|
the fixed tables and DSDT. Change acpidump(8) to dump the
|
|
SSDT tables. It currently concatenates them with the
|
|
DSDT.</td>
|
|
<td>&a.marcel;</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>Change shutdown path -- do not use smp_rendezvous() since
|
|
it acquires a spinlock. Instead, MI code should run the
|
|
shutdown path only on the BSP and all other processors should
|
|
be halted.</td>
|
|
<td>&a.peter;</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>Turn ACPI and PCI devices off or to a lower power state in
|
|
suspend and back on again in resume. Override the default of
|
|
D3 with the value the BIOS specifies in _SxD, if present. Skip
|
|
serial devices (PNP05xx) since they seem to hang when set to
|
|
D3 and may require special driver support. Also skip non-type
|
|
0 PCI devices (i.e., bridges) since they don't seem to handle
|
|
being powered off.</td>
|
|
<td>&a.njl;</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>Giant-free locking.</td>
|
|
<td>&a.njl;</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>newbus attachments for cpu — get cpu devices under
|
|
newbus so drivers like cpufreq can probe/attach.</td>
|
|
<td>&a.njl;</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>Write initial drivers: ICH SpeedStep, ACPI performance,
|
|
ACPI throttling, Enhanced SpeedStep, P4 TCC.</td>
|
|
<td>&a.njl;</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>Add bus methods/ivars for child attachments to both acpi
|
|
and legacy cpu devices</td>
|
|
<td>&a.njl;</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>Design sysctl interface.</td>
|
|
<td>&a.njl;</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>Design notify interface for Px changes.</td>
|
|
<td>&a.njl;</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>Update power_profile to use cpufreq.</td>
|
|
<td>&a.njl;</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>Import powerd.</td>
|
|
<td>&a.njl;</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>Fujitsu driver -- Driver for Fujitsu laptop extras. Just needs
|
|
to be cleaned up (use acpi_UserNotify instead of the signal
|
|
stuff) and imported.</td>
|
|
<td>&a.marks;</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>IBM Thinkpad extras driver -- Driver for Thinkpad hotkeys.</td>
|
|
<td>&a.takawata;</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>Call _S0D on resume (power up?).</td>
|
|
<td>&a.njl;</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>Implement the int 10h resume hack that Linux has since we do
|
|
not have that yet. It is unclear how effective it is but some
|
|
systems do require it.</td>
|
|
<td>&a.njl;</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>Check our DWORD access to EC regions, including endianness.
|
|
Currently, we treat DWORD access as little-endian, which makes
|
|
sense on PCs. It's really not correct to do use access other than
|
|
BYTE for EC space but some ASL uses DWORD. Also, we should test
|
|
what happens for AnyAccess reads/writes to EC space since some
|
|
ASL does this too. The existing implementation seems correct.</td>
|
|
<td>&a.njl;</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>Implement passive cooling in ACPI thermal. It should use the
|
|
cpufreq interface to cool the processor, based on the various _PSV
|
|
settings. Also, we need to implement variable polling intervals
|
|
for thermal zones based on both the passive settings and polling
|
|
explicitly specified in the ASL.</td>
|
|
<td>&a.ume;</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>Fix stray irq 9 on reboot --
|
|
AcpiTerminate -> AcpiEvTerminate unhooks the SCI and then we
|
|
get a stray irq. Debug why. Also, disable/ re-enable acpi gives
|
|
"SCI already attached". Check flags for AcpiDisable vs.
|
|
AcpiTerminate. This looks uncommon and does not cause any problems
|
|
so it will be ignored for now.</td>
|
|
<td>&a.njl;</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>Add smart battery support -- Smart batteries use the SMBus
|
|
to communicate data instead of the embedded controller for
|
|
control-method batteries. Newer ACER laptops have this and
|
|
it will be needed for battery status on them. This is rather
|
|
difficult since it involves interfacing with the SMBus drivers
|
|
(likely need some kobj methods for this.)</td>
|
|
<td>&a.njl;</td>
|
|
</tr>
|
|
</table>
|
|
|
|
|
|
&footer;
|
|
</body>
|
|
</html>
|