freebsd-dev/sys/dev
Ariff Abdullah e4e61333ff Last (again ?!?) major commit for RELENG_7, featuring total Giant
eradication in/from userland path, countless locking fixes, etc.

- General sleep call through msleep(9) has been converted to condvar(9)
  with better consistencies.
- Heavily guard every possible "slow path" entries (open(), close(),
  few ioctl()s, sysctls), but once it entering "fast path" (io, interrupt
  started), they are free to fly on their own.
- Rearrange locking sequences, resulting better concurrency and
  serialization. Large part doesn't even need locking at all, and will be
  removed in future. Less clutter, except in few places due to lock
  ordering.
- Anonymous mixer object creation/deletion to simplify mixer handling
  beyond typical mixer ioctls.
  Submitted by:		chibis (with modifications)
- Add few mix_[get|set|..] functions to avoid calling mixer_ioctl()
  directly using cryptic arguments.
- Locking fixes to avoid possible deadlock with (still under Giant) USB.
- Better simplex/duplex device handling.
- Recover mmap() functionality for recording, which has been lost
  since 2.2.x - 3.x (the introduction of newpcm). Full-duplex mmap still
  doesn't work (due to VM/page design), but people still can mmap
  both by opening each direction separately. mmaped playback is guarantee
  to work either way.
- New sysctl: "hw.snd.compat_linux_mmap" to allow PROT_EXEC page
  mapping, due to recent changes in linux compatibility layer which
  require it. All linux applications that using sound + mmap() (mostly games)
  require this to be enabled. Disabled by default.
- Other goodies.. too many, that will increase releng7 shareholder value
  and make users of releng6 (and below) cry ;)

* This commit should be atomic. If anything goes wrong (not counting problem
  originated from elsewhere), I will not hesitate to revert everything back
  within 12 hours. This substantial changes itself not a rocket science
  and the process has begun for almost 2 years, and lots of incremental
  changes are already in place during that period of time.
* Some issues does occur in snd_emu10kx (note the 'x') due to various
  internal locking issues and it is currently being worked on by chibis.

Tested by:	chibis (Yuriy Tsibizov), joel, Alexandre Vieira,
          	many innocent souls...
