freebsd-nq/sys/dev
Nate Lawson 907b6777c1 Re-work Cx handling to be per-cpu and asymmetrical, fixing support on
modern dual-core systems as well.

- Parse the _CST packages for each cpu and track all the states individually,
on a per-cpu basis.

- Revert to generic FADT/P_BLK based Cx control if the _CST package
is not present on all cpus. In that case, the new driver will
still support per-cpu Cx state handling. The driver will determine the
highest Cx level that can be supported by all the cpus and configure the
available Cx state based on that.

- Fixed the case where multiple cpus in the system share the same
registers for Cx state handling. To do that, added a new flag
parameter to the acpi_PkgGas and acpi_bus_alloc_gas functions that
enable the caller to add the RF_SHAREABLE flag.  This flag could also be
useful to other callers (acpi_throttle?) in the tree but this change is
not yet made.

- For Core Duo cpus, both cores seems to be taken out of C3 state when
any one of the cores need to transition out. This broke the short sleep
detection logic.  It is disabled now if there is more than one cpu in
the system for now as it fixed it in my case.  This quirk may need to
be re-enabled later differently.

- Added support to control cx_lowest on a per-cpu basis. There is still
a generic cx_lowest to enable changing cx_lowest for all cpus with a single
sysctl and for ease of use.  Sample output for the new sysctl:

dev.cpu.0.cx_supported: C1/1 C2/1 C3/57
dev.cpu.0.cx_lowest: C3
dev.cpu.0.cx_usage: 0.00% 43.16% 56.83%
dev.cpu.1.cx_supported: C1/1 C2/1 C3/57
dev.cpu.1.cx_lowest: C3
dev.cpu.1.cx_usage: 0.00% 45.65% 54.34%
hw.acpi.cpu.cx_lowest: C3

This work was done by Stephane E. Potvin with some simple reworking by
myself.  Thank you.

