summaryrefslogtreecommitdiffstats
path: root/sys/pci
Commit message (Collapse)AuthorAgeFilesLines
* Do the dreaded s/dev_t/struct cdev */phk2004-06-165-13/+13
| | | | Bump __FreeBSD_version accordingly.
* Use NG_FREE_MSG() instead of FREE().phk2004-06-131-1/+1
|
* Replace handrolled CRC calculation with ether_crc32_[lb]e().naddy2004-06-0911-291/+36
|
* Add missing <sys/module.h> includesphk2004-05-3022-0/+22
|
* Add some missing <sys/module.h> includes which are masked by thephk2004-05-301-0/+1
| | | | one on death-row in <sys/kernel.h>
* Switch to using C99 sparse initialisers for the type methods array.julian2004-05-291-12/+9
| | | | | | | | Should make no binary difference. Submitted by: Gleb Smirnoff <glebius@cell.sick.ru> Reviewed by: Harti Brandt <harti@freebsd.org> MFC after: 1 week
* Wrap the code to save/restore PCI config registers on suspend/resume injhb2004-05-242-0/+10
| | | | | | #ifndef BURN_BRIDGES. Noticed by: phk
* Only initialize the if_sis callout as MPSAFE if debug.mpsafenet is setrwatson2004-05-231-1/+4
| | | | | | | true. Otherwise, assertion checks for Giant in the network stack will fail causing a panic. Reported by: simon
* A handler for ioctl(SIOCSIFCAP) should not alter a bit inyar2004-05-234-4/+8
| | | | | | | if_capenable unless the interface driver is actually able to toggle the respective capability on and off. Reviewed by: ru
* Use __FBSDID.mux2004-05-231-2/+3
|
* In agp_generic_bind_memory(), grab the needed pages before acquiringmux2004-05-231-30/+42
| | | | | | | the agp mutex. We do this because vm_page_grab() called with the VM_ALLOC_RETRY flag can sleep. Pointed out by: alc
* Get rid of a lockmgr consumer by making agp(4) use a standard mutex,mux2004-05-229-20/+11
| | | | | since it's always acquiring the lock exclusively. This was tested with X on an SMP box, with and without WITNESS.
* Plug three lock leaks.mux2004-05-221-0/+3
|
* Add explicit list of SiS AGP chipsets based on Linux kernel's list.anholt2004-05-191-0/+36
| | | | Prompted by: i386/59503
* Replace the lame big endian crc with wpaul's standard big endian crcimp2004-05-191-23/+9
| | | | | | | | | | | algorithm, supplied by wpaul himself. The lame one has an origin that's been called into question, so rather than argue about that (one could make an excellent fair use argument), replace it with better code since that's what FreeBSD is about. Submitted by: wpaul[1], Klaus Klein [1] Bill called this a silly bikeshed. Maybe his is not incorrect.
* Different VIA host bridges use different offsets to their AGP configjhb2004-05-132-9/+41
| | | | | | | | | | | registers, so add a register offset array to the softc. We key off the device ID to determine which set of register offsets. Currently the 8385 host bridge used on amd64 is the only bridge to use the AGP3_VIA_* register offsets and all other bridges use the AGP_VIA_* offsets. It is currently unclear if the AGP3_VIA_* offsets are for VIA bridges that implement AGP 3.0 bridges or just for amd64 bridges. Submitted by: Kenneth Culver culverk at sweetdreamsracing dot biz
* Remove old cy driver files. They have been repo-copied to sys/dev/cy andbde2004-05-021-198/+0
| | | | sys/dev/ic and adjusted to work there.
* Push down the responsibility for zeroing a physical page from thealc2004-04-242-4/+0
| | | | | | | | | | | | | caller to vm_page_grab(). Although this gives VM_ALLOC_ZERO a different meaning for vm_page_grab() than for vm_page_alloc(), I feel such change is necessary to accomplish other goals. Specifically, I want to make the PG_ZERO flag immutable between the time it is allocated by vm_page_alloc() and freed by vm_page_free() or vm_page_free_zero() to avoid locking overheads. Once we gave up on the ability to automatically recognize a zeroed page upon entry to vm_page_free(), the ability to mutate the PG_ZERO flag became useless. Instead, I would like to say that "Once a page becomes valid, its PG_ZERO flag must be ignored."
* Add support for the AMD 8111.obrien2004-04-201-2/+4
|
* Use BSD spelling, no SysV.obrien2004-04-191-1/+1
|
* Boomerang 10/100BT (found in 2c905-TX) chips apparently suffer theimp2004-04-131-0/+1
| | | | | | | | same problems as their Hurricane 575* bretheren in that one could set the memory mapped port, but that has no effect. Add a quirk for this. # I'll have to see if I can dig up documentation on these parts to see # if there's someway software can know this other than a table...
* Implemented per-interface polling(4) control.ru2004-04-111-1/+14
|
* Implemented per-interface polling(4) control.ru2004-04-111-1/+12
|
* Implemented per-interface polling(4) control.ru2004-04-111-1/+13
|
* Implemented per-interface polling(4) control.ru2004-04-111-1/+13
|
* First driver with user-configurable polling(4).ru2004-04-111-1/+13
|
* Actually fix the TX performance with polling(4) enabledru2004-04-062-2/+2
| | | | | | | by increasing the TX list size from 64 to 128, which is adequate for HZ=1000. Submitted by: Vsevolod Lobko
* - Improved the TX performance with polling(4) by only checking theru2004-04-062-16/+11
| | | | | | | | | | | | | status registers for error conditions and updating statistics when there are cycles left (inspired by the nge(4) driver). - Removed the TX list counter and the producer/consumer gap; it's enough to just ensure we don't reuse the last (free) descriptor, as the chip may not have read its next pointer yet. If we reuse it, the TX may stall under a heavy TX load with polling enabled. - Dropped code to recharge the watchdog timer, it's pointless; the watchdog routine will re-init the chip and both RX and TX lists.
* - Rewritten TX to use only two pointers to track producer/consumer.ru2004-04-052-127/+161
| | | | | | - Added polling(4) support! - Bugfix: don't forget to set IFF_OACTIVE when TX list is full. - Minor: tidy up vr_encap().
* Converted the isa probe and attach to new-bus so that this driver worksbde2004-04-051-2/+2
| | | | | | | | | | | | | | | | | | | | | without the (defunct) isa compatibility shims. The new-bus-specific parts are very similar to the ones for the pci probe and attach. This was held up too long waiting for a repo copy to src/sys/dev/cy, so I decided to fix the files in their old place. This gives easier to read and merge diffs anyway. The "count" line in src/sys/conf/files won't be changed until after the repo copy, so old kernel configs that specify a count need not be (and must not be) changed until then. The count is just ignored in the driver. One unfinished detail is dynamic allocation of arrays with <count> and (<count> * 32) entries, and iteration over the arrays. This is now kludged with a fixed count of 10 (up to 10 cards with up to 32 ports each). Prodded by: imp Submitted by: mostly by imp Approved by: imp
* Add register definitions for the status and command registers for AGP.imp2004-04-051-0/+22
| | | | | PR: 64846 Submitted by: Samy Al Bahra
* Add the ability to disable agp devices at the loader prompt. Usage isnjl2004-04-037-0/+14
| | | | | | hint.agp.0.disabled="1" Submitted by: jhb
* Recharge the watchdog timer if there's still some TX work left.ru2004-04-031-0/+2
|
* Before MFC'ing the previous commit, I noticed I'd left out a case.peadar2004-04-031-0/+1
| | | | | | | Add in missing case for i845G in the attach routine. I'll MFC this with the rest of the change after the 4.10 codefreeze lifts. Reviewed By: Doug Rabson
* Fixed a few bugs in the rl(4) driver:ru2004-04-031-8/+10
| | | | | | | | | | | | | | | | | | | | Under polling(4), we counted non-existent output packets and wasted CPU cycles, corrected. (PR kern/64975.) The fix in revision 1.71 to correct resetting of the watchdog timer was wrong. In rl(4), the TX list does not have a gap between the consumer and producer, so the "empty TX list" test was wrong, corrected. Also, resetting the timer to five each time we know there is still some TX work to do was a bad idea -- under polling(4), if the chip goes out to lunch, this results in the watchdog routine to _never_ be called. Instead, let the timer downgrade to zero and fire the watchdog, then reset it to five when it is zero AND there is some TX work left. (Most other network drivers need this fix too.) MFC after: 3 days
* Performance tuning.ru2004-04-022-41/+45
| | | | | | | | | | | | | | | | | | | | | | Moved the RX ring resyncing code to ste_rxeoc(), and only run it if we were asked to POLL_AND_CHECK_STATUS, under DEVICE_POLLING. (This significantly reduces the CPU load.) Improved the RX ring resyncing code by re-checking if the head is still empty before doing resyncing. This mostly affects the DEVICE_POLLING mode, where we run this code periodically. We could start checking with an empty head (well, an empty ring even), and after doing a few iterations, the chip might write a few entries, including the head, and we would bogusly consider this case as requiring resyncing. On a test box, this reduced the number of resyncs done by a factor of 10. In ste_txeof(sc), only reset the watchdog timer to zero when the TX list is completely empty. Converted ste_tx_prev_idx to a pointer -- faster. Removed some bitrot.
* Moved the statistical counter under hw.ste.rxsyncs.ru2004-04-011-1/+3
| | | | Suggested by: njl
* Under a heavy RX load, at least with D-Link DFE-550TX adapters,ru2004-03-311-1/+18
| | | | | | | | | | | | | | | | | | | the driver's RX ring head may fall behind the chip, causing the stuck traffic, disordered packets, etc. Work around this by adopting the technique of resyncing RX head used in dc(4) and xl(4) drivers, but do it in a slightly different place to reduce the number of resyncs needed. Also, set the NIC's RX polling period to a more meaningful value, to stop overloading the PCI bus (this also reduces the number of resyncs by a factor of 3 or more in a long run; the actual number is very dependent on a nature of the traffic). Maintain the statistics counter as the hw.ste_rxsyncs sysctl. In cooperation with: Vsevolod Lobko OK'ed by: ambrisko MFC after: 5 days
* Added polling(4) support for ste(4).ru2004-03-312-3/+80
| | | | MFC after: 5 days
* Support the D-Link DGE-530T. Mine appears to have a blank eeprom, so assumemckay2004-03-312-1/+28
| | | | | | | | | | they all do and handle that without alarming the user. Also pull in a bit of defensive code from OpenBSD that triggers when a card is recognised but not properly classified as either Genesis or Yukon. Not that I could ever have needed this. :-) Obtained from: OpenBSD/NetBSD (partially) MFC after: 2 weeks
* Switch ste_encap() over to using m_defrag().ru2004-03-301-14/+2
| | | | | | | | No functional change, the previous ste_encap() was correct WRT long mbuf chains; this just reduces code duplication. MFC after: 3 days Prodded by: ambrisko
* Properly reprogram the hardware when IFF_ALLMULTI flag is set.ru2004-03-241-0/+3
|
* solid reports that it is buggy *and* that it slows down transmitsilby2004-03-191-0/+20
| | | | | | | | | speed. Buggy report: Matt Dillon & others Slowness report: I can't find the e-mail MFC After: 1 minute
* Convert callers to the new bus_alloc_resource_any(9) API.njl2004-03-1723-86/+70
| | | | | Submitted by: Mark Santcroos <marks@ripe.net> Reviewed by: imp, dfr, bde
* Announce ethernet MAC addresss in ether_ifattach().mdodd2004-03-1413-63/+2
|
* Recognise the 82845G AGP bridge, and poke it appropriately atpeadar2004-03-131-0/+5
| | | | | | | | | | | | attach/detach time. Assigning the default behaviour to this particular device is incorrect, corrupting the video BIOS aperture, and breaking VESA support in the kernel and XFree86. Reviewed By: dfr MFC after: 1 week PR: kern/62906
* Stop setting ifp->if_output to ether_output() since ether_ifattach()mux2004-03-1112-12/+0
| | | | does it for us already.
* Device megapatch 4/6:phk2004-02-213-0/+6
| | | | | | | | Introduce d_version field in struct cdevsw, this must always be initialized to D_VERSION. Flip sense of D_NOGIANT flag to D_NEEDGIANT, this involves removing four D_NOGIANT flags and adding 145 D_NEEDGIANT flags.
* Device megapatch 1/6:phk2004-02-212-4/+0
| | | | | | | Free approx 86 major numbers with a mostly automatically generated patch. A number of strategic drivers have been left behind by caution, and a few because they still (ab)use their major number.
* This is not a D_TTY driver.phk2004-02-151-1/+0
|
OpenPOWER on IntegriCloud