summaryrefslogtreecommitdiffstats
path: root/sys/dev
Commit message (Collapse)AuthorAgeFilesLines
* On amd64 platform, use linux32 headers so 32-bit Linux applicationsdelphij2006-12-201-0/+5
| | | | | | | | | | | would be able to work with aac(4). This approach is used by some other drivers as well. However, we need a more generic way to do this in order to avoid having to special case headers in individual drivers for each platform. Obtained from: Adaptec (version b11518) Approved by: scottl
* In bge_txeof(), cancel the watchdog timeout if all descriptors havebde2006-12-201-1/+2
| | | | | | | been handled instead of when at least one descriptor was just handled. For bge, it is normal to get a txeof when only a small fraction of the queued tx descriptors have been handled, so the bug broke the watchdog in a usual case.
* Avoid a race and a pessimization in bge_intr():bde2006-12-201-6/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - moved the synchronizing bus read to after the bus write for the first interrupt ack so that it actually synchronizes everything necessary. We were acking not only the status update that triggered the interrupt together with any status updates that occurred before we got around to the bus write for the ack, but also any status updates that occur after we do the bus write but before the write reaches the device. The corresponding race for the second interrupt ack resulted in sometimes returning from the interrupt handler with acked but unserviced interrupt events. Such events then remain unserviced until further events cause another interrupt or the watchdog times out. The race was often lost on my 5705, apparently since my 5705 has broken event coalescing which causes a status update for almost every packet, so another status update is quite likely to occur while the interrupt handler is running. Watchdog timeouts weren't very noticeable, apparently because bge_txeof() has one of the usual bugs resetting the watchdog. - don't disable device interrupts while bge_intr() is running. Doing this just had the side effects of: - entering a device mode in which different coalescing parameters apply. Different coalescing parameters can be used to either inhibit or enhance the chance of getting another status update while in the interrupt handler. This feature is useless with the current organization of the interrupt handler but might be useful with a taskqueue handler. - giving a race for ack+reenable/return. This cannot be handled by simply rearranging the order of bus accesses like the race for ack+keepenable/entry. It is necessary to sync the ack and then check for new events. - taking longer, especially with the extra code to avoid the race on ack+reenable/return. Reviewed by: ru, gleb, scottl
* - Use the re_tick() callout instead of if_slowtimo() for drivingmarius2006-12-201-35/+23
| | | | | | | | | re_watchdog() in order to avoid races accessing if_timer. - Use bus_get_dma_tag() so re(4) works on platforms requiring it. - Remove invalid BUS_DMA_ALLOCNOW when creating the parent DMA tag and the tags that are used for static memory allocations. - Don't bother to set if_mtu to ETHERMTU, ether_ifattach() does that. - Remove an unused variable in re_intr().
* Fix a bug originally introduced in rev. 1.74; don't reloaded themarius2006-12-201-1/+2
| | | | | | | | | | watchdog timer in dc_txeof() in case there are still unhandled descriptors as dc_poll() invokes dc_poll() unconditionally. Otherwise this would result in the watchdog timer constantly being being reloaded and thus circumvent that the watchdog ever fires in the DEVICE_POLLING case. Pointed out by: bde
* Partially back out rev. 1.148 and use new ETHER_BPF_MTAP() macro for VLAN.jkim2006-12-201-11/+5
| | | | Remaining changes are cosmetic.
* Use BMSR for link status in one more place and clean up more.jkim2006-12-201-10/+9
|
* - Do not depend on auto negotiation for link speed/duplex status.jkim2006-12-201-68/+81
| | | | | - Read link status from BMSR instead of auxilary status register. - Clean up style(9) nits.
* Remove dependency on deprecated if_watchdog ABI.bms2006-12-194-31/+19
| | | | Tested with a Sitecom RT2661 based card.
* Fix distorted sound on Fujitsu Siemens AMILO Pa 1510.ariff2006-12-191-1/+7
| | | | Reported/Tested by: infofarmer
* - Add missing callout_drain() call.oleg2006-12-191-12/+10
| | | | | | | - Synchronize bge_tick() with callout_reset/callout_stop() calls. - Avoid using bge_tick() inside bge_link_upd(), use mii_pollstat() instead. MFC after: 2 month
* - Fix autonegotiation timer.oleg2006-12-191-30/+22
| | | | | | | | - Use MII_ANEGTICKS/MII_ANEGTICKS_GIGE defines instead of hardcoded value. - Fix some comments. - style(9) MFC after: 2 month
* Restore revision 1.126 that got accidentally nuked.mjacob2006-12-181-0/+6
|
* Add back some CAM_NEW_TRAN code to make backporting to RELENG_6 easier.mjacob2006-12-181-2/+144
|
* Spell "Kensington Thinking Mouse" correctly.keramida2006-12-181-1/+1
|
* - Remove stale VPD support and its comment and get device name from VPD API.jkim2006-12-182-48/+19
| | | | | | | | - Do not repeatedly read vendor/device IDs while probing. - Remove redundant bzero(3) for softc. device_get_softc(9) does it for free[1]. Reviewed by: glebius Suggested by: glebius[1]
* Correct the previous change:marius2006-12-181-0/+3
| | | | | | - If we want mii_phy_add_media() to add 1000baseT media, we need to supply sc->mii_extcapabilities. - Fix formatting when announcing autonegotiation support.
* Try an experiment with using DMA to load firmware into a 2200- VERIFYmjacob2006-12-173-25/+39
| | | | | | CHECKSUM fails. Oh well, but keep a couple of the changes. Avoid overflow in usec counters when waiting for mailbox completion.
* Latest updates for Envy24/24HT. Fix various issues with LOR and panicariff2006-12-173-29/+72
| | | | | | during verbose booting. Submitted by: Konstantin Dimitrov <kosio.dimitrov@gmail.com>
* Add codec id for [1] Realtek ALC888 and [2] Sigmatel STAC9227ariff2006-12-171-0/+4
| | | | | Found/Tested by: [1] luigi [2] Jean-Baptiste Quenot <jbq@caraldi.com>
* Add support for Nvidia Nforce MCP04 AC97 controller.ariff2006-12-171-0/+3
| | | | | PR: kern/106829 Submitted by: Frédéric Petit <fredantispam@free.fr>
* Do not special-case __ARMEB__, we handle that in the arm code.cognet2006-12-161-2/+0
| | | | Approved by: sos
* Miscellaneous fixups and quirks for ASUS A7M, LG LW20 andariff2006-12-161-5/+36
| | | | HP NX6325 laptops.
* Make some slight reorganization (bringing back in somemjacob2006-12-161-12/+86
| | | | | non-CAM_NEW_TRAN code) to make diffs to previous FreeBSD versions more manageable.
* Implement ISP_RESET0 for PCI and SBUS attachments- isp_reset hasmjacob2006-12-163-8/+39
| | | | | been modified to call ISP_RESET0 if it fails to do a reset. This gives us a chance to disable interrupts.
* Align the interfaces for the various watchdogs and make the interfacen_hibma2006-12-154-49/+27
| | | | | | | | | | | | | | | | | | | | | | | | | behave as expected. Also: - Return an error if WD_PASSIVE is passed in to the ioctl as only WD_ACTIVE is implemented at the moment. See sys/watchdog.h for an explanation of the difference between WD_ACTIVE and WD_PASSIVE. - Remove the I_HAVE_TOTALLY_LOST_MY_SENSE_OF_HUMOR define. If you've lost your sense of humor, than don't add a define. Specific changes: i80321_wdog.c Don't roll your own passive watchdog tickle as this would defeat the purpose of an active (userland) watchdog tickle. ichwd.c / ipmi.c: WD_ACTIVE means active patting of the watchdog by a userland process, not whether the watchdog is active. See sys/watchdog.h. kern_clock.c: (software watchdog) Remove a check for WD_ACTIVE as this does not make sense here. This reverts r1.181.
* Fix compilation using gcc 4.1.ariff2006-12-151-1/+1
| | | | Submitted by: dougb
* Disable bge MSI support for now. A couple of people warned me that therejdp2006-12-151-0/+9
| | | | | | are problems with it on several revisions of this chip. I'll re-enable it after I've sorted out which chip revisions work and which don't.
* Add MSI support to the bge driver. I tested this on a Dell SC1435jdp2006-12-142-4/+19
| | | | running an i386 kernel, and it worked fine.
* Disable MSI for the Intel E7501 chipset.jhb2006-12-141-0/+6
| | | | Reported by: jdp
* Add a first pass at a way to blacklist MSI on systems where it doesn'tjhb2006-12-142-0/+52
| | | | | | | | | | | | work: - A new PCI quirk (PCI_QUIRK_DISABLE_MSI) is added to the quirk table. - A new pci_msi_device_blacklisted() determines if a passed in device matches an MSI quirk in the quirk table. This can be overridden (all quirks ignored) by setting the hw.pci.honor_msi_blacklist to 0. - A global blacklist check is performed in the MI PCI bus code by checking to see if the device at 0:0:0 is blacklisted. Tested by: jdp
* Some relatively minor changes and bug fixes:ambrisko2006-12-143-65/+54
| | | | | | | | | | | | | | | | | 1) s/mi/mfi/ in FreeBSD ioctl path 2) add in "\n" on various failure messages 3) cap the length of time to abort an AEN command 4) fix passing sense data back to user to make Dell's Linux firmware upgrade tool happy. 5) bump the MFI_POLL_TIMEOUT_SECS from 10s to 50s since the firmware flash command can take ~40s to return. This is some clean-up and enables RAID firmware to updated via Dell's tool. Note Dell's tool requires the updates to the Linux emulator that has been done in -current with TLS etc. I need to discuss with scottl how to better submit mfi commands to the firmware via the ioctl path so we don't do it in polled mode.
* Replace #define<space> with #define<tab> so the code is consistent withjhb2006-12-145-368/+368
| | | | style(9) and avoids mixing the two formats.
* Resolve two deadlocks that could be caused by busy md device backedkib2006-12-141-0/+9
| | | | | | | | | | by vnode. Allow for md thread and the thread that owns lock on vnode backing the md device to do the write even when runningbufspace is exhausted. Tested by: Peter Holm Reviewed by: tegge MFC after: 2 weeks
* Remove incomplete Yukon II support code which was added in if_sk.c, rev 1.123.yongari2006-12-142-101/+3
| | | | Yukon II users should use msk(4).
* Use callouts to prevent races.alfred2006-12-132-20/+31
| | | | Cleanup debug code.
* Fix recent style problems and expand a comment.scottl2006-12-131-12/+15
| | | | Submitted by: Bruce Evans
* Use the BGE_IS_* macros consistently. Also add a couple of missingscottl2006-12-131-5/+9
| | | | cases to the debug_info function.
* Remove a redundant write of the firmware reset magic number. It looks toscottl2006-12-131-6/+0
| | | | | | | | | have been added erroneously, and it causes problems on some chips. A larger change is needed to do this write at a more appropriate place, but that change requires reworking the ASF logic. That will be worked on in the future. Submitted by: Bruce Evans
* Track v0.9.20.3 hal:sam2006-12-137-292/+292
| | | | | | | | | | | | | | | | | | | | | o no more ds_vdata in tx/rx descriptors o split h/w tx/rx descriptor from s/w status o as part of the descriptor split change the rate control module api so the ath_buf is passed in to the module so it can fetch both descriptor and status information as needed o add some const poisoning Also for sample rate control algorithm: o split debug msgs (node, rate, any) o uniformly bounds check rate indices (and in some cases correct checks) o move array index ops to after bounds checking o use final tsi from the status block instead of the h/w descriptor o replace h/w descriptor struct's with proper mask+shift defs (this doesn't belong here; everything is known by the driver and should just be sent down so there's no h/w-specific knowledge) MFC after: 1 month
* Use one counter instead of four to make up TX collision stats as BCM5705+.jkim2006-12-131-8/+1
| | | | It reduces chance of errors from multiple counter wraps at the same time.
* Update to version 1.20.00.13 of the arcmsr driver. This fixes many bugsscottl2006-12-132-3070/+2923
| | | | | | | | as well as adds support for newer controllers. Many thanks to Areca for their continued support. Submitted by: Erich Chen
* Add msk(4), a driver for Marvell/SysKonnect Yukon II Gigabit Ethernetyongari2006-12-132-0/+6444
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | controller. Due to lack of documentation, this driver is based on the code from sk(4) and Marvell's myk(4) driver for FreeBSD. I've also adopted the OpenBSD interface name, msk(4) in order to reduce naming differences between BSDs. The msk(4) driver supports the following Gigabit Ethernet adapters. o SysKonnect SK-9Sxx Gigabit Ethernet o SysKonnect SK-9Exx Gigabit Ethernet o Marvell Yukon 88E8021CU Gigabit Ethernet o Marvell Yukon 88E8021 SX/LX Gigabit Ethernet o Marvell Yukon 88E8022CU Gigabit Ethernet o Marvell Yukon 88E8022 SX/LX Gigabit Ethernet o Marvell Yukon 88E8061CU Gigabit Ethernet o Marvell Yukon 88E8061 SX/LX Gigabit Ethernet o Marvell Yukon 88E8062CU Gigabit Ethernet o Marvell Yukon 88E8062 SX/LX Gigabit Ethernet o Marvell Yukon 88E8035 Gigabit Ethernet o Marvell Yukon 88E8036 Gigabit Ethernet o Marvell Yukon 88E8038 Gigabit Ethernet o Marvell Yukon 88E8050 Gigabit Ethernet o Marvell Yukon 88E8052 Gigabit Ethernet o Marvell Yukon 88E8053 Gigabit Ethernet o Marvell Yukon 88E8055 Gigabit Ethernet o Marvell Yukon 88E8056 Gigabit Ethernet o D-Link 550SX Gigabit Ethernet o D-Link 560T Gigabit Ethernet Unlike OpenBSD/NetBSD msk(4), the msk(4) driver supports all hardware features including TCP/UDP checksum offload for transmit, MSI, TCP segmentation offload(TSO), hardware VLAN tag stripping/insertion, and jumbo frames(up to 9022 bytes). The only unsupported hardware feature except RLMT is Rx checksum offload which I don't know how to make it work reliably. Known Issues: It seems msk(4) does not work on the second port of dual port NIC. (The first port works without problems.) Thanks to Marvell for releasing the BSD licensed myk(4) driver and thanks to all users helped fixing bugs. Tested by: bz, philip, bms, YAMAMOTO Shigeru < shigeru AT iij DOT ad DOT jp >, Dmitry Pryanishnikov < dmitry AT atlantis DOT dp DOT ua >, Jia-Shiun Li < jiashiun AT gmail DOT com >, David Duchscher < daved AT tamu DOT edu >, Arno J. Klaassen < arno AT heho DOT snv DOT jussieu DOT fr>, Nicolae Namolovan < adrenalinup AT gmail DOT com>, Andre Guibert de Bruet < andy AT siliconlandmark DOT com > current ML Tested on: i386, amd64
* - Add constants for HT PCI capability registers including the variousjhb2006-12-122-0/+51
| | | | | | | subtypes of HT capabilities. - Add constants for the MSI mapping window HT PCI capability. - On i386 and amd64, enable the MSI mapping window on any HT bridges we encounter and report any non-standard mapping window addresses.
* Give the WREG() macro the same lifetime as the REG() macro.jhb2006-12-121-3/+3
|
* Add some bootverbose printf's to detail how many MSI messages are allocatedjhb2006-12-121-0/+92
| | | | | | and to which IRQs. Requested by: scottl
* Give Host-PCI bridge drivers their own pcib_alloc_msi() andjhb2006-12-121-2/+26
| | | | | | pcib_alloc_msix() methods instead of using the method from the generic PCI-PCI bridge driver as the PCI-PCI methods will be gaining some PCI-PCI specific logic soon.
* Fix support for certain 575x/578x chips. This consists of the following:scottl2006-12-122-35/+274
| | | | | | | | | | | - Use the appropriate register writing method when reseting the chip - Program the descriptor DMA engine correctly. - More reliably detect certain chips and their features. Also add some low-level debugging tools to help future work on this driver. Submitted by: David Christenson (proof of concept changes) Sponsored by: www.UIA.net
* In FreeBSD, we don't need sc_power callbackkevlo2006-12-121-1/+1
| | | | Approved by: cognet and imp
* Add MODULE_DEPENDS for cam, pci, mca, eisa and isa where needed.mjacob2006-12-111-0/+2
| | | | | | PR: 106543 Reviewed by: Adam Radford MFC after: 3 days
OpenPOWER on IntegriCloud