Skip to contentSkip to conversation

2.6.x net driver updates

PATCH New Jeff Garzik 1 participant 1 message Mar 8, 2005

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 2.6.x net driver updates

Changes:
* viro's iomap/iomem updates
* ham, mv643xx, orinoco updates
* sis900, via-rhine updates

Please do a

bk pull bk://gkernel.bkbits.net/net-drivers-2.6

This will update the following files:

 drivers/net/Kconfig                   |    5 
 drivers/net/fealnx.c                  |  275 +--
 drivers/net/hamradio/6pack.c          |    4 
 drivers/net/hamradio/baycom_epp.c     |   53 
 drivers/net/hamradio/baycom_par.c     |    8 
 drivers/net/hamradio/baycom_ser_fdx.c |    7 
 drivers/net/hamradio/baycom_ser_hdx.c |    7 
 drivers/net/hamradio/bpqether.c       |   19 
 drivers/net/hamradio/dmascc.c         | 2073 +++++++++++++-------------
 drivers/net/hamradio/hdlcdrv.c        |   48 
 drivers/net/hamradio/mkiss.c          |   12 
 drivers/net/hamradio/yam.c            |   38 
 drivers/net/mv643xx_eth.c             | 2687 +++++++++++++++++++---------------
 drivers/net/mv643xx_eth.h             |  641 +++-----
 drivers/net/sis900.c                  |  216 +-
 drivers/net/via-rhine.c               |    4 
 drivers/net/wireless/airport.c        |   22 
 drivers/net/wireless/hermes.c         |   72 
 drivers/net/wireless/hermes.h         |   64 
 drivers/net/wireless/orinoco.c        |  419 +++--
 drivers/net/wireless/orinoco.h        |   37 
 drivers/net/wireless/orinoco_cs.c     |   49 
 drivers/net/wireless/orinoco_pci.c    |  124 -
 drivers/net/wireless/orinoco_plx.c    |  235 +-
 drivers/net/wireless/orinoco_tmd.c    |  150 +
 include/linux/mv643xx.h               |  448 ++++-
 26 files changed, 4187 insertions(+), 3530 deletions(-)

through these ChangeSets:

<dfarnsworth:mvista.com>:
o [netdrvr mv643xx] Big rename
o [netdrvr mv643xx] Rename MV_READ => mv_read and MV_WRITE => mv_write
o [netdrvr mv643xx] Additional whitespace cleanups, mostly changing spaces to tabs in comments
o [netdrvr mv643xx] Run mv643xx_eth.[ch] through scripts/Lindent
o [netdrvr mv643xx] Add a function to detect at runtime whether a PHY is attached to the specified port, and use it to cause the probe routine to fail when there is no PHY.
o [netdrvr mv643xx] This one liner removes a spurious left paren fixing an obvious syntax error in the #ifndef MV64340_NAPI case
o [netdrvr mv643xx] Add support for PHYs/boards that don't support autonegotiation
o [netdrvr mv643xx] With this patch, the driver now calls netif_carrier_off/netif_carrier_on
o [netdrvr mv643xx] This patch cleans up the handling of receive skb sizing

<mbrancaleoni:tiscali.it>:
o sis900.c net poll support

<takis:lumumba.luc.ac.be>:
o Possible VIA-Rhine free irq issue

Alexander Viro:
o fealnx iomem annotations, switch to io{read,write}
o wireless iomem annotations and fixes, switch to io{read,write}

Andrew Morton:
o VIA-Rhine: undork whitespace

