Commit graph

172 commits

Author SHA1 Message Date
Jeff Garzik
aae343d493 [netdrvr] skge: build fix
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-12-02 07:14:39 -05:00
Stephen Hemminger
758140900a [PATCH] skge: don't clear MC state on link down
I would rather fix Andy's problem by not clearing
multicast information on link down.

Also, add code to restore multicast state after ethtool phy reset.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-12-02 00:22:29 -05:00
David Howells
c4028958b6 WorkStruct: make allyesconfig
Fix up for make allyesconfig.

Signed-Off-By: David Howells <dhowells@redhat.com>
2006-11-22 14:57:56 +00:00
Stephen Hemminger
798b6b19d7 [PATCH] skge, sky2, et all. gplv2 only
I don't want my code to downgraded to GPLv3 because of
cut-n-pasted the comments. These files which I hold copyright
on were started before it was clear what GPLv3 was going to be.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-10-31 20:22:06 -05:00
Stephen Hemminger
370de6cdc2 [PATCH] skge: version 1.9
Want to be able to track downstream impact of fiber related
fixes.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-10-11 04:06:09 -04:00
Stephen Hemminger
5d5c8e0378 [PATCH] skge: better flow control negotiation
Do flow control negotiation properly. Don't let auto negotiation
status limit renegotiation. Separate desired pause values from
the result of auto negotiation.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-10-11 04:06:09 -04:00
Stephen Hemminger
4b67be999e [PATCH] skge: pause mapping for fiber
Do correct mapping of pause and duplex when using 1000BaseX fiber
versions of the board.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-10-11 04:06:09 -04:00
Stephen Hemminger
a1bc9b875b [PATCH] skge: fix stuck irq when fiber down
The PHY interrupt from the internal fiber is getting
stuck on when the link is down. Add code to handle the
transition and mask it.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-10-11 04:06:08 -04:00
David Howells
7d12e780e0 IRQ: Maintain regs pointer globally rather than passing to IRQ handlers
Maintain a per-CPU global "struct pt_regs *" variable which can be used instead
of passing regs around manually through all ~1800 interrupt handlers in the
Linux kernel.

The regs pointer is used in few places, but it potentially costs both stack
space and code to pass it around.  On the FRV arch, removing the regs parameter
from all the genirq function results in a 20% speed up of the IRQ exit path
(ie: from leaving timer_interrupt() to leaving do_IRQ()).

Where appropriate, an arch may override the generic storage facility and do
something different with the variable.  On FRV, for instance, the address is
maintained in GR28 at all times inside the kernel as part of general exception
handling.

Having looked over the code, it appears that the parameter may be handed down
through up to twenty or so layers of functions.  Consider a USB character
device attached to a USB hub, attached to a USB controller that posts its
interrupts through a cascaded auxiliary interrupt controller.  A character
device driver may want to pass regs to the sysrq handler through the input
layer which adds another few layers of parameter passing.

I've build this code with allyesconfig for x86_64 and i386.  I've runtested the
main part of the code on FRV and i386, though I can't test most of the drivers.
I've also done partial conversion for powerpc and MIPS - these at least compile
with minimal configurations.

This will affect all archs.  Mostly the changes should be relatively easy.
Take do_IRQ(), store the regs pointer at the beginning, saving the old one:

	struct pt_regs *old_regs = set_irq_regs(regs);

And put the old one back at the end:

	set_irq_regs(old_regs);

Don't pass regs through to generic_handle_irq() or __do_IRQ().

In timer_interrupt(), this sort of change will be necessary:

	-	update_process_times(user_mode(regs));
	-	profile_tick(CPU_PROFILING, regs);
	+	update_process_times(user_mode(get_irq_regs()));
	+	profile_tick(CPU_PROFILING);

I'd like to move update_process_times()'s use of get_irq_regs() into itself,
except that i386, alone of the archs, uses something other than user_mode().

Some notes on the interrupt handling in the drivers:

 (*) input_dev() is now gone entirely.  The regs pointer is no longer stored in
     the input_dev struct.

 (*) finish_unlinks() in drivers/usb/host/ohci-q.c needs checking.  It does
     something different depending on whether it's been supplied with a regs
     pointer or not.

 (*) Various IRQ handler function pointers have been moved to type
     irq_handler_t.

