summaryrefslogtreecommitdiff
path: root/sys/dev/pci
AgeCommit message (Collapse)Author
2011-04-15Remove dead assignments and one newly created unused variable.Charles Longeau
Found by LLVM/Clang Static Analyzer. ok henning@ krw@ claudio@
2011-04-14add support for VIA VT6415 & VX900 IDEJonathan Gray
2011-04-14regenJonathan Gray
2011-04-14VIA VX900 IDEJonathan Gray
2011-04-14the mechanical part of 82580 support, more to comeJonathan Gray
ok claudio@
2011-04-14Spacing nit.Owain Ainsworth
2011-04-14For the time being repost Intel clarkdale IGD.Owain Ainsworth
Arrandale (on laptop i3 and i5) was already doing this, but Clarkdale (the desktop chipsets) wasn't. This gives mikeb@'s desktop a chance to get the video back on resume. While here, remove the vendor/subvendor ids from the Arrandale entry. Just because someone doesn't have the same laptops as tested doesn't mean inteldrm magically has the ability to restore the graphics chip. This is possible to do without repost but fiddly and will take me a while to sort out, so just repost the whole sodding lot for now. ok ketteis@, deraadt@, mikeb@
2011-04-14do not disable interrupts in the isr and then enable them againDavid Gwynne
when leaving. when you're handling an interrupt it is masked. whacking the chip is work for no gain. modify the interrupt handler so it only processes the rings once, rather than looping over them until it runs out of work to do. looping in the isr is bad for several reasons: firstly, the chip does interrupt mitigation so you have a decent/predictable amount of work to do in the isr. your first loop will do that chunk of work (ie, it pulls off 50ish packets), and then the successive looping aggressively pull one or two packets off the rx ring. these extra loops work against the benefit that interrupt mitigation provides. bus space reads are slow. we should avoid doing them where possible (but we should always do them when necessary). doing the loop 5 times per isr works against the mclgeti semantics. it knows a nic is busy and therefore needs more rx descriptors by watching to see when the nic uses all of its descriptors between interrupts. if we're aggressively pulling packets off by looping in the isr then we're skewing this check. ok henning@ krw@ testing by sthen@
2011-04-13to quote from the gospel of bus_dma.9:David Gwynne
Synchronization operations are expressed from the perspective of the host RAM, e.g., a device -> memory operation is a READ and a memory -> device operation is a WRITE. the status block that the isr reads is written to by the device. the chip writes to memory, it is therefore a READ. this also adds the preread sync when the map is set up and the postread sync when the map is torn down for better symmetry. there are probably more issues like this in the code, but this is a start. discovered while discussing another diff with claudio@
2011-04-13modify the interrupt handler so it only processes the rings once,David Gwynne
rather than looping over them until it runs out of work to do. looping in the isr is bad for several reasons: firstly, the chip does interrupt mitigation so you have a decent/predictable amount of work to do in the isr. your first loop will do that chunk of work (ie, it pulls off 50ish packets), and then the successive looping aggressively pull one or two packets off the rx ring. these extra loops work against the benefit that interrupt mitigation provides. bus space reads are slow. we should avoid doing them where possible (but we should always do them when necessary). doing the loop 5 times per isr works against the mclgeti semantics. it knows a nic is busy and therefore needs more rx descriptors by watching to see when the nic uses all of its descriptors between interrupts. if we're aggressively pulling packets off by looping in the isr then we're skewing this check. ok deraadt@ claudio@ this is like src/sys/dev/pci/if_ix.c r1.50.
2011-04-13modify the interrupt handler so it only processes the rings once, ratherDavid Gwynne
than looping over them until it runs out of work to do. in my testing i have found that under what i consider high pps (>160kpps) ix would loop 4 or 5 times in the interrupt handler, where each loop does a bus_space_read and the mclgeti loop (ie, rx dequeue followed by rx ring fill). looping in the isr is bad for several reasons: firstly, the chip does interrupt mitigation so you have a decent/predictable amount of work to do in the isr. your first loop will do that chunk of work (ie, it pulls off 50ish packets), and then the successive looping aggressively pull one or two packets off the rx ring. these extra loops work against the benefit that interrupt mitigation provides. bus space reads are slow. we should avoid doing them where possible (but we should always do them when necessary). doing the loop 5 times per isr works against the mclgeti semantics. it knows a nic is busy and therefore needs more rx descriptors by watching to see when the nic uses all of its descriptors between interrupts. if we're aggressively pulling packets off by looping in the isr then we're skewing this check. ok deraadt@ claudio@ testing by phessler@ bluhm@ and me in production
2011-04-12regenJonathan Gray
2011-04-12add some entries from submitted dmesgsJonathan Gray
2011-04-12We need to delay 10msec after changing to/from D3 state. note: There areTheo de Raadt
some broken intel chipsets that require longer delays, we will cope with that later hopefully. ok kettenis
2011-04-10Merge viapm and viaenvAlexandr Shadchin
Pluses: - Add support SMBus for VT82C596, VT82C596B, VT82C686A, VT8231 - Add support ACPI timer for all VIA South Bridges ok deraadt@, tested sthen@
2011-04-10bring back changes in r 1.192:Jacob Meuser
detach happens after the hardware is gone, so don't try to touch the hardware in the detach path but azalia_pci_detach is called if the device coiuld not be initialized. in that case, shut the hardware down.
2011-04-09use unique wait channelsTheo de Raadt
2011-04-08backout previous (which has some interrupt spin problem, sort of diagnosedTheo de Raadt
by claudio to be related to this commit) until jakemsr has time to fix it
2011-04-07Do not use NULL in integer comparisons. No functional change.Miod Vallat
ok matthew@ tedu@, also eyeballed by at least krw@ oga@ kettenis@ jsg@
2011-04-07Avoid using an uninitialized variable when downgrading PIO mode too much onMiod Vallat
ITExpress chipsets. (similar to 1.243, with a deja vu)
2011-04-06move ips to iopools. its the usual drill, io between volumes is nowDavid Gwynne
scheduled better, ioctl paths are more reliable, and it removes NO_CCB. ok krw@
2011-04-05We only use the io space in em_reset_hw() on a few MAC typesJonathan Gray
and it does not exist at all on newer hardware so only map it on those types we are interested in. Fixes "PRO/1000 PT (82575EB)" for Sylvain Desveaux and will also be required for at least 82580. ok claudio@
2011-04-05mechanic rename M_{TCP|UDP}V4_CSUM_OUT -> M_{TCP|UDP}_CSUM_OUTHenning Brauer
ok claudio krw
2011-04-05Passing M_WAITOK to mbuf functions is supposed to be a contract betweenBret Lambert
the caller and the function that the function will not fail to allocate memory and return a NULL pointer. However, m_dup_pkthdr() violates this contract, making it possible for functions that pass M_WAITOK to be surprised in ways that hurt. Fix this by passing the wait flag all the way down the functions that actually do the allocation for m_dup_pkthdr() so that we won't be surprised. man page update forthcoming ok claudio@
2011-04-04detach happens after the hardware is gone, so don't try to touchJacob Meuser
the hardware in the detach path
2011-04-04The backplane version of the 82575EB has no link state -- it's alwayswilliam
up. From FreeBSD. ok jsg claudio
2011-04-03Another driver made safer for big mem by dma_alloc/dma_free'ingKenneth R Westerback
memory used for i/o. ok dlg@ deraadt@
2011-04-03use nitems(); no binary change for drivers that are compiled on amd64.Jasper Lievisse Adriaanse
ok claudio@
2011-04-03No need to include uvm/uvm_extern.h and fix a typo.Claudio Jeker
Both found by miod@
2011-04-03Use a own "bounce buffer" that is used to send and receive packets.Claudio Jeker
This allows bce to run properly on systems with more then 1G of physical memory. It also makes the driver a lot simpler since the DMA rings are now mostly static. bce is short for bcopy ethernet. OK dlg@, just commit it deraadt@
2011-04-02correctly handle data underruns. this makes things like ses(4) and safte(4)David Gwynne
work (they send big buffers to devices and expect less so they dont have to do two ops for one read), and would make lun probes work again, etc. based on the solaris code supplied by lsi.
2011-04-02Kill a lot of spaces and make this a bit more KNF. No binary change.Claudio Jeker
2011-03-23regenJonathan Gray
2011-03-23add a bunch of new em/ix devices found in intel driversJonathan Gray
2011-03-22Support for NetMos Nm9922 dual serial port cardsMike Larkin
ok deraadt@
2011-03-22Support for NetMos Nm9922 dual serial port cardsMike Larkin
ok deraadt@
2011-03-22Support for NetMos Nm9922 dual serial port cardsMike Larkin
ok deraadt@
2011-03-14Accept broadcast frames so MCR0_BROADCAST bit must be zero;Kevin Lo
from Anton Maksimenkov
2011-03-13Wake On LAN support for vr(4).Stefan Sperling
ok deraadt
2011-03-13Wake On LAN support for re(4).Stefan Sperling
ok deraadt
2011-03-09HW stats debugging via ifconfig emX debug instead ofMarco Pfatschbacher
a global em_display_debug_stats variable. OK mcbride, matthew, deraadt, henning.
2011-03-04gather most pci conf register manipulation into a new function,Jacob Meuser
azalia_configure_pci(). use that function in azalia_attach() and azalia_resume(). fixes post-resume "static" during playback for some machines with ATI chipsets.
2011-03-02- change recieved -> received in comments, as well as two unused definesJasper Lievisse Adriaanse
in pxe.h. ok deraadt@ sthen@
2011-02-24we want to look up the device attached to a raid volume by its address onDavid Gwynne
the bus, not which bioctl volume id it is. ok mikeb@ krw@ miod@
2011-02-22Disable PCIe Active State Power Management (ASPM) to avoid bge(4) randomlyRobert Nagy
detaching from the bus on some of the machines. tested by many, ok miod@
2011-02-22In drm_modeset_ctl make sure to check the (now signed) value is > 0 asOwain Ainsworth
well as < the array length. ok kettenis@, mikeb@ (who suggested the same fix) and marco@. "get that fixed" deraadt@.
2011-02-21usage: mt [-f device] command [count]David Gwynne
most of the work and bug fixes were done by mikeb@, i put it in ioctl form. ok mikeb@ and miod@ tested by me an earlier revision was tested by Łukasz Czarniecki who also reported the problem in the first place.
2011-02-18alc_newbuf is always called from the interrupt context so it can't sleep;Mike Belopuhov
tested by Gabriel Linder, ok kevlo, miod
2011-02-17if changing the default speaker connection, be sure it's both aJacob Meuser
valid connection and a valid converter. fixes speaker auto-mute for some IDT codecs. ok miod@
2011-02-17the number of widget connections isn't necessarily the same as theJacob Meuser
number of widget connection list entries. if the high bit is set in a connection list entry, all widgets between the previous and current entry are connected. go through the connection list entry once to figure out how many connections there are, then go through it again to build the connection list. ok miod@