Dale Farnsworth:
o mv643xx: remove superfluous function, mv643xx_set_ethtool_ops
o mv643xx: raise size of receive skbs to allow for an optional VLAN tag
o [netdrvr mv643xx] Remove call to msleep() while locks are held. We don't really need to wait for the link to come up. It was a workaround to avoid a transient error message, "Virtual device %s asks to queue packet!\n", in dev_queue_xmit() when called by ic_bootp_send_if(). This happens because right after opening the network device, there is a pending PHY status change interrupt causing the driver to call netif_stop_queue(). A half second later, the link comes up and all is well. We could have moved the call to msleep() to mv643xx_eth_open() to perpetuate the workaround, but I think it's best to remove it entirely.
o [netdrvr mv643xx] Ensure that we only change the Port Serial Control Reg while the port is disabled.
o [netdrvr mv643xx] Add ethtool support to the mv643xx ethernet driver
o [netdrvr mv643xx] Enable the mv643xx ethernet support on platforms using the MV64360 chip
o [netdrvr mv643xx] Disable tcp/udp checksum offload to hardware. It generally works, but the hardware appears to generate the wrong checksum if the hw checksum generation wasn't used in the previous packet sent.
o [netdrvr mv643xx] We already set ETH_TX_ENABLE_INTERRUPT whenever we set ETH_TX_LAST_DESC
o [netdrvr mv643xx] Update tx_bytes statistic when using hw tcp/udp checksum generation
o [netdrvr mv643xx] Call netif_carrier_off when closing the driver
o [netdrvr mv643xx] Trivial. Remove repeated comment
o [netdrvr mv643xx] Clear transmit l4i_chk even when the hardware ignores it
o [netdrvr mv643xx] Increment tx_ring_skbs before calling eth_port_send, since
o [netdrvr mv643xx] Fix handling of unaligned tiny fragments not handled by hardware Check all fragments instead of just the last.
o [netdrvr mv643xx] Fix a few places I missed in the previous rename patch
o [netdrvr mv643xx] This patch simplifies the mv64340_eth_set_rx_mode function without changing its behavior.
o [netdrvr mv643xx] This patch makes the use of the MV64340_RX_QUEUE_FILL_ON_TASK config macro more consistent, though the macro remains undefined, since the feature still does not work properly.
o [netdrvr mv643xx] This patch adds support for passing additional parameters via the platform_device interface. These additional parameters are:
o [netdrvr mv643xx] This patch adds device driver model support to the mv643xx_eth driver
o [netdrvr mv643xx] This patch replaces the use of the pci_map_* functions with the corresponding dma_map_* functions.
o [netdrvr mv643xx] This patch fixes the code that enables hardware checksum generation
o [netdrvr mv643xx] This patch removes spin delays (count to 1000000, ugh) and instead waits with udelay or msleep for hardware flags to change.
o [netdrvr mv643xx] This patch removes code that is redundant or useless

Daniele Venzano:
o sis900: chiprev i/o cleanups
o sis900: debugging output update
o sis900 printk audit
o sis900: version bump; remove broken URL
o sis900: add infrastructure needed for standard netif messages

David Gibson:
o Orinoco driver updates - cleanup PCI initialization
o Orinoco driver updates - PCMCIA initialization cleanups
o Orinoco driver updates - update version and changelog
o Orinoco driver updates - update firmware detection
o Orinoco driver updates - WEP updates
o Orinoco driver updates - delay Tx wake
o Orinoco driver updates - prohibit IBSS with no ESSID
o Orinoco driver updates - update is_ethersnap()
o Orinoco driver updates - PCMCIA initialization cleanups
o Orinoco driver updates - use modern module_parm()
o Orinoco driver updates - cleanup PCI initialization
o Orinoco driver updates - cleanup low-level code
o Orinoco driver updates - add free_orinocodev()
o Orinoco driver updates - use mdelay()/ssleep() more
o Orinoco driver updates - update printk()s
o Orinoco driver updates - use netif_carrier_*()

Ralf B�chle:
o Remove unused MAXBPQDEV definition
o Sparse fixes for drivers/net/hamradio
o Reformat DMASCC driver
o Use netdev_priv in baycom_epp driver
o Use netdev_priv in baycom_ser_fdx driver
o Use netdev_priv in hdlcdrv driver
o Use netdev_priv in baycom_ser_hdx driver
o Use netdev_priv in baycom_par driver
o Use netdev_priv in bpqether driver
o Use netdev_priv in mkiss driver
o Use netdev_priv in YAM driver

drivers/net/Kconfig +3 -2
diff -Nru a/drivers/net/Kconfig b/drivers/net/Kconfig
@@ -2066,10 +2066,11 @@
 
 config MV643XX_ETH
 	tristate "MV-643XX Ethernet support"
-	depends on MOMENCO_OCELOT_C || MOMENCO_JAGUAR_ATX || MOMENCO_OCELOT_3
+	depends on MOMENCO_OCELOT_C || MOMENCO_JAGUAR_ATX || MV64360 || MOMENCO_OCELOT_3
 	help
 	  This driver supports the gigabit Ethernet on the Marvell MV643XX
-	  chipset which is used in the Momenco Ocelot C and Jaguar ATX.
+	  chipset which is used in the Momenco Ocelot C and Jaguar ATX and
+	  Pegasos II, amongst other PPC and MIPS boards.
 
 config MV643XX_ETH_0
 	bool "MV-643XX Port 0"