Signed-Off-By: David Howells <dhowells@redhat.com>
(cherry picked from 1b16e7ac850969f38b375e511e3fa2f474a33867 commit)
2006-10-05 15:10:12 +01:00
Stephen Hemminger
64f6b64dfb [PATCH] skge: fiber support
Add support for older fiber versions of the SysKonnect board. These chipsets
use an internal PHY so they require special handling. The older sk98lin
driver already supported these

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-09-25 20:04:29 -04:00
Linus Torvalds
a319a2773a Merge branch 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6
* 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6: (217 commits)
  net/ieee80211: fix more crypto-related build breakage
  [PATCH] Spidernet: add ethtool -S (show statistics)
  [NET] GT96100: Delete bitrotting ethernet driver
  [PATCH] mv643xx_eth: restrict to 32-bit PPC_MULTIPLATFORM
  [PATCH] Cirrus Logic ep93xx ethernet driver
  r8169: the MMIO region of the 8167 stands behin BAR#1
  e1000, ixgb: Remove pointless wrappers
  [PATCH] Remove powerpc specific parts of 3c509 driver
  [PATCH] s2io: Switch to pci_get_device
  [PATCH] gt96100: move to pci_get_device API
  [PATCH] ehea: bugfix for register access functions
  [PATCH] e1000 disable device on PCI error
  drivers/net/phy/fixed: #if 0 some incomplete code
  drivers/net: const-ify ethtool_ops declarations
  [PATCH] ethtool: allow const ethtool_ops
  [PATCH] sky2: big endian
  [PATCH] sky2: fiber support
  [PATCH] sky2: tx pause bug fix
  drivers/net: Trim trailing whitespace
  [PATCH] ehea: IBM eHEA Ethernet Device Driver
  ...

Manually resolved conflicts in drivers/net/ixgb/ixgb_main.c and
drivers/net/sky2.c related to CHECKSUM_HW/CHECKSUM_PARTIAL changes by
commit 84fa7933a3 that just happened to be
next to unrelated changes in this update.
2006-09-24 10:15:13 -07:00
Patrick McHardy
84fa7933a3 [NET]: Replace CHECKSUM_HW by CHECKSUM_PARTIAL/CHECKSUM_COMPLETE
Replace CHECKSUM_HW by CHECKSUM_PARTIAL (for outgoing packets, whose
checksum still needs to be completed) and CHECKSUM_COMPLETE (for
incoming packets, device supplied full checksum).

Patch originally from Herbert Xu, updated by myself for 2.6.18-rc3.

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
2006-09-22 14:53:53 -07:00
Jeff Garzik
7282d491ec drivers/net: const-ify ethtool_ops declarations
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-09-13 14:30:00 -04:00
Stephen Hemminger
0486a8c83b [PATCH] skge: check for PCI hotplug during IRQ
Check if IRQ came from hardware fault (hotplug).

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-09-11 09:07:19 -04:00
Stephen Hemminger
f6aa169367 [PATCH] skge: version 1.8
Because of the NAPI and other SMP fixes, let's call
this a version.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-09-06 11:19:23 -04:00
Stephen Hemminger
513f533e3f [PATCH] skge: use NAPI for transmit complete
The skge driver has much better performance if transmit done is handled in
NAPI softirq. Change from doing transmit locking in driver (LLTX) and
use device lock.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-09-06 11:19:23 -04:00
Stephen Hemminger
29365c9009 [PATCH] skge: irq lock race
The driver needs to access the IRQ status inside of lock to avoid
races with other places changing IRQ mask etc. This may be related
to some of the SMP bugs reported against skge in kernel bugzilla.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-09-06 11:19:23 -04:00
Stephen Hemminger
c54f9765da [PATCH] skge: use netdev_alloc_skb
Change to use new netdev_alloc_skb interface for 2.6.18.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-09-06 11:19:22 -04:00
Stephen Hemminger
6fc47e31c0 [PATCH] skge: version 1.7
Increase version.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-08-29 17:18:31 -04:00
Stephen Hemminger
ccdaa2a9da [PATCH] skge: use ethX for irq assigments
The user level irq balance daemon uses "eth" as a way to distinquish
ethernet devices. Also, by using device name it is possible to distinquish
different boards.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-08-29 17:18:31 -04:00
Stephen Hemminger
83c758fabd [PATCH] skge: use dev_alloc_skb
To avoid problems with buggy protocols that assume extra header space,
use dev_alloc_skb() when allocating receive buffers.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-08-29 17:18:31 -04:00
Stephen Hemminger
78bc218663 [PATCH] skge: pci bus post fixes
At the end of a critical section, we need to force the PCI write
to complete by doing a read.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-08-29 17:18:30 -04:00
Stephen Hemminger
d38efdd65a [PATCH] skge: cleanup suspend/resume code
The code for suspend/resume needs several fixes. The hardware lock
should be setup in probe only, not in resume. Interrupts should be
disabled during suspend, etc.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-08-29 17:18:30 -04:00
Jeff Garzik
299176206b drivers/net: Remove deprecated use of pci_module_init()
From: Michal Piotrowski <michal.k.k.piotrowski@gmail.com>