2007-06-16 03:37:28 +00:00
..
aac Remove Giant from CAM. Drivers (SIMs) now register a mutex that CAM will 2007-04-15 08:49:19 +00:00
acpi_support Add support for Asus A3N laptops. 2007-06-02 21:10:01 +00:00
acpica Convert magic to a uintptr_t. This should get rid of some warnings on 2007-06-15 18:02:34 +00:00
adlink o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
advansys Remove Giant from CAM. Drivers (SIMs) now register a mutex that CAM will 2007-04-15 08:49:19 +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 Remove Giant from CAM. Drivers (SIMs) now register a mutex that CAM will 2007-04-15 08:49:19 +00:00
ahb Remove Giant from CAM. Drivers (SIMs) now register a mutex that CAM will 2007-04-15 08:49:19 +00:00
aic Remove Giant from CAM. Drivers (SIMs) now register a mutex that CAM will 2007-04-15 08:49:19 +00:00
aic7xxx Up until now, the free SCB pool received only a small initial allocation, 2007-04-19 18:53:52 +00:00
amd Remove Giant from CAM. Drivers (SIMs) now register a mutex that CAM will 2007-04-15 08:49:19 +00:00
amr Remove Giant from CAM. Drivers (SIMs) now register a mutex that CAM will 2007-04-15 08:49:19 +00:00
an Remove assignment to uninitialized variable that wasn't then used anyway. 2007-06-08 01:21:20 +00:00
ar Don't call bus_deactivate_resource() explicitly before calling 2007-03-21 03:38:37 +00:00
arcmsr Remove Giant from CAM. Drivers (SIMs) now register a mutex that CAM will 2007-04-15 08:49:19 +00:00
arl o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
asr Remove Giant from CAM. Drivers (SIMs) now register a mutex that CAM will 2007-04-15 08:49:19 +00:00
ata Do not attempt to enable AHCI mode on ALi SATA controllers other 2007-06-13 17:44:49 +00:00
ath Update 802.11 wireless support: 2007-06-11 03:36:55 +00:00
atkbdc o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
auxio - Only touch the LED bit of the (LED) AUXIO register when turning the 2006-01-26 19:04:18 +00:00
awi Update 802.11 wireless support: 2007-06-11 03:36:55 +00:00
bce - Migrated IPMI fix from RELENG_6. 2007-06-16 02:27:03 +00:00
bfe o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
bge Despite several examples in the kernel, the third argument of 2007-06-04 18:25:08 +00:00
bktr o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
buslogic Remove Giant from CAM. Drivers (SIMs) now register a mutex that CAM will 2007-04-15 08:49:19 +00:00
cardbus gcc 4.2 thinks that tupleid is uninitialized. Or might be used 2007-06-08 04:03:57 +00:00
ce Remove ancient preprocessor code. Fix module compilation. 2007-03-25 20:21:31 +00:00
ciss Satisfy witness during shutdown 2007-06-05 05:03:13 +00:00
cm Don't call bus_deactivate_resource() explicitly before calling 2007-03-21 03:38:37 +00:00
cnw Catchup to filters by piso. 2007-02-23 19:27:49 +00:00
cp Don't call bus_deactivate_resource() explicitly before calling 2007-03-21 03:38:37 +00:00
cpufreq Since DELAY() was moved, most <machine/clock.h> #includes have been 2006-05-16 14:37:58 +00:00
cs o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
ct o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
ctau Don't call bus_deactivate_resource() explicitly before calling 2007-03-21 03:38:37 +00:00
cx Don't call bus_deactivate_resource() explicitly before calling 2007-03-21 03:38:37 +00:00
cxgb Fix build warnings 2007-06-15 20:02:02 +00:00
cy o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
dc o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
dcons - Don't force to be the GDB port since dcons(4) is in GENERIC now. 2007-06-11 04:08:50 +00:00
de The maxsegsz of a dma tag created in de(4) is TULIP_DATA_PER_DESC bytes. 2007-06-07 00:28:47 +00:00
digi Fix our ioctl(2) implementation when the argument is "int". New 2006-09-27 19:57:02 +00:00
dpt Remove Giant from CAM. Drivers (SIMs) now register a mutex that CAM will 2007-04-15 08:49:19 +00:00
drm o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
ed Tell a statistic checker that not checking the return value of the probing 2007-04-01 14:15:26 +00:00
eisa
em Couple of the fixes needed revising. The ICH8 autoneg was still broken, 2007-05-31 23:36:21 +00:00
en Where I previously removed calls to kdb_enter(), now remove include of 2007-05-29 11:28:28 +00:00
ep o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 15:55:37 +00:00
esp Remove Giant from CAM. Drivers (SIMs) now register a mutex that CAM will 2007-04-15 08:49:19 +00:00
ex s/destory/destroy/ (except for the code in contrib/). 2007-04-16 12:31:35 +00:00
exca - Fix exca_(io|mem)_map() to return proper errno values. 2007-03-23 17:15:07 +00:00
fatm o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
fb Rototill the sparc64 nexus(4) (actually this brings in the code the 2007-03-07 21:13:51 +00:00
fdc Always protect the kthread flags with the lock and close a race with 2007-02-27 17:16:52 +00:00
fe o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
firewire - Lock sbp_write_cmd() and ORB_POINTER_ACTIVE flag. 2007-06-16 00:59:41 +00:00
flash MFp4: 2006-11-29 08:05:55 +00:00
fxp Remove the volatile qualifier to apply to fxp_miibus_readreg(). 2007-05-30 03:46:04 +00:00
gem o Implemented Rx/Tx checksum offload. The simple checksum logic in 2007-06-04 06:01:04 +00:00
harp
hatm Remove the __inline qualifier from a function which is in fact not an 2007-06-08 01:37:47 +00:00
hfa o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
hifn Overhaul driver/subsystem api's: 2007-03-21 03:42:51 +00:00
hme Remove invalid BUS_DMA_ALLOCNOW when creating a tag which is used for 2007-05-01 11:50:11 +00:00
hptiop Introduce a driver for the Highpoint RocketRAID 3xxx series of controllers. 2007-05-09 07:07:26 +00:00
hptmv Perhaps a better fix- make the called function do the (possible never reached) 2007-05-21 09:26:47 +00:00
hwpmc Commit 14/14 of sched_lock decomposition. 2007-06-05 00:00:57 +00:00
ic Fix style nits. No md5 changes in .o's. ;-) 2006-09-08 21:46:01 +00:00
ichsmb o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
ichwd Revisit the watchdogs: Resetting the error to EINVAL after failing to set the 2007-03-27 21:03:37 +00:00
ida o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
idt o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
ie o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
ieee488 Catchup with filters 2007-02-23 19:34:52 +00:00
if_ndis Expand USB_ATTACH_{ERROR,SUCCESS}_RETURN inline and eliminate from 2007-06-12 15:37:19 +00:00
iicbus Don't use spinlocks here. The iicbus transactions can take a long 2007-04-17 05:48:35 +00:00
iir Remove Giant from CAM. Drivers (SIMs) now register a mutex that CAM will 2007-04-15 08:49:19 +00:00
io
ipmi Update __FreeBSD_version check for MFC of pmap_mapbios(). 2007-05-02 18:43:51 +00:00
ips o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
ipw Update 802.11 wireless support: 2007-06-11 03:36:55 +00:00
isp Remove some ioctls that were ill-thought out. There is no user 2007-06-11 19:15:49 +00:00
ispfw The MODULE_NAME should "ispfw" unless overriden, not "isp". 2006-12-10 03:42:57 +00:00
iwi MFp4 (missed in net80211 megaupdate) 2007-06-11 10:56:06 +00:00
ixgb Catch up the rest of the drivers with the ether_vlan_mtap modifications. 2007-03-04 03:38:08 +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 o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
led Make it possible to specify an initial state for the LED. 2007-04-23 12:42:15 +00:00
lge o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
lmc Universally adopt most conventional spelling of acquire. 2007-05-27 20:50:23 +00:00
mc146818 Add macros for the individual divisor bits as some MC146818A-compatible 2007-01-20 14:57:51 +00:00
mca
mcd
md Commit 14/14 of sched_lock decomposition. 2007-06-05 00:00:57 +00:00
mem
mfi Add in a couple of things: 2007-06-04 16:39:22 +00:00
mii Add icsphy(4), Integrated Circuit Systems PHY driver, ported from 2007-06-11 02:04:50 +00:00
mk48txx Revisit the watchdogs: Resetting the error to EINVAL after failing to set the 2007-03-27 21:03:37 +00:00
mlx o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
mly Remove Giant from CAM. Drivers (SIMs) now register a mutex that CAM will 2007-04-15 08:49:19 +00:00
mmc MFp4: When querying the operating condition of SD cards (using the 2007-06-05 17:04:44 +00:00
mpt Track an update in the MPI headers that was missed earlier. 2007-06-04 06:18:07 +00:00
mse o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
msk The maximum size of the sum of all segment lengths in a given DMA mapping 2007-06-12 10:51:47 +00:00
mxge correct some limits on interrupt proccessing so that 2007-06-14 19:35:03 +00:00
my my(4) doesn't need miibus(4). 2007-03-11 15:20:04 +00:00
ncv o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
nfe The maximum size of the sum of all segment lengths in a given DMA mapping 2007-06-12 10:51:47 +00:00
nge Catch up the rest of the drivers with the ether_vlan_mtap modifications. 2007-03-04 03:38:08 +00:00
nmdm Sweep kernel replacing suser(9) calls with priv(9) calls, assigning 2006-11-06 13:42:10 +00:00
nsp o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
null Sweep kernel replacing suser(9) calls with priv(9) calls, assigning 2006-11-06 13:42:10 +00:00
nve Allow nfe(4) override nve(4). 2007-06-12 02:21:02 +00:00
ofw Add missing includes of priv.h. 2006-11-06 17:43:10 +00:00
patm o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
pbio Since DELAY() was moved, most <machine/clock.h> #includes have been 2006-05-16 14:37:58 +00:00
pccard Make the interrupt handler wrapper capable of correctly support filter+ithread handler. 2007-05-31 19:29:20 +00:00
pccbb Migrate from setting a CARD_OK flag in a shared word, to setting its 2007-06-04 05:59:44 +00:00
pcf Don't call bus_deactivate_resource() explicitly before calling 2007-03-21 03:38:37 +00:00
pci Fix a typo in pcib_alloc_msi{x} which resulted in the 2007-05-23 15:31:00 +00:00
pdq Fix preprocessor code to check for a symbol being defined prior to checking 2007-06-08 01:49:04 +00:00
powermac_nvram Add device to access and modify Open Firmware NVRAM settings in 2006-08-01 22:19:01 +00:00
ppbus Remove Giant from CAM. Drivers (SIMs) now register a mutex that CAM will 2007-04-15 08:49:19 +00:00
ppc Don't call bus_deactivate_resource() explicitly before calling 2007-03-21 03:38:37 +00:00
pst o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
puc Calculate the correct PCI BAR for the Timedia based serial cards. The 2007-06-07 06:28:48 +00:00
ral Update 802.11 wireless support: 2007-06-11 03:36:55 +00:00
random Don't save SYSCTL_ADD_*() results in a local variable just to throw them 2007-05-28 18:20:15 +00:00
ray o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
rc o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
re Disable TSO support. 2007-06-16 02:54:19 +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 Remove Giant from CAM. Drivers (SIMs) now register a mutex that CAM will 2007-04-15 08:49:19 +00:00
safe Overhaul driver/subsystem api's: 2007-03-21 03:42:51 +00:00
sbni o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
sbsh Propagae volatile qualifier. 2007-06-08 01:54:22 +00:00
scc Add method enabled() to the SCC interface. This method can be used 2007-03-28 18:05:17 +00:00
scd Use pause() rather than tsleep() on stack variables and function pointers. 2007-02-27 17:23:29 +00:00
sf o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
si o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 20:11:27 +00:00
sio o Revert last. The chip is already supported by puc(4). 2007-03-29 04:26:52 +00:00
sk Universally adopt most conventional spelling of acquire. 2007-05-27 20:50:23 +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 o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
snc o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
snp Switch to ANSI function declarations. 2007-03-23 22:48:44 +00:00
sound Last (again ?!?) major commit for RELENG_7, featuring total Giant 2007-06-16 03:37:28 +00:00
speaker Now that tone & delay times are correct (independent of hz), adjust 2007-06-04 09:27:13 +00:00
spibus MFp4: when passing the transfer up the foodchain, make sure we go up 2006-10-20 07:11:52 +00:00
sr Don't call bus_deactivate_resource() explicitly before calling 2007-03-21 03:38:37 +00:00
stg o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
stge If we've got watchdog timeouts try to get more packets going after 2007-05-01 03:40:57 +00:00
streams Replace custom file descriptor array sleep lock constructed using a mutex 2007-04-04 09:11:34 +00:00
sym Remove Giant from CAM. Drivers (SIMs) now register a mutex that CAM will 2007-04-15 08:49:19 +00:00
syscons - Change comments and asserts to reflect the removal of the global 2007-06-04 23:57:32 +00:00
tdfx Take the functionality contained in the former "options TDFX_LINUX" 2006-03-03 21:37:38 +00:00
ti Catch up the rest of the drivers with the ether_vlan_mtap modifications. 2007-03-04 03:38:08 +00:00
trm Remove Giant from CAM. Drivers (SIMs) now register a mutex that CAM will 2007-04-15 08:49:19 +00:00
twa Minor update to version 3.70.03.007 2007-05-19 10:12:58 +00:00
twe o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
tx o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
txp Nuke duplicated __FBSDID. 2007-06-12 04:33:21 +00:00
uart The HP Diva RMP3 uses BAR 0x14. 2007-05-17 04:07:19 +00:00
ubsec Overhaul driver/subsystem api's: 2007-03-21 03:42:51 +00:00
usb Expand callout compatibility macros in the main usb bridges. 2007-06-14 16:23:31 +00:00
utopia
vge Catch up the rest of the drivers with the ether_vlan_mtap modifications. 2007-03-04 03:38:08 +00:00
vkbd Fix our ioctl(2) implementation when the argument is "int". New 2006-09-27 19:57:02 +00:00
vr Add VLAN capability. 2007-04-23 12:19:02 +00:00
vx o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
watchdog Revisit the watchdogs: Resetting the error to EINVAL after failing to set the 2007-03-27 21:03:37 +00:00
wds Remove Giant from CAM. Drivers (SIMs) now register a mutex that CAM will 2007-04-15 08:49:19 +00:00
wi Update 802.11 wireless support: 2007-06-11 03:36:55 +00:00
wl Don't call bus_deactivate_resource() explicitly before calling 2007-03-21 03:38:37 +00:00
xe o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00