267654 |
20-Jun-2014 |
gjb |
Copy stable/9 to releng/9.3 as part of the 9.3-RELEASE cycle.
Approved by: re (implicit) Sponsored by: The FreeBSD Foundation
|
265665 |
08-May-2014 |
smh |
MFC r264849 & r264883
Exposed debug.acpi.max_tasks and debug.acpi.max_threads via sysctls so their values can be viewed.
Sponsored by: Multiplay
|
249132 |
05-Apr-2013 |
mav |
MFC r227293 (by ed): Mark MALLOC_DEFINEs static that have no corresponding MALLOC_DECLAREs.
This means that their use is restricted to a single C file.
|
232087 |
23-Feb-2012 |
jkim |
MFC: r231474
De-obfuscate acpi_acquire_global_lock().
|
225736 |
23-Sep-2011 |
kensmith |
Copy head to stable/9 as part of 9.0-RELEASE release cycle.
Approved by: re (implicit)
|
222544 |
31-May-2011 |
jkim |
Merge ACPICA 20110527.
|
218660 |
13-Feb-2011 |
marcel |
Use the preload_fetch_addr() and preload_fetch_size() convenience functions to obtain the address and size of the overriding DSDT.
Sponsored by: Juniper Networks.
|
217278 |
11-Jan-2011 |
jkim |
Fix a witness(4) warning introduced in r217238.
|
217241 |
10-Jan-2011 |
jkim |
Remove impossible error conditions.
|
217240 |
10-Jan-2011 |
jkim |
Add forgotten free(9) in the previous commit for an error case.
|
217238 |
10-Jan-2011 |
jkim |
Allow AcpiOsInstallInterruptHandler() and AcpiOsRemoveInterruptHandler() to install or remove non-SCI interrupt handlers per ACPI Component Architecture User Guide and Programmer Reference. ACPICA may install such interrupt handler when a GPE block device is found, for example. Add a wrapper for ACPI_OSD_HANDLER, convert its return values to ours, and make it a filter. Prefer KASSERT(9) over panic(9) as we have never seen those in reality. Clean up some style(9) nits and add my copyright.
|
217236 |
10-Jan-2011 |
jkim |
Prefer KASSERT(9) over panic(9) as it was never seen in reality.
|
213787 |
13-Oct-2010 |
jkim |
Clean up unused headers.
|
213783 |
13-Oct-2010 |
jkim |
Remove acpi_bus_number() completely. It had to be removed in r212761.
Pointed out by: jhb
|
213772 |
13-Oct-2010 |
rpaulo |
Mark acpi_bus_number() as __unused. This allows clang to this file without any warnings.
|
212761 |
16-Sep-2010 |
jkim |
Merge ACPICA 20100915.
|
210976 |
06-Aug-2010 |
jkim |
Merge ACPICA 20100806.
|
210157 |
16-Jul-2010 |
jkim |
Simplify AcpiOsReadPort() and AcpiOsWritePort() with iodev_read_*() and iodev_write_*(). This removes unnecessary uses of temporary macros as well. There is no functional change after this (verified with md5(1) on amd64).
|
210155 |
16-Jul-2010 |
jkim |
Use pmap_mapdev()/pmap_unmapdev() to map device memory instead of using AcpiOsMapMemory()/AcpiOsUnmapMemory() (-> pmap_mapbios()/pmap_unmapbios()) for AcpiOsReadMemory() and AcpiOsWriteMemory(). Although they do not sound too obvious, these functions are exclusively used to access memory mapped IO in ACPICA.
|
210137 |
15-Jul-2010 |
jkim |
- AcpiOsReadPciConfiguration() needs similar fixes as r209965 and r210129. According to ACPICA User Guide and Programmer Reference, the read data must be zero extended to fill the 64-bit return value even if the bit width of the location is less than 64. - Return error when 64-bit access is requested as we do not support 64-bit PCI register access (yet). XXX We may have to split it up into two 32-bit accesses if it is really required.
|
210129 |
15-Jul-2010 |
jkim |
- AcpiOsReadMemory() needs similar fixes as r209965. [1] According to ACPICA User Guide and Programmer Reference, the read data must be zero extended to fill the 32-bit return value even if the bit width of the port is less than 32. - Remove 64-bit read/write from AcpiOsReadMemory() and AcpiOsWriteMemory(). These functions do not support 64-bit access (yet). Clean up style nits and unnecessary bit masking while I am here.
Reported by: Liu, Jinsong (jinsong dot liu at intel dot com) via Lin Ming (ming dot m dot lin at intel dot com) [1]
|
209966 |
13-Jul-2010 |
jkim |
Fix white spaces.
|
209965 |
13-Jul-2010 |
jkim |
According to ACPICA User Guide and Programmer Reference, the read data must be zero extended to fill the 32-bit return value even if the bit width of the port is less than 32.
|
207344 |
28-Apr-2010 |
jkim |
Merge ACPICA 20100428.
|
202771 |
21-Jan-2010 |
jkim |
Merge ACPICA 20100121.
|
194639 |
22-Jun-2009 |
jkim |
Add a missing return in NULL mutex case.
Submitted by: Pawel Worach (pawel dot worach at gmail dot com)
|
194011 |
11-Jun-2009 |
jkim |
- Remove unnecessary read memory barriers from atomic operations[1]. - Define a macro to make my intention more clearer.
Submitted by: jhb [1]
|
193963 |
10-Jun-2009 |
jkim |
Catch up with r193750 (OsdSynch.c locking changes):
- Preallocate some memory for ACPI tasks early enough. We cannot use malloc(9) any more because spin mutex may be held here. The reserved memory can be tuned via debug.acpi.max_tasks tunable or ACPI_MAX_TASKS in kernel configuration. The default is 32 tasks. - Implement a custom taskqueue_fast to wrap the new memory allocation. This implementation is not the fastest in the world but we are being conservative here.
|
193753 |
08-Jun-2009 |
jkim |
Remove redundant checks for ACPI_WAIT_FOREVER cases.
|
193750 |
08-Jun-2009 |
jkim |
Rewrite OsdSynch.c to reflect the latest ACPICA more closely:
- Implement ACPI semaphore (ACPI_SEMAPHORE) with condvar(9) and mutex(9). - Implement ACPI mutex (ACPI_MUTEX) with mutex(9). - Implement ACPI lock (ACPI_SPINLOCK) with spin mutex(9).
|
193530 |
05-Jun-2009 |
jkim |
Import ACPICA 20090521.
|
184596 |
03-Nov-2008 |
mav |
Remove " + 1". Thread ID can't be zero anyway while increment may give owerflow.
|
184558 |
02-Nov-2008 |
mav |
As soon as we have several threads per process now, it is not correct to use process ID as ACPI thread ID. Concurrent requests with equal thread IDs broke ACPI mutexes operation causing unpredictable errors including AE_AML_MUTEX_NOT_ACQUIRED that I have seen.
Use kernel thread ID instead of process ID for ACPI thread.
|
177934 |
05-Apr-2008 |
takawata |
GPE lock may recurse on resume path.
|
175256 |
12-Jan-2008 |
njl |
Fix GPE livelock that occurs on HP/Compaq laptops, mostly in the thermal zone code. The GPE handler method (i.e. _L00) generates various Notify events that need to be run to completion before the GPE is re-enabled. In ACPI-CA, we queue an asynch callback at the same priority as a Notify so that it will only run after all Notify handlers have completed. The callback re-enables the GPE afterwards. We also changed the priority of Notifies to be the same as GPEs, given the possibility that another GPE could arrive before the Notifies have completed and we don't want it to get queued ahead of the rest.
The ACPI-CA change was submitted by Alexey Starikovskiy (SUSE) and will appear in a later release. Special thanks to him for helping track this bug down.
MFC after: 1 week Tested by: jhb, Yousif Hassan <yousif / alumni.jmu.edu>
|
174898 |
25-Dec-2007 |
rwatson |
Add a new 'why' argument to kdb_enter(), and a set of constants to use for that argument. This will allow DDB to detect the broad category of reason why the debugger has been entered, which it can use for the purposes of deciding which DDB script to run.
Assign approximate why values to all current consumers of the kdb_enter() interface.
|
170143 |
31-May-2007 |
njl |
Remove "acpi_bus_number: can't get _ADR" message. It usually appears as we traverse \_SB and \ in the namespace, which won't have _ADR anyway. Use a proper extern instead of our own private copy.
MFC after: 1 week
|
167918 |
26-Mar-2007 |
jkim |
- Use '*h' instead of 'struct acpi_spinlock' for sizeof[1]. - Add a missing 'else' for 'if'[2].
Requested by: njl[1] Submitted by: njl[2]
|
167915 |
26-Mar-2007 |
jkim |
Correct ACPI semaphore function parameters.
|
167911 |
26-Mar-2007 |
jkim |
Free the handle, not the lock. Pointy hat to me.
|
167910 |
26-Mar-2007 |
jkim |
Correct ACPI spinlock function parameters and use known ACPI spinlock names.
|
167908 |
26-Mar-2007 |
njl |
Use a unique name for each mutex now that acpi-ca is creating more than one (hardware & global lock). This should address witness complaints that a duplicate mutex is being acquired. Be sure to free the mutex to fix a potential memory leak.
MFC after: 3 days
|
167814 |
22-Mar-2007 |
jkim |
Catch up with ACPI-CA 20070320 import.
|
167573 |
14-Mar-2007 |
njl |
Only enter the debugger on a Fatal op if this is a debug build of the acpi module. Also clean up print of args a little.
This was accidentally committed as 1.9.2.3 in the stable branch. Since it is harmless, I will let the "insta-MFC" stand unless there is a problem.
|
166909 |
23-Feb-2007 |
jhb |
Use 'pause' in several places rather than trying to tsleep() on NULL (which triggers a KASSERT) or local variables. In the case of kern_ndis, the tsleep() actually used a common sleep address (curproc) making it susceptible to a premature wakeup.
|
166901 |
23-Feb-2007 |
piso |
o break newbus api: add a new argument of type driver_filter_t to bus_setup_intr()
o add an int return code to all fast handlers
o retire INTR_FAST/IH_FAST
For more info: http://docs.freebsd.org/cgi/getmsg.cgi?fetch=465712+0+current/freebsd-current
Reviewed by: many Approved by: re@
|
162597 |
24-Sep-2006 |
hrs |
Disable an overly-verbose warning message by default.
Suggested by: njl MFC after: 3 days
|
161223 |
11-Aug-2006 |
jhb |
First pass at allowing memory to be mapped using cache modes other than WB (write-back) on x86 via control bits in PTEs and PDEs (including making use of the PAT MSR). Changes include: - A new pmap_mapdev_attr() function for amd64 and i386 which takes an additional parameter (relative to pmap_mapdev()) specifying the cache mode for this mapping. Note that on amd64 only WB mappings are done with the direct map, all other modes result in a private mapping. - pmap_mapdev() on i386 and amd64 now defaults to using UC (uncached) mappings rather than WB. Previously we relied on the BIOS setting up MTRR's to enforce memio regions being treated as UC. This might make hw.cbb_start_memory unnecessary in some cases now for example. - A new pmap_mapbios()/pmap_unmapbios() API has been added to allow places that used pmap_mapdev() to map non-device memory (such as ACPI tables) to do so using WB as before. - A new pmap_change_attr() function for amd64 and i386 that changes the caching mode for a range of KVA.
Reviewed by: alc
|
158651 |
16-May-2006 |
phk |
Since DELAY() was moved, most <machine/clock.h> #includes have been unnecessary.
|
157452 |
04-Apr-2006 |
njl |
Fix an off-by-one error in the port range detection. Cleanup some old whitespace.
|
157307 |
30-Mar-2006 |
scottl |
Revert to using acpi_max_threads instead of the hardcoded value of '3'.
|
157269 |
29-Mar-2006 |
njl |
Fix printf arg on 64-bit arch by casting to an int. The IO port is never more than a couple digits anyway.
Pointy hat to: njl
|
157245 |
29-Mar-2006 |
njl |
Add a blacklist for bad IO ports that AML should never touch. It seems some systems were designed so that AML writes to various resources shared with OS drivers, including the RTC, PIC, PCI, etc. These writes could collide with writes by the OS and should never be performed. For now, we print a message if such an access occurs, but do not block it. To block the access, the tunable "debug.acpi.block_bad_io" can be set to 1. In the future, we will flip the switch and this will become the default.
Information about this problem was found in Microsoft KB 283649. They block IO accesses if the BIOS indicates via _OSI that it is Windows 2001 or higher. They always block accesses to the PIC, cascaded PIC, and ELCRs, no matter how old the BIOS.
|
154333 |
14-Jan-2006 |
scottl |
Add the following to the taskqueue api:
taskqueue_start_threads(struct taskqueue **, int count, int pri, const char *name, ...);
This allows the creation of 1 or more threads that will service a single taskqueue. Also rework the taskqueue_create() API to remove the API change that was introduced a while back. Creating a taskqueue doesn't rely on the presence of a process structure, and the proc mechanics are much better encapsulated in taskqueue_start_threads(). Also clean up the taskqueue_terminate() and taskqueue_free() functions to safely drain pending tasks and remove all associated threads.
The TASKQUEUE_DEFINE and TASKQUEUE_DEFINE_THREAD macros have been changed to use the new API, but drivers compiled against the old definitions will still work. Thus, recompiling drivers is not a strict requirement.
|
153706 |
24-Dec-2005 |
trhodes |
Make tv_sec a time_t on all platforms but alpha. Brings us more in line with POSIX. This also makes the struct correct we ever implement an i386-time64 architecture. Not that we need too.
Reviewed by: imp, brooks Approved by: njl (acpica), des (no objects, touches procfs) Tested with: make universe
|
151948 |
01-Nov-2005 |
jkim |
Catch up with ACPI-CA 20051021 import
|
150003 |
11-Sep-2005 |
obrien |
Canonize the include of acpi.h.
|
148318 |
22-Jul-2005 |
njl |
Standardize __FBSDID identifiers.
MFC after: 2 days
|
146734 |
29-May-2005 |
nyan |
Remove bus_{mem,p}io.h and related code for a micro-optimization on i386 and amd64. The optimization is a trivial on recent machines.
Reviewed by: -arch (imp, marcel, dfr)
|
146021 |
09-May-2005 |
marks |
Simplify the ACPI taskqueue implementation. Use a thread queue type instead of swi. This allows us to use the taskqueue_thread_* functions instead of rolling our own. It also avoids a double trip through the queue.
Submitted by: njl Reviewed by: sam
|
145352 |
21-Apr-2005 |
njl |
Add the tunable "debug.acpi.max_threads" to allow users to set the number of task threads to start on boot. Go back to a default of 3 threads to work around lost battery state problems. Users that need a setting of 1 can set this via the tunable. I am investigating the underlying issues and this tunable can be removed once they are solved.
MFC after: 2 days
|
138300 |
02-Dec-2004 |
marks |
Catch up with AcpiOsSleep() interface change. Catch up with some #define's renaming. Implement AcpiOsGetTimer() as per ACPI 3.0.
Approved by: njl MFC after: 1 week
|
136161 |
05-Oct-2004 |
njl |
When the user overrides the DSDT, replace any SSDTs with a simple no-op table. acpidump(8) concatenates the body of the DSDT and SSDTs so an edited ASL will contain all the necessary information. We can't use a completely empty table since ACPI-CA reports this as a problem.
MFC after: 3 days
|
134628 |
02-Sep-2004 |
njl |
Don't enter the debugger when executing an AML breakpoint instruction unless ACPI_DEBUG is defined. Users don't typically care about errant breakpoint instructions. The HP Pavilion 7915 has this in its PCI0 _INI method for rev 0x6040000 of the RSDT.
|
133627 |
13-Aug-2004 |
njl |
MPSAFE locking
* Simplify taskqueue locking. * Don't acquire Giant around calls to the taskqueue function. * Remove 4.x compatibility routines.
|
133626 |
13-Aug-2004 |
njl |
MPSAFE locking
* Remove the interrupt wrapper that locked Giant and call the handler directly. Mark the handler as MPSAFE. * Don't attempt to detect if a handler is installed. Leave that to the bus_alloc_resource() function.
|
131910 |
10-Jul-2004 |
marcel |
Update for the KDB framework: o Call kdb_enter() instead of Debugger().
|
130695 |
18-Jun-2004 |
njl |
Remove compat code and unused lock declarations.
|
130694 |
18-Jun-2004 |
njl |
Remove compat defines.
|
128990 |
06-May-2004 |
njl |
Make unnecessary globals static and remove unused includes.
Pointed out by: cscout
|
128981 |
05-May-2004 |
njl |
Remove extra parentheses.
|
128979 |
05-May-2004 |
njl |
Add an MI implementation of the ACPI global lock routines and retire the individual asm versions. The global lock is shared between the BIOS and OS and thus cannot use our mutexes. It is defined in section 5.2.9.1 of the ACPI specification.
Reviewed by: marcel, bde, jhb
|
128487 |
20-Apr-2004 |
njl |
Style fixes.
|
128240 |
14-Apr-2004 |
njl |
Unbreak the DDB build by replacing #includes that were deleted.
Pointed out by: Tai-hwa Liang, Xin LI Pointed hat to: njl
|
128228 |
14-Apr-2004 |
njl |
Style cleanups, M_ZERO instead of bzero.
|
128227 |
14-Apr-2004 |
njl |
Style cleanups, use M_ZERO instead of bzero, unify the !semaphore and semaphore return paths.
|
128226 |
14-Apr-2004 |
njl |
Style cleanup, plus properly backup partial resource allocation in AcpiOsInstallInterruptHandler() in the case of failure to initialize.
|
128225 |
14-Apr-2004 |
njl |
Style cleanups to reduce diffs to locking tree.
|
127135 |
17-Mar-2004 |
njl |
Convert callers to the new bus_alloc_resource_any(9) API.
Submitted by: Mark Santcroos <marks@ripe.net> Reviewed by: imp, dfr, bde
|
126560 |
03-Mar-2004 |
njl |
Change to acpi_{Get,Set}Integer to provide both methods. Convert all callers to the new API.
Submitted by: Mark Santcroos <marks@ripe.net>
|
125795 |
14-Feb-2004 |
njl |
Fix hw.acpi.os_name by renaming it to hw.acpi.osname. The "_name" suffix is reserved by the loader, and thus any tunable name with that suffix will be silently discarded.
Document this in the header and man page so that other developers do not develop so many bumps on the head after banging it against the wall.
Detective work by: Mark Santcroos, grehan
|
125067 |
27-Jan-2004 |
njl |
Add TUNABLE_STR to make "hw.acpi.os_name" more correct. However, the call to getenv_string() still doesn't work.
|
124310 |
09-Jan-2004 |
njl |
Expand the check for overriding the OS name to override _OS* (including _OS_, _OS, and _OSI). This should fix this option for people who reported it not changing anything.
|
122565 |
12-Nov-2003 |
jhb |
Reindent to non-style(9) compliant 4 space indent to match rest of file.
|
122564 |
12-Nov-2003 |
jhb |
Add an ACPI_FUNCTION_TRACE() invocation to acpi_OverrideInterruptLevel() to fix compile with ACPI_DEBUG.
Reported by: tinderbox
|
122500 |
11-Nov-2003 |
jhb |
Add an acpi_OverrideInterruptLevel() method that OSPM can use to override the InterruptLevel used for the SCI.
|
120662 |
02-Oct-2003 |
njl |
If requested to Sleep for less than our hz granularity (e.g., 10 ms), use DELAY instead of tsleep.
Submitted by: peter
|
120607 |
30-Sep-2003 |
njl |
Revert 1.24. It causes a hang on shutdown for Marcel. This is due to AcpiEnterSleepState() calling a long AcpiOsStall() with interrupts disabled. This fix will instead be added to ACPI-CA.
PR: Submitted by: Reviewed by: Approved by: Obtained from: MFC after:
|
120571 |
29-Sep-2003 |
njl |
If asked to stall for more than 100 us (which is specified as the max in the ACPI standard), call sleep instead since that is probably what the caller meant.
Mentioned by: peter
|
120494 |
26-Sep-2003 |
njl |
Make debug.acpi.level and debug.acpi.layer sysctls that can be set with the strings found in acpi(4). Also make acpi_ca_version a string so it is more readable.
|
119539 |
28-Aug-2003 |
jhb |
- Rename PCIx_HEADERTYPE* to PCIx_HDRTYPE* so the constants aren't so long. - Add a new PCIM_HDRTYPE constant for the field in PCIR_HDRTYPE that holds the header type. - Replace several magic numbers with appropriate constants for the header type register and a couple of PCI_FUNCMAX. - Merge to amd64 the fix to the i386 bridge code to skip devices with unknown header types.
Requested by: imp (1, 2)
|
117534 |
14-Jul-2003 |
marcel |
Fix build breakage on ia64. The second argument of AcpiOsReadable() and AcpiOsWritable() have type ACPI_SIZE and not UINT32.
|
117530 |
13-Jul-2003 |
njl |
Update code to work with 0619 dist
* Use ACPI_BUFFER as the type for AcpiGetObjectInfo * Remove AcpiEnableEvent/AcpiClearEvent for ACPI_EVENT_FIXED (power/sleep buttons) as they are no longer needed * Change calls to use the new GPE functions * Add AcpiOs*Lock functions
|
115427 |
31-May-2003 |
peter |
Add the MD ifdefs for amd64 to point to the IO space bustag/handle.
Approved by: re ("safe" amd64 support)
|
114977 |
13-May-2003 |
jhb |
Add some extra #ifdef stubs so that this compiles on 4.8.
Approved by: re (rwatson/bmah)
|
114949 |
12-May-2003 |
njl |
Move some printfs under bootverbose since they are not true errors.
Approved by: re (bmah)
|
114246 |
29-Apr-2003 |
njl |
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
|
107328 |
27-Nov-2002 |
iwasaki |
Resolve conflicts arising from the ACPI CA 20021118 import.
|
106255 |
31-Oct-2002 |
iwasaki |
Invoke 3 ACPI task threads as default if option ACPI_MAX_THREADS is not defined. To make previous default behavior (ACPI_MAX_THREADS undefined), define option ACPI_MAX_THREADS as 0.
|
105282 |
16-Oct-2002 |
jhb |
Catch up to changes in acpivar.h to add support for using ACPI on 4-stable systems.
Sponsored by: The Weather Channel
|
105279 |
16-Oct-2002 |
jhb |
- In AcpiOsGetThreadId(), allow for curproc to be NULL on 4-stable systems. In that case use proc0's pid to return the thread ID. - For 4-stable, use the generic swi taskqueue for ACPI events rather than implementing our own.
Sponsored by: The Weather Channel
|
105278 |
16-Oct-2002 |
jhb |
Implement the internal locks of an ACPI semaphore with splhigh() on 4-stable. -current uses a mutex for this purpose.
Sponsored by: The Weather Channel
|
104354 |
02-Oct-2002 |
scottl |
Some kernel threads try to do significant work, and the default KSTACK_PAGES doesn't give them enough stack to do much before blowing away the pcb. This adds MI and MD code to allow the allocation of an alternate kstack who's size can be speficied when calling kthread_create. Passing the value 0 prevents the alternate kstack from being created. Note that the ia64 MD code is missing for now, and PowerPC was only partially written due to the pmap.c being incomplete there. Though this patch does not modify anything to make use of the alternate kstack, acpi and usb are good candidates.
Reviewed by: jake, peter, jhb
|
102553 |
29-Aug-2002 |
iwasaki |
Resolve conflicts arising from the ACPI CA 20020815 import.
|
100969 |
30-Jul-2002 |
iwasaki |
Resolve conflicts arising from the ACPI CA 20020725 import.
|
99682 |
09-Jul-2002 |
iwasaki |
Resolve conflicts arising from the ACPI CA 20020611 import.
|
99492 |
06-Jul-2002 |
iwasaki |
Fix wrong use of ACPI_NO_UNIT_LIMIT which is for as_maxunits, not as_units.
|
96926 |
19-May-2002 |
peter |
Brutally deal with __func__ being 'const char *' on gcc-3.1.
|
93818 |
04-Apr-2002 |
jhb |
Change callers of mtx_init() to pass in an appropriate lock type name. In most cases NULL is passed, but in some cases such as network driver locks (which use the MTX_NETWORK_LOCK macro) and UMA zone locks, a name is used.
Tested on: i386, alpha, sparc64
|
92666 |
19-Mar-2002 |
peter |
Fix a gcc-3.1+ warning. warning: deprecated use of label at end of compound statement
ie: you cannot do this anymore: switch(foo) { ....
default: }
|
92119 |
12-Mar-2002 |
peter |
Do not do string concatenation with __func__ (which is not a string)
|
92118 |
12-Mar-2002 |
peter |
Recent acpica imports have changed the lengths from UINT32 to ACPI_SIZE, which is 64 bit on ia64. Fix it.
|
91130 |
23-Feb-2002 |
msmith |
AcpiOsPrintf and AcpiOsVprintf now return void.
|
91129 |
23-Feb-2002 |
msmith |
AcpiOsCallocate is no longer required.
|
91128 |
23-Feb-2002 |
msmith |
Match namespace cleanup changes in ACPI CA 20020217 update.
|
89088 |
08-Jan-2002 |
msmith |
find_devclass -> devclass_find.
|
89054 |
08-Jan-2002 |
msmith |
Staticise devclasses and some unnecessarily global variables.
|
88900 |
05-Jan-2002 |
jhb |
Change the preemption code for software interrupt thread schedules and mutex releases to not require flags for the cases when preemption is not allowed:
The purpose of the MTX_NOSWITCH and SWI_NOSWITCH flags is to prevent switching to a higher priority thread on mutex releease and swi schedule, respectively when that switch is not safe. Now that the critical section API maintains a per-thread nesting count, the kernel can easily check whether or not it should switch without relying on flags from the programmer. This fixes a few bugs in that all current callers of swi_sched() used SWI_NOSWITCH, when in fact, only the ones called from fast interrupt handlers and the swi_sched of softclock needed this flag. Note that to ensure that swi_sched()'s in clock and fast interrupt handlers do not switch, these handlers have to be explicitly wrapped in critical_enter/exit pairs. Presently, just wrapping the handlers is sufficient, but in the future with the fully preemptive kernel, the interrupt must be EOI'd before critical_exit() is called. (critical_exit() can switch due to a deferred preemption in a fully preemptive kernel.)
I've tested the changes to the interrupt code on i386 and alpha. I have not tested ia64, but the interrupt code is almost identical to the alpha code, so I expect it will work fine. PowerPC and ARM do not yet have interrupt code in the tree so they shouldn't be broken. Sparc64 is broken, but that's been ok'd by jake and tmm who will be fixing the interrupt code for sparc64 shortly.
Reviewed by: peter Tested on: i386, alpha
|
88420 |
22-Dec-2001 |
iwasaki |
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.
|
87036 |
28-Nov-2001 |
msmith |
Synch with minor changes in the ACPI CA 20011120 snapshot.
|
85560 |
26-Oct-2001 |
jhb |
- Change the taskqueue locking to protect the necessary parts of a task while it is on a queue with the queue lock and remove the per-task locks. - Remove TASK_DESTROY now that it is no longer needed. - Go back to inlining TASK_INIT now that it is short again.
Inspired by: dfr
|
85521 |
26-Oct-2001 |
jhb |
Add locking to taskqueues. There is one mutex per task, one mutex per queue, and a mutex to protect the global list of taskqueues. The only visible change is that a TASK_DESTROY() macro has been added to mirror the TASK_INIT() macro to destroy a task before it is free'd.
Submitted by: Andrew Reiter <awr@watson.org>
|
85503 |
25-Oct-2001 |
jhb |
Use TASK_INIT to initialize taskqueue task instead of violating the abstraction.
Submitted by: Andrew Reiter <arr@watson.org>
|
84446 |
04-Oct-2001 |
dfr |
Add busspace hacks for ia64.
|
83218 |
08-Sep-2001 |
iwasaki |
Don't call tsleep from AcpiOsStall(), call DELAY() always instead. Process switching during calling AcpiOsStall() caused fatal trap 12 at sleeping/wakeup on some machines.
|
83179 |
07-Sep-2001 |
msmith |
Move OsdEnvironment.c into MD code; searching for the ACPI tables is not portable.
|
80335 |
25-Jul-2001 |
iwasaki |
Better checking of duplicated interrupt handler installation.
Reviewed by: msmith
|
80071 |
21-Jul-2001 |
msmith |
Update the OSD module to match the ACPI CA 20010717 import.
Submitted by: "Grover, Andrew" <andrew.grover@intel.com> (OsdHardware.c)
|
80034 |
20-Jul-2001 |
msmith |
We haven't used this for ages, and we're not going to either.
|
79386 |
07-Jul-2001 |
msmith |
Get the ACPI softc before we potentially dereference it.
|
79000 |
29-Jun-2001 |
msmith |
Wrap the interrupt handler so that we can get the ACPI lock.
|
77466 |
30-May-2001 |
msmith |
What I get for "fixing" at the last minute. Correct a mis-merge of takawata's timeout fix and put proc.h into the right file.
Submitted by: nnd@mail.nsk.ru
|
77432 |
29-May-2001 |
msmith |
- Updates for new constant naming in the ACPI CA 20010518 update. - 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).
|
74914 |
28-Mar-2001 |
jhb |
Catch up to header include changes: - <sys/mutex.h> now requires <sys/systm.h> - <sys/mutex.h> and <sys/sx.h> now require <sys/lock.h>
|
72376 |
12-Feb-2001 |
jake |
Implement a unified run queue and adjust priority levels accordingly.
- All processes go into the same array of queues, with different scheduling classes using different portions of the array. This allows user processes to have their priorities propogated up into interrupt thread range if need be. - I chose 64 run queues as an arbitrary number that is greater than 32. We used to have 4 separate arrays of 32 queues each, so this may not be optimal. The new run queue code was written with this in mind; changing the number of run queues only requires changing constants in runq.h and adjusting the priority levels. - The new run queue code takes the run queue as a parameter. This is intended to be used to create per-cpu run queues. Implement wrappers for compatibility with the old interface which pass in the global run queue structure. - Group the priority level, user priority, native priority (before propogation) and the scheduling class into a struct priority. - Change any hard coded priority levels that I found to use symbolic constants (TTIPRI and TTOPRI). - Remove the curpriority global variable and use that of curproc. This was used to detect when a process' priority had lowered and it should yield. We now effectively yield on every interrupt. - Activate propogate_priority(). It should now have the desired effect without needing to also propogate the scheduling class. - Temporarily comment out the call to vm_page_zero_idle() in the idle loop. It interfered with propogate_priority() because the idle process needed to do a non-blocking acquire of Giant and then other processes would try to propogate their priority onto it. The idle process should not do anything except idle. vm_page_zero_idle() will return in the form of an idle priority kernel thread which is woken up at apprioriate times by the vm system. - Update struct kinfo_proc to the new priority interface. Deliberately change its size by adjusting the spare fields. It remained the same size, but the layout has changed, so userland processes that use it would parse the data incorrectly. The size constraint should really be changed to an arbitrary version number. Also add a debug.sizeof sysctl node for struct kinfo_proc.
|
72200 |
09-Feb-2001 |
bmilekic |
Change and clean the mutex lock interface.
mtx_enter(lock, type) becomes:
mtx_lock(lock) for sleep locks (MTX_DEF-initialized locks) mtx_lock_spin(lock) for spin locks (MTX_SPIN-initialized)
similarily, for releasing a lock, we now have:
mtx_unlock(lock) for MTX_DEF and mtx_unlock_spin(lock) for MTX_SPIN. We change the caller interface for the two different types of locks because the semantics are entirely different for each case, and this makes it explicitly clear and, at the same time, it rids us of the extra `type' argument.
The enter->lock and exit->unlock change has been made with the idea that we're "locking data" and not "entering locked code" in mind.
Further, remove all additional "flags" previously passed to the lock acquire/release routines with the exception of two:
MTX_QUIET and MTX_NOSWITCH
The functionality of these flags is preserved and they can be passed to the lock/unlock routines by calling the corresponding wrappers:
mtx_{lock, unlock}_flags(lock, flag(s)) and mtx_{lock, unlock}_spin_flags(lock, flag(s)) for MTX_DEF and MTX_SPIN locks, respectively.
Re-inline some lock acq/rel code; in the sleep lock case, we only inline the _obtain_lock()s in order to ensure that the inlined code fits into a cache line. In the spin lock case, we inline recursion and actually only perform a function call if we need to spin. This change has been made with the idea that we generally tend to avoid spin locks and that also the spin locks that we do have and are heavily used (i.e. sched_lock) do recurse, and therefore in an effort to reduce function call overhead for some architectures (such as alpha), we inline recursion for this case.
Create a new malloc type for the witness code and retire from using the M_DEV type. The new type is called M_WITNESS and is only declared if WITNESS is enabled.
Begin cleaning up some machdep/mutex.h code - specifically updated the "optimized" inlined code in alpha/mutex.h and wrote MTX_LOCK_SPIN and MTX_UNLOCK_SPIN asm macros for the i386/mutex.h as we presently need those.
Finally, caught up to the interface changes in all sys code.
Contributors: jake, jhb, jasone (in no particular order)
|
71876 |
31-Jan-2001 |
msmith |
Add some debugging.
Turn off semaphores. Nobody else implements them, and there is lots of AML out there which does totally absurd things with them, meaning that if we try to do the right thing we are guaranteed to fail.
|
71875 |
31-Jan-2001 |
msmith |
Add some debugging statements.
|
71418 |
23-Jan-2001 |
peter |
In answer to the comment: /* XXX is it OK to block here? */, the answer is definately NO! as we are in interrupt context and malloc() does a KASSERT() to be sure.
|
71359 |
22-Jan-2001 |
msmith |
Plug a memory leak in AcpiOsDeleteSemaphore where the mutex is not properly destroyed.
Submitted by: bmilekic
|
70247 |
21-Dec-2000 |
takawata |
Re-Enable OSD_PRIORITY_GPE. Now 20001215 has been commited.
|
70237 |
20-Dec-2000 |
iwasaki |
Disable my previous committed code for a moment.
Note to myself: this needs to be enabled again when newer version of ACPI is imported.
|
70236 |
20-Dec-2000 |
iwasaki |
Add task priority definition for OSD_PRIORITY_GPE in AcpiOsQueueForExecution(). This is needed to next ACPICA import.
|
69776 |
08-Dec-2000 |
msmith |
Staticise some malloc pools
Submitted by: phk
|
69459 |
01-Dec-2000 |
msmith |
AcpiOsMem primitives as required by the new ACPI CA snapshot
|
67760 |
28-Oct-2000 |
msmith |
FreeBSD-specific OSD (operating system dependant) modules for the Intel ACPICA code.
|