Signed-off-by: Michal Piotrowski <michal.k.k.piotrowski@gmail.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-08-19 17:48:59 -04:00
Edgar E. Iglesias
239e44e1f0 [PATCH] skge: remember to run netif_poll_disable()
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@axis.com>
Cc: Stephen Hemminger <shemminger@osdl.org>
Cc: Jeff Garzik <jeff@garzik.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-08-19 17:44:30 -04:00
Stephen Hemminger
187ff3b857 [PATCH] skge: chip clock rate typo
Okay, Fix both typo's in one patch .The impact is that the incorrect value
was being computed for blinking LED and interrupt moderation values.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-07-29 01:23:51 -04:00
Thomas Gleixner
1fb9df5d30 [PATCH] irq-flags: drivers/net: Use the new IRQF_ constants
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Jeff Garzik <jeff@garzik.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-07-02 13:58:51 -07:00
Jörn Engel
6ab3d5624e Remove obsolete #include <linux/config.h>
Signed-off-by: Jörn Engel <joern@wohnheim.fh-wedel.de>
Signed-off-by: Adrian Bunk <bunk@stusta.de>
2006-06-30 19:25:36 +02:00
Greg Kroah-Hartman
7c7459d1f9 [PATCH] 64bit resource: fix up printks for resources in networks drivers
This is needed if we wish to change the size of the resource structures.

Based on an original patch from Vivek Goyal <vgoyal@in.ibm.com>

Cc: Vivek Goyal <vgoyal@in.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2006-06-27 09:23:58 -07:00
Herbert Xu
5b057c6b1a [NET]: Avoid allocating skb in skb_pad
First of all it is unnecessary to allocate a new skb in skb_pad since
the existing one is not shared.  More importantly, our hard_start_xmit
interface does not allow a new skb to be allocated since that breaks
requeueing.

This patch uses pskb_expand_head to expand the existing skb and linearize
it if needed.  Actually, someone should sift through every instance of
skb_pad on a non-linear skb as they do not fit the reasons why this was
originally created.

Incidentally, this fixes a minor bug when the skb is cloned (tcpdump,
TCP, etc.).  As it is skb_pad will simply write over a cloned skb.  Because
of the position of the write it is unlikely to cause problems but still
it's best if we don't do it.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
2006-06-23 02:06:41 -07:00
Stephen Hemminger
987024ca9e [PATCH] skge: version 1.6
Update version string.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-06-08 15:44:54 -04:00
Stephen Hemminger
631ae320a4 [PATCH] skge: dont allow bad hardware address from ROM
Sometimes boards don't reset properly, and the address read out of the
EEPROM is zero. Stop the insanity before the device gets registered.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-06-08 15:44:54 -04:00
Stephen Hemminger
7c442fa17e [PATCH] skge: transmit complete via IRQ not NAPI
The transmit side code has a number of ring problems that caused some
of the Bugzilla reports. Rather than trying to fix the details, it is safer
to rewrite the code that handles transmit completion and freeing.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-06-08 15:44:54 -04:00
Stephen Hemminger
9db96479b4 [PATCH] skge: TX low water mark definition
Consolidate all usage of ring low water mark to one value.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-06-08 15:44:54 -04:00
Stephen Hemminger
d85b514fd9 [PATCH] skge: use workq for PHY handling
Since accessing the PHY can take 100's of usecs, use a work queue to
allow spinning in outside of soft/hard irq.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-06-08 15:44:54 -04:00
Stephen Hemminger
a06631cbdc [PATCH] skge: don't allow transmit ring to be too small
The driver will get stuck (permanent transmit timeout), if the transmit
ring size is set too small.  It needs to have enough ring elements to
hold one maximum size transmit.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-05-20 00:17:07 -04:00
Stephen Hemminger
20e777a2a7 [PATCH] skge: bad checksums on big-endian platforms
Skge driver always causes  bad checksums on big-endian.
The checksum in the receive control block was being swapped
when it doesn't need to be.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-05-20 00:17:07 -04:00
Stephen Hemminger
2d2a387199 [PATCH] Subjec: sky2, skge: correct PCI id for DGE-560T
The Dlink DGE-560T uses Yukon2 chipset so it needs sky2 driver; and
the DGE-530T uses Yukon1 so it uses skge driver.

