2.6.x net driver updates
Subsystems (3)
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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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/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/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_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.