summaryrefslogtreecommitdiffstats
path: root/sys/dev
Commit message (Collapse)AuthorAgeFilesLines
* Add new USB ID to UDAV driver.hselasky2011-06-192-0/+2
| | | | | Submitted by: Luiz Gustavo S. Costa <lgcosta@pfsense.org> MFC after: 7 days
* More expeirmentation suggests that 10ms isn't as reliable asimp2011-06-181-2/+2
| | | | | previously thought, but 100ms seems to be. Likely there's a good middle ground, but for now be conservative.
* After we get a good power signal, always wait about 10ms beforeimp2011-06-181-4/+16
| | | | | | | | | | | proceeding. On boot, some laptops with certain cards in them sometimes fail on boot, but if the card is inserted after boot it works. Experiments show that small delays here makes things more reliable. It is believed that some combinations need a little more time before the power on the card is really stable enough to be reliable once the power is stable in the bridge.
* Don't create a device_t object or parse current resources (via _CRS) forjhb2011-06-172-20/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | ACPI Device() objects that do not have any device IDs available via the _HID or _CID methods. Without a device ID a device driver cannot attach to the device anyway. Namespace objects that are devices but not of type ACPI_TYPE_DEVICE are not affected. A few BIOSes have also attached a _CRS method to a PCI device to allocate resources that are not managed via a BAR. With the previous code those resources are allocated from acpi0 directly which can interfere with the new PCI-PCI bridge driver (since the PCI device in question may be behind a bridge and its resources should be allocated from that bridge's windows instead). The resources were also orphaned and and would end up associated with some other random device whose device_t reused the pointer of the original ACPI-enumerated device (after it was free'd by the ACPI PCI bus driver) in devinfo output which was confusing. If we want to handle _CRS on PCI devices we can adjust the ACPI PCI bus driver to do that in the future and associate the resources with the proper device object respecting PCI-PCI bridges, etc. Note that with this change the ACPI PCI bus driver no longer has to delete ACPI-enumerated device_t devices that mirror PCI devices since they should in general not exist. There are rare cases when a BIOS will give a PCI device a _HID (e.g. I've seen a PCI-ISA bridge given a _HID for a system resource device). In that case we leave both the ACPI and PCI-enumerated device_t objects around just as in the previous code.
* - Use a dedicated task to handle deferred transmits from the if_transmitjhb2011-06-172-10/+64
| | | | | | | | | | | | | | | method instead of reusing the existing per-queue interrupt task. Reusing the per-queue interrupt task could result in both an interrupt thread and the taskqueue thread trying to handle received packets on a single queue resulting in out-of-order packet processing. - Don't define igb_start() at all on 8.0 and where if_transmit is used. Replace last remaining call to igb_start() with a loop to kick off transmit on each queue instead. - Call ether_ifdetach() earlier in igb_detach(). - Drain tasks and free taskqueues during igb_detach(). Reviewed by: jfv MFC after: 1 week
* Hide driver revision behind bootverbose.joel2011-06-151-1/+4
| | | | Approved by: mav
* Skip BAR(5) usage for SATA registers access on ICH8M Apples, because formav2011-06-141-1/+3
| | | | | | some reason it causes system lock up. Linux does the same. MFC after: 1 week
* Add location and pnpinfo strings for puc device ports. The location isjhb2011-06-144-2/+47
| | | | | | | | announced during boot and contains the port number. The pnpinfo string lists the port type (PUC_TYPE_* constants). Tested by: Boris Samorodov bsam ipt ru MFC after: 1 week
* Several enhancements to the Xen block back driver.gibbs2011-06-131-529/+1451
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | sys/dev/xen/blkback/blkback.c: o Implement front-end request coalescing. This greatly improves the performance of front-end clients that are unaware of the dynamic request-size/number of requests negotiation available in the FreeBSD backend driver. This required a large restructuring in how this driver records in-flight transactions and how those transactions are mapped into kernel KVA. For example, the driver now includes a mini "KVA manager" that allocates ranges of contiguous KVA to patches of requests that are physically contiguous in the backing store so that a single bio or UIO segment can be used to represent the I/O. o Refuse to open any backend files or devices if the system has yet to mount root. This avoids a panic. o Properly handle "onlined" devices. An "onlined" backend device stays attached to its backing store across front-end disconnections. This feature is intended to reduce latency when a front-end does a hand-off to another driver (e.g. PV aware bootloader to OS kernel) or during a VM reboot. o Harden the driver against a pathological/buggy front-end by carefully vetting front-end XenStore data such as the front-end state. o Add sysctls that report the negotiated number of segments per-request and the number of requests that can be concurrently in flight. Submitted by: kdm Reviewed by: gibbs Sponsored by: Spectra Logic Corporation MFC after: 1 week
* Add bunch of Conexant codec IDs. For some of them add quirks to disablemav2011-06-131-0/+39
| | | | excessive signal paths to simplify tracer's life.
* Fix ath_ahb(4) bus attach and eeprom error handling.adrian2011-06-131-1/+5
| | | | Submitted by: Luiz Otavio O Souza <loos.br@gmail.com>
* Use swap32() right.delphij2011-06-121-3/+6
| | | | | Submitted by: gcopper MFC after: 2 weeks
* Monitor and emit events for XenStore changes to XenBus treesgibbs2011-06-114-9/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | of the devices we manage. These changes can be due to writes we make ourselves or due to changes made by the control domain. The goal of these changes is to insure that all state transitions can be detected regardless of their source and to allow common device policies (e.g. "onlined" backend devices) to be centralized in the XenBus bus code. sys/xen/xenbus/xenbusvar.h: sys/xen/xenbus/xenbus.c: sys/xen/xenbus/xenbus_if.m: Add a new method for XenBus drivers "localend_changed". This method is invoked whenever a write is detected to a device's XenBus tree. The default implementation of this method is a no-op. sys/xen/xenbus/xenbus_if.m: sys/dev/xen/netfront/netfront.c: sys/dev/xen/blkfront/blkfront.c: sys/dev/xen/blkback/blkback.c: Change the signature of the "otherend_changed" method. This notification cannot fail, so it should return void. sys/xen/xenbus/xenbusb_back.c: Add "online" device handling to the XenBus Back Bus support code. An online backend device remains active after a front-end detaches as a reconnect is expected to occur in the near future. sys/xen/interface/io/xenbus.h: Add comment block further explaining the meaning and driver responsibilities associated with the XenBus Closed state. sys/xen/xenbus/xenbusb.c: sys/xen/xenbus/xenbusb.h: sys/xen/xenbus/xenbusb_back.c: sys/xen/xenbus/xenbusb_front.c: sys/xen/xenbus/xenbusb_if.m: o Register a XenStore watch against the local XenBus tree for all devices. o Cache the string length of the path to our local tree. o Allow the xenbus front and back drivers to hook/filter both local and otherend watch processing. o Update the device ivar version of "state" when we detect a XenStore update of that node. sys/dev/xen/control/control.c: sys/xen/xenbus/xenbus.c: sys/xen/xenbus/xenbusb.c: sys/xen/xenbus/xenbusb.h: sys/xen/xenbus/xenbusvar.h: sys/xen/xenstore/xenstorevar.h: Allow clients of the XenStore watch mechanism to attach a single uintptr_t worth of client data to the watch. This removes the need to carefully place client watch data within enclosing objects so that a cast or offsetof calculation can be used to convert from watch to enclosing object. Sponsored by: Spectra Logic Corporation MFC after: 1 week
* - driver ioctl to get SGE context for any given queue.np2011-06-114-1/+85
| | | | | | - sysctls to display the context id, cidx, and pidx of all kinds of queues. MFC after: 3 days
* Add comments about the validation.delphij2011-06-111-0/+9
|
* - Fix races on detach handling of AAC_IFFLAGS_* maskattilio2011-06-102-14/+16
| | | | | | | | | | | | - Fix races on setting AAC_AIFFLAGS_ALLOCFIBS - Remove some unused AAC_IFFLAGS_* bits. Please note that the kthread still makes a difference between the total mask and AAC_AIFFLAGS_ALLOCFIBS because more flags may be added in the future to aifflags. Sponsored by: Sandvine Incorporated Reported and reviewed by: emaste MFC after: 2 weeks
* Make sure to drop the IEEE80211_RATE_BASIC flag even for MCS rates.bschmidt2011-06-101-7/+9
| | | | | Reported by: Maciej Milewski <milu at dat dot pl> Tested by: Maciej Milewski <milu at dat dot pl>
* Fix some off-by-one errors with the ending address of candidate regionsjhb2011-06-101-3/+4
| | | | when attempting to grow a window.
* Implement BUS_ADJUST_RESOURCE() for the x86 drivers that sit between thejhb2011-06-101-11/+25
| | | | Host-PCI bridge drivers and nexus.
* Intel NM10 chipset's SATA controller has same PCI ID and revision as ICH7's,mav2011-06-091-7/+23
| | | | | | | | but has only 2 SATA ports instead of 4. The worst part is that SStatus and SError registers for missing ports are not implemented and return wrong values (0xffffffff), that caused infinite reset loop. Just ignore that SError value while I found no better way to identify them.
* - Major reorganization of mbuf handling throughout the driver todavidch2011-06-084-3451/+2855
| | | | | | | | | | | | | | | | | | increase robustness (no more calls to panic(9)) and simplify code. - Allocate RX/TX data structures as a single buffer rather than an array of 4KB pages to simplify code. - Fixed LRO (aka TPA) code. Removed kernel module parameter and support enabling disabling LRO through ifconfig(8) command line. LRO is still disabled by default but should be enabled for best performance on an endpoint device. - Fixed statistcs code and removed kernel module parameter (stats should just work). - Added many software counters to help identify the cause of some performance issues. - Streamlined adapter internal init/stop code paths. - Fiddled with debug code (adding some here, removing some there). - Continued style(9) adjustments.
* - Improve error handling.andreast2011-06-081-43/+127
| | | | | | | | - Add retry loops in the i2c read/write functions. - Combied the ADC channel selection and readout of the value into one iicbus_transfer to avoid possible races. Reviewed by: nwhitehorn
* Make automatic hw.snd.default_unit choice a bit more intelligent. Insteadmav2011-06-071-18/+36
| | | | | | | | | | | | of just setting it to the first registered device, reevaluate it for each device registered, trying to choose best candidate, unless one was forced. For now use such preference order: play&rec, play, rec. As side effect, this should workaround the situation when HDMI audio output of the video card, usually not connected to anything, becomes default, that requires manual user intervention to make sound working. If at some point this won't be enough, we can try to fetch some additional priority flags from the device driver.
* Since HAL_PHYERR_* is used in the radar code, always include ah_desc.h.adrian2011-06-071-2/+0
|
* Flesh out a new HAL method to fetch the radar PHY error frame information.adrian2011-06-078-0/+84
| | | | | | | | | | | | | | | | | | | | | | | For the AR5211/AR5212, this is apparently a one byte pulse duration counter value. It is only coded up here for the AR5212 as I don't have any AR5211-series hardware to test it on. This information was extracted from the Madwifi DFS branch along with some local additions. Please note - all this does is extract out the radar event duration, it in no way reflects the presence of a radar. Further code is needed to take a set of radar events and filter them to extract out correct radar pulse trains (and ignore other events.) For further information, please see: http://wiki.freebsd.org/dev/ath_hal%284%29/RadarDetection This includes references to the relevant patents which describe what is going on. Obtained from: Madwifi
* MFCattilio2011-06-073-52/+139
|\
| * amdsbwd: update to support SB8xx southbridgesavg2011-06-071-47/+137
| | | | | | | | | | | | | | | | | | | | | | Many thanks to Tino <tinotom@gmail.com> for drawing my attention to this, for doing a lot of testing and providing great feedback. Many thanks to AMD for continuing to release public specifications for their chipsets. PR: kern/157568 Tested by: Tino <tinotom@gmail.com> MFC after: 1 week
| * Validate INT 15h and 16h vectors more strictly. Traditionally these entryjkim2011-06-061-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | points are fixed addresses and (U)EFI CSM specification also mandated that. Unfortunately, (U)EFI CSM specification does not specifically mention this is to call service routine via interrupt vector table or to jump directly to the entry point. As a result, some CSM seems to install two routines and acts differently, depending on how it was executed, unfortunately. When INT 15h is used, it calls a function pointer (which is probably a UEFI service function). When it jumps directly to the entry point, it executes a simple and traditional INT 15h service routine. Therefore, actually there are two possible fixes, i. e., this fix or jumping directly to the fixed entry point. However, we chose this fix because a) keyboard typematic support via BIOS is becoming extremely rarer and b) we cannot support random service routine installed by a firmware or a boot loader. This should fix Lenovo X220 laptop, specifically. Reviewed by: delphij MFC after: 3 days
| * Revert r222152. The root cause was analysed and better fix is upcoming.jkim2011-06-062-4/+0
| | | | | | | | Discussed with: delphij
| * Reset clear-stall error counter before setting up the USB control transfers.hselasky2011-06-061-0/+5
| | | | | | | | MFC after: 14 days
| * Improve enumeration of Low- and Full-speed devices connected through ahselasky2011-06-067-8/+133
| | | | | | | | | | | | | | | | | | High-speed USB HUB by resetting the transaction translator (TT) before trying re-enumeration. Also when clear-stall fails multiple times try a re-enumeration. Suggested by: Trevor Blackwell MFC after: 14 days
* | MFCattilio2011-06-068-8/+138
| |
* | MFCattilio2011-06-068-15/+42
|\ \ | |/
| * Make a couple of debug printfs DEVPRINTF.imp2011-06-061-4/+4
| |
| * Some style fixes.jhb2011-06-061-6/+4
| | | | | | | | Submitted by: bde
| * More properly handle Cardbus cards that that store their CIS in a BAR afterjhb2011-06-062-3/+13
| | | | | | | | | | | | | | | | | | the recent changes to track BAR state explicitly. The code would now attempt to add the same BAR twice in this case. Instead, change this so that it recognizes this case and only adds it once and do not delete the BAR outright after parsing the CIS. Tested by: bschmidt
| * Add a missing call to sync the DMAed buffer before the radar event data is ↵adrian2011-06-051-1/+9
| | | | | | | | extracted.
| * Cause backpressure (instead of dropping frames) on congestion.np2011-06-041-0/+2
| | | | | | | | MFC after: 3 days
| * Allow lazy fill up of freelists.np2011-06-042-1/+10
| | | | | | | | MFC after: 3 days
* | MFCattilio2011-06-0410-66/+136
|\ \ | |/
| * Rename recently added USB serial driver.hselasky2011-06-042-5/+5
| | | | | | | | | | Suggested by: YongHyeon PYUN MFC after: 7 days
| * Enable HT40 (40MHz channel width) support.bschmidt2011-06-041-1/+1
| |
| * Only consider QoS frames for TX packet aggregation.bschmidt2011-06-041-1/+2
| |
| * The firmware of 4965 series adapters seems to die while trying to sendbschmidt2011-06-041-6/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | probe requests at 1Mbps while being associated on a 5GHz channel. Sending those at 6Mbps does work, so use that instead during a background scan. This workaround allows us to re-enable background scan support for the 4965 adapters. Also, just enabling one antenna on 5GHz results in better reception of beacons: test 00:26:5a:c6:14:1a 40 54M -71:-95 200 E WME HTCAP ATH vs test 00:26:5a:c6:14:1a 40 54M -92:-95 200 E WME HTCAP ATH Due to roam:rssi thresholds set to 7 by default it might have been impossible to associate to that network. While here use IEEE80211_IS_CHAN_5GHZ() to determine the band.
| * - Improve error handling.andreast2011-06-041-23/+45
| | | | | | | | | | | | | | | | | | - Add a retry loop for the i2c sensor reading. - Check on busy status of the chip and on invalid values. - Fix a typo in a comment. - Replace the constant 2732 with the ZERO_C_TO_K macro. Approved by: nwhitehorn (mentor)
| * Replace the FCU_ZERO_C_TO_K with the ZERO_C_TO_K from powermac_thermal.h.andreast2011-06-041-7/+5
| | | | | | | | Approved by: nwhitehorn (mentor)
| * Commit radar detection changes missed by my previous commit.adrian2011-06-041-1/+1
| |
| * A few changes to make radar detection implementable in a hal_dfs/adrian2011-06-043-2/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | module. * If sc->sc_dodfs is set to 1 by the ath_dfs_radar_enable(), set the relevant rx filter bit to begin receiving radar PHY errors. The HAL code already knows how to set the relevant error mask register to enable radar events. * Add a missing call to ath_dfs_radar_enable() after ath_hal_reset() * change ath_dfs_process_phyerr() to take a const char *buf for now, rather than a descriptor. This way it can get access to the packet buffer contents.
| * - Rename the Cronyx Omega2-PCI entry to Exar XR17C158 since that is thejhb2011-06-031-13/+27
| | | | | | | | | | | | | | | | | | | | real owner of the device ID. Also rename the associated config function while here. - Add support for the 2-port and 4-port Exar parts as well: Exar XR17C/D152 and Exar XR17C154. Tested by: Mike Tancsa, Willy Offermans Willy of offermans rompen nl MFC after: 1 week
| * - Improve error handling.andreast2011-06-031-11/+33
| | | | | | | | | | | | | | | | | | - Add a retry loop for the i2c sensor reading. - Update the sensor handling for sensors which do not have a location entry. [1] Submitted by: [1] Justin Hibbits. Approved by: nwhitehorn (mentor)
OpenPOWER on IntegriCloud