Bug: http://bugzilla.kernel.org/show_bug.cgi?id=6544

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-05-20 00:15:39 -04:00
Stephen Hemminger
5636f72794 [PATCH] dlink pci cards using wrong driver
This patch fixes the problem of some Dlink cards picking the wrong
driver.  It looks like these cards use Yukon 1 chipset, not Yukon 2.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-04-12 18:04:03 -04:00
Stephen Hemminger
eff4b1fe0a [PATCH] skge: version 1.5
Update version to allow tracking of complaints.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-03-23 17:13:54 -05:00
Stephen Hemminger
29b4e886cb [PATCH] skge: compute available ring buffers
Don't need to keep track of available buffers, it is simpler
to just compute the value (ala e1000). Don't need tes on link up
because should always have available buffers then.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-03-23 17:13:54 -05:00
Stephen Hemminger
866b4f3e94 [PATCH] skge: dont free skb until multi-part transmit complete
Don't free transmit buffers until the whole set of transmit descriptors
has been marked as done.  Otherwise, we risk freeing a skb before the
whole transmit is done.

This changes the transmit completion handling from incremental to a
two pass algorithm. First pass scans and records the start of the last
done descriptor, second cleans up until that point.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-03-23 17:13:54 -05:00
Stephen Hemminger
4c180fc424 [PATCH] skge: multicast statistics fix
Fix count of multicast packets.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-03-23 17:13:54 -05:00
Stephen Hemminger
5a01144717 [PATCH] skge: rx_reuse called twice
In the error case we call skge_rx_reuse twice. This is harmless
but unnecessary.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-03-23 17:13:54 -05:00
Stephen Hemminger
b5d56ddc3f [PATCH] skge: dont use dev_alloc_skb for rx buffs
The skge driver was using dev_alloc_skb which reserves space for the
Ethernet header. This unnecessary and it should just use alloc_skb,
also by using GFP_KERNEL during startup it won't run into problems when
a user asks for a huge ring size or mtu and potentially drains the
reserved atomic pool.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-03-23 17:13:54 -05:00
Stephen Hemminger
901ccefb2d [PATCH] skge: align receive buffers
The skge driver aligns the header on the initial receive buffers, but
but doesn't on followon receive buffer allocations.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-03-23 17:13:54 -05:00
Stephen Hemminger
9362860fd1 [PATCH] skge: version 1.4
Update version number

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-03-21 16:00:51 -05:00
Stephen Hemminger
b9d64acc82 [PATCH] skge: handle pci errors better
When a PCI error occurs, try and report more info.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-03-21 16:00:51 -05:00
Stephen Hemminger
203babb650 [PATCH] skge: formmating and whitespace cleanup
Reformat some code to make it easier to read. And whitespace
fixes.

