diff options
author | John Baldwin <jhb@FreeBSD.org> | 2012-09-17 15:27:30 +0000 |
---|---|---|
committer | John Baldwin <jhb@FreeBSD.org> | 2012-09-17 15:27:30 +0000 |
commit | 0fca6f8bf5de47b6d016500bf066d584959800f4 (patch) | |
tree | 101051e595babb417c37add67ba9f87bd7904b6a /sys/dev/usb/input | |
parent | 8b3daf895a629984a7c3ef5449c280288fd9dccb (diff) | |
download | src-0fca6f8bf5de47b6d016500bf066d584959800f4.tar.gz src-0fca6f8bf5de47b6d016500bf066d584959800f4.zip |
Add locking to mlx(4) to make it MPSAFE along with some other fixes:
- Use callout(9) rather than timeout(9).
- Add a mutex as an I/O lock that protects the adapter and is used
for the I/O path.
- Add an sx lock as a configuration lock that protects the relationship
of configured volumes.
- Freeze the request queue when a DMA load is deferred with EINPROGRESS
and unfreeze the queue when the DMA callback is invoked.
- Explicitly poll the hardware while waiting to submit a command to
allow completed commands to free up slots in the command ring.
- Remove driver-wide 'initted' variable from mlx_*_fw_handshake() routines.
That state should be per-controller instead. Add it as an argument
since the first caller knows when it is the first caller.
- Remove explicit bus_space tag/handle and use bus_*() rather than
bus_space_*().
- Move duplicated PCI device ID probing into a mlx_pci_match() routine.
- Don't check for PCIM_CMD_MEMEN (the PCI bus will enable that when
allocating the resource) and use pci_enable_busmaster() rather than
manipulating the register directly.
Tested by: no one despite multiple requests (hope it works)
Notes
Notes:
svn path=/head/; revision=240608
Diffstat (limited to 'sys/dev/usb/input')
0 files changed, 0 insertions, 0 deletions