From 19610009e88e546b0f5afa89324422a1cda3030e Mon Sep 17 00:00:00 2001 From: Tom Rhodes Date: Thu, 16 Dec 2004 18:12:13 +0000 Subject: [PATCH] Add entity for takawata. --- en/developers.sgml | 3 +- en/projects/acpi/index.sgml | 400 +++++++++++++++++++++++++++++++++++- 2 files changed, 401 insertions(+), 2 deletions(-) diff --git a/en/developers.sgml b/en/developers.sgml index 7d373b5e9f..8f2728befb 100644 --- a/en/developers.sgml +++ b/en/developers.sgml @@ -6,7 +6,7 @@ allows multiple documents to use the abbreviated entities, and allows us to update author names, or the representation of those names (such as adding email addresses), by just editing a single file. -$FreeBSD: www/en/developers.sgml,v 1.88 2004/10/22 10:19:02 rwatson Exp $ +$FreeBSD: www/en/developers.sgml,v 1.89 2004/11/07 15:06:37 simon Exp $ --> @@ -142,6 +142,7 @@ $FreeBSD: www/en/developers.sgml,v 1.88 2004/10/22 10:19:02 rwatson Exp $ + diff --git a/en/projects/acpi/index.sgml b/en/projects/acpi/index.sgml index 46f5c200cc..cb8142b1ba 100644 --- a/en/projects/acpi/index.sgml +++ b/en/projects/acpi/index.sgml @@ -1,6 +1,6 @@ - + @@ -171,8 +171,406 @@   + + + + +

Medium Priority Tasks

+ + + + + + + + + + + + + + + + + +
Hotkey/backlight/sound generic driver Add a driver + that generalizes the various device-specific ways of + adjusting backlight, sound volume, hotkey support, etc. + It should provide generic sysctls for these and attach to + the hw-specific drivers (acpi_video, acpi_asus, acpi_toshiba, + etc.)     &status.wip;  
Fujitsu driver -- Driver for Fujitsu laptop extras. Just needs + to be cleaned up (use acpi_UserNotify instead of the signal + stuff) and imported. &a.marks;   &status.wip; See + Seans driver.
+ + +

