07 Dec, 2006
2 commits
-
Get rid of sparse warnings in sky2 driver because of mixed enum
usage.Signed-off-by: Stephen Hemminger
Signed-off-by: Jeff Garzik -
This patch makes the receive performance on some systems go from
714MB/s to 941MB/s. It adjusts the watermark of the receive queue
to be lower, thereby avoiding excess hardware flow control. This is
most important on the systems which have little/no additional buffering.Signed-off-by: Stephen Hemminger
Signed-off-by: Jeff Garzik
02 Dec, 2006
2 commits
-
If using Message Signaled Interrupts (MSI) then the IRQ will never
be shared. Don't call pci_disable_msi() unless using MSI.Signed-off-by: Stephen Hemminger
Signed-off-by: Jeff Garzik -
Update workarounds for 88E803X based on the latest SysKonnect vendor
driver version (8.41). Tested on EC_U rev A1, only.
These up the receive performance.Signed-off-by: Stephen Hemminger
Signed-off-by: Jeff Garzik
18 Oct, 2006
3 commits
-
This reverts earlier change that attempted to fix flow control.
Device needs to discard pause frames, otherwise it hangs after a while.Signed-off-by: Stephen Hemminger
-
The result of flow control negotiation should not limit the next
negotiatition. If board is plugged into an old half duplex 10Mbit port,
without pause, then replugged into a gigabit port, it should negotiate
what is desired, not inherit that last negotiation.Signed-off-by: Stephen Hemminger
-
The advertising bits (from ethtool.h) fit in 16 bits.
11 Oct, 2006
1 commit
-
The pci express error handling extensions don't work unless PCI access is via
mmconfig. Otherwise, all accesses to pci config registers greater than 256 fail.
Since the sky2 driver has other ways of getting to PCI config space, it works
around this short coming, but the pci_find_ext_capablity doesn't work.This backs out commit 91aeb3edbcf4e6ed72d138ac8c22fd68e6d717c3
Go back to hardcoding, since we know where the error registers are anyway.
Fixes http://bugzilla.kernel.org/show_bug.cgi?id=7222Signed-off-by: Stephen Hemminger
Signed-off-by: Jeff Garzik
28 Sep, 2006
4 commits
-
Use hardware support for chained receive to break up large frames
into multiple pages. This avoids having to do a mult-page allocation
that can fail on a busy system due to fragmented memory.For normal size MTU, this code behaves the same.
Signed-off-by: Stephen Hemminger
Signed-off-by: Jeff Garzik -
Use the netdevice transmit lock via netif_tx_lock rather than putting
lock in device specific code and using lockless transmit. The code is
cleaner using netif_tx_lock, and the performance is same.Signed-off-by: Stephen Hemminger
Signed-off-by: Jeff Garzik -
Since a transmit can take several control blocks, the old code waited
until the last control block was marked as done. This code processes
the return values incrementally. This makes slots in the tx ring available
and less chance of getting stuck.Signed-off-by: Stephen Hemminger
Signed-off-by: Jeff Garzik -
Use the standard pci capability mechanism to access PCI express error
registers, rather than hard coding the offset. Mask off the PCI express
error from ever occuring on non-PCI express systems.Signed-off-by: Stephen Hemminger
Signed-off-by: Jeff Garzik
14 Sep, 2006
3 commits
-
Fix support for big endian platforms like PPC.
Still not sure about VLAN acceleration (does it need swapping)?Signed-off-by: Stephen Hemminger
Signed-off-by: Jeff Garzik -
Fix the support for fiber connected gigabit boards.
Allow half duplex gigabit to be configured.Signed-off-by: Stephen Hemminger
Signed-off-by: Jeff Garzik -
Fix problems with transmit pause frames. The driver was telling the
GMAC to flush (not process) pause frames. Manually disabling pause wasn't
working because of problems in the setup.This maybe the cause of the lockup under load.
http://bugzilla.kernel.org/show_bug.cgi?id=6839Patch against netdev-2.6 git tree
Signed-off-by: Stephen Hemminger
Signed-off-by: Jeff Garzik
30 Aug, 2006
2 commits
-
Since many packets have the same checksum starting offset and insertion
location; the driver can save the last information and only tell hardware
when it changes.Signed-off-by: Stephen Hemminger
Signed-off-by: Jeff Garzik -
Don't use force status bit. It was never implemented on all chips, or has
no impact.Signed-off-by: Stephen Hemminger
Signed-off-by: Jeff Garzik
13 Jul, 2006
1 commit
-
Patch to correct broken collision threshold mask in sky2 driver. Should be
three bits wide, but the mask only allows for 1 bit to be set.Thanks & Regards
NeilSigned-off-by: Neil Horman
Signed-off-by: Stephen Hemmingersky2.h | 2 +-
1 files changed, 1 insertion(+), 1 deletion(-)
Signed-off-by: Jeff Garzik
20 May, 2006
1 commit
-
Logic error in the phy initialization code. Also, turn on wake on lan
bit in status control.Signed-off-by: Stephen Hemminger
Signed-off-by: Jeff Garzik
09 May, 2006
1 commit
-
The newest Yukon Ultra chipset's require more special tweaks.
They seem to be like the Yukon XL chipsets. This code is transliterated
from the latest SysKonnect driver; I don't have any Ultra hardware.Signed-off-by: Stephe Hemminger
Signed-off-by: Stephen Hemminger
26 Apr, 2006
1 commit
-
Add an fake NAPI schedule once a second. This is an attempt to work around
for broken configurations with edge-triggered interrupts.Signed-off-by: Stephen Hemminger
Signed-off-by: Jeff Garzik
13 Apr, 2006
1 commit
-
Sky2 driver will oops referencing bad memory if used on
a dual port card. The problem is accessing past end of
MIB counter space.Applies for both 2.6.17 and 2.6.16 (with fuzz)
Signed-off-by: Stephen Hemminger
Signed-off-by: Jeff Garzik
24 Mar, 2006
1 commit
-
Signed-off-by: Alexey Dobriyan
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
23 Mar, 2006
1 commit
-
Expose all the available hardware statistics via ethtool.
And cleanup some of the statistics definitions.Signed-off-by: Stephen Hemminger
Signed-off-by: Jeff Garzik
22 Mar, 2006
5 commits
-
The hardware has additional error trap interrupt bits. I have never seen
them trigger, but if they do, it looks like this might be useful.Signed-off-by: Stephen Hemminger
Signed-off-by: Jeff Garzik -
Add MSI support to sky2 driver.
Signed-off-by: Stephen Hemminger
Signed-off-by: Jeff Garzik -
Redo the interupt handling of sky2 driver based on the IRQ mangement
documentation. All interrupts are handled by the device0 NAPI poll
routine.Don't need to adjust interrupt mask in IRQ context, done only when
changing device under RTNL. Therefore don't need hwlock anymore.Signed-off-by: Stephen Hemminger
Signed-off-by: Jeff Garzik -
Remove wake on lan support for now. It doesn't work right, and I
don't have a machine with working suspend/resume to test or fix it.
It will be re-enabled later.Signed-off-by: Stephen Hemminger
Signed-off-by: Jeff Garzik -
The Yukon EC/rev0 (A1) chipset requires a bunch of workarounds. I copied these
from sk98lin. But since they never got tested and add more cruft to the code;
any attempt at using driver as is on this version will probably fail.It looks like this was a early engineering sample chip revision, if it ever shows
up on a real system. Produce an error message.Signed-off-by: Stephen Hemminger
Signed-off-by: Jeff Garzik
01 Mar, 2006
1 commit
-
Remove Message Signaled Interrupt support (for 2.6.16).
MSI is inherently edge-triggered and that is incompatiable (without more
work) with NAPI.In future, will replace with smarter lockless-IRQ handling like
tg3.cSigned-off-by: Stephen Hemminger
Signed-off-by: Jeff Garzik
23 Feb, 2006
3 commits
-
Need to avoid race in updating IRQ mask. This can probably be replaced
smarter use of the interrupt control registers (if/when chipset
docs are available).Signed-off-by: Stephen Hemminger
-
To avoid problems with PCI config access without ACPI (or busted ACPI tables),
use the device's window into PCI config space.I know this probably will upset the purists, but I would rather have users
than ACPI testers. It also generates less code.Signed-off-by: Stephen Hemminger
-
Add more complete setup code for Yukon EC_U chipset.
Based on matching code in 8.31 code in SysKonnect vendor driver.Signed-off-by: Stephen Hemminger
07 Feb, 2006
2 commits
-
This hardware supports Message Signaled interrupts.
When setting up, use software interrupt to check for bad hardware.Signed-off-by: Stephen Hemminger
Signed-off-by: Jeff Garzik -
There were bugs in mmconfig access to PCI space, up to and
include 2.6.16-rc1. These prevented the sky2 driver from being
able to clear PCI express errors.This patch makes the driver check (during probe), for errors
in PCI config access and fail.Signed-off-by: Stephen Hemminger
Signed-off-by: Jeff Garzik
13 Dec, 2005
4 commits
-
Split Tx and Rx ring into two different data structures.
Tx needs the next value (to handle partial status), and
Rx always needs the mapaddr (to handle resubmitting same buffer).Signed-off-by: Stephen Hemminger
Signed-off-by: Jeff Garzik -
Don't need to keep track of mapping length in ring structure
because we can get the same info from other info.Signed-off-by: Stephen Hemminger
Signed-off-by: Jeff Garzik -
Do phy processing in a work queue rather than a tasklet.
This means we can let bottom halves run.Signed-off-by: Stephen Hemminger
Signed-off-by: Jeff Garzik -
It is a useful optimization to rearrange the structure
slightly to align receive and transmit portions.Signed-off-by: Stephen Hemminger
Signed-off-by: Jeff Garzik
01 Dec, 2005
1 commit
-
Eliminate special case tuning for PCI-Express. This code
causes receive hangs and doesn't help performance much anyway.Signed-off-by: Stephen Hemminger
Signed-off-by: Jeff Garzik