summaryrefslogtreecommitdiffstats
path: root/sys/dev/acpica/acpi_cmbat.c
Commit message (Collapse)AuthorAgeFilesLines
* small cleanup of acpi battery status setting and checkingavg2010-12-171-0/+6
| | | | | | | | | | | | | This is based on the patch submitted by Yuri Skripachov. Overview of the changes: - clarify double-use of some ACPI_BATT_STAT_* definitions - clean up undefined/extended status bits returned by _BST - warn about charging+discharging bits being set at the same time PR: kern/124744 Submitted by: Yuri Skripachov <y.skripachov@gmail.com> Tested by: Yuri Skripachov <y.skripachov@gmail.com> MFC after: 2 weeks
* Import ACPICA 20090521.jkim2009-06-051-1/+2
|
* Catch up with ACPI-CA 20070320 import.jkim2007-03-221-3/+3
|
* Oops, untested code was included accidentally.iwasaki2006-04-151-1/+3
| | | | Fixed.
* Import ACPI Dock Station support. Note that this is still very young.iwasaki2006-04-151-0/+5
| | | | | | | | Additional detach implementaions (or maybe improvement) for other deivce drivers is required. Reviewed by: njl, imp MFC after: 1 week
* Add a locking stub to call acpi_cmbat_get_bif() now that it is directlynjl2005-11-261-1/+12
| | | | | | | run from the taskqueue. There should probably be a better way to do this later, but this suffices for now. Submitted by: yongari
* Try to fix problems with periodic hangs by never directly calling _BIF.njl2005-11-231-22/+34
| | | | | | | | Instead, re-evaluate _BIF only when we get a notify and use the cached results. We also still evaluate _BIF once on boot. Also, optimize the init loop a little by only querying for a particular info if it's not valid. MFC after: 2 days
* Canonize the include of acpi.h.obrien2005-09-111-1/+1
|
* Rewrite the acpi_battery interface to allow for other battery typesnjl2005-07-231-360/+149
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (i.e., smart battery) and fix various bugs found during the cleanup. API changes: * kernel access: Access to individual batteries is now via devclass_find("battery"). Introduce new methods ACPI_BATT_GET_STATUS (for _BST-formatted data) and ACPI_BATT_GET_INFO (for _BIF-formatted data). The helper function acpi_battery_get_battinfo() now takes a device_t instead of a unit # argument. If dev is NULL, this signifies all batteries. * ioctl access: The ACPIIO_BATT_GET_TYPE and ACPIIO_BATT_GET_BATTDESC ioctls have been removed. Since there is now no need for a mapping between "virtual" unit and physical unit, usermode programs can just specify the unit directly and skip the old translation steps. In fact, acpiconf(8) was actually already doing this and virtual unit was the same as physical unit in all cases since there was previously only one battery type (acpi_cmbat). Additionally, we now map the ACPIIO_BATT_GET_BIF and ACPIIO_BATT_GET_BST ioctls for all batteries, if they provide the associated methods. * apm compatibility device/ioctls: no change * sysctl: no change Since most third-party applications use the apm(4) compat interface, there should be very few affected applications (if any). Reviewed by: bruno MFC after: 5 days
* Only report a critical battery level once until it's gone non-critical.njl2004-12-201-3/+9
| | | | | | | An improvement would be to check all batteries for critical state before printing a message. Reported by: Kevin Oberman (oberman at es net)
* Catch up with AcpiOsSleep() interface change.marks2004-12-021-1/+1
| | | | | | | | Catch up with some #define's renaming. Implement AcpiOsGetTimer() as per ACPI 3.0. Approved by: njl MFC after: 1 week
* Notify the user when the battery is critically low. In the future, wenjl2004-10-111-0/+4
| | | | | | | may want to shut down here but the chance of BIOS vendors getting this wrong is high. They're only supposed to announce this when all batteries hit their critical level but past experience indicates we should be conservative about this for now.
* Fix a deadlock on boot for some systems where reading the battery statusnjl2004-08-171-2/+6
| | | | | | | | | also generates a notify. Since we held the lock over this call, the notify never got to run and the battery status read never returned. Document this also. Tested by: Maxim Maximov <mcsi_at_mcsi.pp.ru> Approved by: re (scottl)
* MPSAFE lockingnjl2004-08-131-171/+127
| | | | | | | | | | | | | * Serialize ops in acpi_cmbat_notify_handler(), acpi_cmbat_ioctl(), acpi_cmbat_init_battery(), and acpi_cmbat_get_battinfo(). * Get the softc directly in acpi_cmbat_get_total_battinfo() rather than build an array of them. * Don't queue a _BIF query after receiving a notify. Since we clear the timespec, a _BIF query will be done in the context of the next caller. * Add asserts to leaf functions that operate on shared data. * Remove the bst/bif updating flags now that we hold the lock over the full query. * Explain various comments in more detail.
* Use ACPI_ALL_NOTIFY instead of registering handlers separately.njl2004-07-161-3/+1
|
* Some laptops report the "design-capacity" instead of the "real-capacity"marks2004-07-141-0/+9
| | | | | | | | when the battery is fully charged. That breaks some of the arithmetic in calculating the remaining capacity (ends up with more than 100%). This commit makes sure the max is 100. Approved by: njl
* Add the ability to detach a battery. Now batteries that are detached arenjl2004-07-121-1/+16
| | | | also removed from the battery list.
* Use the acpi_id_probe() method instead of acpi_MatchHid(), which is nownjl2004-06-291-6/+7
| | | | static.
* Add support to ACPI to manage its own resources. Previously, resourcenjl2004-06-131-2/+2
| | | | | | | | | | | | | | | | | allocation was passed up to nexus. Now, we probe sysresource objects and manage the resources they describe in a local rman pool. This helps devices which attach/detach varying resources (like the _CST object) and module loads/unloads. The allocation/release routines now check to see if the resource is described in a child sysresource object and if so, allocate from the local rman. Sysresource objects add their resources to the pool and reserve them upon boot. This means sysresources need to be probed before other ACPI devices. Changes include: * Add ordering to the child device probe. The current order is: system resource objects, embedded controllers, then everything else. * Make acpi_MatchHid take a handle instead of a device_t arg. * Replace acpi_{get,set}_resource with the generic equivalents.
* Add missing <sys/module.h> includesphk2004-05-301-0/+1
|
* Add MODULE_DEPEND entries so some of these drivers can eventually benjl2004-04-091-0/+1
| | | | loaded separately from ACPI (i.e., embedded use).
* Update to use the new package routines instead of rolling our ownnjl2003-12-231-66/+40
| | | | macros.
* Add devctl(4) notify support to ACPI. Various subsystems now notifynjl2003-10-251-0/+2
| | | | | userland whenever events occur. See the example in devd.conf below to see how to use it.
* Consistently print attach messages.njl2003-09-261-1/+1
|
* Add the -i flag to acpiconf(8) to retrieve battery information.njl2003-09-131-2/+2
| | | | Rename a few structure elements.
* Add a system notify handler in addition to the device notify handler.njl2003-09-111-0/+9
| | | | | | | At least some Toshiba notebooks use a Notify of 0 or 1 for this. PR: Submitted by: Hiroyuki Aizu <aizu@navi.org>
* De-inline functions which do not need to be inline. Move the DEVMETHODnjl2003-08-151-23/+23
| | | | block to where it is in similar drivers.
* Style cleanups to match the rest of this directory. For acpi_battery.c,njl2003-08-111-517/+478
| | | | remove unused includes.
* Allow non-privilaged user to retrive battery or AC line information.takawata2003-02-151-0/+5
| | | | Reviewed by: rwatson
* Add status initialization code for acpi_cmbat and acpi_acad,iwasaki2002-11-031-6/+83
| | | | | | | | acpi_cmbat_init_battery() and acpi_cmbat_init_acline() respectively. Call acpi_cmbat_init_battery() from acpi_cmbat_resume() too just in case. This is a workaround for embedded controller operations which is unstable for about a minute (typically 30 or 40 sec.) at boot time.
* Use the _STA method of a battery control method to see if a battery isjhb2002-08-211-10/+16
| | | | | | present or not. My laptop now properly notices when a battery is removed. Reviewed by: iwasaki
* Add NULL check for the output buffer from AcpiEvaluateObject().iwasaki2002-07-231-2/+2
| | | | Submitted by: jon
* Do not concatenate __func__ with strings, because it is not a string.peter2002-03-121-2/+2
| | | | Later gcc's blow up on this.
* Match namespace cleanup changes in ACPI CA 20020217 update.msmith2002-02-231-34/+15
| | | | | | | | | | | Use ACPI_SUCCESS/ACPI_FAILURE consistently. The AcpiGetInto* interfaces are obsoleted by ACPI_ALLOCATE_BUFFER. Kill off the timeouts that used to read _BIF and _BST. These are invoked when the battery is actually read. timeout() is dangerous in combination with ACPI, as the interpreter can block. This driver still needs more work.
* Add OS layer ACPI mutex and threading support.iwasaki2001-12-221-64/+19
| | | | | | | | | | | | | | | | | | - 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.
* Add disabling code via the debug.acpi.disable environment variable.iwasaki2001-11-221-0/+1
|
* Cleanups of verbose printing. All the messages for the debugging isiwasaki2001-11-181-21/+20
| | | | | | | disabled unless verbose flag is set. Also fix some messages in terms of English. The critical messages and error messages in probe/attach routine are unchanged by this commit.
* Oops, deleted wrong BIF acquisition timeout invocation by mistakeiwasaki2001-11-011-1/+1
| | | | | | in my previous commit. acpi_cmbat_get_bif() from taskqueue calls acpi_cmbat_timeout() so it's better for startup.
* Style(9) fix, mainly white spaces.iwasaki2001-10-301-85/+102
|
* Some improvements of control method battery driver.iwasaki2001-10-301-23/+43
| | | | | | | | | | | | | - Add a new MIB for battery info expire time in order to make it changeable. Battery info expire time can be specified by hw.acpi.battery.info_expire in sec. - Add own MALLOC type and fix some potential memory leakages. - Change some frequent printings to verbose printing. - Stop timeout during acpi_cmbat_get_bst() too. This should reduce the races with BIF evaluation. - Remove acpi_cmbat_get_bif() invocation from acpi_cmbat_attach(). This was redundant because this should be called from acpi_cmbat_timeout() now.
* Reduce frequency of Battery info (_BIF) acquisition. This helpsiwasaki2001-10-221-6/+38
| | | | | | | | | avoiding EC read errors on some laptops. - Stop updating Battery info for all user requests - Update Battery info by notify events and resume method - Poll Battery info every one minute Suggested by: takawata
* Reset timestamps of battery info. and status by thier notify handler.iwasaki2001-06-241-10/+13
| | | | Suggested by: takawata
* Add sysctl interface (Read-only) for temprature, AC-line and Battery.iwasaki2001-06-231-48/+302
| | | | Patches for acpi_cmbat.c submitted by Munehiro Matsuda.
* - Updates for new constant naming in the ACPI CA 20010518 update.msmith2001-05-291-0/+6
| | | | | | | | | | | - Use __func__ instead of __FUNCTION. - Support power-off to S3 or S5 (takawata) - Enable ACPI debugging earlier (with a sysinit) - Fix a deadlock in the EC code (takawata) - Improve arithmetic and reduce the risk of spurious wakeup in AcpiOsSleep. - Add AcpiOsGetThreadId. - Simplify mutex code (still disabled).
* When ensuring the destination buffer is truncated for a string obtainedjhb2001-02-261-1/+1
| | | | | | | from a BIF, use the size of the destinatino buffer, not the length of the string to determine where to put the nul char. As a side effect, the old code would truncate the string by one character while it was possibly overflowing the buffer.
* ACPI_NUMBER becomes ACPI_INTEGER. acpi_EvaluateNumber becomesmsmith2001-01-311-2/+2
| | | | | | | | | | | acpi_EvaluateInteger. Use acpi_EvaluateInteger instead of doing things the hard way where possible. AcpiSetSystemSleepState (unofficial) becomes AcpiEnterSleepState. Use the AcpiGbl_FADT pointer rather than searching for the FADT.
* Add ioctls to acpi_cmbat and acpi_acad. These use mike's acpi_register_ioctl().iwasaki2000-12-241-4/+88
| | | | Fix wrong AML method calling in acpi_cmbat.
* Add ACPI AC adaptor and ACPI Control Method Battery.takawata2000-12-221-0/+275
And install notify handler for thermal zone .
OpenPOWER on IntegriCloud