aboutsummaryrefslogtreecommitdiff
path: root/drivers/net/mv643xx_eth.c
AgeCommit message (Collapse)Author
2006-09-24Merge branch 'upstream-linus' of ↵Linus Torvalds
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 84fa7933a33f806bbbaae6775e87459b1ec584c0 that just happened to be next to unrelated changes in this update.
2006-09-23Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6Linus Torvalds
* master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6: (353 commits) [IPV6] ADDRCONF: Mobile IPv6 Home Address support. [IPV6] ADDRCONF: Allow non-DAD'able addresses. [IPV6] NDISC: Fix is_router flag setting. [IPV6] ADDRCONF: Convert addrconf_lock to RCU. [IPV6] NDISC: Add proxy_ndp sysctl. [IPV6] NDISC: Set per-entry is_router flag in Proxy NA. [IPV6] NDISC: Avoid updating neighbor cache for proxied address in receiving NA. [IPV6]: Don't forward packets to proxied link-local address. [IPV6] NDISC: Handle NDP messages to proxied addresses. [NETFILTER]: PPTP conntrack: fix another GRE keymap leak [NETFILTER]: PPTP conntrack: fix GRE keymap leak [NETFILTER]: PPTP conntrack: fix PPTP_IN_CALL message types [NETFILTER]: PPTP conntrack: check call ID before changing state [NETFILTER]: PPTP conntrack: clean up debugging cruft [NETFILTER]: PPTP conntrack: consolidate header parsing [NETFILTER]: PPTP conntrack: consolidate header size checks [NETFILTER]: PPTP conntrack: simplify expectation handling [NETFILTER]: PPTP conntrack: remove unnecessary cid/pcid header pointers [NETFILTER]: PPTP conntrack: fix header definitions [NETFILTER]: PPTP conntrack: remove more dead code ...
2006-09-22[NET]: Replace CHECKSUM_HW by CHECKSUM_PARTIAL/CHECKSUM_COMPLETEPatrick McHardy
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-21Merge branch 'upstream-fixes' into upstreamJeff Garzik
2006-09-21[netdrvr] mv643xx_eth: fix obvious typo, which caused build breakageJeff Garzik
The last minute fix submitted by the author fixed a bug, but broke the driver build. Noticed by Al Viro, since I can't build on said platform. Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-09-13drivers/net: const-ify ethtool_ops declarationsJeff Garzik
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-09-13drivers/net: Trim trailing whitespaceJeff Garzik
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-09-13[PATCH] mv643xx_eth: Unmap DMA buffers in receive pathDale Farnsworth
Fix a missing call to dma_unmap_single() in the receive path. Without this call, errors have been observed on non-cache-coherent systems. Signed-off-by Dale Farnsworth <dale@farnsworth.org> Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-07-02[PATCH] irq-flags: drivers/net: Use the new IRQF_ constantsThomas Gleixner
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-06-17[NET]: Clean up skb_linearizeHerbert Xu
The linearisation operation doesn't need to be super-optimised. So we can replace __skb_linearize with __pskb_pull_tail which does the same thing but is more general. Also, most users of skb_linearize end up testing whether the skb is linear or not so it helps to make skb_linearize do just that. Some callers of skb_linearize also use it to copy cloned data, so it's useful to have a new function skb_linearize_cow to copy the data if it's either non-linear or cloned. Last but not least, I've removed the gfp argument since nobody uses it anymore. If it's ever needed we can easily add it back. Misc bugs fixed by this patch: * via-velocity error handling (also, no SG => no frags) Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by: David S. Miller <davem@davemloft.net>
2006-05-02[PATCH] mv643xx_eth: provide sysfs class device symlinkOlaf Hering
On Sat, Mar 11, Olaf Hering wrote: > Why is the /sys/class/net/eth0/device symlink not created for the > mv643xx_eth driver? Does this work for other platform device drivers? > Seems to work for the ps2 keyboard at least. The SET_NETDEV_DEV has to be done before a call to register_netdev. With the new patch below, the device symlink for the platform device was created. Unfortunately, after the 4 ls commands, the network connection died. No idea if the box crashed or if something else broke, lost remote access. Provide sysfs 'device' in /class/net/ethN Also, set module owner field, like pcnet32 driver does. Signed-off-by: Olaf Hering <olh@suse.de> Acked-by: Dale Farnsworth <dale@farnsworth.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-04-12[PATCH] mv643xx_eth: Fix tx_timeout to only conditionally wake tx queueDale Farnsworth
After resetting the hardware on a tx_timeout, call netif_wake_queue() only if we have free tx descriptors. Also, attempt to recover if mv643xx_eth_start_xmit() is called when there are fewer free tx descriptors than expected. The BUG_ON() call we are replacing was hit on a tx_timeout that called netif_wake_queue(), indirectly via netif_device_attach(), even though we did not have enough free tx descriptors. Signed-off-by: Dale Farnsworth <dale@farnsworth.org> Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-04-12[PATCH] mv643xx_eth: Always free completed tx descs on tx interruptBrent Cook
Fix the tx interrupt handler to free completed tx descriptors even when NAPI is enabled. Otherwise, the tx queue would fill up resulting in poor performance and "NETDEV WATCHDOG: <iface>: transmit timed out" messages. Signed-off-by: Brent Cook <bcook@bpointsys.com> Signed-off-by: Dale Farnsworth <dale@farnsworth.org> Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-03-03[PATCH] mv643xx_eth: Remove non-working feature: task level rx queue refillDale Farnsworth
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 Farnsworth
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 Farnsworth
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 Farnsworth
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 Farnsworth
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 Farnsworth
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 Farnsworth
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 Farnsworth
Signed-off-by: Dale Farnsworth <dale@farnsworth.org> Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-02-09Merge branch 'viro'Jeff Garzik
2006-02-07[PATCH] missing includes in drivers/net/mv643xx_eth.cAl Viro
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2006-01-27[PATCH] mv643xx_eth: Clean up platform_data configurationDale Farnsworth
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 Chapman
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 Chapman
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 Farnsworth
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 Farnsworth
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 Farnsworth
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 Farnsworth
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 Farnsworth
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 Galtieri
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 Farnsworth
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 Farnsworth
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 Farnsworth
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 Farnsworth
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 Joost
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 Farnsworth
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 Farnsworth
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 Janzen
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 Farnsworth
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 Farnsworth
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 Galtieri
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 Galtieri
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 Hering
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 Hering
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 King
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 Torvalds
Manual #include fixups for clashes - there may be some unnecessary
2005-10-29Create platform_device.h to contain all the platform device details.Russell King
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 DET
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>