| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
|
|
|
|
| |
this as it should.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Dynamically allocate the cpu_softc[] array based on mp_maxid instead of
using a statically sized array that depended on 'options SMP'.
- Use mp_maxid rather than MAXCPU when walking all the CPUs looking for a
match.
- Always call smp_rendezvous() since UP kernels now provide this.
- Use mp_ncpus rather than cpu_ndevices when determining if we need to
disable C3 for SMP machines.
Approved by: re (rwatson)
Reviewed by: njl
|
|
|
|
|
|
|
| |
processor object for this CPU. This occurs for logical CPUs which
do not have an associated processor object (e.g., HTT).
Approved by: re (rwatson)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
idx'th present CPU with pc_acpi_id equal to *acpi_id. If *acpi_id
does not match that processor's pc_acpi_id, return the value for
ProcId derived from the MADT in *acpi_id. If pc_acpi_id is 0xffffffff,
always override it with the value of *acpi_id. Finally, return
pc_cpuid in *cpu_id and use that as our primary key.
* Use pc_cpuid as our unique key because we know it is valid since
MD code set it. The values for ProcId in the ASL and MADT don't
match up on some machines (!), forcing us to fall back to ordered
probing in that case.
* Remove some #ifdef SMP since the refcount doesn't hurt performance
and will be needed for dynamic _CST objects. Only one #ifdef SMP
(for smp_rendezvous) remains.
* Hook up SMP in the compile flags in the Makefile.
Tested by: marcel, truckman
Approved by: re (scottl)
|
|
|
|
|
|
| |
type checking for _PRS for a link device's interrupt resources.
Approved by: re (scottl)
|
|
|
|
|
|
|
|
|
| |
boot-disabled devices instead of skipping the last interrupt. This is
especially important for devices that only have one interrupt as this
bug was keeping any interrupt from being tried at all.
Reviewed by: msmith
Approved by: re (scottl)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
an acpi_cpu method for shutdown that disables entry to acpi_cpu_idle
and then IPIs/waits for threads to exit. This fixes a panic late in
reboot in the SMP case.
* In the !SMP case, don't use the processor id filled out by the MADT
since there can only be one processor. This was causing a panic in
acpi_cpu_idle if the id was 1 since the data was being dereferenced from
cpu_softc[1] even though the actual data was in cpu_softc[0] (which is
correct).
* Rework the initialization functions so that cpu_idle_hook is written
late in the boot process.
* Make the P_BLK, P_BLK_LEN, and cpu_cx_count all softc-local variables.
This will help SMP boxes that have _CST or multiple P_BLKs. No such
boxes are known at this time.
* Always allocate the C1 state, even if the P_BLK is invalid. This means
we will always take over idling if enabled. Remove the value -1 as
valid for cx_lowest since this is redundant with machdep.cpu_idle_hlt.
* Reduce locking for the throttle initialization case to around the write
to the smi_cmd port. Add disabled code to write the CST_CNT. It will
be enabled once _CST re-evaluation is tested (post 5.2R).
Thank you: dfr, imp, jhb, marcel, peter
Tested by: rwatson, Harald Schmalzbauer <h@schmalzbauer.de>
Approved by: re (rwatson)
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Use the cpu_idle_hook() to do idling for C1-C3.
* Use both _CST and the FADT to detect Cx states.
* Use both _PTC and P_CNT for controlling throttling.
* Add a notify handler to detect changes in _CST and _PSS
* Call the _INI function for each processor if present. This will be
done by ACPI-CA in the future.
* Fix a bug on SMP systems where CPUs will attach multiple times if the
bus is rescan.
* Document new sysctls for controlling idling.
|
|
|
|
|
| |
various data types from them. This is loosely based on the acpi_cmbat
macros (by Mike Smith) and will eventually replace them.
|
|
|
|
| |
Generic Address Structure.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- For acpi_pci_link_entry_dump(), add a few helper functions to display
the trigger mode, polarity, and sharemode of an individual IRQ resource.
These functions are then called for both regular and extended IRQ
resources.
- In acpi_pci_link_set_irq(), use the same type of IRQ resource
(regular vs. extended) for the new current resource as the type of
the resources from _PRS.
- When routing an interrupt don't ignore extended IRQ resources. Also,
use the same type of IRQ resource (regular vs. extended) for the new
current resource when as the type of the resource from _PRS.
Tested by: peter
|
| |
|
| |
|
|
|
|
|
|
| |
to fix compile with ACPI_DEBUG.
Reported by: tinderbox
|
|
|
|
| |
the InterruptLevel used for the SCI.
|
|
|
|
|
| |
userland whenever events occur. See the example in devd.conf below
to see how to use it.
|
|
|
|
|
| |
to fix any problems but is similar to how Linux implements this
function.
|
|
|
|
|
|
| |
use DELAY instead of tsleep.
Submitted by: peter
|
|
|
|
|
|
|
|
|
|
|
|
| |
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:
|
|
|
|
|
|
|
| |
the ACPI standard), call sleep instead since that is probably what the
caller meant.
Mentioned by: peter
|
|
|
|
|
| |
the strings found in acpi(4). Also make acpi_ca_version a string so it
is more readable.
|
| |
|
|
|
|
| |
update man page to reflect iasl(8) import.
|
|
|
|
|
|
|
|
|
|
| |
Reported by: Larry Rosenman <ler@lerctr.org>
PR:
Submitted by:
Reviewed by:
Approved by:
Obtained from:
MFC after:
|
| |
|
|
|
|
|
|
| |
and "ACPI_FPB").
Pointed out by: Linux
|
| |
|
| |
|
|
|
|
|
|
| |
suspend/resume.
Especially after hibernation, interrupt routing went back to initial
status on some machines.
|
|
|
|
|
| |
global lock contention as symptoms only appear under heavy load (i.e. the
nightly periodic run).
|
|
|
|
|
|
| |
user can override this with a sysctl.
Be sure to return the acpi_SetSleepState return value to userland.
|
| |
|
|
|
|
| |
Rename a few structure elements.
|
|
|
|
|
|
|
| |
At least some Toshiba notebooks use a Notify of 0 or 1 for this.
PR:
Submitted by: Hiroyuki Aizu <aizu@navi.org>
|
|
|
|
|
|
|
| |
method. This is necessary on ia64 where it's known that serial interfaces
described in the ACPI namespace may not have the well-known IRQs assigned
to them. This confuses us in thinking they are PCI based interrupts and
wrongly program the APIC.
|
|
|
|
| |
distribution to a MI header so it can be shared with other architectures.
|
|
|
|
|
| |
Print a more informative message if a sleep state is not supported by BIOS.
Add comments.
|
| |
|
|
|
|
|
|
| |
change also disables interrupts around non-S4 suspends whereas before we
did not do this. Our version of AcpiEnterSleepStateS4bios was almost
identical to the ACPICA version.
|
|
|
|
|
|
|
|
|
|
|
| |
- 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)
|
|
|
|
| |
since inlining failed due to the size of BUS_*
|
|
|
|
| |
Also some minor style cleanups.
|
|
|
|
|
| |
tree for two or more years now), except in a few places where there's
code to be compatible with older versions of FreeBSD.
|
|
|
|
| |
Noticed by: njl
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A timecounter will be selected when registered if its quality is
not negative and no less than the current timecounters.
Add a sysctl to report all available timecounters and their qualities.
Give the dummy timecounter a solid negative quality of minus a million.
Give the i8254 zero and the ACPI 1000.
The TSC gets 800, unless APM or SMP forces it negative.
Other timecounters default to zero quality and thereby retain current
selection behaviour.
|
|
|
|
|
|
| |
at least the Casio FIVA requires this.
Requested by: takawata
|
|
|
|
| |
block to where it is in similar drivers.
|
|
|
|
|
| |
installation to just before we're ready to handle events. Make a loop
more readable (no functional change).
|
|
|
|
|
|
|
|
| |
the hardware mutex if it is held. Re-add calls to Enable/Clear fixed events.
This is not known to have caused problems. Bug symptoms might have included
instability after an aborted suspend attempt or power/sleep buttons not
being enabled.
|