summaryrefslogtreecommitdiff
path: root/sys/dev/pci
AgeCommit message (Collapse)Author
2011-09-15Fix up age_encap() / age_start()..Kevin Lo
- Remove unnecessary nsegs variable from age_encap() and use map->dm_nsegs. Also remove unnecessary FreeBSD check for 0 DMA segments check. - Remove printfs in age_encap() failure paths that shouldn't be there. - Add missing IF_PREPEND() from failure path coming off of age_encap() within age_start(). - Fix error handling within age_encap(). Previously age_encap() was attempting to unload a DMA map upon failure from bus_dmamap_load_mbuf() even though one wasn't loaded at that point and then always forcing mbufs through the EFBIG path. Tested by Thomas Pfaff. From Brad.
2011-09-14Initial kernel support for sandybridge intel chipsets in intagp and inteldrm.Owain Ainsworth
Far from perfect. Extra (almost essential) features like the extra ringbuffers are not yet supported (I have half a diff), but this and the appropriate ddx patches allow modesetting and basic shadow acceleration. Initial work by jcs@, a few cleanups and bugfixes by me. Tested by many on all appropriate chipsets. ok kettenis@
2011-09-13Fix up ale_encap() / ale_start():Kevin Lo
- Remove unnecessary nsegs variable from ale_encap() and use map->dm_nsegs. Also remove unnecessary FreeBSD check for 0 DMA segments check. - Remove printfs in ale_encap() failure paths that shouldn't be there. - Add missing IF_PREPEND() from failure path coming off of ale_encap() within ale_start(). - Fix error handling within ale_encap(). Previously ale_encap() was attempting to unload a DMA map upon failure from bus_dmamap_load_mbuf() even though one wasn't loaded at that point and then always forcing mbufs through the EFBIG path. Tested by Johan Torin. From Brad
2011-09-13Fix up alc_encap() / alc_start():Kevin Lo
- Remove unnecessary nsegs variable from alc_encap() and use map->dm_nsegs. Also remove unnecessary FreeBSD check for 0 DMA segments check. - Remove printfs in alc_encap() failure paths that shouldn't be there. - Add missing IF_PREPEND() from failure path coming off of alc_encap() within alc_start(). - Fix error handling within alc_encap(). Previously alc_encap() was attempting to unload a DMA map upon failure from bus_dmamap_load_mbuf() even though one wasn't loaded at that point and then always forcing mbufs through the EFBIG path. Tested by Gabriel Linder. From Brad
2011-09-12Clamp a maximum number of outstanding requests at 40 as it wasMike Belopuhov
figured out the hard way by senior Pedro. Performance decreased severely with newer firmwares when ioc was stuffed with requests. Unfortunately it still remains a magic number as LSI doesn't clearly document what it has to be (controllers report some meaningless values like 3167 and 1952). ok dlg
2011-09-05Enable MSI support and fix establishing a link to a GigE link partnerKevin Lo
from a FastE ale(4) controller. Previously only link parters which support down-shifting were able to establish a link. Tested by roberth, Johan Torin and sthen@ From Brad
2011-09-04regenMark Kettenis
2011-09-04There is no such thing as the "Intel Centrino Advanced-N 6005".Mark Kettenis
2011-09-04regenMark Kettenis
2011-09-04Add entry for Intel Z68 LPC and correct the H61 LPC entry (pointed out byMark Kettenis
Martin Pelikan).
2011-09-04syncStuart Henderson
2011-09-04Add PCI ids for D-Link DGE-530T C1 GigE NIC and the ServerWorks HT-1100 SATAStuart Henderson
controllers. From Brad.
2011-09-03Help prevent watchdog timeouts.Kevin Lo
Tested by roberth <robert at openbsd dot pap dot st> and Johan Torin. From Brad
2011-09-03Disable PHY hibernation. The PHY will go into sleep state when itKevin Lo
detects no established link and it will re-establish link when the cable is plugged in. Previously it failed to re-establish link when the cable was plugged in such that it required turning the interface down and then up to make it work. This was caused by incorrectly programmed hibernation parameters. Further details regarding PHY setup are necessary to be able to re-enable this feature. Tested by Matteo Filippetto and Gabriel Linder From FreeBSD via Brad
2011-09-02Differential gain calibration makes the 6005 firmware crap out, so skip it forMark Kettenis
now until we figure out why. This probably means the device won't function optimally, but that's better than not functioning at all. Makes my "Intel Centrinto Advanced-N 6205" work quite well.
2011-09-01The 6005 and 6050-based parts need DC calibration turned on, otherwise theMark Kettenis
firmware will crap out, at least on the 6005. First step to getting my "Intel Centrino Advanced-N 6205" to work.
2011-08-30regenMartin Pieuchot
2011-08-30Add another GeForce 8400 GSMartin Pieuchot
2011-08-30Don't OR the VID, we want the whole TCI, this makes vlanprio (PCP/CF)Christiano F. Haesbaert
available to our network stack. ok mcbride naddy henning
2011-08-29dont use a semaphore (which doesnt block interrupts in the criticalDavid Gwynne
section) to protect the completion ring. mpii_poll can be in the middle of the critical section when an interrupt is generated, but because something is already in the critical section the isr cant clear the condition causing the interrupt and you spin forever entering the isr and being forced to exit it without doing any work by the semaphore. this moves to protecting the completion ring with a vanilla mutex. work taken off the ring is stuck on local lists in the isr to be completed outside the mutex in case a completion path issues a polled command which will try to call the isr which tries to mutex_enter while the previous call on the stack would be holding the mutex... this diff is large because of the list changes needed to support the local lists in mpii_intr. issue found by bluhm@ and debugged by Christian Ehrhardt
2011-08-26Prevent watchdog timeouts; tested by Thomas PfaffKevin Lo
From Brad
2011-08-26Move the comment outside of the VLAN section of code and above thatKevin Lo
chunk to where it should be. From Brad
2011-08-22Add support for Radeon 4250.Christiano F. Haesbaert
This, together with an updated xorg driver makes my drm/XVideo work. Originally from Nigel Taylor. ok oga@ mcbride@
2011-08-21Help with the watchdog timeouts seen when unplugging the cable fromKevin Lo
the alc(4) NIC while running or the NIC not working if the cable is not plugged in upon boot up. From Brad; tested by matteo filippetto, Gabriel Linder and edd@
2011-08-20Don't wait for FR to come on after setting the FRE bit in the port commandMark Kettenis
register. The spec doesn't say we have to do this while it mentions several times one needs to wait for FR to clear after clearing FRE. The Linux driver doesn't wait for it either. This allows us to get rid of the AHCI_F_IGN_FR quirk. As a side-effect this diff will probably stop ahci(4) attaching to (some) NVIDIA fakeRAID devices. That's good since it is consistent with what we do for Intel fakeRAID. ok mikeb@, jmatthew@
2011-08-08myx requires the driver pad short ethernet frames to 60 bytes byDavid Gwynne
adding a descriptor pointing at zeroed bytes onto the end of transmit chains. i was accounting for this extra descriptor when i was completing the chain, but not when i was setting this up. this meant the number of free descriptors kept growing until it overflowed. at this point the check for space in the ring failed and packets no longer flowed. this counts the pad descriptor in the tx chain setup too. ok deraadt@
2011-07-31Add support for the Ricoh 5U823 SD/MMC controller found on the x220.Mark Kettenis
ok deraadt@, phessler@
2011-07-31regenMark Kettenis
2011-07-31Fix typo in Ricoh 5U823 SD/MMC entry.Mark Kettenis
ok deraadt@
2011-07-26do not describe where DELAY comes from; pointed out by austin; ok jsgTheo de Raadt
2011-07-21Index the sensor array starting from 0 not sc_vd_id_low. On my R310 thisStuart Henderson
is 1 so there, this avoids writing past the end of malloc'd space during init. Also means the correct sensor address is registered so sysctl hw.sensors works. Was: hw.sensors.mpii0.drive0=unknown (sd0), UNKNOWN Now: hw.sensors.mpii0.drive0=online (sd0), OK ok dlg@
2011-07-20For now, disable msi interrupts. Reading through the linux driver oneMarco Peereboom
gets the impression that there are all kinds of preconditions and a whitelist as well. I will be working on this whitelist but for now disable it because it is hanging at boot for several people. ok deraadt
2011-07-20spell FALLTHROUGH correctlyStuart Henderson
2011-07-17Backout a bunch of my SCSI commits from c2k11. At least one of theseMatthew Dempsky
is causing problems when trying to boot sparc64 from an isp(4). Verified to fix the sparc64/isp(4) regression by krw@; ok deraadt@
2011-07-15Cope with the start-dma-before-init errata and some other register setupTheo de Raadt
errata for the Serverworks SATA chipset found on the macppc xserve G5. ok jmc
2011-07-11pass the interface for non-compat-mode piix. from netbsd.joshua stein
ok deraadt@ jsg@
2011-07-08First batch of converting SCSI HBAs from setting saa_targets andMatthew Dempsky
saa_luns instead of adapter_buswidth and luns in the prototype link. ok dlg@, miod@
2011-07-08Fix WoL support in xl(4). Now works with my hardware (3Com 3c905C).Stefan Sperling
ok deraadt
2011-07-07use IF_LEN/IFQ_LEN to access and ifqueue's length field. ryan okHenning Brauer
with this nothing in the tree fiddles if ifqueue internals any more, of course except if.c and if.h (and some altq)
2011-07-07i NEVER NEVER NEVER want to see ifqueue->ifq_len = anything. sorry, that isHenning Brauer
horrid and must be wrong. now in this case it is actually harmless - but setting them to 0 just after having malloc'd it with M_ZERO is pointless to begin with. ok claudio
2011-07-06cosnistently use IFQ_SET_MAXLEN, surfaced in a discussion with + ok bluhmHenning Brauer
2011-07-06so... there is some crazy bug exposed on non-ironlake chips, when theTheo de Raadt
ironlake interrupt handler is changed. some nasty bug lurks in here, and any binary change randomly exposes this and screws up the chip. back this out for now; until it is found. ok oga
2011-07-05Call bzero(&saa, sizeof(saa)) each time we use saa to attachMatthew Dempsky
something. Doesn't matter right now because scsibus_attach_args only has one field and it's mandatory, but I'm planning to move some more fields from scsi_link to scsibus_attach_args+scsibus_softc. ok dlg@
2011-07-05Stupid driver makes a copy of struct pci_attach_args. Make sure we clearMark Kettenis
the MSI enabled flag there such that the driver actually pays attention to it. Found out the hard way by Chris Smith on an 82540EM, which defenitely does not like MSI. ok deraadt@
2011-07-04Temporarily back out msi for inteldrm.Owain Ainsworth
Some gm45 and 965 are having issues and this fixes it for halex at least. Art's machine (945gm) is also playing up but he didn't update for a year (and the problem doesn't look like what i would expect).
2011-07-04Use the SDEV_2NDBUS flag like isp(4) instead of the currentMatthew Dempsky
scsi_link::scsibus hack to determine which channel the link is associated with. "looks sane" dlg@, but haven't found any testers yet; committing so further SCSI refactorings can go in. dlg@ or I will back out or fix if anything breaks.
2011-07-04Intel AHCIs don't support port multipliers so far, yet some (mostly ICH9 and ↵Jonathan Matthew
3400 series) report that they do, and some BIOSes for those chipsets don't clear the capability bit like they're supposed to. Since we know it doesn't work, don't check for port multipliers on these controllers. Replaces my earlier hack for a specific 3400 series device. ok kettenis@ phessler@
2011-07-03in the ironlake interrupt handler, do not do unneccesary registerTheo de Raadt
accesses. we don't need to disable the interrupt on the chip. if the interrupt isn't for us, then we should not write to lots of registers, either. ok oga, tested by lots of people in snapshots
2011-07-03Rip out and burn support for UVM_HIST.Owain Ainsworth
The vm hackers don't use it, don't maintain it and have to look at it all the time. About time this 800 lines of code hit /dev/null. ``never liked it'' tedu@. ariane@ was very happy when i told her i wrote this diff.
2011-07-03Remove config_activate() and DVACT_ACTIVATE. PCMCIA's the only thingMatthew Dempsky
that's ever used it, and it's long since been changed to use DVACT_{QUIESCE,SUSPEND,RESUME} instead. ok deraadt@, dlg@; miod@ also agreed with this idea when I brought it up a few weeks ago