13 Apr, 2011
1 commit
-
Caveats:
- driver modifies vlan_features on HW VLAN TX changes
- broken RX checksum will be reenabled on features changeSigned-off-by: Michał Mirosław
Signed-off-by: David S. Miller
31 Mar, 2011
1 commit
-
Fixes generated by 'codespell' and manually reviewed.
Signed-off-by: Lucas De Marchi
10 Jan, 2011
1 commit
-
This converts sky2 to new VLAN offload flags control via ethtool.
It also allows for transmit offload of vlan tagged frames which
was not possible before.Signed-off-by: Stephen Hemminger
Reviewed-by: Jesse Gross
Signed-off-by: David S. Miller
02 Jan, 2011
1 commit
-
This implements 64 bit statistics support and fixes races when reading
counter values. The PHY counters can only be accessed 16 bits at a time,
so they are subject to carry races.NB:
* TX/RX counters are maintained in software because the the hardware packet count
is only a 32 bit value.* Error counters are really only 32 bit.
* Old 32 bit counter fields in dev->stats still used for some
software countersSigned-off-by: Stephen Hemminger
Signed-off-by: David S. Miller
03 Jun, 2010
1 commit
-
cleanup patch.
Use new __packed annotation in drivers/net/
Signed-off-by: Eric Dumazet
Signed-off-by: David S. Miller
29 Apr, 2010
1 commit
-
This replace the PCI DMA state API (include/linux/pci-dma.h) with the
DMA equivalents since the PCI DMA state API will be obsolete.No functional change.
For further information about the background:
http://marc.info/?l=linux-netdev&m=127037540020276&w=2
Signed-off-by: FUJITA Tomonori
Acked-by: Stephen Hemminger
Signed-off-by: David S. Miller
25 Apr, 2010
1 commit
-
Sky2 hardware supports hardware receive hash calculation.
Now that Receive Packet Steering is available, add support
to enable it.This version does not depend on CONFIG_RPS. Also set_flags rejects
all values except RXHASH, so driver won't have to change next time
somebody adds a new one.Signed-off-by: Stephen Hemminger
Signed-off-by: David S. Miller
23 Apr, 2010
1 commit
-
Sky2 status ring must be big enough to handle worst case number
of status messages. It was being oversized (to handle dual port cards),
and excessive number of tx ring entries were allowed. This patch reduces
the footprint and makes sure the value is enough.Later patch to add RSS increases the number of possible Rx status elements.
Signed-off-by: Stephen Hemminger
Signed-off-by: David S. Miller
31 Mar, 2010
2 commits
-
Add definitions for Yukon XL revisions.
Signed-off-by: Stephen Hemminger
Signed-off-by: David S. Miller -
Need to change logic to support later versions of Yukon 2 EC_U chip.
Signed-off-by: Stephen Hemminger
Signed-off-by: David S. Miller
13 Feb, 2010
1 commit
-
Change how FIFO is programmed in jumbo mode (to match vendor driver).
Mostly cosmetic, the only register change is that the bits 22,23
are not programemd used.Signed-off-by: Stephen Hemminger
Signed-off-by: David S. Miller
03 Feb, 2010
1 commit
-
Btw of the dma-debug problem reported by Michael Breuer I spotted
a tiny misspelling in TX_MAP_PAGE definition introduced by commit
6b84dacadbdc3.Signed-off-by: Jarek Poplawski
Signed-off-by: David S. Miller
30 Oct, 2009
2 commits
-
Program the receive pause thresholds differently depending on
chip version. This cloned from from the vendor (GPL) driver.Signed-off-by: Stephen Hemminger
Signed-off-by: David S. Miller -
This adds infrastructure for the newer chip versions and workarounds.
Extracted from the vendor (GPL) driver.Signed-off-by: Stephen Hemminger
Signed-off-by: David S. Miller
02 Oct, 2009
1 commit
-
This is based on Michal Schmidt fix for skge.
Most network drivers request their IRQ when the interface is activated.
sky2 does it in ->probe() instead, because it can work with two-port
cards where the two net_devices use the same IRQ. This works fine most
of the time, except in some situations when the interface gets renamed.
Consider this example:1. modprobe sky2
The card is detected as eth0 and requests IRQ 17. Directory
/proc/irq/17/eth0 is created.
2. There is an udev rule which says this interface should be called
eth1, so udev renames eth0 -> eth1.
3. modprobe 8139too
The Realtek card is detected as eth0. It will be using IRQ 17 too.
4. ip link set eth0 up
Now 8139too requests IRQ 17.The result is:
WARNING: at fs/proc/generic.c:590 proc_register ...
proc_dir_entry '17/eth0' already registeredThe fix is for sky2 to name the irq based on the pci device, as is done
by some other devices DRM, infiniband, ... ie. sky2@pci:0000:00:00Signed-off-by: Stephen Hemminger
Reviewed-by: Michal Schmidt
Signed-off-by: David S. Miller
02 Sep, 2009
2 commits
-
B0_CTST is a 24bit register according to the vendor driver (sk98lin).
A 16bit read on B0_CTST will always return 0 for Y2_VAUX_AVAIL (1<
Acked-by: Stephen Hemminger
Signed-off-by: David S. Miller -
Observed by Mike McCormack.
The LED bit here is just a software controlled value used to
turn on one of the LED's on some boards. The register value was wrong,
which could have been causing some power control issues.
Get rid of problematic define use the correct mask.Signed-off-by: Stephen Hemminger
Signed-off-by: David S. Miller
19 Aug, 2009
4 commits
-
Recycling turns out to be a bad idea! For most use cases, the
packet can not be reused: TCP packets are cloned. Even for the ideal
case of forwarding, it hurts performance because of CPU ping/pong.
On a multi-core system forwarding of 64 byte packets is worse
much worse: recycling = 24% forwarded vs no recycling = 42% forwardedSigned-off-by: Stephen Hemminger
Signed-off-by: David S. Miller -
Don't reference the list element in hardware transmit ring on transmit
completion. The list element is updated by hardware, therefore
it causes a cache miss. Do book keeping in software structure.Signed-off-by: Stephen Hemminger
Signed-off-by: David S. Miller -
Allocate and size transmit ring based on parameters. Saves excess
space and allows configuring larger rings for testing.Signed-off-by: Stephen Hemminger
Signed-off-by: David S. Miller -
This patch saves elements on transmit ring by only updating the upper
64 bit address when it changes. With many workloads skb's are located
in same region, so it saves space.Signed-off-by: Stephen Hemminger
Signed-off-by: David S. Miller
15 Aug, 2009
2 commits
-
The whole restarting flag was introduced by Mike McCormack
and was a temporary duct tape patch around issues with transmits
inflight during restart. The problems it was covering are now
fixed and the code should have been reverted.Signed-off-by: Stephen Hemminger
Signed-off-by: David S. Miller -
The sky2 driver combines auto speed negotiation with automatic negotiation
of pause parameters; but the ethtool interface expects them to be
split. This patch allows autonegotiation to be used for speed, but
manually disable flow control.Signed-off-by: Stephen Hemminger
Signed-off-by: David S. Miller
04 Aug, 2009
1 commit
-
This patch supersedes my previous patch "sky2: Avoid transmitting
during sky2_restart".I have reworked the patch to avoid crashes during both sky2_restart()
and sky2_set_ringparam().Without this patch, the sky2 driver can be crashed by doing:
# pktgen eth1 & (transmit many packets on eth1)
# ethtool -G eth1 tx 510I am aware you object to storing extra state, but I can't see a way
around this. Without remembering that we're restarting,
netif_wake_queue() is called in the ISR from sky2_tx_complete(), and
netif_tx_lock() is used in sky2_tx_done(). If anybody can see a way
around this, please let me know.Signed-off-by: Mike McCormack
Signed-off-by: David S. Miller
18 Jun, 2009
1 commit
-
This patch implements skb recycling. It reclaims transmitted skb's
for use in the receive ring.Signed-off-by: Stephen Hemminger
Signed-off-by: David S. Miller
07 Aug, 2008
1 commit
-
Fix the problems reported for 2.6.27-rc1 caused by over aggressive
power management. Turning clock off on PCI Express is problematic for WOL,
and when doing multi-booting.Signed-off-by: Stephen Hemminger
Signed-off-by: Jeff Garzik
18 Jun, 2008
1 commit
-
Add support for Yukon 2 Ultra 2 chip set (88E8057) based on code in latest
version of vendor driver (sk98lin 10.60.2.3). Untested on real hardware.Signed-off-by: Stephen Hemminger
Signed-off-by: Jeff Garzik
31 May, 2008
2 commits
-
Turn on special bits to save more power when device is shutdown.
Tested on a limited range of hardware, some of the bits are for hardware
that probably isn't even in production (like Yukon Supreme) and was ported
from the vendor driver.Signed-off-by: Stephen Hemminger
Signed-off-by: Jeff Garzik -
Put PHY int sleep mode (from vendor sk98lin 10.50 driver) when the
network device is brought down.Signed-off-by: Stephen Hemminger
Signed-off-by: Jeff Garzik
13 May, 2008
1 commit
-
noticed while browsing code, apparent thinko. compile tested only.
Signed-off-by: Jesse Brandeburg
CC: Stephen Hemminger
Signed-off-by: Jeff Garzik
24 Feb, 2008
1 commit
-
Fix problems in LED management, so ethtool -p works correctly on Yukon-EC
and other chips. The driver was incorrectly setting the PHY LED overide bits.
Moral: read the spec sheet, not the vendor driver.Signed-off-by: Stephen Hemminger
Signed-off-by: Jeff Garzik
06 Feb, 2008
1 commit
-
The Yukon FE chip has a ram buffer therefore it needs the alignment
restriction and hang check workarounds.Therefore:
* Autodetect the prescence/absence of ram buffer
* Rename the flag value to reflect this
* Use it consistently (ie don't reread register)Signed-off-by: Stephen Hemminger
Signed-off-by: Jeff Garzik
29 Jan, 2008
1 commit
-
Add support from sk98lin vendor driver 10.50.1.3 for 88E8055 and
88E8075 chips. I don't have this hardware to test, so this changes
are untested.Signed-off-by: Stephen Hemminger
Signed-off-by: Jeff Garzik
13 Jan, 2008
1 commit
-
This patch might fix problems with 4G or more of memory.
It stops the driver from doing a small optimization for Tx and Rx,
and instead always sets the high-page on tx/rx descriptors.Fixes-bug: http://bugzilla.kernel.org/show_bug.cgi?id=9725
Signed-off-by: Stephen Hemminger
Signed-off-by: Jeff Garzik
02 Dec, 2007
1 commit
-
Using the hardware window into PCI config space is more reliable
and smaller/faster than using the pci_config routines. It avoids issues
with MMCONFIG etc.Reverts: 167f53d05fccb47b6eeadac7f6705b3f2f042d03
Please apply for 2.6.24
Signed-off-by: Stephen Hemminger
Signed-off-by: Jeff Garzik
10 Nov, 2007
1 commit
-
The PCI AER support may not work for a couple of reasons.
It may not be configured into the kernel or there may be a BIOS
bug that prevents MMCONFIG from working. If MMCONFIG doesn't work
then the PCI registers that control AER will not be accessible via
pci_read_config functions; luckly there is another window to access
PCI space in the device, so use that.Signed-off-by: Stephen Hemminger
Signed-off-by: Jeff Garzik
12 Oct, 2007
1 commit
-
Use builtin statistics structure from net device.
Signed-off-by: Stephen Hemminger
Signed-off-by: David S. Miller
11 Oct, 2007
3 commits
-
Use the PCI layer config access functions. The driver was using the
memory mapped window in device, to workaround issues accessing the
advanced error reporting registers.Signed-off-by: Stephen Hemminger
Signed-off-by: Jeff Garzik
Signed-off-by: David S. Miller -
Use the kernel interfaces for advanced error reporting.
This should be cleaner and clear up errors on boot.For those systems with busted BIOS's that don't correctly
support mmconfig, advanced error reporting will be disabled.
The PCI registers for advanced error reporting start at 0x100 which
is too large to be accessed by legacy functions.Signed-off-by: Stephen Hemminger
Signed-off-by: Jeff Garzik -
Add documentation of GPHY_CTRL register bits even if driver
is not using them (yet).Signed-off-by: Stephen Hemminger
Signed-off-by: Jeff Garzik