aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/mv643xx_eth.c (follow)
AgeCommit message (Collapse)AuthorFilesLines
2006-03-03[PATCH] mv643xx_eth: Remove non-working feature: task level rx queue refillDale Farnsworth1-47/+12
The task level rx queue refill feature hasn't ever worked (at least in 2.6) and is of dubious value. Remove it. Signed-off-by: Dale Farnsworth <dale@farnsworth.org> Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-03-03[PATCH] mv643xx_eth: Clean up interrupt handlingDale Farnsworth1-50/+25
Signed-off-by: Dale Farnsworth <dale@farnsworth.org> Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-03-03[PATCH] mv643xx_eth: Move #defines of constants to mv643xx_eth.hDale Farnsworth1-48/+18
Signed-off-by: Dale Farnsworth <dale@farnsworth.org> Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-03-03[PATCH] mv643xx_eth: Refactor/clean up tx queue handlingDale Farnsworth1-173/+84
Signed-off-by: Dale Farnsworth <dale@farnsworth.org> Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-03-03[PATCH] mv643xx_eth: Refactor tx command queuing codeDale Farnsworth1-397/+152
Simplify and remove redundant code for filling transmit descriptors. No changes in features; it's just a code reorganization/cleanup. Signed-off-by: Dale Farnsworth <dale@farnsworth.org> Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-03-03[PATCH] mv643xx_eth: Rename "channels" to "queues"Dale Farnsworth1-22/+22
Use better terminology for HW queues. No functional changes. Signed-off-by: Dale Farnsworth <dale@farnsworth.org> Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-03-03[PATCH] mv643xx_eth: Fix misplaced parenthesis in mv643xx_eth_port_disable_rxDale Farnsworth1-2/+2
This bug could result in a system hang. Signed-off-by: Dale Farnsworth <dale@farnsworth.org> Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-03-03[PATCH] mv643xx_eth: Remove duplicate includes of linux/in.h and linux/ip.hDale Farnsworth1-2/+0
Signed-off-by: Dale Farnsworth <dale@farnsworth.org> Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-02-09Merge branch 'viro'Jeff Garzik1-0/+2
2006-02-07[PATCH] missing includes in drivers/net/mv643xx_eth.cAl Viro1-0/+2
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2006-01-27[PATCH] mv643xx_eth: Clean up platform_data configurationDale Farnsworth1-50/+21
We shouldn't expose the hardware register contents in platform_data. The only things we allow the user to configure are autoneg, speed, and duplex. Add specific platform_data fields for these values and remove the registers configs. Signed-off-by: Dale Farnsworth <dale@farnsworth.org> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2006-01-27[PATCH] mv643xx_eth: use MII library for ethtool functionsJames Chapman1-141/+210
Use the common ethtool support functions of the MII library. Add generic MII ioctl handler. Add PHY parameter speed/duplex/negotiation initialization and modification. Signed-off-by: James Chapman <jchapman@katalix.com> Signed-off-by: Dale Farnsworth <dale@farnsworth.org> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2006-01-27[PATCH] mv643xx_eth: use MII library for PHY managementJames Chapman1-23/+41
Modify link up/down handling to use the functions from the MII library. Note that I track link state using the MII PHY registers rather than the mv643xx chip's link state registers because I think it's cleaner to use the MII library code rather than writing local driver support code. It is also useful to make the actual MII registers available to the user with maskable kernel printk messages so the MII registers are being read anyway Signed-off-by: James Chapman <jchapman@katalix.com> Signed-off-by: Dale Farnsworth <dale@farnsworth.org> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2006-01-27[PATCH] mv643xx_eth: Make port queue enable/disable code consistentDale Farnsworth1-54/+79
Add and use the following functions: mv643xx_eth_port_enable_tx() mv643xx_eth_port_enable_rx() mv643xx_eth_port_disable_tx() mv643xx_eth_port_disable_rx() so that ports are enabled/disabled consistently. Signed-off-by: Dale Farnsworth <dale@farnsworth.org> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2006-01-27[PATCH] mv643xx_eth: Rename mp->tx_ring_skbs to mp->tx_desc_countDale Farnsworth1-25/+26
tx_ring_skbs is actually a count of tx descriptors currently in use. Since there may be multiple descriptors per skb, it is not the same as the number of skbs in the ring. Also change rx_ring_skbs to rx_desc_count to be consistent. Signed-off-by: Dale Farnsworth <dale@farnsworth.org> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2006-01-27[PATCH] mv643xx_eth: Merge unicast and multicast address filtering codeDale Farnsworth1-75/+9
Remove duplicated code by having unicast and multicast code use a common filter table function: eth_port_set_filter_table_entry(). Signed-off-by: Dale Farnsworth <dale@farnsworth.org> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2006-01-27[PATCH] mv643xx_eth: Remove needless mp->port_mac_addrDale Farnsworth1-11/+7
mp->port_mac_addr is just a redundant copy of dev->dev_addr, so remove it. Signed-off-by: Dale Farnsworth <dale@farnsworth.org> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2006-01-27[PATCH] mv643xx_eth: Whitespace cleanupDale Farnsworth1-48/+46
Signed-off-by: Dale Farnsworth <dale@farnsworth.org> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2006-01-27[PATCH] mv643xx_eth: Update dev->last_rx on packet receivePaolo Galtieri1-0/+1
Update dev->last_rx on packet receive This fix corrects errors seen during configuration of the bonding driver. Signed-off-by: Paolo Galtieri <pgaltieri@mvista.com> Signed-off-by: Dale Farnsworth <dale@farnsworth.org> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2006-01-27[PATCH] mv643xx_eth: Fix spinlock recursion bugDale Farnsworth1-13/+0
This patch eliminates a spinlock recursion bug introduced recently. Since eth_port_send() is always called with the lock held, we simply remove the locking inside the function itself. Signed-off-by: Dale Farnsworth <dale@farnsworth.org> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2006-01-17[PATCH] mv643xx_eth: Remove needless mask of extended intr registerDale Farnsworth1-55/+26
All interrupts controlled by the extended mask register are also masked by a bit in the main mask register, so there is no need to directly manipulate the extended mask register. Signed-off-by: Dale Farnsworth <dale@farnsworth.org> mv643xx_eth.c | 81 ++++++++++++++++++---------------------------------------- 1 file changed, 26 insertions(+), 55 deletions(-) Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2006-01-17[PATCH] mv643xx_eth: Merge open and stop helper functionsDale Farnsworth1-64/+45
Move code from helper functions mv643xx_eth_real_open and mv643xx_eth_real_stop as they are no longer needed. Signed-off-by Dale Farnsworth <dale@farnsworth.org> mv643xx_eth.c | 109 +++++++++++++++++++++++----------------------------------- 1 file changed, 45 insertions(+), 64 deletions(-) Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2006-01-17[PATCH] mv643xx_eth: Fix transmit skb accountingDale Farnsworth1-2/+5
Signed-off-by: Dale Farnsworth <dale@farnsworth.org> mv643xx_eth.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2006-01-17[PATCH] mv643xx_eth: Request HW checksum generation only for IPv4Wolfram Joost1-8/+11
This patch removes the NETIF_F_HW_CSUM flag to be able to use other protocols than IPv4. Hardware checksums for IPv4 should continue to work because NETIF_F_IP_CSUM is still set. The sanity-check has been enhanced to check the used protocol and to not access skb->iph for non-ipv4-packets. Signed-off-by: Wolfram Joost <pegasos@frokaschwei.de> Signed-off-by: Dale Farnsworth <dale@farnsworth.org> mv643xx_eth.c | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2006-01-17[PATCH] mv643xx_eth: Hold spinlocks only where neededDale Farnsworth1-80/+90
This driver has historically held a spin_lock during the entire open and stop functions and while receiving multiple packets. This is unecessarily long and holds locks during calls that may sleep. This patch reduces the size of windows where locks are held. Signed-off-by: Dale Farnsworth <dale@farnsworth.org> mv643xx_eth.c | 172 ++++++++++++++++++++++++++++++---------------------------- 1 file changed, 91 insertions(+), 81 deletions(-) Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2006-01-17[PATCH] mv643xx_eth: iounmap the correct SRAM bufferDale Farnsworth1-1/+1
Signed-off-by: Dale Farnsworth <dale@farnsworth.org> mv643xx_eth.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2006-01-17[PATCH] mv643xx_eth: Fix handling of small, unaligned fragmentsPaul Janzen1-23/+31
Fix handling of small, unaligned fragments. It also solves a potential deadlock if skb_linearize() returns -ENOMEM. Signed-off-by: Paul Janzen <pcj@linux.sez.to> Signed-off-by: Dale Farnsworth <dale@farnsworth.org> mv643xx_eth.c | 54 +++++++++++++++++++++++++++++++----------------------- 1 file changed, 31 insertions(+), 23 deletions(-) Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2006-01-17[PATCH] mv643xx_eth: Receive buffers require 8 byte alignmentDale Farnsworth1-3/+9
The Marvell mv643xx ethernet hardware requires that DMA buffers be aligned to 8-byte boundaries. This patch satisfies this requirement. Buffers allocated by dev_alloc_skb() only have 4-byte alignment when slab debugging is enabled. Also, document that the 2-byte offset to align the IP packets on receive is a hardware feature and is not tied to NET_IP_ALIGN. Signed-off-by: Dale Farnsworth <dale@farnsworth.org> mv643xx_eth.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2006-01-17[PATCH] mv643xx_eth: Add multicast supportDale Farnsworth1-4/+197
This code is adapted from code in a ppc-specific version of the driver. Signed-off-by: Dale Farnsworth <dale@farnsworth.org> mv643xx_eth.c | 201 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 197 insertions(+), 4 deletions(-) Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2006-01-17[PATCH] mv643xx_eth: Fix a NULL pointer dereferencePaolo Galtieri1-0/+2
Fix a NULL pointer dereference. Fill in the buf_ptr and byte_cnt fields of pkt_info in eth_tx_return_desc(). Signed-off-by: Paolo Galtieri <pgaltieri@mvista.com> Signed-off-by: Dale Farnsworth <dale@farnsworth.org> mv643xx_eth.c | 51 +++++++++++++++++++++------------------------------ 1 file changed, 21 insertions(+), 30 deletions(-) Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2006-01-17[PATCH] mv643xx_eth: Fix dma_map/dma_unmap relationsPaolo Galtieri1-30/+19
If you do a dma_map_single you must do dma_unmap_single and if you do a dma_map_page you must do a dma_unmap_page. Signed-off-by: Paolo Galtieri <pgaltieri@mvista.com> Signed-off-by: Dale Farnsworth <dale@farnsworth.org> mv643xx_eth.c | 51 +++++++++++++++++++++------------------------------ 1 file changed, 21 insertions(+), 30 deletions(-) Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2006-01-17[PATCH] mv643xx_eth: 2.6.16 needs ip.h and in.hOlaf Hering1-0/+2
Signed-off-by: Olaf Hering <olh@suse.de> Signed-off-by: Dale Farnsworth <dale@farnsworth.org> mv643xx_eth.c | 2 ++ 1 file changed, 2 insertions(+) Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2006-01-09[PATCH] remove bouncing mail address of mv643xx_eth maintainerOlaf Hering1-1/+1
Remove bouncing mail address of mv643xx maintainer. Signed-off-by: Olaf Hering <olh@suse.de> Cc: Jeff Garzik <jgarzik@pobox.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2005-11-09[DRIVER MODEL] Convert platform drivers to use struct platform_driverRussell King1-20/+20
This allows us to eliminate the casts in the drivers, and eventually remove the use of the device_driver function pointer methods for platform device drivers. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> Acked-by: Greg Kroah-Hartman <gregkh@suse.de>
2005-10-31Merge master.kernel.org:/home/rmk/linux-2.6-drvmodelLinus Torvalds1-0/+2
Manual #include fixups for clashes - there may be some unnecessary
2005-10-29Create platform_device.h to contain all the platform device details.Russell King1-0/+2
Convert everyone who uses platform_bus_type to include linux/platform_device.h. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> Acked-by: Greg Kroah-Hartman <gregkh@suse.de>
2005-10-29[PATCH] mv643xx_eth_showsram: Added information message when using the SRAMNicolas DET1-0/+3
Added information message when using the SRAM in mv643xx_eth_probe() Signed-off-by: Nicolas DET <det.nicolas@free.fr> Signed-off-by: Sven Luther <sl@bplan-gmbh.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-09-09[PATCH] more SPIN_LOCK_UNLOCKED -> DEFINE_SPINLOCK conversionsIngo Molnar1-1/+1
This converts the final 20 DEFINE_SPINLOCK holdouts. (another 580 places are already using DEFINE_SPINLOCK). Build tested on x86. Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-09-05[PATCH] mv643xx: add netpoll api supportDale Farnsworth1-2/+42
Add support for the netpoll api for use by netconsole, kgdb, etc. Signed-off-by: Dale Farnsworth <dale@farnsworth.org> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2005-09-05[PATCH] mv643xx: Fix promiscuous mode handlingDale Farnsworth1-58/+4
mv643xx_eth_get_config_reg() was reading the wrong register. mv643xx_eth_set_config_reg() was or'ing instead of setting the register. These functions are trivial and both are called only from mv643xx_eth_set_rx_mode() when changing to/from promiscuous mode. Remove both functions and do the operations directly in mv643xx_eth_set_rx_mode(). Also, maintain promiscuous mode setting across port resets. Signed-off-by: Dale Farnsworth <dale@farnsworth.org> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2005-09-05[PATCH] mv643xx: Disable per port bandwidth limitsDale Farnsworth1-0/+3
The mv643xx chips support per port bandwith limits. This patch disables the bandwidth limits by clearing the MTU register. Signed-off-by: Dale Farnsworth <dale@farnsworth.org> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2005-09-05[PATCH] mv643xx: fix outstanding tx skb counterDale Farnsworth1-15/+9
This patch corrects the accounting of outstanding tx skbs. It fixes a bug that causes "Error on Queue Full" messages seen since scatter-gather was enabled by using the hardware tcp/udp checksum generator. Signed-off-by: Dale Farnsworth <dale@farnsworth.org> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2005-09-05[PATCH] mv643xx: fix skb memory leakDale Farnsworth1-4/+2
This patch fixes an skb memory leak under heavy receive load (whenever the more packets have been received than the NAPI budget allows to be processed). Signed-off-by: Dale Farnsworth <dale@farnsworth.org> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2005-08-23[PATCH] mv643xx: add workaround for HW checksum generation bugDale Farnsworth1-11/+18
[PATCH] [NET] mv643xx: add workaround for HW checksum generation bug The hardware checksum generator on the mv64xxx occasionally generates an incorrect checksum. This patch works around the issue and enables hardware checksum generation. Signed-off-by: Dale Farnsworth <dale@farnsworth.org> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2005-04-25[PATCH] ppc iomem annotations: mv643xx_ethAl Viro1-2/+2
void * __iomem replaced with intended void __iomem *. Signed-off-by: Al Viro <viro@parcelfarce.linux.theplanet.co.uk> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-04-16[PATCH] ppc32: MV643XX ethernet is an option for PegasosBenjamin Herrenschmidt1-1/+1
This patch allows Kconfig to build the MV643xx ethernet driver on Pegasos (CONFIG_PPC_MULTIPLATFORM) and adds what I think is a missing fix from Dale's batch, that is remove SA_INTERRUPT and add SA_SHIRQ in there as the interrupt is shared if I understand things correctly. Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Fabio Massimo Di Nitto <fabbione@ubuntu.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-04-16Linux-2.6.12-rc2Linus Torvalds1-0/+3033
Initial git repository build. I'm not bothering with the full history, even though we have it. We can create a separate "historical" git archive of that later if we want to, and in the meantime it's about 3.2GB when imported into git - space that would just make the early git days unnecessarily complicated, when we don't have a lot of good infrastructure for it. Let it rip!