| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
PR: kern/126097
Submitted by: Anton Kartashev <amokk@seb.org.ua>
Approved by: imp (mentor, implicit)
MFC after: 3 days
|
|
|
|
|
| |
on the ee16 parts rather than explicitly registering an event handler
that wasn't being torn down on detach.
|
|
|
|
|
|
|
| |
- Remove D_NEEDGIANT as the rtc drivers already have their own locks, so
this doesn't need Giant.
MFC after: 1 week
|
|
|
|
|
|
|
| |
tested:
PR: amd64/126090
MFC after: 1 week
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
proved to be necessary to make the static drivers work
in EITHER/OR or BOTH configurations. Modules will still
build in sys/modules/igb or em as before.
This also updates the igb driver for support for the 82576
adapter, adds shared code fixes, and etc....
MFC after: ASAP
|
| |
|
|
|
|
|
|
| |
semaphores rather than 4 byte operations.
MFC after: 1 month
|
|
|
|
|
|
| |
Shared code changes, core driver fixes, vlan event/filter support
Also Kip Macy's fix to allow any number of queues, thanks Kip!
|
| |
|
| |
|
|
|
|
|
| |
space access in device probe.
Also nuke referencing softc in device probe.
|
|
|
|
|
| |
Don't hard code function name in device_printf() and use __func__.
While I'm here nuke bfe_unit in softc as it's not needed anymore.
|
|
|
|
|
|
| |
revision and (on Prism cards) the primary firmware revision via
sysctl. Move the printing of this information under bootverbose,
since it is relatively easy to get to it now.
|
|
|
|
|
|
|
|
|
| |
While I'm here dicard all buffers if errored frame is part of
multi-segmented frames.
Pointed out by: sephe
Reviewd by: sephe
MFC after: 3 days
|
|
|
|
|
|
|
|
| |
the beginning. There's a race in the shared interrutp case. If
another interrupt happens after the interrupt is setup, then we'd try
to lock an uninitialized mutex. In addition, if we bailed out due to
a too old version of firmware, we'd leave the interrupt enabled with
all the fun that ensues....
|
|
|
|
| |
Approved by: philip
|
|
|
|
|
|
|
|
| |
on I2C bus.
Reviewed by: raj
Approved by: imp
MFC after: 2 week
|
|
|
|
|
|
|
| |
otherwise their textvp is NULL.
Reviewed by: jkoshy
Sponsored by: Nokia
|
|
|
|
|
|
|
|
|
| |
USB 2.0 capable but is shy and doesn't adwertise it much.
PR: 120017
Reviewed by: imp
Approved by: gnn (mentor)
MFC after: 2 weeks
|
|
|
|
|
|
|
|
|
|
| |
The kbd, kbdmux, ugen and uhid drivers included <sys/tty.h>, because
they needed clists, which have been moved to <sys/clist.h> some time
ago. In the MPSAFE TTY branch, <sys/tty.h> does not include
<sys/clist.h>, which means we have to teach these drivers to include
this header file directly.
Approved by: philip (mentor, implicit)
|
|
|
|
|
|
|
|
| |
behavior. Specifically, probe Host-PCI bridges in the order they are
encountered in the tree. For CPUs, just use an order of 100000 and assume
that no Host-PCI bridges will be more than 10000 levels deep in the
namespace. This fixes an issue on some boxes where the HPET timer stopped
attaching.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
used but MSI to HyperTransport IRQ mapping is enabled, and would act as
if MSI is turned on, resulting in interrupt loss.
This commit will,
1. enable MSI mapping on a device only when MSI is enabled for that
device and the MSI address matches the HT mapping window.
2. enable MSI mapping on a bridge only when a downstream device is
allocated an MSI address in the mapping window
PR: kern/118842
Reviewed by: jhb
MFC after: 1 week
|
|
|
|
|
|
|
| |
o Merge ncr53c9x.c from NetBSD:
1.115: fix variable shadowing
1.118: __inline -> inline
1.121: fix empty if
|
| |
|
|
|
|
|
|
|
|
|
|
| |
kthread of the mpt(4) driver that hangs around for the entire lifetime of
the thread. Previously the driver would allocate a new CCB using M_WAITOK
with a lock held each time it updated its state. While here, use the
CAM API for allocating a CCB rather than raw malloc(9).
Reviewed by: scottl
MFC after: 1 week
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
PCI bus so that we don't have to wait more than needed.
|
| |
|
| |
|
|
|
|
| |
jme(4) run on 1000Mbps link.
|
|
|
|
|
|
| |
This will fix driver hang if hz < 1000.
Pointed out by: thompsa
|
|
|
|
|
| |
Change a get-or-set sequence on OHCI_COMMAND_STATUS register which
is "write to set" to a simple set.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
and handle NIC hardware watchdog resets.
- remove buggy code at the top of mxge_tick() which tried
to detect a race which is already detected in the kernel's
callout code.
- move callout_stop() and callout_reset() into mxge_close()
mxge_open() rather than doing the callout manipulation
all over the place.
- use callout_drain(), rather than callout_stop() to prevent
a potential race between mxge_tick() and mxge_detach()
which could lead to softclock using a destroyed mutex
- restructure the mxge_tick() and mxge_watchdog_reset()
routines to avoid resetting a callout, and then
immediately stopping it if the watchdog reset routine
is called, and fails.
- enable the driver to handle NIC hardware watchdog
resets by restoring the NIC's PCI config space, which is
lost when the NIC hardware watchdog triggers.
Reviewed by: jhb (previus version)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
vr(4) overhauling(r177050).
It seems that filtering multicast addresses with multicast CAM
entries require accessing 'CAM enable bit' for each CAM entry.
Subsequent accessing multicast CAM control register without
toggling the 'CAM enable bit' seem to no effects.
In order to fix that separate CAM setup from CAM mask configuration
and CAM entry modification. While I'm here add VLAN CAM filtering
feature which will be enabled in future(FreeBSD now can receive
VLAN id insertion/removal event from vlan(4) on the fly).
For VT6105M hardware, explicitly disable VLAN hardware tag
insertion/stripping and enable VLAN CAM filtering for VLAN id 0.
This shall make non-VLAN frames set VR_RXSTAT_VIDHIT bit in Rx
status word.
Added multicast/VLAN CAM address definition to header file.
PR: kern/125010, kern/125024
MFC after: 1 week
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
years. All datasheet I have indicates the bit 15 is the
VR_RXSTAT_RX_OK. The bit 14 is reserved for all Rhine family
except VT6105M. VT6105M uses that bit to indicate a VLAN frame
with matching CAM VLAN id.
Use the VR_RXSTAT_RX_OK instead of VR_RXSTAT_RXERR when vr(4)
checks the validity of received frame.
This should fix occasional dropping frames on VT6105M.
Tested by: Goran Lowkrantz ( goran.lowkrantz at ismobile dot com )
MFC after: 1 week
|
|
|
|
|
|
|
| |
Tested by: Quake Lee <quakelee geekcn org>,
Robert Noland <rnoland 2hip net>
MFC after: 1 week
Approved by: ariff
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1. The FreeBSD driver was setting an interrupt coalesce delay of 1000us
for reasons that I can only speculate on. This was hurting everything
from lame sequential I/O "benchmarks" to legitimate filesystem metadata
operations that relied on serialized barrier writes. One of my
filesystem tests went from 35s to complete down to 6s.
2. Implemented the Performant transport method. Without the fix in
(1), I saw almost no difference. With it, my filesystem tests showed
another 5-10% improvement in speed. It was hard to measure CPU
utilization in any meaningful way, so it's not clear if there was a
benefit there, though there should have been since the interrupt handler
was reduced from 2 or more PCI reads down to 1.
3. Implemented MSI-X. Without any docs on this, I was just taking a
guess, and it appears to only work with the Performant method. This
could be a programming or understanding mistake on my part. While this
by itself made almost no difference to performance since the Performant
method already eliminated most of the synchronous reads over the PCI
bus, it did allow the CISS hardware to stop sharing its interrupt with
the USB hardware, which in turn allowed the driver to become decoupled
from the Giant-locked USB driver stack. This increased performance by
almost 20%. The MSI-X setup was done with 4 vectors allocated, but only
1 vector used since the performant method was told to only use 1 of 4
queues. Fiddling with this might make it work with the simpleq method,
not sure. I did not implement MSI since I have no MSI-specific hardware
in my test lab.
4. Improved the locking in the driver, trimmed some data structures.
This didn't improve test times in any measurable way, but it does look
like it gave a minor improvement to CPU usage when many
processes/threads were doing I/O in parallel. Again, this was hard to
accurately test.
|
|
|
|
| |
Submitted by: kevlo
|
|
|
|
|
|
|
| |
PR: 118135
Submitted by: ed
Approved by: imp (mentor, implicit)
MFC after: 1 week
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
it in detail.
When setting media, don't error out when a specific media is selected.
# Note: There may be some issues still here since the EtherJet PC Card doesn't
# conform to the datasheet. Many different kinds of dongles can be plugged in
# and it is unknown how to ask which one it is.
Also, add a /* bad! */ comment to a 1/2 second delay after we set the
DC/DC parameters. This should be a *sleep of some sort for !cold.
Fortunately it is the only one and is only used when setting media, so
the benefit from removing it is small. Unfortunately, it likely
serves as an exemplar of good programming techniques, which it isn't.
|
|
|
|
|
|
|
|
|
| |
It uses generic IDE facilities if sii-specific allocations failed
PR: 125421
Submitted by: Andrey V. Elsukov <bu7cher at yandex dot ru>
Approved by: imp (mentor, implicit)
MFC after: 1 week
|
|
|
|
|
|
|
|
|
| |
when it worked as generic IDE.
PR: 125422
Submitted by: Andrey V. Elsukov <bu7cher at yandex dot ru>
Approved by: imp (mentor, implicit)
MFC after: 1 week
|