summaryrefslogtreecommitdiffstats
path: root/sys/dev
Commit message (Collapse)AuthorAgeFilesLines
* Check the return value of config_intrhook_establish().rpaulo2008-11-291-1/+5
| | | | | Found with: Coverity Prevent(tm) CID: 2115
* Check for non-existing model DMI string.rpaulo2008-11-291-0/+3
| | | | | | | Submitted by: ganbold Found with: Coverity Prevent(tm) CID: 2434 MFC after: 1 week
* Renamed the FRAMELEN macro to TRUEPHY_FRAMELEN as for powerpcbz2008-11-281-2/+3
| | | | | | it seems to be possible to collide with FRAMELEN from machine/frame.h. Found by: zec
* Remove duplicate 2610SA entry.emaste2008-11-271-2/+0
| | | | Submitted by: jkim
* - Add support for PMCs in Intel CPUs of Family 6, model 0xE (Core Solojkoshy2008-11-276-20/+2878
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | and Core Duo), models 0xF (Core2), model 0x17 (Core2Extreme) and model 0x1C (Atom). In these CPUs, the actual numbers, kinds and widths of PMCs present need to queried at run time. Support for specific "architectural" events also needs to be queried at run time. Model 0xE CPUs support programmable PMCs, subsequent CPUs additionally support "fixed-function" counters. - Use event names that are close to vendor documentation, taking in account that: - events with identical semantics on two or more CPUs in this family can have differing names in vendor documentation, - identical vendor event names may map to differing events across CPUs, - each type of CPU supports a different subset of measurable events. Fixed-function and programmable counters both use the same vendor names for events. The use of a class name prefix ("iaf-" or "iap-" respectively) permits these to be distinguished. - In libpmc, refactor pmc_name_of_event() into a public interface and an internal helper function, for use by log handling code. - Minor code tweaks: staticize a global, freshen a few comments. Tested by: gnn
* Don't let ata_completed() dereference a null request->dma pointer topeter2008-11-271-1/+1
| | | | print dma status after a media error.
* Small nit I just noticed, a pre-decrement should be post.jfv2008-11-271-1/+1
|
* Thanks to the reminder from Ganbold, small fix in the RX failurejfv2008-11-271-13/+11
| | | | | path for an infinite loop. Problem originally noticed in ixgbe by Jeff Roberson and fixed there. Thanks to everyone involved.
* Add basic WOL support for 82550/82551/82558 and 82559 basedyongari2008-11-273-11/+80
| | | | | | | | | | | | | | | | | | | | | | | | | | controllers. ICH based controllers are treated as 82559. 82557, earlier revision of 82558 and 82559ER have no WOL capability. o WOL support requires help of a firmware so add check whether hardware is capable of handling magic frames by reading EEPROM. o Enable accepting WOL frames only when hardware is about to suspend or shutdown. Previously fxp(4) used to allow receipt of magic frame under normal operation mode which could cause hardware hang if magic frame is received by hardware. Datasheet clearly states driver should not allow WOL frames under normal operation mode. o Disable WOL frame reception in device attach so have fxp(4) immunize against system hang which can be triggered by magic packets when the hardware is not in fully initialized state. o Don't reset all hardware configuration data in fxp_stop() otherwise important configuration data is lost and this would reset WOL configuration to default state which in turn cause hardware hang on receipt of magic frames. To fix the issue, preserve hardware configuration data by issuing a selective reset. o Explicitly disable interrupts after issuing selective reset as reset may unmask interrupts. Tested by: Alexey Shuvaev < shuvaev <> physik DOT uni-wuerzburg DOT de >
* This delta is primarily a fix for es2lan devices thatjfv2008-11-2626-1388/+1368
| | | | | | | | | | | | | will sometimes fail to initialize problem due to a lock contention with management hardware. However, in order to deliver that fix it was necessary to take a shared code update as a whole, and this required scattered changes in the core code to be compatible. The em driver now has VLAN HW support added as the igb driver had previously. MFC after: ASAP - in time for 7.1 RELEASE
* Updated ixgbe driver - version 1.6.2jfv2008-11-2611-1026/+1999
| | | | | | | | | -This version has header split, and as a result a number of aspects of the code have been improved/simplified. - Interrupt handling refined for performance - Many small bugs fixed along the way MFC after: ASAP - in time for 7.1
* Introduce cpu_vendor_id and replace a lot of strcmp(cpu_vendor, "...").jkim2008-11-265-8/+13
| | | | Reviewed by: jhb, peter (early amd64 version)
* - Add the device ID for the HP HS2300 MC8775 clone (michael)n_hibma2008-11-262-6/+8
| | | | | | | - Bugfix: Don't excede static number of ports allowed when iterating over endpoints within an interface. - u3g_speeds contains speeds in baud, not bytes per second, so divide the buffer size by 10.
* Remove unused variable.ganbold2008-11-261-4/+4
| | | | | | | Found with: Coverity Prevent(tm) CID: 3695,3696 Approved by: harti
* Implement TSO for 82550/82551 controllers.yongari2008-11-263-14/+118
| | | | | | | | | | | | | | | | | | | | | | o Configure controller to use dynamic TBD as TSO requires that operation mode. o Add a dummy TBD to tx_cb_u as TSO can access one more TBD in TSO operation. o Increase a DMA segment size to 4096 to hold a full IP segment with link layer header. o Unlike other TSO capable controllers, 82550/82551 does not modify the first IP packet in TSO operation so driver should create an IP packet with proper header. Subsequent IP packets are generated from the header information in the first IP packet header. Likewise pseudo checksum also should be computed by driver for the first packet. o TSO requires one more TBD to hold total TCP payload. To make code simple for TSO/non-TSO case, increase the index of the first available TBD array. o Remove KASSERT that checks the size of a DMA segment should be less than or equal to MCLBYTES as it's no longer valid in TSO. o Tx threshold and number of TBDs field is used to store MSS in TSO. So don't set the Tx threshold in TSO case.
* Implement Rx checksum offload for 82559 or later controllers.yongari2008-11-262-28/+110
| | | | | | | | | | | | | 82559 or later controllers added simple checksum calculation logic in RU. For backward compatibility the computed checksum is appended at the end of the data posted to Rx buffer. This type of simple checksum calculation support had been used on several vendors such as Sun HME/GEM, SysKonnect GENESIS and Marvell Yukon controllers. Because this type of checksum offload support requires parsing of received frame and pseudo checksum calculation with software routine it still consumes more CPU cycles than that of full-fledged checksum offload controller. But it's still better than software checksum calculation.
* o Introduce a new function, fxp_new_rfabuf which allocates a newyongari2008-11-261-27/+69
| | | | | | | | | | | | | | | | | | | | | | | | | Rx buffer and loads DMA map. Also add a function fxp_discard_rfabuf that handles reusing Rx buffer/DMA map. With this change fxp_add_rfabuf just handles appending a new RFA to existing chain. o Initialize mbuf length in fxp_new_rfabuf. o Don't reset rnr and have fxp(4) handle received frames even if it couldn't allocate new Rx buffer. This will make fxp(4) reload updated RFA under rnr case. The rnr would still be reset to 0 if polling is active and fxp(4) processed number of allowed Rx events. o Update if_iqdrops if fxp(4) couldn't allocate Rx buffer. Previously fxp(4) used to try to reuse Rx buffer when new buffer allocation is failed. But fxp(4) didn't take into account loaded DMA map such that the same DMA map was loaded again without unloading the map. There is no reason to unload the loaded map and reload the same map again, just reusing the map is enough. I believe the spare DMA map in softc was introduced to implement this behaviour. Also fxp(4) used to stop Rx processing if once Rx buffer allocation or DMA map load fails which in turn resulted in losing incoming frames under heavy network load. With this change fxp(4) should survive from resource shortage condition.
* Remove unused variable.ganbold2008-11-251-2/+1
| | | | | | | Found with: Coverity Prevent(tm) CID: 3678 Approved by: njl
* src/lib/libusb20/libusb20_compat01.calfred2008-11-2513-122/+709
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix some issues about re-scanning of the devices. src/lib/libusb20/libusb20_ugen20.c Fix issue about libusb20 having to release the USB transfers before doing a SET_CONFIG, else the kernel will kill the file handle. src/sys/dev/usb2/core/usb2_device. src/sys/dev/usb2/core/usb2_generic.c src/sys/dev/usb2/core/usb2_generic.h Add support for U3G devices. Improve and cleanup FIFO free handling. Improve device re-enumeration. src/sys/dev/usb2/core/usb2_msctest.c src/sys/dev/usb2/core/usb2_msctest.h Fix some problems in the USB Mass Storage Test. Add Huawei vendor specific quirks. src/sys/dev/usb2/core/usb2_request.c Improve device re-enumeration. src/sys/dev/usb2/ethernet/if_aue2.c src/sys/dev/usb2/include/usb2_devid.h src/sys/dev/usb2/include/usb2_devtable.h src/sys/dev/usb2/quirk/usb2_quirk.c Integrate changes from the old USB driver. src/sys/dev/usb2/include/usb2_standard.h Add definition of USB3.0 structures from USB.org. src/sys/dev/usb2/serial/u3g2.c src/sys/dev/usb2/serial/ugensa2.c src/sys/modules/usb2/Makefile src/sys/modules/usb2/serial_3g/Makefile Import U3G driver. Submitted by: Hans Petter Selasky (usb4bsd)
* Big update to the iSCSI initiator code. Highlights include IPv6 support,scottl2008-11-258-231/+584
| | | | | | | | | | | | | | | | | | | | | | | | | many bugs fixes, many more performance improvements. Submitted by: Danny Braniss M sbin/iscontrol/iscsi.conf.5 M sbin/iscontrol/iscontrol.8 M sbin/iscontrol/iscontrol.h M sbin/iscontrol/config.c M sbin/iscontrol/fsm.c M sbin/iscontrol/login.c M sbin/iscontrol/pdu.c M sbin/iscontrol/misc.c M sbin/iscontrol/auth_subr.c M sbin/iscontrol/iscontrol.c M sys/dev/iscsi/initiator/isc_cam.c M sys/dev/iscsi/initiator/iscsi.h M sys/dev/iscsi/initiator/isc_soc.c M sys/dev/iscsi/initiator/iscsi_subr.c M sys/dev/iscsi/initiator/iscsivar.h M sys/dev/iscsi/initiator/isc_subr.c M sys/dev/iscsi/initiator/iscsi.c M sys/dev/iscsi/initiator/isc_sm.c
* Simplify Tx checksum offload configuration. Also clear CSUM_IP ifyongari2008-11-251-8/+5
| | | | we've computed IP checksum with software method.
* - Allow fxp_encap() enqueue failed transmissions and setyongari2008-11-252-70/+71
| | | | | | | | | | | | | | | | | | | | | IFF_DRV_OACTIVE to note resource shortage to upper stack. - Don't count number of mbuf chains. Default 32 DMA segments for a frame is enough for most cases. If bus_dmamap_mbuf_sg fails use m_collapse(9) to collapse the mbuf chain instead of relying on expensive m_defrag(9). - Move bpf handling to fxp_start_body() which is supposed to be more appropriate place. - Always arm watchdog timer whenever a new Tx request is made. Previously fxp(4) used to arm watchdog timer only when FXP_CXINT_THRESH-th Tx request is made. Because fxp(4) does not rely on Tx interrupt to reclaim transmitted mbufs it's better to arm watchdog timer to detect potential lockups. - Add more aggresive Tx buffer reclaiming in fxp_start_body to make room for new Tx requests. Since fxp(4) does not request Tx completion interrupt for every frames it's necessary to clean TXCBs in advance to saturate link. - Make fxp(4) try to start more packets transmitting regardless of interrupt type in fxp_intr_body.
* - improve AL2230 RF handling when the device type is zd1211. After thisweongyo2008-11-252-1145/+1526
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | patch the RX/TX performance becomes about 17~18 Mbps comparing with the previous whose values were RX 7~8Mbps and TX 13~14Mbps. - improve AL2230 RF handling in zd1211b - support AL2230S RF that PV2000 is renamed to AL2230S - use register ZYD_CR244, ZYD_CR243, ZYD_CR242 when the driver writes values on RF. This routine is more faster than the original one - use private TX lock to avoid LOR at zyd_raw_xmit() - increase TX slots from 1 to 5 - needs to set the channel at IEEE80211_S_AUTH not IEEE80211_S_RUN - detailed error handling. In previous the next command was sent to the device even if there was errors - setting ZYD_MAC_RX_THRESHOLD value should be different between 1211 and 1211b - only try to stop the device at zyd_init_locked() if the device is UPed - do not use MTX_RECURSE - do not try to grap Giant lock when the channel is changing - move the device initialization routines from zyd_attach to zyd_init to give a device full-reset chance to the driver. - code cleanup at zyd_raw_xmit() - simplify zyd_attach() routines - resort functions and clean up variables - DPRINTF style change. - style(9) Reviewed by: sam
* Move unarming watchdog timer and pending multicast configurationyongari2008-11-251-5/+5
| | | | | | | | check to fxp_txeof(). While I'm here unarm watchdog timer only if there are no pending queued Tx requests. Previously the watchdog timer was unarmed whenever Tx interrupt is raised. This could be resulted in hiding root cause of watchdog timeouts.
* Fix Tx/Rx checksum offload ioctl handling and make Rx handler honoryongari2008-11-251-9/+26
| | | | | | | checksum offload configuration. Now checksum offload can be controlled by ifconfig(8). While I'm here add an additional check for interface capabilities before applying user's request.
* Make fxp(4) build with FXP_IP_CSUM_WAR.yongari2008-11-251-2/+2
|
* Sort head files and removed ununsed header file.yongari2008-11-251-13/+9
|
* Whitespace fix.yongari2008-11-253-25/+25
|
* Add support for Marvell PATA M88SX6121.rpaulo2008-11-252-0/+2
| | | | | | PR: 129154 Submitted by: João Barros <joao.barros at gmail.com> MFC after: 1 month
* Restore sfence semantics in mxge after the introductiongallatin2008-11-242-25/+25
| | | | of a global mfence based mb() in r185162
* Make sure arc4random(9) is properly seeded when /etc/rc.d/initrandom returns.cperciva2008-11-242-3/+24
| | | | | | Approved by: so (cperciva) Approved by: re (kensmith) Security: FreeBSD-SA-08:11.arc4random
* Save the value read from TX queue CSR, so we don't test against ayongari2008-11-241-1/+1
| | | | | | stale one. Submitted by: sephe
* print the extended tx/rx descriptor for 5416 and later partssam2008-11-241-9/+32
|
* nuke special handling of RXORN interrupt; the hal marks the FATALsam2008-11-242-17/+4
| | | | | bit in the interrupt status when RXORN is hit and the chip requires a reset so our special handling was causing useless resets
* Remove DELAY() on hdac_audio_commit().mav2008-11-231-1/+0
| | | | I don't see the reason why it is needed.
* Eliminate an unused variable reported by coverityimp2008-11-231-4/+2
| | | | Submitted by: Ganbold
* Do not use soft PCM volume for digital outputs to allow SPDIF AC3 bypassmav2008-11-231-4/+8
| | | | to work. Soft PCM volume (and vchans) unable to bypass AC3 stream now.
* Strictly differentiate digital and analog PCM devices according to codecmav2008-11-232-58/+91
| | | | | | | nodes capabilities. Add "Analog"/"Digital" marks to the pcm device names. I hope it will help new users easier accept concept of several PCM devices and understand exact purposes of that devices.
* Report card erase sector size as disk stripe size.mav2008-11-231-0/+2
|
* Improve detach handling: close races, flush queue.mav2008-11-231-13/+16
|
* Add backward compatibility ifdefs for non-multiq kernelskmacy2008-11-233-2/+29
|
* work around periodic leak on queue overrun by enabling coalescing of packets ↵kmacy2008-11-231-1/+1
| | | | | | in to work requests by default
* intr_machdep.h breaks build on some arches and is not neededkmacy2008-11-231-4/+0
|
* Cast to uintptr_t before casting to void*. This allows themarcel2008-11-221-3/+3
| | | | | | | QUICC backend to be built on LP64 platforms. This makes it possible to include the QUICC backend in the kernel module. PR: 127120
* Whitespace cleanup for previous commit.mav2008-11-221-3/+3
|
* Handle device_get_children() errors in more correct way.mav2008-11-221-9/+12
| | | | | | | We shouldn't detach until all children are surely destroyed. Found with: Coverity Prevent(tm) CID: 2137
* Change check order to avoid array overrun.mav2008-11-221-2/+2
| | | | | Found with: Coverity Prevent(tm) CID: 2497
* Unbreak LINT.jkoshy2008-11-224-0/+24
|
* - enable multiple transmit queueskmacy2008-11-225-246/+109
| | | | | | | | | | | - invert sense of hw.cxgb.singleq tunable to hw.cxgb.multiq - don't wake up transmitting thread by default - add per tx queue ifaltq to handle ALTQ - remove several unused functions in cxgb_multiq.c - add several sysctls: multiq_tx_enable, coalesce_tx_enable, and wakeup_tx_thread - this obsoletes the hw.cxgb.snd_queue_len as ifq is replaced by a buf_ring
* - bump __FreeBSD version to reflect added buf_ring, memory barriers,kmacy2008-11-229-225/+49
| | | | | | | | | | | | | | | | | and ifnet functions - add memory barriers to <machine/atomic.h> - update drivers to only conditionally define their own - add lockless producer / consumer ring buffer - remove ring buffer implementation from cxgb and update its callers - add if_transmit(struct ifnet *ifp, struct mbuf *m) to ifnet to allow drivers to efficiently manage multiple hardware queues (i.e. not serialize all packets through one ifq) - expose if_qflush to allow drivers to flush any driver managed queues This work was supported by Bitgravity Inc. and Chelsio Inc.
OpenPOWER on IntegriCloud