drivers/net/fealnx.c +129 -146

758 lines not on this page · raw message

drivers/net/hamradio/6pack.c +2 -2
diff -Nru a/drivers/net/hamradio/6pack.c b/drivers/net/hamradio/6pack.c
@@ -756,12 +756,12 @@
 
 	switch(cmd) {
 	case SIOCGIFNAME:
-		err = copy_to_user((void *) arg, dev->name,
+		err = copy_to_user((void __user *) arg, dev->name,
 		                   strlen(dev->name) + 1) ? -EFAULT : 0;
 		break;
 
 	case SIOCGIFENCAP:
-		err = put_user(0, (int __user *)arg);
+		err = put_user(0, (int __user *) arg);
 		break;
 
 	case SIOCSIFENCAP:
drivers/net/hamradio/baycom_epp.c +10 -43

119 lines not on this page · raw message

drivers/net/hamradio/baycom_par.c +4 -4
diff -Nru a/drivers/net/hamradio/baycom_par.c b/drivers/net/hamradio/baycom_par.c
@@ -85,6 +85,7 @@
 #include <linux/parport.h>
 #include <linux/bitops.h>
 
+#include <asm/bug.h>
 #include <asm/system.h>
 #include <asm/uaccess.h>
 
@@ -415,12 +416,11 @@
 	struct baycom_state *bc;
 	struct baycom_ioctl bi;
 
-	if (!dev || !dev->priv ||
-	    ((struct baycom_state *)dev->priv)->hdrv.magic != HDLCDRV_MAGIC) {
-		printk(KERN_ERR "bc_ioctl: invalid device struct\n");
+	if (!dev)
 		return -EINVAL;
-	}
+
 	bc = netdev_priv(dev);
+	BUG_ON(bc->hdrv.magic != HDLCDRV_MAGIC);
 
 	if (cmd != SIOCDEVPRIVATE)
 		return -ENOIOCTLCMD;
drivers/net/hamradio/baycom_ser_fdx.c +3 -4
diff -Nru a/drivers/net/hamradio/baycom_ser_fdx.c b/drivers/net/hamradio/baycom_ser_fdx.c
@@ -530,12 +530,11 @@
 	struct baycom_state *bc;
 	struct baycom_ioctl bi;
 
-	if (!dev || !dev->priv ||
-	    ((struct baycom_state *)dev->priv)->hdrv.magic != HDLCDRV_MAGIC) {
-		printk(KERN_ERR "bc_ioctl: invalid device struct\n");
+	if (!dev)
 		return -EINVAL;
-	}
+
 	bc = netdev_priv(dev);
+	BUG_ON(bc->hdrv.magic != HDLCDRV_MAGIC);
 
 	if (cmd != SIOCDEVPRIVATE)
 		return -ENOIOCTLCMD;
drivers/net/hamradio/baycom_ser_hdx.c +3 -4
diff -Nru a/drivers/net/hamradio/baycom_ser_hdx.c b/drivers/net/hamradio/baycom_ser_hdx.c
@@ -570,12 +570,11 @@
 	struct baycom_state *bc;
 	struct baycom_ioctl bi;
 
-	if (!dev || !dev->priv ||
-	    ((struct baycom_state *)dev->priv)->hdrv.magic != HDLCDRV_MAGIC) {
-		printk(KERN_ERR "bc_ioctl: invalid device struct\n");
+	if (!dev)
 		return -EINVAL;
-	}
+
 	bc = netdev_priv(dev);
+	BUG_ON(bc->hdrv.magic != HDLCDRV_MAGIC);
 
 	if (cmd != SIOCDEVPRIVATE)
 		return -ENOIOCTLCMD;
drivers/net/hamradio/bpqether.c +7 -12
diff -Nru a/drivers/net/hamradio/bpqether.c b/drivers/net/hamradio/bpqether.c
@@ -112,8 +112,6 @@
 };
 
 
-#define MAXBPQDEV 100
-
 struct bpqdev {
 	struct list_head bpq_list;	/* list of bpq devices chain */
 	struct net_device *ethdev;	/* link to ethernet device */
@@ -134,7 +132,7 @@
  */
 static inline struct net_device *bpq_get_ether_dev(struct net_device *dev)
 {
-	struct bpqdev *bpq = (struct bpqdev *) dev->priv;
+	struct bpqdev *bpq = netdev_priv(dev);
 
 	return bpq ? bpq->ethdev : NULL;
 }
@@ -191,7 +189,7 @@
 	 * we check the source address of the sender.
 	 */
 
-	bpq = (struct bpqdev *)dev->priv;
+	bpq = netdev_priv(dev);
 
 	eth = eth_hdr(skb);
 
@@ -281,7 +279,7 @@
 	*ptr++ = (size + 5) % 256;
 	*ptr++ = (size + 5) / 256;
 
-	bpq = (struct bpqdev *)dev->priv;
+	bpq = netdev_priv(dev);
 
 	if ((dev = bpq_get_ether_dev(dev)) == NULL) {
 		bpq->stats.tx_dropped++;
@@ -305,7 +303,7 @@
  */
 static struct net_device_stats *bpq_get_stats(struct net_device *dev)
 {
-	struct bpqdev *bpq = (struct bpqdev *) dev->priv;
+	struct bpqdev *bpq = netdev_priv(dev);
 
 	return &bpq->stats;
 }
@@ -332,15 +330,12 @@
 static int bpq_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
 {
 	struct bpq_ethaddr __user *ethaddr = ifr->ifr_data;
-	struct bpqdev *bpq = dev->priv;
+	struct bpqdev *bpq = netdev_priv(dev);
 	struct bpq_req req;
 
 	if (!capable(CAP_NET_ADMIN))
 		return -EPERM;
 
-	if (bpq == NULL)		/* woops! */
-		return -ENODEV;
-
 	switch (cmd) {
 		case SIOCSBPQETHOPT:
 			if (copy_from_user(&req, ifr->ifr_data, sizeof(struct bpq_req)))
@@ -525,7 +520,7 @@
 		return -ENOMEM;
 
 		
-	bpq = ndev->priv;
+	bpq = netdev_priv(ndev);
 	dev_hold(edev);
 	bpq->ethdev = edev;
 	bpq->axdev = ndev;
@@ -554,7 +549,7 @@
 
 static void bpq_free_device(struct net_device *ndev)
 {
-	struct bpqdev *bpq = ndev->priv;
+	struct bpqdev *bpq = netdev_priv(ndev);
 
 	dev_put(bpq->ethdev);
 	list_del_rcu(&bpq->bpq_list);
drivers/net/hamradio/dmascc.c +1082 -991

1,972 lines not on this page · raw message

drivers/net/hamradio/hdlcdrv.c +8 -40

48 lines not on this page · raw message

drivers/net/hamradio/mkiss.c +6 -6
diff -Nru a/drivers/net/hamradio/mkiss.c b/drivers/net/hamradio/mkiss.c

Lines of this file are not shown. View the raw message.

drivers/net/hamradio/yam.c +19 -19
diff -Nru a/drivers/net/hamradio/yam.c b/drivers/net/hamradio/yam.c

Lines of this file are not shown. View the raw message.

drivers/net/mv643xx_eth.c +1538 -1149

2,687 lines not on this page · raw message

drivers/net/mv643xx_eth.h +239 -402

641 lines not on this page · raw message

drivers/net/sis900.c +135 -81

216 lines not on this page · raw message

drivers/net/via-rhine.c +3 -1
diff -Nru a/drivers/net/via-rhine.c b/drivers/net/via-rhine.c

Lines of this file are not shown. View the raw message.

drivers/net/wireless/airport.c +10 -12
diff -Nru a/drivers/net/wireless/airport.c b/drivers/net/wireless/airport.c

Lines of this file are not shown. View the raw message.

drivers/net/wireless/hermes.c +38 -34

72 lines not on this page · raw message

drivers/net/wireless/hermes.h +11 -53

64 lines not on this page · raw message

drivers/net/wireless/orinoco.c +254 -165

419 lines not on this page · raw message

drivers/net/wireless/orinoco.h +23 -14
diff -Nru a/drivers/net/wireless/orinoco.h b/drivers/net/wireless/orinoco.h

Lines of this file are not shown. View the raw message.

drivers/net/wireless/orinoco_cs.c +23 -26

49 lines not on this page · raw message

drivers/net/wireless/orinoco_pci.c +64 -60

124 lines not on this page · raw message

drivers/net/wireless/orinoco_plx.c +143 -92

235 lines not on this page · raw message

drivers/net/wireless/orinoco_tmd.c +96 -54

150 lines not on this page · raw message

include/linux/mv643xx.h +334 -114

448 lines not on this page · raw message

The rest of this diff is not shown. View the raw message.

Part of the diff is not shown here. View the raw message.