freebsd-skq/sys/dev
Pyun YongHyeon de126af331 Teach vr(4) to use bus_dma(9) and major overhauling to handle link
state change and reliable error recovery.
 o Moved vr_softc structure and relevant macros to header file.
 o Use PCIR_BAR macro to get BARs.
 o Implemented suspend/resume methods.
 o Implemented automatic Tx threshold configuration which will be
   activated when it suffers from Tx underrun. Also Tx underrun
   will try to restart only Tx path and resort to previous
   full-reset(both Rx/Tx) operation if restarting Tx path have failed.
 o Removed old bit-banging MII interface. Rhine provides simple and
   efficient MII interface. While I'm here show PHY address and PHY
   register number when its read/write operation was failed.
 o Define VR_MII_TIMEOUT constant and use it in MII access routines.
 o Always honor link up/down state reported by mii layers. The link
   state information is used in vr_start() to determine whether we
   got a valid link.
 o Removed vr_setcfg() which is now handled in vr_link_task(), link
   state taskqueue handler. When mii layer reports link state changes
   the taskqueue handler reprograms MAC to reflect negotiated duplex
   settings. Flow-control changes are not handled yet and it should
   be revisited when mii layer knows the notion of flow-control.
 o Added a new sysctl interface to get statistics of an instance of
   the driver.(sysctl dev.vr.0.stats=1)
 o Chip name was renamed to reflect the official name of the chips
   described in VIA Rhine I/II/III datasheet.
	REV_ID_3065_A -> REV_ID_VT6102_A
	REV_ID_3065_B -> REV_ID_VT6102_B
	REV_ID_3065_C -> REV_ID_VT6102_C
	REV_ID_3106_J -> REV_ID_VT6105_A0
	REV_ID_3106_S -> REV_ID_VT6105M_A0
   The following chip revisions were added.
	#define REV_ID_VT6105_B0	0x83
	#define REV_ID_VT6105_LOM	0x8A
	#define REV_ID_VT6107_A0	0x8C
	#define REV_ID_VT6107_A1	0x8D
	#define REV_ID_VT6105M_B1	0x94
 o Always show chip revision number in device attach. This shall help
   identifying revision specific issues.
 o Check whether EEPROM reloading is complete by inspecting the state
   of VR_EECSR_LOAD bit. This bit is self-cleared after the EEPROM
   reloading. Previously vr(4) blindly spins for 200us which may/may
   not enough to complete the EEPROM reload.
 o Removed if_mtu setup. It's done in ether_ifattach().
 o Use our own callout to drive watchdog timer.
 o In vr_attach disable further interrupts after reset. For VT6102 or
   newer hardwares, diable MII state change interrupt as well because
   mii state handling is done by mii layer.
 o Add more sane register initialization for VT6102 or newer chips.
    - Have NIC report error instead of retrying forever.
    - Let hardware detect MII coding error.
    - Enable MODE10T mode.
    - Enable memory-read-multiple for VT6107.
 o PHY address for VT6105 or newer chips is located at fixed address 1.
   For older chips the PHY address is stored in VR_PHYADDR register.
   Armed with these information, there is no need to re-read
   VR_PHYADDR register in miibus handler to get PHY address. This
   saves one register access cycle for each MII access.
 o Don't reprogram VR_PHYADDR register whenever access to a register
   located at a PHY address is made. Rhine fmaily allows reprogramming
   PHY address location via VR_PHYADDR register depending on
   VR_MIISTAT_PHYOPT bit of VR_MIISTAT register. This used to lead
   numerous phantom PHYs attached to miibus during phy probe phase and
   driver used to limit allowable PHY address in mii register accessors
   for certain chip revisions. This removes one more register access
   cycle for each MII access.
 o Correctly set VLAN header length.
 o bus_dma(9) conversion.
    - Limit DMA access to be in range of 32bit address space. Hardware
      doesn't support DAC.
    - Apply descriptor ring alignment requirements(16 bytes alignment)
    - Apply Rx buffer address alignment requirements(4 bytes alignment)
    - Apply Tx buffer address alignment requirements(4 bytes alignment)
      for Rhine I chip. Rhine II or III has no Tx buffer address
      alignment restrictions, though.
    - Reduce number of allowable number of DMA segments to 8.
    - Removed the atomic(9) used in descriptor ownership managements
      as it's job of bus_dmamap_sync(9).
    With these change vr(4) should work on all platforms.
 o Rhine uses two separated 8bits command registers to control Tx/Rx
   MAC. So don't access it as a single 16bit register.
 o For non-strict alignment architectures vr(4) no longer require
   time-consuming copy operation for received frames to align IP
   header. This greatly improves Rx performance on i386/amd64
   platforms. However the alignment is still necessary for
   strict-alignment platforms(e.g. sparc64). The alignment is handled
   in new fuction vr_fixup_rx().
 o vr_rxeof() now rejects multiple-segmented(fragmented) frames as
   vr(4) is not ready to handle this situation. Datasheet said nothing
   about the reason when/why it happens.
 o In vr_newbuf() don't set VR_RXSTAT_FIRSTFRAG/VR_RXSTAT_LASTFRAG
   bits as it's set by hardware.
 o Don't pass checksum offload information to upper layer for
   fragmented frames. The hardware assisted checksum is valid only
   when the frame is non-fragmented IP frames. Also mark the checksum
   is valid for corrupted frames such that upper layers doesn't need
   to recompute the checksum with software routine.
 o Removed vr_rxeoc(). RxDMA doesn't seem to need to be idle before
   sending VR_CMD_RX_GO command. Previously it used to stop RxDMA
   first which in turn resulted in long delays in Rx error recovery.
 o Rewrote Tx completion handler.
    - Always check VR_TXSTAT_OWN bit in status word prior to
      inspecting other status bits in the status word.
    - Collision counter updates were corrected as VT3071 or newer
      ones use different bits to notify collisions.
    - Unlike other chip revisions, VT86C100A uses different bit to
      indicate Tx underrun. For VT3071 or newer ones, check both
      VR_TXSTAT_TBUFF and VR_TXSTAT_UDF bits to see whether Tx
      underrun was happend. In case of Tx underrun requeue the failed
      frame and restart stalled Tx SM. Also double Tx DMA threshold
      size on each failure to mitigate future Tx underruns.
    - Disarm watchdog timer only if we have no queued packets,
      otherwise don't touch watchdog timer.
 o Rewrote interrupt handler.
    - status word in Tx/Rx descriptors indicates more detailed error
      state required to recover from the specific error. There is no
      need to rely on interrupt status word to recover from Tx/Rx
      error except PCI bus error. Other event notifications like
      statistics counter overflows or link state events will be
      handled in main interrupt handler.
    - Don't touch VR_IMR register if we are in suspend mode. Touching
      the register may hang the hardware if we are in suspended state.
      Previously it seems that touching VR_IMR register in interrupt
      handler was to work-around panic occurred in system shutdown
      stage on SMP systems. I think that work-around would hide
      root-cause of the panic and I couldn't reproduce the panic
      with multiple attempts on my box.
 o While padding space to meet minimum frame size, zero the pad data
   in order to avoid possibly leaking sensitive data.
 o Rewrote vr_start_locked().
    - Don't try to queue packets if number of available Tx descriptors
      are short than that of required one.
 o Don't reinitialize hardware whenever media configuration is
   changed. Media/link state changes are reported from mii layer if
   this happens and vr_link_task() will perform necessary changes.
 o Don't reinitialize hardware if only PROMISC bit was changed. Just
   toggle the PROMISC bit in hardware is sufficient to reflect the
   request.
 o Rearrganed the IFCAP_POLLING/IFCAP_HWCSUM handling in vr_ioctl().
 o Generate Tx completion interrupts for every VR_TX_INTR_THRESH-th
   frames. This reduces Tx completion interrupts under heavy network
   loads.
 o Since vr(4) doesn't request Tx interrupts for every queued frames,
   reclaim any pending descriptors not handled in Tx completion
   handler before actually firing up watchdog timeouts.
 o Added vr_tx_stop()/vr_rx_stop() to wait for the end of active
   TxDMA/RxDMA cycles(draining). These routines are used in vr_stop()
   to ensure sane state of MAC before releasing allocated Tx/Rx
   buffers. vr_link_task() also takes advantage of these functions to
   get to idle state prior to restarting Tx/Rx.
 o Added vr_tx_start()/vr_rx_start() to restart Rx/Tx. By separating
   Rx operation from Tx operation vr(4) no longer need to full-reset
   the hardware in case of Tx/Rx error recovery.
 o Implemented WOL.
 o Added VT6105M specific register definitions. VT6105M has the
   following hardware capabilities.
    - Tx/Rx IP/TCP/UDP checksum offload.
    - VLAN hardware tag insertion/extraction. Due to lack of information
       for getting extracted VLAN tag in Rx path, VLAN hardware support
       was not implemented yet.
    - CAM(Content Addressable Memory) based 32 entry perfect multicast/
      VLAN filtering.
    - 8 priority queues.
 o Implemented CAM based 32 entry perfect multicast filtering for
   VT6105M. If number of multicast entry is greater than 32, vr(4)
   uses traditional hash based filtering.
 o Reflect real Tx/Rx descriptor structure. Previously vr(4) used to
   embed other driver (private) data into these structure. This type
   of embedding make it hard to work on LP64 systems.
 o Removed unused vr_mii_frame structure and MII bit-baning
   definitions.
 o Added new PCI configuration registers that controls mii operation
   and mode selection.
 o Reduced number of Tx/Rx descriptors to 128 from 256. From my
   testing, increasing number of descriptors above than 64 didn't help
   increasing performance at all. Experimentations show 128 Rx
   descriptors seems to help a lot reducing Rx FIFO overruns under
   high system loads. It seems the poor Tx performance of Rhine
   hardwares comes from the limitation of hardware. You wouldn't
   satuarte the link with vr(4) no matter how fast CPU/large number of
   descriptors are used.
 o Added vr_statistics structure to hold various counter values.

