• Home
  • Raw
  • Download

Lines Matching refs:ndev

164 	struct net_device *ndev;  member
193 static inline void __iomem *w5100_mmio(struct net_device *ndev) in w5100_mmio() argument
195 struct w5100_mmio_priv *mmio_priv = w5100_mmio_priv(ndev); in w5100_mmio()
206 static inline int w5100_read_direct(struct net_device *ndev, u32 addr) in w5100_read_direct() argument
208 return ioread8(w5100_mmio(ndev) + (addr << CONFIG_WIZNET_BUS_SHIFT)); in w5100_read_direct()
211 static inline int __w5100_write_direct(struct net_device *ndev, u32 addr, in __w5100_write_direct() argument
214 iowrite8(data, w5100_mmio(ndev) + (addr << CONFIG_WIZNET_BUS_SHIFT)); in __w5100_write_direct()
219 static inline int w5100_write_direct(struct net_device *ndev, u32 addr, u8 data) in w5100_write_direct() argument
221 __w5100_write_direct(ndev, addr, data); in w5100_write_direct()
227 static int w5100_read16_direct(struct net_device *ndev, u32 addr) in w5100_read16_direct() argument
230 data = w5100_read_direct(ndev, addr) << 8; in w5100_read16_direct()
231 data |= w5100_read_direct(ndev, addr + 1); in w5100_read16_direct()
235 static int w5100_write16_direct(struct net_device *ndev, u32 addr, u16 data) in w5100_write16_direct() argument
237 __w5100_write_direct(ndev, addr, data >> 8); in w5100_write16_direct()
238 __w5100_write_direct(ndev, addr + 1, data); in w5100_write16_direct()
244 static int w5100_readbulk_direct(struct net_device *ndev, u32 addr, u8 *buf, in w5100_readbulk_direct() argument
250 *buf++ = w5100_read_direct(ndev, addr); in w5100_readbulk_direct()
255 static int w5100_writebulk_direct(struct net_device *ndev, u32 addr, in w5100_writebulk_direct() argument
261 __w5100_write_direct(ndev, addr, *buf++); in w5100_writebulk_direct()
268 static int w5100_mmio_init(struct net_device *ndev) in w5100_mmio_init() argument
270 struct platform_device *pdev = to_platform_device(ndev->dev.parent); in w5100_mmio_init()
271 struct w5100_priv *priv = netdev_priv(ndev); in w5100_mmio_init()
272 struct w5100_mmio_priv *mmio_priv = w5100_mmio_priv(ndev); in w5100_mmio_init()
282 netdev_info(ndev, "at 0x%llx irq %d\n", (u64)mem->start, priv->irq); in w5100_mmio_init()
309 static int w5100_read_indirect(struct net_device *ndev, u32 addr) in w5100_read_indirect() argument
311 struct w5100_mmio_priv *mmio_priv = w5100_mmio_priv(ndev); in w5100_read_indirect()
316 w5100_write16_direct(ndev, W5100_IDM_AR, addr); in w5100_read_indirect()
317 data = w5100_read_direct(ndev, W5100_IDM_DR); in w5100_read_indirect()
323 static int w5100_write_indirect(struct net_device *ndev, u32 addr, u8 data) in w5100_write_indirect() argument
325 struct w5100_mmio_priv *mmio_priv = w5100_mmio_priv(ndev); in w5100_write_indirect()
329 w5100_write16_direct(ndev, W5100_IDM_AR, addr); in w5100_write_indirect()
330 w5100_write_direct(ndev, W5100_IDM_DR, data); in w5100_write_indirect()
336 static int w5100_read16_indirect(struct net_device *ndev, u32 addr) in w5100_read16_indirect() argument
338 struct w5100_mmio_priv *mmio_priv = w5100_mmio_priv(ndev); in w5100_read16_indirect()
343 w5100_write16_direct(ndev, W5100_IDM_AR, addr); in w5100_read16_indirect()
344 data = w5100_read_direct(ndev, W5100_IDM_DR) << 8; in w5100_read16_indirect()
345 data |= w5100_read_direct(ndev, W5100_IDM_DR); in w5100_read16_indirect()
351 static int w5100_write16_indirect(struct net_device *ndev, u32 addr, u16 data) in w5100_write16_indirect() argument
353 struct w5100_mmio_priv *mmio_priv = w5100_mmio_priv(ndev); in w5100_write16_indirect()
357 w5100_write16_direct(ndev, W5100_IDM_AR, addr); in w5100_write16_indirect()
358 __w5100_write_direct(ndev, W5100_IDM_DR, data >> 8); in w5100_write16_indirect()
359 w5100_write_direct(ndev, W5100_IDM_DR, data); in w5100_write16_indirect()
365 static int w5100_readbulk_indirect(struct net_device *ndev, u32 addr, u8 *buf, in w5100_readbulk_indirect() argument
368 struct w5100_mmio_priv *mmio_priv = w5100_mmio_priv(ndev); in w5100_readbulk_indirect()
373 w5100_write16_direct(ndev, W5100_IDM_AR, addr); in w5100_readbulk_indirect()
376 *buf++ = w5100_read_direct(ndev, W5100_IDM_DR); in w5100_readbulk_indirect()
384 static int w5100_writebulk_indirect(struct net_device *ndev, u32 addr, in w5100_writebulk_indirect() argument
387 struct w5100_mmio_priv *mmio_priv = w5100_mmio_priv(ndev); in w5100_writebulk_indirect()
392 w5100_write16_direct(ndev, W5100_IDM_AR, addr); in w5100_writebulk_indirect()
395 __w5100_write_direct(ndev, W5100_IDM_DR, *buf++); in w5100_writebulk_indirect()
403 static int w5100_reset_indirect(struct net_device *ndev) in w5100_reset_indirect() argument
405 w5100_write_direct(ndev, W5100_MR, MR_RST); in w5100_reset_indirect()
407 w5100_write_direct(ndev, W5100_MR, MR_PB | MR_AI | MR_IND); in w5100_reset_indirect()
428 return w5100_read_direct(priv->ndev, addr); in w5100_read()
433 return w5100_write_direct(priv->ndev, addr, data); in w5100_write()
438 return w5100_read16_direct(priv->ndev, addr); in w5100_read16()
443 return w5100_write16_direct(priv->ndev, addr, data); in w5100_write16()
448 return w5100_readbulk_direct(priv->ndev, addr, buf, len); in w5100_readbulk()
454 return w5100_writebulk_direct(priv->ndev, addr, buf, len); in w5100_writebulk()
461 return w5100_read_indirect(priv->ndev, addr); in w5100_read()
466 return w5100_write_indirect(priv->ndev, addr, data); in w5100_write()
471 return w5100_read16_indirect(priv->ndev, addr); in w5100_read16()
476 return w5100_write16_indirect(priv->ndev, addr, data); in w5100_write16()
481 return w5100_readbulk_indirect(priv->ndev, addr, buf, len); in w5100_readbulk()
487 return w5100_writebulk_indirect(priv->ndev, addr, buf, len); in w5100_writebulk()
494 return priv->ops->read(priv->ndev, addr); in w5100_read()
499 return priv->ops->write(priv->ndev, addr, data); in w5100_write()
504 return priv->ops->read16(priv->ndev, addr); in w5100_read16()
509 return priv->ops->write16(priv->ndev, addr, data); in w5100_write16()
514 return priv->ops->readbulk(priv->ndev, addr, buf, len); in w5100_readbulk()
520 return priv->ops->writebulk(priv->ndev, addr, buf, len); in w5100_writebulk()
575 return priv->ops->reset(priv->ndev); in w5100_reset()
603 struct net_device *ndev = priv->ndev; in w5100_write_macaddr() local
605 w5100_writebulk(priv, W5100_SHAR, ndev->dev_addr, ETH_ALEN); in w5100_write_macaddr()
731 static void w5100_get_drvinfo(struct net_device *ndev, in w5100_get_drvinfo() argument
736 strlcpy(info->bus_info, dev_name(ndev->dev.parent), in w5100_get_drvinfo()
740 static u32 w5100_get_link(struct net_device *ndev) in w5100_get_link() argument
742 struct w5100_priv *priv = netdev_priv(ndev); in w5100_get_link()
750 static u32 w5100_get_msglevel(struct net_device *ndev) in w5100_get_msglevel() argument
752 struct w5100_priv *priv = netdev_priv(ndev); in w5100_get_msglevel()
757 static void w5100_set_msglevel(struct net_device *ndev, u32 value) in w5100_set_msglevel() argument
759 struct w5100_priv *priv = netdev_priv(ndev); in w5100_set_msglevel()
764 static int w5100_get_regs_len(struct net_device *ndev) in w5100_get_regs_len() argument
769 static void w5100_get_regs(struct net_device *ndev, in w5100_get_regs() argument
772 struct w5100_priv *priv = netdev_priv(ndev); in w5100_get_regs()
780 static void w5100_restart(struct net_device *ndev) in w5100_restart() argument
782 struct w5100_priv *priv = netdev_priv(ndev); in w5100_restart()
784 netif_stop_queue(ndev); in w5100_restart()
787 ndev->stats.tx_errors++; in w5100_restart()
788 netif_trans_update(ndev); in w5100_restart()
789 netif_wake_queue(ndev); in w5100_restart()
797 w5100_restart(priv->ndev); in w5100_restart_work()
800 static void w5100_tx_timeout(struct net_device *ndev) in w5100_tx_timeout() argument
802 struct w5100_priv *priv = netdev_priv(ndev); in w5100_tx_timeout()
807 w5100_restart(ndev); in w5100_tx_timeout()
810 static void w5100_tx_skb(struct net_device *ndev, struct sk_buff *skb) in w5100_tx_skb() argument
812 struct w5100_priv *priv = netdev_priv(ndev); in w5100_tx_skb()
818 ndev->stats.tx_bytes += skb->len; in w5100_tx_skb()
819 ndev->stats.tx_packets++; in w5100_tx_skb()
835 w5100_tx_skb(priv->ndev, skb); in w5100_tx_work()
838 static int w5100_start_tx(struct sk_buff *skb, struct net_device *ndev) in w5100_start_tx() argument
840 struct w5100_priv *priv = netdev_priv(ndev); in w5100_start_tx()
842 netif_stop_queue(ndev); in w5100_start_tx()
849 w5100_tx_skb(ndev, skb); in w5100_start_tx()
855 static struct sk_buff *w5100_rx_skb(struct net_device *ndev) in w5100_rx_skb() argument
857 struct w5100_priv *priv = netdev_priv(ndev); in w5100_rx_skb()
871 skb = netdev_alloc_skb_ip_align(ndev, rx_len); in w5100_rx_skb()
875 ndev->stats.rx_dropped++; in w5100_rx_skb()
883 skb->protocol = eth_type_trans(skb, ndev); in w5100_rx_skb()
885 ndev->stats.rx_packets++; in w5100_rx_skb()
886 ndev->stats.rx_bytes += rx_len; in w5100_rx_skb()
897 while ((skb = w5100_rx_skb(priv->ndev))) in w5100_rx_work()
909 struct sk_buff *skb = w5100_rx_skb(priv->ndev); in w5100_napi_poll()
927 struct net_device *ndev = ndev_instance; in w5100_interrupt() local
928 struct w5100_priv *priv = netdev_priv(ndev); in w5100_interrupt()
936 netif_dbg(priv, tx_done, ndev, "tx done\n"); in w5100_interrupt()
937 netif_wake_queue(ndev); in w5100_interrupt()
954 struct net_device *ndev = ndev_instance; in w5100_detect_link() local
955 struct w5100_priv *priv = netdev_priv(ndev); in w5100_detect_link()
957 if (netif_running(ndev)) { in w5100_detect_link()
959 netif_info(priv, link, ndev, "link is up\n"); in w5100_detect_link()
960 netif_carrier_on(ndev); in w5100_detect_link()
962 netif_info(priv, link, ndev, "link is down\n"); in w5100_detect_link()
963 netif_carrier_off(ndev); in w5100_detect_link()
978 static void w5100_set_rx_mode(struct net_device *ndev) in w5100_set_rx_mode() argument
980 struct w5100_priv *priv = netdev_priv(ndev); in w5100_set_rx_mode()
981 bool set_promisc = (ndev->flags & IFF_PROMISC) != 0; in w5100_set_rx_mode()
993 static int w5100_set_macaddr(struct net_device *ndev, void *addr) in w5100_set_macaddr() argument
995 struct w5100_priv *priv = netdev_priv(ndev); in w5100_set_macaddr()
1000 memcpy(ndev->dev_addr, sock_addr->sa_data, ETH_ALEN); in w5100_set_macaddr()
1005 static int w5100_open(struct net_device *ndev) in w5100_open() argument
1007 struct w5100_priv *priv = netdev_priv(ndev); in w5100_open()
1009 netif_info(priv, ifup, ndev, "enabling\n"); in w5100_open()
1012 netif_start_queue(ndev); in w5100_open()
1015 netif_carrier_on(ndev); in w5100_open()
1019 static int w5100_stop(struct net_device *ndev) in w5100_stop() argument
1021 struct w5100_priv *priv = netdev_priv(ndev); in w5100_stop()
1023 netif_info(priv, ifdown, ndev, "shutting down\n"); in w5100_stop()
1025 netif_carrier_off(ndev); in w5100_stop()
1026 netif_stop_queue(ndev); in w5100_stop()
1080 void *w5100_ops_priv(const struct net_device *ndev) in w5100_ops_priv() argument
1082 return netdev_priv(ndev) + in w5100_ops_priv()
1092 struct net_device *ndev; in w5100_probe() local
1103 ndev = alloc_etherdev(alloc_size); in w5100_probe()
1104 if (!ndev) in w5100_probe()
1106 SET_NETDEV_DEV(ndev, dev); in w5100_probe()
1107 dev_set_drvdata(dev, ndev); in w5100_probe()
1108 priv = netdev_priv(ndev); in w5100_probe()
1137 priv->ndev = ndev; in w5100_probe()
1142 ndev->netdev_ops = &w5100_netdev_ops; in w5100_probe()
1143 ndev->ethtool_ops = &w5100_ethtool_ops; in w5100_probe()
1144 netif_napi_add(ndev, &priv->napi, w5100_napi_poll, 16); in w5100_probe()
1149 ndev->features |= NETIF_F_VLAN_CHALLENGED; in w5100_probe()
1151 err = register_netdev(ndev); in w5100_probe()
1156 netdev_name(ndev)); in w5100_probe()
1168 memcpy(ndev->dev_addr, mac_addr, ETH_ALEN); in w5100_probe()
1170 eth_hw_addr_random(ndev); in w5100_probe()
1173 err = priv->ops->init(priv->ndev); in w5100_probe()
1185 netdev_name(ndev), ndev); in w5100_probe()
1188 IRQF_TRIGGER_LOW, netdev_name(ndev), ndev); in w5100_probe()
1200 snprintf(link_name, 16, "%s-link", netdev_name(ndev)); in w5100_probe()
1205 link_name, priv->ndev) < 0) in w5100_probe()
1212 free_irq(priv->irq, ndev); in w5100_probe()
1216 unregister_netdev(ndev); in w5100_probe()
1218 free_netdev(ndev); in w5100_probe()
1225 struct net_device *ndev = dev_get_drvdata(dev); in w5100_remove() local
1226 struct w5100_priv *priv = netdev_priv(ndev); in w5100_remove()
1229 free_irq(priv->irq, ndev); in w5100_remove()
1231 free_irq(priv->link_irq, ndev); in w5100_remove()
1237 unregister_netdev(ndev); in w5100_remove()
1238 free_netdev(ndev); in w5100_remove()
1246 struct net_device *ndev = dev_get_drvdata(dev); in w5100_suspend() local
1247 struct w5100_priv *priv = netdev_priv(ndev); in w5100_suspend()
1249 if (netif_running(ndev)) { in w5100_suspend()
1250 netif_carrier_off(ndev); in w5100_suspend()
1251 netif_device_detach(ndev); in w5100_suspend()
1260 struct net_device *ndev = dev_get_drvdata(dev); in w5100_resume() local
1261 struct w5100_priv *priv = netdev_priv(ndev); in w5100_resume()
1263 if (netif_running(ndev)) { in w5100_resume()
1267 netif_device_attach(ndev); in w5100_resume()
1270 netif_carrier_on(ndev); in w5100_resume()