AR7 ethernet
Subsystems (3)
PATCH 1/1 AR7 ethernet
New version which uses less locking and drops old API
Signed-off-by Matteo Croce <[email protected]>
Signed-off-by Eugene Konev <[email protected]>
Signed-off-by Felix Fietkau <[email protected]>
drivers/net/Kconfig +9 -0
@@ -1780,6 +1780,15 @@ config SC92031 To compile this driver as a module, choose M here: the module will be called sc92031. This is recommended. +config CPMAC + tristate "TI AR7 CPMAC Ethernet support (EXPERIMENTAL)" + depends on NET_ETHERNET && EXPERIMENTAL && AR7 + select PHYLIB + select FIXED_PHY + select FIXED_MII_100_FDX + help + TI AR7 CPMAC Ethernet support + config NET_POCKET bool "Pocket and portable adapters" depends on PARPORT
drivers/net/Makefile +1 -0
@@ -161,6 +161,7 @@ obj-$(CONFIG_8139CP) += 8139cp.o obj-$(CONFIG_8139TOO) += 8139too.o obj-$(CONFIG_ZNET) += znet.o obj-$(CONFIG_LAN_SAA9730) += saa9730.o +obj-$(CONFIG_CPMAC) += cpmac.o obj-$(CONFIG_DEPCA) += depca.o obj-$(CONFIG_EWRK3) += ewrk3.o obj-$(CONFIG_ATP) += atp.o
drivers/net/cpmac.c new file +1174 -0
1,174 lines not on this page · raw message
Jeff Garzik
Appliedapplied
Il Monday 15 October 2007 20:24:21 Jeff Garzik ha scritto:
Quoted 1 line
applied
Small update to the driver, please apply
Signed-off-by Matteo Croce <[email protected]>
Signed-off-by Eugene Konev <[email protected]>
Signed-off-by Felix Fietkau <[email protected]>
drivers/net/cpmac.c +12 -19
@@ -460,18 +460,11 @@ static int cpmac_start_xmit(struct sk_buff *skb, struct net_device *dev)struct cpmac_desc *desc;struct cpmac_priv *priv =netdev_priv (dev); -if (unlikely (skb_padto (skb,ETH_ZLEN ))) { -if (netif_msg_tx_err (priv) &&net_ratelimit ()) -printk (KERN_WARNING -"%s: tx: padding failed, dropping\n" , dev->name); -spin_lock (&priv->lock); - dev->stats.tx_dropped++; -spin_unlock (&priv->lock); -return -ENOMEM ; - } +if (unlikely (skb_padto (skb,ETH_ZLEN ))) +return NETDEV_TX_OK ; len =max (skb->len,ETH_ZLEN ); - queue =skb_get_queue_mapping (skb); + queue = skb->queue_mapping;#ifdef CONFIG_NETDEVICES_MULTIQUEUE netif_stop_subqueue (dev, queue);#else
@@ -481,13 +474,9 @@ static int cpmac_start_xmit(struct sk_buff *skb, struct net_device *dev) desc = &priv->desc_ring[queue];if (unlikely (desc->dataflags &CPMAC_OWN )) {if (netif_msg_tx_err (priv) &&net_ratelimit ()) -printk (KERN_WARNING "%s: tx dma ring full, dropping\n" , +printk (KERN_WARNING "%s: tx dma ring full\n" , dev->name); -spin_lock (&priv->lock); - dev->stats.tx_dropped++; -spin_unlock (&priv->lock); -dev_kfree_skb_any (skb); -return -ENOMEM ; +return NETDEV_TX_BUSY ; }spin_lock (&priv->lock);
@@ -509,7 +498,7 @@ static int cpmac_start_xmit(struct sk_buff *skb, struct net_device *dev)cpmac_dump_skb (dev, skb);cpmac_write (priv->regs,CPMAC_TX_PTR (queue), (u32 )desc->mapping); -return 0 ; +return NETDEV_TX_OK ; }static void cpmac_end_xmit (struct net_device *dev,int queue)
@@ -646,12 +635,14 @@ static void cpmac_clear_tx(struct net_device *dev)int i;if (unlikely (!priv->desc_ring))return ; -for (i =0 ; i <CPMAC_QUEUES ; i++) +for (i =0 ; i <CPMAC_QUEUES ; i++) { + priv->desc_ring[i].dataflags =0 ;if (priv->desc_ring[i].skb) {dev_kfree_skb_any (priv->desc_ring[i].skb);if (netif_subqueue_stopped (dev, i))netif_wake_subqueue (dev, i); } + } }static void cpmac_hw_error (struct work_struct *work)
@@ -727,11 +718,13 @@ static void cpmac_tx_timeout(struct net_device *dev)#ifdef CONFIG_NETDEVICES_MULTIQUEUE for (i =0 ; i <CPMAC_QUEUES ; i++)if (priv->desc_ring[i].skb) { + priv->desc_ring[i].dataflags =0 ;dev_kfree_skb_any (priv->desc_ring[i].skb);netif_wake_subqueue (dev, i);break ; }#else + priv->desc_ring[0 ].dataflags =0 ;if (priv->desc_ring[0 ].skb)dev_kfree_skb_any (priv->desc_ring[0 ].skb);netif_wake_queue (dev);
@@ -794,7 +787,7 @@ static int cpmac_set_ringparam(struct net_device *dev, struct ethtool_ringparam* {struct cpmac_priv *priv =netdev_priv (dev); -if (dev->flags &&IFF_UP ) +if (netif_running (dev))return -EBUSY ; priv->ring_size = ring->rx_pending;return 0 ;
Jeff Garzik
AppliedQuoted 9 lines · Matteo Croce
Il Monday 15 October 2007 20:24:21 Jeff Garzik ha scritto:
Quoted 1 line
applied
Small update to the driver, please apply
Signed-off-by Matteo Croce <[email protected]>Signed-off-by Eugene Konev <[email protected]>Signed-off-by Felix Fietkau <[email protected]>
applied
Please provide a useful subject line and changelog for ALL your patches, as documented by Documentation/SubmittingPatches and
http://linux.yyz.us/patch-format.html