Lines Matching refs:dev

146 static netdev_tx_t plip_tx_packet(struct sk_buff *skb, struct net_device *dev);
147 static int plip_hard_header(struct sk_buff *skb, struct net_device *dev,
152 static int plip_open(struct net_device *dev);
153 static int plip_close(struct net_device *dev);
154 static int plip_siocdevprivate(struct net_device *dev, struct ifreq *ifr,
206 struct net_device *dev; member
225 static inline void enable_parport_interrupts (struct net_device *dev) in enable_parport_interrupts() argument
227 if (dev->irq != -1) in enable_parport_interrupts()
230 ((struct net_local *)netdev_priv(dev))->pardev->port; in enable_parport_interrupts()
235 static inline void disable_parport_interrupts (struct net_device *dev) in disable_parport_interrupts() argument
237 if (dev->irq != -1) in disable_parport_interrupts()
240 ((struct net_local *)netdev_priv(dev))->pardev->port; in disable_parport_interrupts()
245 static inline void write_data (struct net_device *dev, unsigned char data) in write_data() argument
248 ((struct net_local *)netdev_priv(dev))->pardev->port; in write_data()
253 static inline unsigned char read_status (struct net_device *dev) in read_status() argument
256 ((struct net_local *)netdev_priv(dev))->pardev->port; in read_status()
285 plip_init_netdev(struct net_device *dev) in plip_init_netdev() argument
291 struct net_local *nl = netdev_priv(dev); in plip_init_netdev()
294 dev->tx_queue_len = 10; in plip_init_netdev()
295 dev->flags = IFF_POINTOPOINT|IFF_NOARP; in plip_init_netdev()
296 eth_hw_addr_set(dev, addr_init); in plip_init_netdev()
298 dev->netdev_ops = &plip_netdev_ops; in plip_init_netdev()
299 dev->header_ops = &plip_header_ops; in plip_init_netdev()
312 if (dev->irq == -1) in plip_init_netdev()
342 static int plip_bh_timeout_error(struct net_device *dev, struct net_local *nl,
352 typedef int (*plip_func)(struct net_device *dev, struct net_local *nl,
376 if ((r = (*f)(nl->dev, nl, snd, rcv)) != OK && in plip_bh()
377 (r = plip_bh_timeout_error(nl->dev, nl, snd, rcv, r)) != OK) { in plip_bh()
390 plip_interrupt (nl->dev); in plip_timer_bh()
400 plip_bh_timeout_error(struct net_device *dev, struct net_local *nl, in plip_bh_timeout_error() argument
426 c0 = read_status(dev); in plip_bh_timeout_error()
428 dev->name, snd->state, c0); in plip_bh_timeout_error()
431 dev->stats.tx_errors++; in plip_bh_timeout_error()
432 dev->stats.tx_aborted_errors++; in plip_bh_timeout_error()
445 c0 = read_status(dev); in plip_bh_timeout_error()
447 dev->name, rcv->state, c0); in plip_bh_timeout_error()
449 dev->stats.rx_dropped++; in plip_bh_timeout_error()
463 DISABLE(dev->irq); in plip_bh_timeout_error()
464 synchronize_irq(dev->irq); in plip_bh_timeout_error()
466 disable_parport_interrupts (dev); in plip_bh_timeout_error()
467 netif_stop_queue (dev); in plip_bh_timeout_error()
469 write_data (dev, 0x00); in plip_bh_timeout_error()
475 plip_none(struct net_device *dev, struct net_local *nl, in plip_none() argument
484 plip_receive(unsigned short nibble_timeout, struct net_device *dev, in plip_receive() argument
494 c0 = read_status(dev); in plip_receive()
497 c1 = read_status(dev); in plip_receive()
505 write_data (dev, 0x10); /* send ACK */ in plip_receive()
512 c0 = read_status(dev); in plip_receive()
515 c1 = read_status(dev); in plip_receive()
523 write_data (dev, 0x00); /* send ACK */ in plip_receive()
544 static __be16 plip_type_trans(struct sk_buff *skb, struct net_device *dev) in plip_type_trans() argument
550 skb_pull(skb,dev->hard_header_len); in plip_type_trans()
555 if(ether_addr_equal_64bits(eth->h_dest, dev->broadcast)) in plip_type_trans()
588 plip_receive_packet(struct net_device *dev, struct net_local *nl, in plip_receive_packet() argument
596 DISABLE(dev->irq); in plip_receive_packet()
598 disable_parport_interrupts (dev); in plip_receive_packet()
599 write_data (dev, 0x01); /* send ACK */ in plip_receive_packet()
601 printk(KERN_DEBUG "%s: receive start\n", dev->name); in plip_receive_packet()
608 if (plip_receive(nl->trigger, dev, in plip_receive_packet()
615 enable_parport_interrupts (dev); in plip_receive_packet()
616 ENABLE(dev->irq); in plip_receive_packet()
620 if (plip_receive(nibble_timeout, dev, in plip_receive_packet()
628 if (plip_receive(nibble_timeout, dev, in plip_receive_packet()
631 if (rcv->length.h > dev->mtu + dev->hard_header_len || in plip_receive_packet()
633 printk(KERN_WARNING "%s: bogus packet size %d.\n", dev->name, rcv->length.h); in plip_receive_packet()
639 printk(KERN_ERR "%s: Memory squeeze.\n", dev->name); in plip_receive_packet()
644 rcv->skb->dev = dev; in plip_receive_packet()
653 if (plip_receive(nibble_timeout, dev, in plip_receive_packet()
664 if (plip_receive(nibble_timeout, dev, in plip_receive_packet()
668 dev->stats.rx_crc_errors++; in plip_receive_packet()
670 printk(KERN_DEBUG "%s: checksum error\n", dev->name); in plip_receive_packet()
678 rcv->skb->protocol=plip_type_trans(rcv->skb, dev); in plip_receive_packet()
680 dev->stats.rx_bytes += rcv->length.h; in plip_receive_packet()
681 dev->stats.rx_packets++; in plip_receive_packet()
684 printk(KERN_DEBUG "%s: receive end\n", dev->name); in plip_receive_packet()
687 write_data (dev, 0x00); in plip_receive_packet()
693 enable_parport_interrupts (dev); in plip_receive_packet()
694 ENABLE(dev->irq); in plip_receive_packet()
699 enable_parport_interrupts (dev); in plip_receive_packet()
700 ENABLE(dev->irq); in plip_receive_packet()
710 plip_send(unsigned short nibble_timeout, struct net_device *dev, in plip_send() argument
718 write_data (dev, data & 0x0f); in plip_send()
723 write_data (dev, 0x10 | (data & 0x0f)); in plip_send()
726 c0 = read_status(dev); in plip_send()
733 write_data (dev, 0x10 | (data >> 4)); in plip_send()
738 write_data (dev, (data >> 4)); in plip_send()
741 c0 = read_status(dev); in plip_send()
756 plip_send_packet(struct net_device *dev, struct net_local *nl, in plip_send_packet() argument
765 printk(KERN_DEBUG "%s: send skb lost\n", dev->name); in plip_send_packet()
773 if ((read_status(dev) & 0xf8) != 0x80) in plip_send_packet()
777 write_data (dev, 0x08); in plip_send_packet()
785 dev->stats.collisions++; in plip_send_packet()
788 c0 = read_status(dev); in plip_send_packet()
791 DISABLE(dev->irq); in plip_send_packet()
792 synchronize_irq(dev->irq); in plip_send_packet()
800 ENABLE(dev->irq); in plip_send_packet()
801 dev->stats.collisions++; in plip_send_packet()
804 disable_parport_interrupts (dev); in plip_send_packet()
806 printk(KERN_DEBUG "%s: send start\n", dev->name); in plip_send_packet()
814 write_data (dev, 0x00); in plip_send_packet()
821 if (plip_send(nibble_timeout, dev, in plip_send_packet()
828 if (plip_send(nibble_timeout, dev, in plip_send_packet()
838 if (plip_send(nibble_timeout, dev, in plip_send_packet()
849 if (plip_send(nibble_timeout, dev, in plip_send_packet()
853 dev->stats.tx_bytes += snd->skb->len; in plip_send_packet()
855 dev->stats.tx_packets++; in plip_send_packet()
861 write_data (dev, 0x00); in plip_send_packet()
864 printk(KERN_DEBUG "%s: send end\n", dev->name); in plip_send_packet()
868 enable_parport_interrupts (dev); in plip_send_packet()
869 ENABLE(dev->irq); in plip_send_packet()
876 plip_connection_close(struct net_device *dev, struct net_local *nl, in plip_connection_close() argument
882 netif_wake_queue (dev); in plip_connection_close()
894 plip_error(struct net_device *dev, struct net_local *nl, in plip_error() argument
899 status = read_status(dev); in plip_error()
902 printk(KERN_DEBUG "%s: reset interface.\n", dev->name); in plip_error()
905 netif_start_queue (dev); in plip_error()
906 enable_parport_interrupts (dev); in plip_error()
907 ENABLE(dev->irq); in plip_error()
908 netif_wake_queue (dev); in plip_error()
921 struct net_device *dev = dev_id; in plip_interrupt() local
927 nl = netdev_priv(dev); in plip_interrupt()
932 c0 = read_status(dev); in plip_interrupt()
934 if ((dev->irq != -1) && (net_debug > 1)) in plip_interrupt()
935 printk(KERN_DEBUG "%s: spurious interrupt\n", dev->name); in plip_interrupt()
941 printk(KERN_DEBUG "%s: interrupt.\n", dev->name); in plip_interrupt()
945 netif_wake_queue (dev); in plip_interrupt()
962 printk(KERN_ERR "%s: receive interrupt in error state\n", dev->name); in plip_interrupt()
970 plip_tx_packet(struct sk_buff *skb, struct net_device *dev) in plip_tx_packet() argument
972 struct net_local *nl = netdev_priv(dev); in plip_tx_packet()
975 if (netif_queue_stopped(dev)) in plip_tx_packet()
985 netif_stop_queue (dev); in plip_tx_packet()
987 if (skb->len > dev->mtu + dev->hard_header_len) { in plip_tx_packet()
988 printk(KERN_WARNING "%s: packet too big, %d.\n", dev->name, (int)skb->len); in plip_tx_packet()
989 netif_start_queue (dev); in plip_tx_packet()
994 printk(KERN_DEBUG "%s: send request\n", dev->name); in plip_tx_packet()
1011 plip_rewrite_address(const struct net_device *dev, struct ethhdr *eth) in plip_rewrite_address() argument
1016 in_dev = __in_dev_get_rcu(dev); in plip_rewrite_address()
1021 memcpy(eth->h_source, dev->dev_addr, ETH_ALEN); in plip_rewrite_address()
1030 plip_hard_header(struct sk_buff *skb, struct net_device *dev, in plip_hard_header() argument
1036 ret = eth_header(skb, dev, type, daddr, saddr, len); in plip_hard_header()
1038 plip_rewrite_address (dev, (struct ethhdr *)skb->data); in plip_hard_header()
1054 plip_rewrite_address (neigh->dev, eth); in plip_hard_header_cache()
1067 plip_open(struct net_device *dev) in plip_open() argument
1069 struct net_local *nl = netdev_priv(dev); in plip_open()
1081 write_data (dev, 0x00); in plip_open()
1084 enable_parport_interrupts (dev); in plip_open()
1085 if (dev->irq == -1) in plip_open()
1109 in_dev=__in_dev_get_rtnl(dev); in plip_open()
1116 dev_addr_mod(dev, 2, &ifa->ifa_local, 4); in plip_open()
1120 netif_start_queue (dev); in plip_open()
1127 plip_close(struct net_device *dev) in plip_close() argument
1129 struct net_local *nl = netdev_priv(dev); in plip_close()
1133 netif_stop_queue (dev); in plip_close()
1134 DISABLE(dev->irq); in plip_close()
1135 synchronize_irq(dev->irq); in plip_close()
1137 if (dev->irq == -1) in plip_close()
1145 outb(0x00, PAR_DATA(dev)); in plip_close()
1167 outb(0x00, PAR_CONTROL(dev)); in plip_close()
1175 struct net_device *dev = (struct net_device *)handle; in plip_preempt() local
1176 struct net_local *nl = netdev_priv(dev); in plip_preempt()
1191 struct net_device *dev = (struct net_device *)handle; in plip_wakeup() local
1192 struct net_local *nl = netdev_priv(dev); in plip_wakeup()
1196 printk(KERN_DEBUG "%s: why am I being woken up?\n", dev->name); in plip_wakeup()
1199 printk(KERN_DEBUG "%s: I'm broken.\n", dev->name); in plip_wakeup()
1204 if (!(dev->flags & IFF_UP)) in plip_wakeup()
1211 write_data (dev, 0x00); in plip_wakeup()
1216 plip_siocdevprivate(struct net_device *dev, struct ifreq *rq, in plip_siocdevprivate() argument
1219 struct net_local *nl = netdev_priv(dev); in plip_siocdevprivate()
1269 struct net_device *dev; in plip_attach() local
1282 dev = alloc_etherdev(sizeof(struct net_local)); in plip_attach()
1283 if (!dev) in plip_attach()
1286 strcpy(dev->name, name); in plip_attach()
1288 dev->irq = port->irq; in plip_attach()
1289 dev->base_addr = port->base; in plip_attach()
1295 nl = netdev_priv(dev); in plip_attach()
1296 nl->dev = dev; in plip_attach()
1299 plip_cb.private = dev; in plip_attach()
1304 nl->pardev = parport_register_dev_model(port, dev->name, in plip_attach()
1312 plip_init_netdev(dev); in plip_attach()
1314 if (register_netdev(dev)) { in plip_attach()
1320 if (dev->irq != -1) in plip_attach()
1323 dev->name, dev->base_addr, dev->irq); in plip_attach()
1327 dev->name, dev->base_addr); in plip_attach()
1328 dev_plip[unit++] = dev; in plip_attach()
1335 free_netdev(dev); in plip_attach()
1347 struct device_driver *drv = par_dev->dev.driver; in plip_probe()
1366 struct net_device *dev; in plip_cleanup_module() local
1370 if ((dev = dev_plip[i])) { in plip_cleanup_module()
1371 struct net_local *nl = netdev_priv(dev); in plip_cleanup_module()
1372 unregister_netdev(dev); in plip_cleanup_module()
1376 free_netdev(dev); in plip_cleanup_module()