Signed-off-by: Stephen Hemminger <sheminger@osdl.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-03-21 16:00:51 -05:00
Stephen Hemminger
c68ce71a34 [PATCH] skge: use mmiowb
Add mmio barriers at the appropriate places, don't have a platform
that needs them, but this is where the documentation of the patch
says to add them.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-03-21 16:00:51 -05:00
Stephen Hemminger
ff7907aede [PATCH] skge: use kcalloc
Use kcalloc when allocating ring data structure.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-03-21 16:00:51 -05:00
Stephen Hemminger
93aea718c6 [PATCH] skge: dma configuration cleanup
Cleanup of the part of the code that sets up DMA configuration.
Should cause no real change in operation, just clearer.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-03-21 16:00:50 -05:00
Stephen Hemminger
c3da144740 [PATCH] skge: check the allocation of ring buffer
The SysKonnect Genesis and Yukon chip sets have restrictions on the possible
control block area.  The memory needs to not cross 4 Gig boundary, and it needs
to be 8 byte aligned.  This patch checks and fails to bring the device up
if region is unacceptable.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-03-21 16:00:50 -05:00
Stephen Hemminger
cfc3ed796e [PATCH] skge: use auto masking of irqs
Improve performance of skge driver by not touching irq mask
register as much. Since the interrupt source auto-masks, the driver
can just leave it disabled until the end of the soft irq.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-03-21 16:00:50 -05:00
Stephen Hemminger
00a6cae288 [PATCH] skge: use NAPI for tx cleanup.
Cleanup transmit buffers using NAPI.  This allows the transmit routine
to leave interrupts enabled, and that improves performance.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-03-21 16:00:50 -05:00
Stephen Hemminger
80dd857dac skge: protect interrupt mask
There is a race between updating the irq mask and setting it
which can be triggered on SMP with a bad cable.
Similar patch from Ingo Molnar and Thomas Gleixner

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
2006-02-23 23:07:08 +01:00
Stephen Hemminger
0781191cf6 skge: genesis phy initialzation
The SysKonnect Genesis based board would fail on initialization
with phy_read errors caused by not waiting for last phy write.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
2006-02-23 23:07:07 +01:00
Stephen Hemminger
a9cdab869e skge: NAPI/irq race fix
Fix a race in the receive NAPI, irq handling. The interrupt clear and the
start need to be separated.  Otherwise there is a window between the last
frame received and the NAPI done level handling.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
2006-02-23 23:07:07 +01:00
Stephen Hemminger
564f9abb34 [PATCH] skge: speed setting
This is a clone of John Linville's fixed for speed setting on sky2 driver.
The skge driver has the same code (and bug). It would not allow manually forcing
100 and 10 mbit.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2006-02-17 16:15:47 -05:00
Stephen Hemminger
77783a78de [PATCH] skge: fix dma mask setup.
There are a couple of problems in the DMA setup code for skge.
* In the 64 bit case, it doesn't set the consistent mask.
* In the 32 bit case, the error check is backwards!
It likely will only be visible as a bug on 64 bit platforms.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2006-01-17 19:52:56 -05:00
Linus Torvalds
d779188d2b Merge branch 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6 2006-01-04 16:31:56 -08:00
Arnaldo Carvalho de Melo
14c850212e [INET_SOCK]: Move struct inet_sock & helper functions to net/inet_sock.h
To help in reducing the number of include dependencies, several files were
touched as they were getting needed headers indirectly for stuff they use.

Thanks also to Alan Menegotto for pointing out that net/dccp/proto.c had
linux/dccp.h include twice.

Signed-off-by: Arnaldo Carvalho de Melo <acme@mandriva.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2006-01-03 13:11:21 -08:00
Stephen Hemminger
edd702e847 [PATCH] skge: error handling on resume
Also have to handle out of memory condition on resume.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2005-12-24 09:38:35 -05:00
Stephen Hemminger
f15943f500 [PATCH] skge: version number (1.3)
Enough changes for one version.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2005-12-24 09:36:06 -05:00
Stephen Hemminger
3b8bb472ad [PATCH] skge: handle out of memory on ring parameter change
If changing ring parameters is unable to allocate memory, we need
to return an error and take the device down.