Low Priority Tasks

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Implement X suspend/resume notification. Currently, + the X server on FreeBSD is not notified of a suspend. + We explicitly switch to a VTY on syscons before resume + to get the server to save and then restore all the registers. + This works for many systems but not if the display is left in + less initialized at resume than the VTY switch code can handle. + There is an interface (in the X server bsd_apm.c) for doing ioctls + to find out about the suspend. First, check if this file is + built on FreeBSD as it appears to only be built on NetBSD. + Then implement the ioctls in both apm and acpi (on the apm + compat device). + Here is a + patch to help the X file compile. For acpi, we don't want + a user process dying to hold up the suspend process so implement + the notification with a timeout. That is, if the kernel generates + a APM_STANDBY_REQ notification and it doesn't receive a + APM_IOC_STANDBY within say 5 seconds, continue the suspend process. + This is needed for standby when X isn't running, for instance, or + when an emergency suspend is generated by a battery going + critical.     &status.new;  
Examine the two video resume hacks (int 0x10, lcall 0xc000). + Linux has begun to test calling the "lcall" VESA reset after + PCI devices (including the video card) have been fully resumed, + including power state set to PS0. This works for many Radeon + cards but fails for others. We could implement this in vm86 + calls from a proper video driver resume method. Also, implement + the int 10h resume hack that Linux has since we don't have that yet. + It is unclear how effective it is but some systems do require it.     &status.new;  
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.     &status.new;  
ACPI-CA should really enable GPEs before calling \_WAK. + Currently it does the opposite. This does not match the ACPI + spec where \_WAK should be called after the system is up + and running (\_BFS is what should be called as soon as + possible after waking.)     &status.new;  
Potential ASL bug: We may need to work around some systems + having the S3 object listed under the LPC bus device (PNP0A03) + instead of root (\). This is ACPI-CA's responsibility.     &status.new;  
For systems that fail to power off, try using the suspend code + (acpi_SetSleepState) instead.     &status.new;  
See if we can enable EC access early even if an ECDT is not + present. The _INI method for some ECs accesses the EC region + even though _REG has not been called since the region is not + initialized yet. It's likely that Windows hard-codes the EC + resources and enables the region before initializing the device + even though this is not allowed by the spec.     &status.new;  
Implement reset register functionality for rebooting systems + that lack a keyboard controller (see ACPI v2 FADT->ResetRegister).     &status.new;  
Be sure not to try to disable ACPI on systems that do not have + SMI_CMD or ACPI_ENABLE/DISABLE values in the FADT. The ia64 machines + specify ACPI-only (no legacy mode) so they have 0 for these + values and we shouldn't enable/disable ACPI on them. Doing so + gives a "failed to switch modes" warning but no real problems, + apparently.     &status.new;  
Check our implementation of AcpiOsDerivePciId(). + It is probably not quite right. Compare against Linux.     &status.new;  
Run instructions on cpu0 for suspend/resume. We currently do + this for shutdown in kern_shutdown.c:boot(). This will also be + required for SMP cpufreq drivers that set the frequency via a + CPU-specific MSR.     &status.new;  
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.     &status.new;  
Traverse local reference (scope) types in namespace when probing + devices.     &status.new;  
IBM Thinkpad extras driver -- Driver for Thinkpad hotkeys. &a.takawata;   &status.done;  
Call _S0D on resume (power up?)     &status.new;  
Implement support for _PRS/_SRS and dependent functions. + This will allow serial port configuration to occur.     &status.new;  
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 doesn't cause any problems + so I am ignoring it for now. &a.njl;   &status.wip;  
Add EC burst mode -- Code was written before to add burst mode to + the EC. Unfortunately, it had to be disabled since it did not + appear to work on all systems. I am guessing that some systems + do not function correctly without burst mode, so I will add it + back with some logic to fallback if it fails.     &status.new;  
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.)     &status.new;  
Intel firmware seems to describe the PCI root bridge where + chipset configuration space lives with _STA==0x8. The spec + says this means "functional, but not present". The current + code ignores things that are "not present" + ( + msg). It is suggested that this should be handled by not + attaching a driver to the device (i.e. bridge) but probe its children. + Present on Big Sur and Bull systems.     &status.new;  
Re-work device wake setup to not be recursive. + The acpi_wake_sysctl_walk() syscall has to call itself to + handle child devices on other busses (PCI). This should + probably be changed to be a DEVMETHOD.     &status.new;  
device_power -- Add a "power" argument to devctl(8) + that allows a device to be set into various low power or + off states.     &status.new;  
device_eject -- Add a devctl(8) program that has an + "eject" argument. Allow users to eject various object + names ("/dev/cdrom", "/mnt/flashdrive", "wi0", "pci0:2:0"). + Call the appropriate _EJD and _EJx methods if appropriate. &a.imp;, &a.jhb;, and &a.takawata;   &status.wip;  
suspend to disk -- Implement a suspend/resume from disk + mechanism. Possibly use the dump functions to dump pages to + disk, then use ACPI to put the system in S4 or power-off. + Resume would require changes to the loader to load the memory + image directly and then begin executing again.     &status.new;  
HP/Toshiba Satellite driver -- Enabling the extra + one-touch/multimedia keys, console blanking, battery and + temperature reporting, etc. Get an idea of what is needed from + the + .     &status.new;  
ASL capture bootable CD-R -- Build a set of scripts to + generate a bootable CD-R. It should have a GENERIC kernel + and acpidump/iasl as well as all support libraries. Replace + init with a script such that booting the CD generates an + acpidump -t -d > machine.asl and dmesg > machine.dmesg in + an MFS partition. Then burn this info to a second track on the + CD-R. This will make an easy way to take a batch of CDRWs to + the local computer store, place them in the CDRW drive, boot + FreeBSD and get the ASL.     &status.new;  
ASL Explorer -- Graphical utility for examining the output + of acpidump(8). Contact &a.njl; for info about the design if you + are interested in implementing this.     &status.new;  
Document acpi kernel interfaces -- Document the interfaces + for drivers found in acpivar.h.     &status.new;  
KTR support for ACPI debug messages -- Use the KTR logging + facility instead of printf for ACPI debugging messages. This + would allow more verbose messages and fast dumping.     &status.new;  
Add support for the real-time clock (RTC) to use to wake + or power-on systems at a certain time of day.     &status.new;  
Quiesce USB when no device is attached (see Linux UHCI) -- + this would help such systems use C3 more, saving power with + USB loaded. While at it, fix uhci suspend/resume.     &status.new;