No regression was reported but one variant of Rhine III(VT6105M)
found on RouterBOARD 44 does not work yet(Reported by Milan Obuch).
I hope this would be resolved in near future.

I'd like to say big thanks to Mike Tancsa who kindly donated a Rhine
hardware to me. Without his enthusiastic testing and feedbacks
overhauling vr(4) never have been possible. Also thanks to Masayuki
Murayama who provided some good comments on the hardware's internals.
This driver is result of combined effort of many users who provided
many feedbacks so I'd like to say special thanks to them.

Hardware donated by:	Mike Tancsa (mike AT sentex dot net)
Reviewed by:		remko (initial version)
Tested by:		Mike Tancsa(x86), JoaoBR ( joao AT matik DOT com DOT br )
			Marcin Wisnicki ( mwisnicki+freebsd AT gmail DOT com )
			Stefan Ehmann ( shoesoft AT gmx DOT net )
			Florian Smeets ( flo AT kasimir DOT com )
			Phil Oleson ( oz AT nixil DOT net )
			Larry Baird ( lab AT gta DOT com )
			Milan Obuch ( freebsd-current AT dino DOT sk )
			remko (initial version)
2008-03-11 04:51:22 +00:00
..
aac Avoid holding the aac_io_lock over copyout. 2007-12-20 21:13:58 +00:00
acpi_support Don't attach to the "IBM0057" ID. This ID is used by IBM machines for 2007-10-25 17:30:18 +00:00
acpica Probe CPUs after the PCI hierarchy on i386, amd64, and ia64. This allows 2008-03-10 22:18:07 +00:00
adlink Set D_NEEDGIANT. 2007-08-04 17:43:11 +00:00
advansys Prepare for future integration between CAM and newbus. xpt_bus_register 2007-06-17 05:55:54 +00:00
agp Calculate the number of pages the GATT spans when reading from each page 2008-03-07 13:36:38 +00:00
aha Prepare for future integration between CAM and newbus. xpt_bus_register 2007-06-17 05:55:54 +00:00
ahb Fix a compile error from the last change. 2007-06-17 15:21:09 +00:00
aic Prepare for future integration between CAM and newbus. xpt_bus_register 2007-06-17 05:55:54 +00:00
aic7xxx Only print sense data diagnostics if debugging is enabled with the 2008-02-17 16:00:36 +00:00
amd Prepare for future integration between CAM and newbus. xpt_bus_register 2007-06-17 05:55:54 +00:00
amr Remove an errant definition for AMR_CONFIG_ENQ3_SOLICITED NOTIFY that was 2008-02-06 14:26:31 +00:00
an Style changes from avatar. 2008-01-18 16:34:18 +00:00
ar Don't call bus_deactivate_resource() explicitly before calling 2007-03-21 03:38:37 +00:00
arcmsr Fix an incorrect FreeBSD version test. 2007-12-09 19:24:27 +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
asmc Move ASMC_FAN_FUNCS in the Macmini structure declaration one line up 2007-11-22 23:38:24 +00:00
asr Prepare for future integration between CAM and newbus. xpt_bus_register 2007-06-17 05:55:54 +00:00
ata Add proper support for the SATA/AHCI part of IXP[67]00 2008-03-07 09:29:19 +00:00
ath promote ath_defrag to m_collapse (and retire private+unused 2008-01-17 21:25:09 +00:00
atkbdc Some PS/2 mice (at least the A4Tech X-7xx) need to be set to Intelli mode 2008-02-25 13:57:18 +00:00
auxio
awi o add 802.11 state machine states for DFS and client-side power save 2007-09-05 21:31:32 +00:00
bce MFC after: 4 weeks 2008-02-22 00:46:22 +00:00
bfe Fix link state handling in bfe(4). 2008-01-29 02:15:11 +00:00
bge Style tweak to the 5722 chipid to match the rest of this file. 2008-03-06 21:48:34 +00:00
bktr Rename the kthread_xxx (e.g. kthread_create()) calls 2007-10-20 23:23:23 +00:00
buslogic Prepare for future integration between CAM and newbus. xpt_bus_register 2007-06-17 05:55:54 +00:00
cardbus Make the PCI code aware of PCI domains (aka PCI segments) so we can 2007-09-30 11:05:18 +00:00
ce First in a series of changes to remove the now-unused Giant compatibility 2007-07-27 11:59:57 +00:00
ciss Add `hw.ciss.nop_message_heartbeat' tunable (default disabled) for 2008-02-10 06:21:52 +00:00
cm Spelling fix for interupt -> interrupt 2007-10-12 06:03:46 +00:00
cmx Commit cmx(4), a driver for Omnikey CardMan 4040 PCMCIA smartcard readers. 2008-03-06 08:09:45 +00:00
cnw Catchup to filters by piso. 2007-02-23 19:27:49 +00:00
coretemp Don't attach to non Core CPUs. This is needed because on the PIII, 2008-02-14 14:14:59 +00:00
cp First in a series of changes to remove the now-unused Giant compatibility 2007-07-27 11:59:57 +00:00
cpufreq Probe CPUs after the PCI hierarchy on i386, amd64, and ia64. This allows 2008-03-10 22:18:07 +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 Spelling fix for interupt -> interrupt 2007-10-12 06:03:46 +00:00
cx Spelling fix for interupt -> interrupt 2007-10-12 06:03:46 +00:00
cxgb Parameterize for module name 2008-02-26 23:12:55 +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 Fix function prototype for device_shutdown method. 2007-11-22 02:45:00 +00:00
dcons Add a new 'why' argument to kdb_enter(), and a set of constants to use 2007-12-25 17:52:02 +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 Prepare for future integration between CAM and newbus. xpt_bus_register 2007-06-17 05:55:54 +00:00
drm Add support for the 965GM. 2008-02-27 10:14:57 +00:00
ed Add Winbond W89C940F to the list. Also, stub in some entries for two 2007-12-31 03:29:02 +00:00
eisa
em Need to add define of FAST interrupts as default 2008-02-29 22:38:12 +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 The ESP driver isn't really MPSAFE, so don't mark it that it is. 2007-11-11 14:45:35 +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 Replace explicit calls to video methods with their respective variants 2007-12-29 23:26:59 +00:00
fdc The wakeup() line from the rev. 1.319 is wrong and reintroduces 2008-01-11 16:50: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 Rename the kthread_xxx (e.g. kthread_create()) calls 2007-10-20 23:23:23 +00:00
flash Rename the kthread_xxx (e.g. kthread_create()) calls 2007-10-20 23:23:23 +00:00
fxp Remove the volatile qualifier to apply to fxp_miibus_readreg(). 2007-05-30 03:46:04 +00:00
gem - Fix some style bugs and remove another banal comment missed in 2008-03-09 17:55:19 +00:00
harp
hatm Give MEXTADD() another argument to make both void pointers to the 2008-02-01 19:36:27 +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 Update the hptiop driver to version 1.3. This adds support for the 4xxx 2008-02-03 16:07:12 +00:00
hptmv Rename the kthread_xxx (e.g. kthread_create()) calls 2007-10-20 23:23:23 +00:00
hptrr Fix a mistake made during the import of the driver. Previous versions of 2008-03-08 18:06:48 +00:00
hwpmc VOP_LOCK1() (and so VOP_LOCK()) and VOP_UNLOCK() are only used in 2008-01-13 14:44:15 +00:00
ic Support for Freescale QUad Integrated Communications Controller. 2008-03-03 18:20:17 +00:00
ichsmb Add the Intel 82801FB (ICH6) SMBus controller and the 2007-11-26 19:54:54 +00:00
ichwd Add support for ICH8M. 2008-01-07 09:46:39 +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 Spelling fix for interupt -> interrupt 2007-10-12 06:03:46 +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 Use pause(9) instead of a tsleep() on a stack variable. 2008-01-17 20:11:58 +00:00
igb Change data formating in debug code. 2008-03-01 08:23:35 +00:00
iicbus Don't use spinlocks here. The iicbus transactions can take a long 2007-04-17 05:48:35 +00:00
iir Fix a buffer overflow in the processing of various SCSI commands. This likely 2008-01-09 20:02:56 +00:00
io
ipmi Rename the kthread_xxx (e.g. kthread_create()) calls 2007-10-20 23:23:23 +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 Plug two potential (root-only, local) information leaks. buf is not 2007-12-05 19:32:07 +00:00
iscsi/initiator Give MEXTADD() another argument to make both void pointers to the 2008-02-01 19:36:27 +00:00
isp Add missing locking for SBus controllers. 2007-11-05 11:22:18 +00:00
ispfw The MODULE_NAME should "ispfw" unless overriden, not "isp". 2006-12-10 03:42:57 +00:00
iwi Plug two potential (root-only, local) information leaks. buf is not 2007-12-05 19:32:07 +00:00
ixgb Catch up the rest of the drivers with the ether_vlan_mtap modifications. 2007-03-04 03:38:08 +00:00
ixgbe This is an update to the new Intel 10G 82598 driver. 2007-09-04 02:31:35 +00:00
joy
kbd Remove explicit calls to keyboard methods with their respective variants 2007-12-29 21:55:25 +00:00
kbdmux Remove explicit calls to keyboard methods with their respective variants 2007-12-29 21:55:25 +00:00
le Correct the comments in am7990_intr() and am79900_intr(); it's not 2007-12-30 00:23:38 +00:00
led Make it possible to specify an initial state for the LED. 2007-04-23 12:42:15 +00:00
lge Plug memory leak in jumbo buffer allocation failure path. 2008-03-05 05:36:09 +00:00
lmc Universally adopt most conventional spelling of acquire. 2007-05-27 20:50:23 +00:00
mc146818 Export mc146818_def_{read,write}() so the front-end can make use 2007-06-16 23:10:00 +00:00
mca
mcd
md Zero sc->vnode if mdsetcred() fails. 2008-02-28 18:31:54 +00:00
mem
mfi Fix some bugs in dealing with DCMD'd without data. MegaCli was sending 2008-02-02 17:29:28 +00:00
mii Flesh out support for the BCM5722 by recognizing the phy on the 5722 and 2008-03-06 21:42:48 +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 Prepare for future integration between CAM and newbus. xpt_bus_register 2007-06-17 05:55:54 +00:00
mmc Rename the kthread_xxx (e.g. kthread_create()) calls 2007-10-20 23:23:23 +00:00
mpt Ever since the module registration system was introduced to this driver, 2007-11-03 17:33:41 +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 Move comments block 1 line up to remark on the setting 2008-03-11 02:39:52 +00:00
mxge Now that mxge supports MSI-X interrupts, reverse the logic and flag 2008-02-14 16:24:14 +00:00
my Spelling fix for interupt -> interrupt 2007-10-12 06:03:46 +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 Nuke local jumbo allocator and switch to use of UMA backed page 2008-03-06 01:47:53 +00:00
nge Fix function prototype for device_shutdown method. 2007-11-22 02:45:00 +00:00
nmdm Call ttyld_close() in nmdmclose() to ensure that nmdm(4) 2007-08-01 21:38:11 +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 Fix function prototype for device_shutdown method. 2007-11-22 02:45:00 +00:00
nvram Split /dev/nvram driver out of isa/clock.c for i386 and amd64. I have not 2007-10-26 03:23:54 +00:00
nxge Merge Neterion if_nxge driver version 2.0.9.11230 with the following 2007-10-29 14:19:32 +00:00
ofw Add a new 'why' argument to kdb_enter(), and a set of constants to use 2007-12-25 17:52:02 +00:00
patm Give MEXTADD() another argument to make both void pointers to the 2008-02-01 19:36:27 +00:00
pbio
pccard Commit cmx(4), a driver for Omnikey CardMan 4040 PCMCIA smartcard readers. 2008-03-06 08:09:45 +00:00
pccbb Rename the kthread_xxx (e.g. kthread_create()) calls 2007-10-20 23:23:23 +00:00
pcf Don't call bus_deactivate_resource() explicitly before calling 2007-03-21 03:38:37 +00:00
pci Relax the check for a PCI-express chipset by assuming the system is a 2008-02-01 20:31:09 +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 Redefine bus_space_tag_t on PowerPC from a 32-bit integral to 2007-12-19 18:00:50 +00:00
ppbus Work around problems with the ppbus(4)'s interesting way of managing 2008-01-10 23:43:47 +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 o Add Moxa Technologies CP-104EL PCI Express 4 port Serial card. 2008-01-12 19:14:29 +00:00
quicc Support for Freescale QUad Integrated Communications Controller. 2008-03-03 18:20:17 +00:00
ral Various bug fixes for 2560 parts of ral(4): 2008-02-03 11:47:38 +00:00
random Correct a random value disclosure in random(4). 2007-11-29 16:06:12 +00:00
ray add defs just removed from ieee80211.h 2007-09-05 21:25:58 +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 Don't map memory/IO resource in device probe and just use PCI 2008-03-03 04:15:08 +00:00
rndtest
rp Initialize DWBuf[3]. 2007-07-05 06:51:49 +00:00
safe bandaid crash as I have no time to research the issue and the driver 2007-11-03 19:10:14 +00:00
sbni Quiet framelen uninitialized warning. I think it was a false alarm. 2007-07-05 07:46:33 +00:00
sbsh Propagae volatile qualifier. 2007-06-08 01:54:22 +00:00
scc Support for Freescale QUad Integrated Communications Controller. 2008-03-03 18:20:17 +00:00
scd Use pause() rather than tsleep() on stack variables and function pointers. 2007-02-27 17:23:29 +00:00
sf Fix build. 2008-01-21 09:51:28 +00:00
si Based in info gleaned from the web and other drivers (including the Linux 2007-12-01 20:39:47 +00:00
sio Add a new 'why' argument to kdb_enter(), and a set of constants to use 2007-12-25 17:52:02 +00:00
sk Prefer NULL over integer 0 for pointer type. 2008-02-14 01:25:01 +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 Move the check for the snp device being already attached after the 2007-12-24 13:47:16 +00:00
sound Limit total hardware playback channels to just 1. The reliability of 2007-12-14 02:16:26 +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 Use m_collapse(9) to collapse mbuf chains instead of relying on 2008-01-18 08:32:08 +00:00
streams Make ftruncate a 'struct file' operation rather than a vnode operation. 2008-01-07 20:05:19 +00:00
sym Fix Symbios driver on amd64: Since amd64 has 64 bit pointers but the same 2007-07-20 23:02:01 +00:00
syscons Mark the syscons video spin mutex as recursable since it is currently 2008-02-13 23:38:08 +00:00
tdfx
ti Set the baudrate for if_ti. 2008-02-19 20:54:42 +00:00
trm Prepare for future integration between CAM and newbus. xpt_bus_register 2007-06-17 05:55:54 +00:00
tsec Support for Freescale integrated Three-Speed Ethernet Controller (TSEC). 2008-03-03 19:03:44 +00:00
twa Deferred interrupts don't work yet, disable them. 2007-10-12 16:51:22 +00:00
twe Add missing \n. 2008-02-12 08:58:26 +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 Read MII_ANAR register and get common denominator ability. 2007-11-16 10:32:10 +00:00
uart Support for Freescale QUad Integrated Communications Controller. 2008-03-03 18:20:17 +00:00
ubsec Overhaul driver/subsystem api's: 2007-03-21 03:42:51 +00:00
usb Apply le*toh() or htole*() to the variables of which we use the address 2008-03-07 16:55:24 +00:00
utopia Fix a use-after-free. 2007-12-05 19:32:59 +00:00
vge Fix function prototype for device_shutdown method. 2007-11-22 02:45:00 +00:00
vkbd Remove explicit calls to keyboard methods with their respective variants 2007-12-29 21:55:25 +00:00
vr Teach vr(4) to use bus_dma(9) and major overhauling to handle link 2008-03-11 04:51:22 +00:00
vx Fix function prototype for device_shutdown method. 2007-11-22 02:45:00 +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 Prepare for future integration between CAM and newbus. xpt_bus_register 2007-06-17 05:55:54 +00:00
wi Make wi_set_channel() actually change the channel in hardware so that hostap 2007-09-16 20:02:29 +00:00
wl Don't call bus_deactivate_resource() explicitly before calling 2007-03-21 03:38:37 +00:00
wpi Update wpi(4) with stability fixes 2008-03-10 23:16:48 +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