Fixes-bug: http://bugzilla.kernel.org/show_bug.cgi?id=5715
Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2005-12-24 09:36:06 -05:00
Stephen Hemminger
7731a4ea1b [PATCH] skge: handle out of memory on MTU size changes
Changing the MTU size causes the receiver to have to reallocate buffers.
If this allocation fails, then we need to return an error, and take
the device offline. It can then be brought back up or reconfigured
for a smaller MTU.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2005-12-24 09:36:05 -05:00
Stephen Hemminger
e8df855460 [PATCH] skge: avoid up/down on pause param changes
Change the pause settings doesn't need to cause link to go down/up.
It can be handled by the phy_reset code.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2005-12-24 09:36:05 -05:00
Stephen Hemminger
ee294dcda1 [PATCH] skge: avoid up/down on speed changes
Change the speed settings doesn't need to cause link to go down/up.
It can be handled by doing the same logic as nway_reset.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2005-12-24 09:36:05 -05:00
Jeff Garzik
98684a9d91 [netdrvr skge] fix build 2005-12-13 11:35:22 -05:00
Stephen Hemminger
ee1c81917a [PATCH] skge: get rid of warning on race
Get rid of warning in case of race with ring full and lockless
tx on the skge driver. It is possible to be in the transmit
routine with no available slots and already stopped.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2005-12-12 23:33:03 -05:00
Jeff Garzik
ea182d4aef [netdrvr skge] fix typo, fix build 2005-12-01 04:31:32 -05:00
Stephen Hemminger
1096e87174 [PATCH] skge: handle VLAN checksum correctly on yukon rev 0
If using UDP over VLAN, with the skge driver there is a possibility
of generating an incorrect checksum. This is a unlikely occurrence
because it is only an issue on Yukon revision 0, and that revision
doesn't seem to exist on any current hardware (probably early prototype).

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2005-12-01 02:28:56 -05:00
Stephen Hemminger
d7eaee087a [PATCH] skge: increase version number
Increase the driver version number and print version when
probing.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2005-11-08 23:58:08 -05:00
Stephen Hemminger
8f3f8193a4 [PATCH] skge: spelling fixes
Fix some of my bad spelling.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2005-11-08 23:58:08 -05:00
Stephen Hemminger
1631aef151 [PATCH] skge: use prefetch on receive
Use prefetch() in the interrupt path to try and look ahead
at the next place will be looking at in the ring.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2005-11-08 23:58:08 -05:00
Stephen Hemminger
355ec57243 [PATCH] skge: goto low power mode on shutdown
Go into power down mode on shutdown.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2005-11-08 23:58:08 -05:00
Stephen Hemminger
2cd8e5d365 [PATCH] skge: add mii ioctl support
Basic MII ioctl support for skge driver.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2005-11-08 23:58:08 -05:00
Stephen Hemminger
7e86306113 [PATCH] skge: use kzalloc
Can use kzalloc in skge driver.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2005-11-08 23:58:08 -05:00
Stephen Hemminger
adba9e23b4 [PATCH] skge: clear PCI PHY COMA mode on boot
When skge is booted up, the PHY may be stuck in power down state
by the previous OS. So we may need to turn it on.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2005-11-08 23:58:07 -05:00
Jeff Garzik
3c8c7b2f32 Merge branch 'upstream-fixes' 2005-10-03 22:06:19 -04:00
Stephen Hemminger
c2681dd8c7 [PATCH] skge: set mac address oops with bonding
Skge driver was bringing link up/down when changing mac
address.  This doesn't work in the bonding environment, and is
more effort than needed.

Fixes-bug: http://bugzilla.kernel.org/show_bug.cgi?id=5271

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2005-10-03 21:58:33 -04:00
Stephen Hemminger
c886861138 [PATCH] skge: fix Yukon-Lite A0 workaround
This is one of those workarounds sucked over from sk98lin driver.
The skge driver needs to detect the Yukon-Lite A0 chip properly,
and turn of Rx FIFO Flush.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2005-09-23 19:07:12 -04:00
Jeff Garzik
da192bb50c Merge /spare/repo/linux-2.6/ 2005-09-22 15:43:14 -04:00
Jeff Garzik
a3536c839f Merge /spare/repo/linux-2.6/ 2005-09-21 22:34:08 -04:00
Stephen Hemminger
383181ac7e [PATCH] skge: check length from PHY
Cleanup receive buffer allocation and management,
Add more error handling checks from PHY and bump version.
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2005-09-21 22:32:50 -04:00
Stephen Hemminger
c3f8be9618 [PATCH] skge: expand ethtool debug register dump
Expand the returned data for ethtool debug access to include
all of the mapped PCI area; except for the small set of registers
that are for diagnostic RAM access. Access to those registers
will hang the system.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2005-09-21 22:32:50 -04:00
Stephen Hemminger
46a60f2d71 [PATCH] skge: gmac register access errors in dual port
Merge of four previous patches and the Kconfig fix
 * Remove debug printk's
 * whitespace cleanup and version number change
 * clear interrupts, reset phy, and reset hardware on shutdown
 * ignore 64bit counter overflow interrupts
 * fix a couple of places where second port could clobber state
   of first port.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2005-09-14 08:32:07 -04:00
