| .. | .. |
|---|
| 114 | 114 | #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt |
|---|
| 115 | 115 | |
|---|
| 116 | 116 | #define DRV_NAME "nmclan_cs" |
|---|
| 117 | | -#define DRV_VERSION "0.16" |
|---|
| 118 | | - |
|---|
| 119 | 117 | |
|---|
| 120 | 118 | /* ---------------------------------------------------------------------------- |
|---|
| 121 | 119 | Conditional Compilation Options |
|---|
| .. | .. |
|---|
| 367 | 365 | |
|---|
| 368 | 366 | char tx_free_frames; /* Number of free transmit frame buffers */ |
|---|
| 369 | 367 | char tx_irq_disabled; /* MACE TX interrupt disabled */ |
|---|
| 370 | | - |
|---|
| 368 | + |
|---|
| 371 | 369 | spinlock_t bank_lock; /* Must be held if you step off bank 0 */ |
|---|
| 372 | 370 | } mace_private; |
|---|
| 373 | 371 | |
|---|
| .. | .. |
|---|
| 407 | 405 | static int mace_close(struct net_device *dev); |
|---|
| 408 | 406 | static netdev_tx_t mace_start_xmit(struct sk_buff *skb, |
|---|
| 409 | 407 | struct net_device *dev); |
|---|
| 410 | | -static void mace_tx_timeout(struct net_device *dev); |
|---|
| 408 | +static void mace_tx_timeout(struct net_device *dev, unsigned int txqueue); |
|---|
| 411 | 409 | static irqreturn_t mace_interrupt(int irq, void *dev_id); |
|---|
| 412 | 410 | static struct net_device_stats *mace_get_stats(struct net_device *dev); |
|---|
| 413 | 411 | static int mace_rx(struct net_device *dev, unsigned char RxCnt); |
|---|
| .. | .. |
|---|
| 444 | 442 | lp = netdev_priv(dev); |
|---|
| 445 | 443 | lp->p_dev = link; |
|---|
| 446 | 444 | link->priv = dev; |
|---|
| 447 | | - |
|---|
| 445 | + |
|---|
| 448 | 446 | spin_lock_init(&lp->bank_lock); |
|---|
| 449 | 447 | link->resource[0]->end = 32; |
|---|
| 450 | 448 | link->resource[0]->flags |= IO_DATA_PATH_WIDTH_AUTO; |
|---|
| .. | .. |
|---|
| 652 | 650 | } else { |
|---|
| 653 | 651 | pr_notice("mace id not found: %x %x should be 0x40 0x?9\n", |
|---|
| 654 | 652 | sig[0], sig[1]); |
|---|
| 655 | | - return -ENODEV; |
|---|
| 653 | + goto failed; |
|---|
| 656 | 654 | } |
|---|
| 657 | 655 | } |
|---|
| 658 | 656 | |
|---|
| .. | .. |
|---|
| 817 | 815 | struct ethtool_drvinfo *info) |
|---|
| 818 | 816 | { |
|---|
| 819 | 817 | strlcpy(info->driver, DRV_NAME, sizeof(info->driver)); |
|---|
| 820 | | - strlcpy(info->version, DRV_VERSION, sizeof(info->version)); |
|---|
| 821 | 818 | snprintf(info->bus_info, sizeof(info->bus_info), |
|---|
| 822 | 819 | "PCMCIA 0x%lx", dev->base_addr); |
|---|
| 823 | 820 | } |
|---|
| .. | .. |
|---|
| 837 | 834 | failed, put skb back into a list." |
|---|
| 838 | 835 | ---------------------------------------------------------------------------- */ |
|---|
| 839 | 836 | |
|---|
| 840 | | -static void mace_tx_timeout(struct net_device *dev) |
|---|
| 837 | +static void mace_tx_timeout(struct net_device *dev, unsigned int txqueue) |
|---|
| 841 | 838 | { |
|---|
| 842 | 839 | mace_private *lp = netdev_priv(dev); |
|---|
| 843 | 840 | struct pcmcia_device *link = lp->p_dev; |
|---|
| .. | .. |
|---|
| 1110 | 1107 | if (pkt_len & 1) |
|---|
| 1111 | 1108 | *(skb_tail_pointer(skb) - 1) = inb(ioaddr + AM2150_RCV); |
|---|
| 1112 | 1109 | skb->protocol = eth_type_trans(skb, dev); |
|---|
| 1113 | | - |
|---|
| 1110 | + |
|---|
| 1114 | 1111 | netif_rx(skb); /* Send the packet to the upper (protocol) layers. */ |
|---|
| 1115 | 1112 | |
|---|
| 1116 | 1113 | dev->stats.rx_packets++; |
|---|