Submitted by:	Stephane E. Potvin <sepotvin / videotron.ca>
MFC after:	2 weeks
2007-01-07 21:53:42 +00:00
..
aac On amd64 platform, use linux32 headers so 32-bit Linux applications 2006-12-20 17:10:53 +00:00
acpi_support Prevent freeing wild pointer when bailing out. 2006-11-06 12:14:27 +00:00
acpica Re-work Cx handling to be per-cpu and asymmetrical, fixing support on 2007-01-07 21:53:42 +00:00
adlink
advansys Add MODULE_DEPENDS for cam, pci, mca, eisa and isa where needed. 2006-12-11 18:28:31 +00:00
agp Restore agp aperture size after resume, in case it is modified after boot. 2007-01-06 08:31:31 +00:00
aha Add MODULE_DEPENDS for cam, pci, mca, eisa and isa where needed. 2006-12-11 18:28:31 +00:00
ahb Add MODULE_DEPENDS for cam, pci, mca, eisa and isa where needed. 2006-12-11 18:28:31 +00:00
aic 2nd and final commit that moves us to CAM_NEW_TRAN_CODE 2006-11-02 00:54:38 +00:00
aic7xxx Fix a group of typos: 2006-12-29 13:08:46 +00:00
amd Add MODULE_DEPENDS for cam, pci, mca, eisa and isa where needed. 2006-12-11 18:28:31 +00:00
amr Add MODULE_DEPENDS for cam, pci, mca, eisa and isa where needed. 2006-12-11 18:28:31 +00:00
an Sweep kernel replacing suser(9) calls with priv(9) calls, assigning 2006-11-06 13:42:10 +00:00
ar
arcmsr Update to version 1.20.00.13 of the arcmsr driver. This fixes many bugs 2006-12-13 08:46:03 +00:00
arl Various bpf(4) related fixes to catch places up to the new bpf(4) 2006-12-29 13:59:50 +00:00
asr Add MODULE_DEPENDS for cam, pci, mca, eisa and isa where needed. 2006-12-11 18:28:31 +00:00
ata Add support for the Marvell 6101/6145 PATA chips used on many new Intel boards. 2007-01-04 16:09:11 +00:00
ath Add half/quarter rate 11a channel support: 2006-12-27 19:07:09 +00:00
atkbdc Spell "Kensington Thinking Mouse" correctly. 2006-12-18 18:48:28 +00:00
auxio
awi In FreeBSD, we don't need sc_power callback 2006-12-12 03:05:04 +00:00
bce Fix compile with BCE_DEBUG. The last one tripped up gcc 2.95 on 4.x even 2006-12-06 22:53:22 +00:00
bfe Add suspend/resume support. Unlike many other NIC drivers, 2006-11-20 23:30:07 +00:00
bge After rev.1.169, the "interrupt" coalescing parameters are not used in 2006-12-26 18:33:55 +00:00
bktr remove delays that have been unnecessary since 2002... The iicbb driver 2006-12-31 19:42:47 +00:00
buslogic Add MODULE_DEPENDS for cam, pci, mca, eisa and isa where needed. 2006-12-11 18:28:31 +00:00
cardbus
ce Various bpf(4) related fixes to catch places up to the new bpf(4) 2006-12-29 13:59:50 +00:00
ciss o ciss.ko depends on cam and pci. 2006-11-30 15:14:17 +00:00
cm
cnw Sweep kernel replacing suser(9) calls with priv(9) calls, assigning 2006-11-06 13:42:10 +00:00
cp Various bpf(4) related fixes to catch places up to the new bpf(4) 2006-12-29 13:59:50 +00:00
cpufreq
cs - Consistently use if_printf() only in interface methods: if_start(), 2006-09-15 15:16:12 +00:00
ct
ctau Various bpf(4) related fixes to catch places up to the new bpf(4) 2006-12-29 13:59:50 +00:00
cx Various bpf(4) related fixes to catch places up to the new bpf(4) 2006-12-29 13:59:50 +00:00
cy
dc Fix a bug originally introduced in rev. 1.74; don't reloaded the 2006-12-20 01:49:56 +00:00
dcons Sweep kernel replacing suser(9) calls with priv(9) calls, assigning 2006-11-06 13:42:10 +00:00
de - Consistently use if_printf() only in interface methods: if_start(), 2006-09-15 15:16:12 +00:00
digi Fix our ioctl(2) implementation when the argument is "int". New 2006-09-27 19:57:02 +00:00
dpt Add MODULE_DEPENDS for cam, pci, mca, eisa and isa where needed. 2006-12-11 18:28:31 +00:00
drm Update __FreeBSD_version check for pci_find_extcap() now that it is 2006-12-28 21:55:47 +00:00
ed
eisa
em remove no longer correct comment above em_read_pcie_cap_reg 2006-11-23 05:48:13 +00:00
en Fix fat-fingering in previous commit. 2006-12-29 16:38:22 +00:00
ep ALTQify ep(4). 2006-12-01 20:29:55 +00:00
esp Add MODULE_DEPENDS for cam, pci, mca, eisa and isa where needed. 2006-12-11 18:28:31 +00:00
ex
exca Cleanup sloppy ifdef. 2006-09-24 00:26:33 +00:00
fatm
fb
fdc Sweep kernel replacing suser(9) calls with priv(9) calls, assigning 2006-11-06 13:42:10 +00:00
fe
firewire Various bpf(4) related fixes to catch places up to the new bpf(4) 2006-12-29 13:59:50 +00:00
flash MFp4: 2006-11-29 08:05:55 +00:00
fxp Grammar nit. 2006-12-01 13:07:52 +00:00
gem - Use the gem_tick() callout instead of if_slowtimo() for driving 2006-12-06 02:04:25 +00:00
gfb
harp
hatm
hfa
hifn
hme - Use the hme_tick() callout instead of if_slowtimo() for driving 2006-12-06 02:07:20 +00:00
hptmv - Use a regular mutex rather than a spin mutex. This driver doesn't need 2007-01-04 20:28:17 +00:00
hwpmc Sweep kernel replacing suser(9) calls with priv(9) calls, assigning 2006-11-06 13:42:10 +00:00
ic Fix style nits. No md5 changes in .o's. ;-) 2006-09-08 21:46:01 +00:00
ichsmb Minor overhaul of SMBus support: 2006-09-11 20:52:41 +00:00
ichwd Align the interfaces for the various watchdogs and make the interface 2006-12-15 21:44:49 +00:00
ida
idt
ie
ieee488
if_ndis Fix shared authentication mode. 2006-12-28 00:05:40 +00:00
iicbus const poison 2006-12-05 06:19:36 +00:00
iir Add MODULE_DEPENDS for cam, pci, mca, eisa and isa where needed. 2006-12-11 18:28:31 +00:00
io
ipmi Align the interfaces for the various watchdogs and make the interface 2006-12-15 21:44:49 +00:00
ips o Add Adaptec ServeRAID 7x IDs. IDs taken from Linux. 2006-10-05 07:28:43 +00:00
ipw
isp RELENG_6 compilation 2007-01-05 23:01:54 +00:00
ispfw The MODULE_NAME should "ispfw" unless overriden, not "isp". 2006-12-10 03:42:57 +00:00
iwi Add header files <sys/lock.h> and <sys/mutex.h> for mtx_init() and friends. 2006-12-07 15:24:38 +00:00
ixgb Move ethernet VLAN tags from mtags to its own mbuf packet header field 2006-09-17 13:33:30 +00:00
joy
kbd Sweep kernel replacing suser(9) calls with priv(9) calls, assigning 2006-11-06 13:42:10 +00:00
kbdmux Fix our ioctl(2) implementation when the argument is "int". New 2006-09-27 19:57:02 +00:00
le Use our own callout instead of if_slowtimo() for driving lance_watchdog() 2006-12-06 02:14:31 +00:00
led
lge - Consistently use if_printf() only in interface methods: if_start(), 2006-09-15 15:16:12 +00:00
lmc Sweep kernel replacing suser(9) calls with priv(9) calls, assigning 2006-11-06 13:42:10 +00:00
mc146818
mca
mcd
md Resolve two deadlocks that could be caused by busy md device backed 2006-12-14 11:34:07 +00:00
mem
mfi Up the event class reporting from 10 (basically, nothing) to EVT_CLASS_INFO. 2007-01-07 06:43:25 +00:00
mii MFp4: add basic driver for RTL8305SC switch in PHY emulation 2007-01-05 01:46:26 +00:00
mk48txx Align the interfaces for the various watchdogs and make the interface 2006-12-15 21:44:49 +00:00
mlx
mly Add MODULE_DEPENDS for cam, pci, mca, eisa and isa where needed. 2006-12-11 18:28:31 +00:00
mmc Preliminary MMC stack. This stack supports SD 1.0 cards only, but 2006-10-20 06:39:59 +00:00
mpt (commented out) multipath fault injection code. 2007-01-05 22:49:05 +00:00
mse
msk Piggyback watchdog timer handling with msk_tick which is called every 2006-12-29 04:55:38 +00:00
mxge Fix mxge_submit_8rx() to behave like the comments says it does, 2006-11-29 15:30:39 +00:00
my Fix fat-fingering in previous commit. 2006-12-29 16:38:22 +00:00
ncv
nfe Fix TX/RX checksum offload. 2006-11-27 04:47:27 +00:00
nge Move ethernet VLAN tags from mtags to its own mbuf packet header field 2006-09-17 13:33:30 +00:00
nmdm Sweep kernel replacing suser(9) calls with priv(9) calls, assigning 2006-11-06 13:42:10 +00:00
nsp
null Sweep kernel replacing suser(9) calls with priv(9) calls, assigning 2006-11-06 13:42:10 +00:00
nve Fix an off by one error in struct nve_tx_desc's frags[] array as a result 2006-12-05 15:31:05 +00:00
ofw Add missing includes of priv.h. 2006-11-06 17:43:10 +00:00
patm
pbio
pccard
pccbb
pcf
pci Disable MSI on the Intel E7505 chipset. It is reported broken on a Tyan 2006-12-28 06:14:42 +00:00
pdq
powermac_nvram
ppbus Fix fat-fingering in previous commit. 2006-12-29 16:38:22 +00:00
ppc
pst
puc Add SIIG 4 port serial card based on the Oxford OX16PCI954. 2006-09-04 18:27:14 +00:00
ral Remove dependency on deprecated if_watchdog ABI. 2006-12-19 17:37:41 +00:00
random Sweep kernel replacing suser(9) calls with priv(9) calls, assigning 2006-11-06 13:42:10 +00:00
ray tweak comments about OLDCARD workarounds 2006-10-19 05:25:53 +00:00
rc
re - Use the re_tick() callout instead of if_slowtimo() for driving 2006-12-20 02:13:59 +00:00
rndtest
rp - Make rp(4) 64-bit- and endian-clean as well as work on strict alignment 2006-11-20 12:59:27 +00:00
rr232x
safe
sbni Sweep kernel replacing suser(9) calls with priv(9) calls, assigning 2006-11-06 13:42:10 +00:00
sbsh Sweep kernel replacing suser(9) calls with priv(9) calls, assigning 2006-11-06 13:42:10 +00:00
scc
scd
sf Whitespace nits. 2006-09-15 11:01:23 +00:00
si Sweep kernel replacing suser(9) calls with priv(9) calls, assigning 2006-11-06 13:42:10 +00:00
sio Only treat positive values as errors... 2006-09-14 03:47:59 +00:00
sk Remove incomplete Yukon II support code which was added in if_sk.c, rev 1.123. 2006-12-14 04:10:26 +00:00
smbus Only support the SMB_OLD_BREAD ioctl if one of COMPAT_FREEBSD[456] is 2006-09-26 14:38:56 +00:00
sn
snc
snp
sound Fixes module build with DEB(x) defined to x. 2007-01-06 19:11:48 +00:00
speaker
spibus MFp4: when passing the transfer up the foodchain, make sure we go up 2006-10-20 07:11:52 +00:00
sr
stg
stge Move ethernet VLAN tags from mtags to its own mbuf packet header field 2006-09-17 13:33:30 +00:00
streams
sym 2nd and final commit that moves us to CAM_NEW_TRAN_CODE 2006-11-02 00:54:38 +00:00
syscons Replace magic numbers for console bell types with defines. 2006-11-16 12:27:51 +00:00
tdfx
ti Move ethernet VLAN tags from mtags to its own mbuf packet header field 2006-09-17 13:33:30 +00:00
trm Add MODULE_DEPENDS for cam, pci, mca, eisa and isa where needed. 2006-12-11 18:28:31 +00:00
twa Add MODULE_DEPENDS for cam, pci, mca, eisa and isa where needed. 2006-12-11 23:59:42 +00:00
twe
tx
txp Move ethernet VLAN tags from mtags to its own mbuf packet header field 2006-09-17 13:33:30 +00:00
uart - In sunkbd_probe_keyboard() don't bother to determine the keyboard layout 2006-11-02 00:01:15 +00:00
ubsec Switch to using STAILQ_REMOVE_HEAD() instead of STAILQ_REMOVE_HEAD_UNTIL(). 2006-10-24 11:17:46 +00:00
usb protect against multiple inclusion (this is useful when you 2007-01-03 10:50:03 +00:00
utopia
vge Fix the hardware VLAN tagging. TX was broken on little-endian 2006-11-30 21:01:59 +00:00
vkbd Fix our ioctl(2) implementation when the argument is "int". New 2006-09-27 19:57:02 +00:00
vr Whitespace nits. 2006-09-15 11:01:23 +00:00
vx
watchdog Align the interfaces for the various watchdogs and make the interface 2006-12-15 21:44:49 +00:00
wds Add MODULE_DEPENDS for cam, pci, mca, eisa and isa where needed. 2006-12-11 18:28:31 +00:00
wi replace if_watchdog w/ a private callout 2006-12-11 00:41:22 +00:00
wl Sweep kernel replacing suser(9) calls with priv(9) calls, assigning 2006-11-06 13:42:10 +00:00
xe
zs Sweep kernel replacing suser(9) calls with priv(9) calls, assigning 2006-11-06 13:42:10 +00:00