diff options
author | iwasaki <iwasaki@FreeBSD.org> | 2001-12-22 16:05:41 +0000 |
---|---|---|
committer | iwasaki <iwasaki@FreeBSD.org> | 2001-12-22 16:05:41 +0000 |
commit | 4c7abcd3372368396a11a120c259afdb0fe2b015 (patch) | |
tree | 7c96c678372cc5f9e23154023196e80b72311f86 /sys/dev/acpica/acpi_powerres.c | |
parent | 23a35cbf8dc1e76d3a4e856806e0ee472c65e5af (diff) | |
download | FreeBSD-src-4c7abcd3372368396a11a120c259afdb0fe2b015.zip FreeBSD-src-4c7abcd3372368396a11a120c259afdb0fe2b015.tar.gz |
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.
Diffstat (limited to 'sys/dev/acpica/acpi_powerres.c')
-rw-r--r-- | sys/dev/acpica/acpi_powerres.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/sys/dev/acpica/acpi_powerres.c b/sys/dev/acpica/acpi_powerres.c index a274549..c6415fd 100644 --- a/sys/dev/acpica/acpi_powerres.c +++ b/sys/dev/acpica/acpi_powerres.c @@ -166,6 +166,7 @@ acpi_pwr_register_resource(ACPI_HANDLE res) rp->ap_resource = res; /* get the Power Resource object */ + bzero(&buf, sizeof(buf)); if ((status = acpi_EvaluateIntoBuffer(res, NULL, NULL, &buf)) != AE_OK) { ACPI_DEBUG_PRINT((ACPI_DB_OBJECTS, "no power resource object\n")); goto out; @@ -373,6 +374,7 @@ acpi_pwr_switch_consumer(ACPI_HANDLE consumer, int state) if (AcpiGetHandle(consumer, "_PR0", &pr0_handle) != AE_OK) { goto bad; } + bzero(&reslist_buffer, sizeof(reslist_buffer)); status = acpi_EvaluateIntoBuffer(pr0_handle, NULL, NULL, &reslist_buffer); if (status != AE_OK) { goto bad; @@ -389,6 +391,7 @@ acpi_pwr_switch_consumer(ACPI_HANDLE consumer, int state) * Check that we can actually fetch the list of power resources */ if (reslist_handle != NULL) { + bzero(&reslist_buffer, sizeof(reslist_buffer)); if ((status = acpi_EvaluateIntoBuffer(reslist_handle, NULL, NULL, &reslist_buffer)) != AE_OK) { ACPI_DEBUG_PRINT((ACPI_DB_OBJECTS, "can't evaluate resource list %s\n", acpi_name(reslist_handle))); |