John W. Linville
56230d5382 [PATCH] skge: support ETHTOOL_GPERMADDR
Add support for ETHTOOL_GPERMADDR to skge.

Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2005-09-14 08:30:02 -04:00
Francois Romieu
86f0cd5057 [PATCH] r8169: avoid conflict between revisions 2 and 3 of the Linksys EG1032
Both revisions share the same PCI device ID and vendor ID but revision 2
of the device uses SysKonnect's chipset whereas revision 3 of the device
uses Realtek's 8169 chipset.

Credit goes to Christiaan Lutzer <mythtv.lutzer@gmail.com> for reporting
the issue and giving the actual value for the different revisions.

Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2005-08-27 04:41:01 -04:00
Stephen Hemminger
54cfb5aa0f [PATCH] skge: turn on link status LED
Turn on the link status LED when link comes up.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2005-08-16 17:03:13 -04:00
Stephen Hemminger
c59230818f [PATCH] skge: increase receive flush threshold default
The flush threshold in the MAC chip should be increased.
Found while reviewing vendor version of sk98lin driver.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2005-08-16 17:03:13 -04:00
Stephen Hemminger
5e1705ddc8 [PATCH] skge: fibre vs copper detection cleanup
Cleanup the code that handles fibre vs copper detection.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>

 drivers/net/skge.c |   26 ++++++++++++--------------
 drivers/net/skge.h |   11 ++---------
 2 files changed, 14 insertions(+), 23 deletions(-)
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2005-08-16 17:03:13 -04:00
Stephen Hemminger
050ec18a35 [PATCH] skge: stop bogus sensor messages
Some versions of the Marvell yukon generate bogus sensor warning interrupts.
The driver would flood log with these messages.  Handle this situation
cleanly by masking away at boot time.

Fixes: http://bugs.gentoo.org/show_bug.cgi?id=87182

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>

 drivers/net/skge.c |   24 ++++++++++--------------
 drivers/net/skge.h |    8 ++++++--
 2 files changed, 16 insertions(+), 16 deletions(-)
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2005-08-16 17:03:13 -04:00
Stephen Hemminger
f2e1e47d14 [PATCH] skge: version 0.8
Increase driver version to 0.8

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2005-07-31 00:40:54 -04:00
Stephen Hemminger
6abebb538d [PATCH] skge: led toggle cleanup
Cleanup code that is used to toggle LED's. Since we
get called from ethtool, can use that thread rather than
setting up a timer.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2005-07-31 00:40:54 -04:00
Stephen Hemminger
4cde06ed0f [PATCH] skge: ignore phy interrupts during negotiation
During autonegotiation set PHY interrupt mask to ignore
bogus speed change interrupts.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2005-07-31 00:40:53 -04:00
Stephen Hemminger
d8a09943eb [PATCH] skge: fifo control register access fix
The code to clear fifo errors was incorrect and sending garbage
to the external phy. Removed the no longer used inline's funcs.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2005-07-31 00:40:53 -04:00
Stephen Hemminger
2c66851460 [PATCH] skge: whitespace fixes
Minor whitespace cleanups.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2005-07-31 00:40:53 -04:00
Stephen Hemminger
382317138b [PATCH] skge: support yukon lite rev 4
The check for Yukon lite changes was restricting itself to
rev A3. It turns out that these changes are also true on A4
and later.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2005-07-31 00:40:53 -04:00
Stephen Hemminger
4ff6ac052b [PATCH] skge: phy lock deadlock
Cleanup the phy_lock deadlock because of relocking in the nway_reset path.
Reported by Francois Romieu.

Also, don't need to do irqsave/restore for blink,
just excluding bh is good enough.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2005-07-31 00:40:53 -04:00