Lines Matching refs:greth

117 static inline void greth_enable_tx(struct greth_private *greth)  in greth_enable_tx()  argument
120 GRETH_REGORIN(greth->regs->control, GRETH_TXEN); in greth_enable_tx()
123 static inline void greth_enable_tx_and_irq(struct greth_private *greth) in greth_enable_tx_and_irq() argument
126 GRETH_REGORIN(greth->regs->control, GRETH_TXEN | GRETH_TXI); in greth_enable_tx_and_irq()
129 static inline void greth_disable_tx(struct greth_private *greth) in greth_disable_tx() argument
131 GRETH_REGANDIN(greth->regs->control, ~GRETH_TXEN); in greth_disable_tx()
134 static inline void greth_enable_rx(struct greth_private *greth) in greth_enable_rx() argument
137 GRETH_REGORIN(greth->regs->control, GRETH_RXEN); in greth_enable_rx()
140 static inline void greth_disable_rx(struct greth_private *greth) in greth_disable_rx() argument
142 GRETH_REGANDIN(greth->regs->control, ~GRETH_RXEN); in greth_disable_rx()
145 static inline void greth_enable_irqs(struct greth_private *greth) in greth_enable_irqs() argument
147 GRETH_REGORIN(greth->regs->control, GRETH_RXI | GRETH_TXI); in greth_enable_irqs()
150 static inline void greth_disable_irqs(struct greth_private *greth) in greth_disable_irqs() argument
152 GRETH_REGANDIN(greth->regs->control, ~(GRETH_RXI|GRETH_TXI)); in greth_disable_irqs()
165 static void greth_clean_rings(struct greth_private *greth) in greth_clean_rings() argument
168 struct greth_bd *rx_bdp = greth->rx_bd_base; in greth_clean_rings()
169 struct greth_bd *tx_bdp = greth->tx_bd_base; in greth_clean_rings()
171 if (greth->gbit_mac) { in greth_clean_rings()
175 if (greth->rx_skbuff[i] != NULL) { in greth_clean_rings()
176 dev_kfree_skb(greth->rx_skbuff[i]); in greth_clean_rings()
177 dma_unmap_single(greth->dev, in greth_clean_rings()
185 while (greth->tx_free < GRETH_TXBD_NUM) { in greth_clean_rings()
187 struct sk_buff *skb = greth->tx_skbuff[greth->tx_last]; in greth_clean_rings()
189 tx_bdp = greth->tx_bd_base + greth->tx_last; in greth_clean_rings()
190 greth->tx_last = NEXT_TX(greth->tx_last); in greth_clean_rings()
192 dma_unmap_single(greth->dev, in greth_clean_rings()
199 tx_bdp = greth->tx_bd_base + greth->tx_last; in greth_clean_rings()
201 dma_unmap_page(greth->dev, in greth_clean_rings()
206 greth->tx_last = NEXT_TX(greth->tx_last); in greth_clean_rings()
208 greth->tx_free += nr_frags+1; in greth_clean_rings()
216 kfree(greth->rx_bufs[i]); in greth_clean_rings()
217 dma_unmap_single(greth->dev, in greth_clean_rings()
223 kfree(greth->tx_bufs[i]); in greth_clean_rings()
224 dma_unmap_single(greth->dev, in greth_clean_rings()
232 static int greth_init_rings(struct greth_private *greth) in greth_init_rings() argument
239 rx_bd = greth->rx_bd_base; in greth_init_rings()
240 tx_bd = greth->tx_bd_base; in greth_init_rings()
243 if (greth->gbit_mac) { in greth_init_rings()
246 skb = netdev_alloc_skb(greth->netdev, MAX_FRAME_SIZE+NET_IP_ALIGN); in greth_init_rings()
248 if (netif_msg_ifup(greth)) in greth_init_rings()
249 dev_err(greth->dev, "Error allocating DMA ring.\n"); in greth_init_rings()
253 dma_addr = dma_map_single(greth->dev, in greth_init_rings()
258 if (dma_mapping_error(greth->dev, dma_addr)) { in greth_init_rings()
259 if (netif_msg_ifup(greth)) in greth_init_rings()
260 dev_err(greth->dev, "Could not create initial DMA mapping\n"); in greth_init_rings()
264 greth->rx_skbuff[i] = skb; in greth_init_rings()
274 greth->rx_bufs[i] = kmalloc(MAX_FRAME_SIZE, GFP_KERNEL); in greth_init_rings()
276 if (greth->rx_bufs[i] == NULL) { in greth_init_rings()
277 if (netif_msg_ifup(greth)) in greth_init_rings()
278 dev_err(greth->dev, "Error allocating DMA ring.\n"); in greth_init_rings()
282 dma_addr = dma_map_single(greth->dev, in greth_init_rings()
283 greth->rx_bufs[i], in greth_init_rings()
287 if (dma_mapping_error(greth->dev, dma_addr)) { in greth_init_rings()
288 if (netif_msg_ifup(greth)) in greth_init_rings()
289 dev_err(greth->dev, "Could not create initial DMA mapping\n"); in greth_init_rings()
297 greth->tx_bufs[i] = kmalloc(MAX_FRAME_SIZE, GFP_KERNEL); in greth_init_rings()
299 if (greth->tx_bufs[i] == NULL) { in greth_init_rings()
300 if (netif_msg_ifup(greth)) in greth_init_rings()
301 dev_err(greth->dev, "Error allocating DMA ring.\n"); in greth_init_rings()
305 dma_addr = dma_map_single(greth->dev, in greth_init_rings()
306 greth->tx_bufs[i], in greth_init_rings()
310 if (dma_mapping_error(greth->dev, dma_addr)) { in greth_init_rings()
311 if (netif_msg_ifup(greth)) in greth_init_rings()
312 dev_err(greth->dev, "Could not create initial DMA mapping\n"); in greth_init_rings()
323 greth->rx_cur = 0; in greth_init_rings()
324 greth->tx_next = 0; in greth_init_rings()
325 greth->tx_last = 0; in greth_init_rings()
326 greth->tx_free = GRETH_TXBD_NUM; in greth_init_rings()
329 GRETH_REGSAVE(greth->regs->tx_desc_p, greth->tx_bd_base_phys); in greth_init_rings()
330 GRETH_REGSAVE(greth->regs->rx_desc_p, greth->rx_bd_base_phys); in greth_init_rings()
335 greth_clean_rings(greth); in greth_init_rings()
341 struct greth_private *greth = netdev_priv(dev); in greth_open() local
344 err = greth_init_rings(greth); in greth_open()
346 if (netif_msg_ifup(greth)) in greth_open()
351 err = request_irq(greth->irq, greth_interrupt, 0, "eth", (void *) dev); in greth_open()
353 if (netif_msg_ifup(greth)) in greth_open()
355 greth_clean_rings(greth); in greth_open()
359 if (netif_msg_ifup(greth)) in greth_open()
363 GRETH_REGSAVE(greth->regs->status, 0xFF); in greth_open()
365 napi_enable(&greth->napi); in greth_open()
367 greth_enable_irqs(greth); in greth_open()
368 greth_enable_tx(greth); in greth_open()
369 greth_enable_rx(greth); in greth_open()
376 struct greth_private *greth = netdev_priv(dev); in greth_close() local
378 napi_disable(&greth->napi); in greth_close()
380 greth_disable_irqs(greth); in greth_close()
381 greth_disable_tx(greth); in greth_close()
382 greth_disable_rx(greth); in greth_close()
386 free_irq(greth->irq, (void *) dev); in greth_close()
388 greth_clean_rings(greth); in greth_close()
396 struct greth_private *greth = netdev_priv(dev); in greth_start_xmit() local
403 greth_clean_tx(greth->netdev); in greth_start_xmit()
405 if (unlikely(greth->tx_free <= 0)) { in greth_start_xmit()
406 spin_lock_irqsave(&greth->devlock, flags);/*save from poll/irq*/ in greth_start_xmit()
407 ctrl = GRETH_REGLOAD(greth->regs->control); in greth_start_xmit()
410 GRETH_REGSAVE(greth->regs->control, ctrl | GRETH_TXI); in greth_start_xmit()
412 spin_unlock_irqrestore(&greth->devlock, flags); in greth_start_xmit()
416 if (netif_msg_pktdata(greth)) in greth_start_xmit()
425 bdp = greth->tx_bd_base + greth->tx_next; in greth_start_xmit()
430 dma_sync_single_for_device(greth->dev, dma_addr, skb->len, DMA_TO_DEVICE); in greth_start_xmit()
433 greth->tx_bufs_length[greth->tx_next] = skb->len & GRETH_BD_LEN; in greth_start_xmit()
436 if (greth->tx_next == GRETH_TXBD_NUM_MASK) { in greth_start_xmit()
440 greth->tx_next = NEXT_TX(greth->tx_next); in greth_start_xmit()
441 greth->tx_free--; in greth_start_xmit()
445 spin_lock_irqsave(&greth->devlock, flags); /*save from poll/irq*/ in greth_start_xmit()
446 greth_enable_tx(greth); in greth_start_xmit()
447 spin_unlock_irqrestore(&greth->devlock, flags); in greth_start_xmit()
465 struct greth_private *greth = netdev_priv(dev); in greth_start_xmit_gbit() local
473 tx_last = greth->tx_last; in greth_start_xmit_gbit()
476 if (greth_num_free_bds(tx_last, greth->tx_next) < nr_frags + 1) { in greth_start_xmit_gbit()
482 if (netif_msg_pktdata(greth)) in greth_start_xmit_gbit()
491 greth->tx_skbuff[greth->tx_next] = skb; in greth_start_xmit_gbit()
502 if (greth->tx_next == GRETH_TXBD_NUM_MASK) in greth_start_xmit_gbit()
506 bdp = greth->tx_bd_base + greth->tx_next; in greth_start_xmit_gbit()
508 dma_addr = dma_map_single(greth->dev, skb->data, skb_headlen(skb), DMA_TO_DEVICE); in greth_start_xmit_gbit()
510 if (unlikely(dma_mapping_error(greth->dev, dma_addr))) in greth_start_xmit_gbit()
515 curr_tx = NEXT_TX(greth->tx_next); in greth_start_xmit_gbit()
520 greth->tx_skbuff[curr_tx] = NULL; in greth_start_xmit_gbit()
521 bdp = greth->tx_bd_base + curr_tx; in greth_start_xmit_gbit()
540 dma_addr = skb_frag_dma_map(greth->dev, frag, 0, skb_frag_size(frag), in greth_start_xmit_gbit()
543 if (unlikely(dma_mapping_error(greth->dev, dma_addr))) in greth_start_xmit_gbit()
554 bdp = greth->tx_bd_base + greth->tx_next; in greth_start_xmit_gbit()
558 spin_lock_irqsave(&greth->devlock, flags); /*save from poll/irq*/ in greth_start_xmit_gbit()
559 greth->tx_next = curr_tx; in greth_start_xmit_gbit()
560 greth_enable_tx_and_irq(greth); in greth_start_xmit_gbit()
561 spin_unlock_irqrestore(&greth->devlock, flags); in greth_start_xmit_gbit()
567 for (i = 0; greth->tx_next + i != curr_tx; i++) { in greth_start_xmit_gbit()
568 bdp = greth->tx_bd_base + greth->tx_next + i; in greth_start_xmit_gbit()
569 dma_unmap_single(greth->dev, in greth_start_xmit_gbit()
577 dev_warn(greth->dev, "Could not create TX DMA mapping\n"); in greth_start_xmit_gbit()
586 struct greth_private *greth; in greth_interrupt() local
590 greth = netdev_priv(dev); in greth_interrupt()
592 spin_lock(&greth->devlock); in greth_interrupt()
595 status = GRETH_REGLOAD(greth->regs->status); in greth_interrupt()
601 ctrl = GRETH_REGLOAD(greth->regs->control); in greth_interrupt()
609 greth_disable_irqs(greth); in greth_interrupt()
610 napi_schedule(&greth->napi); in greth_interrupt()
613 spin_unlock(&greth->devlock); in greth_interrupt()
620 struct greth_private *greth; in greth_clean_tx() local
624 greth = netdev_priv(dev); in greth_clean_tx()
627 bdp = greth->tx_bd_base + greth->tx_last; in greth_clean_tx()
628 GRETH_REGSAVE(greth->regs->status, GRETH_INT_TE | GRETH_INT_TX); in greth_clean_tx()
635 if (greth->tx_free == GRETH_TXBD_NUM) in greth_clean_tx()
647 dev->stats.tx_bytes += greth->tx_bufs_length[greth->tx_last]; in greth_clean_tx()
648 greth->tx_last = NEXT_TX(greth->tx_last); in greth_clean_tx()
649 greth->tx_free++; in greth_clean_tx()
652 if (greth->tx_free > 0) { in greth_clean_tx()
674 struct greth_private *greth; in greth_clean_tx_gbit() local
681 greth = netdev_priv(dev); in greth_clean_tx_gbit()
682 tx_last = greth->tx_last; in greth_clean_tx_gbit()
684 while (tx_last != greth->tx_next) { in greth_clean_tx_gbit()
686 skb = greth->tx_skbuff[tx_last]; in greth_clean_tx_gbit()
691 bdp_last_frag = greth->tx_bd_base + SKIP_TX(tx_last, nr_frags); in greth_clean_tx_gbit()
693 GRETH_REGSAVE(greth->regs->status, GRETH_INT_TE | GRETH_INT_TX); in greth_clean_tx_gbit()
700 greth->tx_skbuff[tx_last] = NULL; in greth_clean_tx_gbit()
705 bdp = greth->tx_bd_base + tx_last; in greth_clean_tx_gbit()
709 dma_unmap_single(greth->dev, in greth_clean_tx_gbit()
716 bdp = greth->tx_bd_base + tx_last; in greth_clean_tx_gbit()
718 dma_unmap_page(greth->dev, in greth_clean_tx_gbit()
729 greth->tx_last = tx_last; in greth_clean_tx_gbit()
732 (greth_num_free_bds(tx_last, greth->tx_next) > in greth_clean_tx_gbit()
740 struct greth_private *greth; in greth_rx() local
748 greth = netdev_priv(dev); in greth_rx()
752 bdp = greth->rx_bd_base + greth->rx_cur; in greth_rx()
753 GRETH_REGSAVE(greth->regs->status, GRETH_INT_RE | GRETH_INT_RX); in greth_rx()
798 dma_sync_single_for_cpu(greth->dev, in greth_rx()
803 if (netif_msg_pktdata(greth)) in greth_rx()
817 if (greth->rx_cur == GRETH_RXBD_NUM_MASK) { in greth_rx()
824 dma_sync_single_for_device(greth->dev, dma_addr, MAX_FRAME_SIZE, DMA_FROM_DEVICE); in greth_rx()
826 spin_lock_irqsave(&greth->devlock, flags); /* save from XMIT */ in greth_rx()
827 greth_enable_rx(greth); in greth_rx()
828 spin_unlock_irqrestore(&greth->devlock, flags); in greth_rx()
830 greth->rx_cur = NEXT_RX(greth->rx_cur); in greth_rx()
856 struct greth_private *greth; in greth_rx_gbit() local
864 greth = netdev_priv(dev); in greth_rx_gbit()
868 bdp = greth->rx_bd_base + greth->rx_cur; in greth_rx_gbit()
869 skb = greth->rx_skbuff[greth->rx_cur]; in greth_rx_gbit()
870 GRETH_REGSAVE(greth->regs->status, GRETH_INT_RE | GRETH_INT_RX); in greth_rx_gbit()
899 dma_addr = dma_map_single(greth->dev, in greth_rx_gbit()
904 if (!dma_mapping_error(greth->dev, dma_addr)) { in greth_rx_gbit()
908 dma_unmap_single(greth->dev, in greth_rx_gbit()
913 if (netif_msg_pktdata(greth)) in greth_rx_gbit()
928 greth->rx_skbuff[greth->rx_cur] = newskb; in greth_rx_gbit()
932 dev_warn(greth->dev, "Could not create DMA mapping, dropping packet\n"); in greth_rx_gbit()
948 dev_warn(greth->dev, "Could not allocate SKB, dropping packet\n"); in greth_rx_gbit()
954 if (greth->rx_cur == GRETH_RXBD_NUM_MASK) { in greth_rx_gbit()
960 spin_lock_irqsave(&greth->devlock, flags); in greth_rx_gbit()
961 greth_enable_rx(greth); in greth_rx_gbit()
962 spin_unlock_irqrestore(&greth->devlock, flags); in greth_rx_gbit()
963 greth->rx_cur = NEXT_RX(greth->rx_cur); in greth_rx_gbit()
972 struct greth_private *greth; in greth_poll() local
976 greth = container_of(napi, struct greth_private, napi); in greth_poll()
979 if (greth->gbit_mac) { in greth_poll()
980 greth_clean_tx_gbit(greth->netdev); in greth_poll()
981 work_done += greth_rx_gbit(greth->netdev, budget - work_done); in greth_poll()
983 if (netif_queue_stopped(greth->netdev)) in greth_poll()
984 greth_clean_tx(greth->netdev); in greth_poll()
985 work_done += greth_rx(greth->netdev, budget - work_done); in greth_poll()
990 spin_lock_irqsave(&greth->devlock, flags); in greth_poll()
992 ctrl = GRETH_REGLOAD(greth->regs->control); in greth_poll()
993 if ((greth->gbit_mac && (greth->tx_last != greth->tx_next)) || in greth_poll()
994 (!greth->gbit_mac && netif_queue_stopped(greth->netdev))) { in greth_poll()
995 GRETH_REGSAVE(greth->regs->control, in greth_poll()
1000 GRETH_REGSAVE(greth->regs->control, ctrl | GRETH_RXI); in greth_poll()
1004 if (GRETH_REGLOAD(greth->regs->status) & mask) { in greth_poll()
1005 GRETH_REGSAVE(greth->regs->control, ctrl); in greth_poll()
1006 spin_unlock_irqrestore(&greth->devlock, flags); in greth_poll()
1010 spin_unlock_irqrestore(&greth->devlock, flags); in greth_poll()
1020 struct greth_private *greth; in greth_set_mac_add() local
1023 greth = netdev_priv(dev); in greth_set_mac_add()
1024 regs = greth->regs; in greth_set_mac_add()
1045 struct greth_private *greth = netdev_priv(dev); in greth_set_hash_filter() local
1046 struct greth_regs *regs = greth->regs; in greth_set_hash_filter()
1064 struct greth_private *greth = netdev_priv(dev); in greth_set_multicast_list() local
1065 struct greth_regs *regs = greth->regs; in greth_set_multicast_list()
1073 if (greth->multicast) { in greth_set_multicast_list()
1097 struct greth_private *greth = netdev_priv(dev); in greth_get_msglevel() local
1098 return greth->msg_enable; in greth_get_msglevel()
1103 struct greth_private *greth = netdev_priv(dev); in greth_set_msglevel() local
1104 greth->msg_enable = value; in greth_set_msglevel()
1114 struct greth_private *greth = netdev_priv(dev); in greth_get_drvinfo() local
1116 strscpy(info->driver, dev_driver_string(greth->dev), in greth_get_drvinfo()
1118 strscpy(info->bus_info, greth->dev->bus->name, sizeof(info->bus_info)); in greth_get_drvinfo()
1124 struct greth_private *greth = netdev_priv(dev); in greth_get_regs() local
1125 u32 __iomem *greth_regs = (u32 __iomem *) greth->regs; in greth_get_regs()
1151 static inline int wait_for_mdio(struct greth_private *greth) in wait_for_mdio() argument
1154 while (GRETH_REGLOAD(greth->regs->mdio) & GRETH_MII_BUSY) { in wait_for_mdio()
1163 struct greth_private *greth = bus->priv; in greth_mdio_read() local
1166 if (!wait_for_mdio(greth)) in greth_mdio_read()
1169 GRETH_REGSAVE(greth->regs->mdio, ((phy & 0x1F) << 11) | ((reg & 0x1F) << 6) | 2); in greth_mdio_read()
1171 if (!wait_for_mdio(greth)) in greth_mdio_read()
1174 if (!(GRETH_REGLOAD(greth->regs->mdio) & GRETH_MII_NVALID)) { in greth_mdio_read()
1175 data = (GRETH_REGLOAD(greth->regs->mdio) >> 16) & 0xFFFF; in greth_mdio_read()
1185 struct greth_private *greth = bus->priv; in greth_mdio_write() local
1187 if (!wait_for_mdio(greth)) in greth_mdio_write()
1190 GRETH_REGSAVE(greth->regs->mdio, in greth_mdio_write()
1193 if (!wait_for_mdio(greth)) in greth_mdio_write()
1201 struct greth_private *greth = netdev_priv(dev); in greth_link_change() local
1207 spin_lock_irqsave(&greth->devlock, flags); in greth_link_change()
1211 if ((greth->speed != phydev->speed) || (greth->duplex != phydev->duplex)) { in greth_link_change()
1212 ctrl = GRETH_REGLOAD(greth->regs->control) & in greth_link_change()
1223 GRETH_REGSAVE(greth->regs->control, ctrl); in greth_link_change()
1224 greth->speed = phydev->speed; in greth_link_change()
1225 greth->duplex = phydev->duplex; in greth_link_change()
1230 if (phydev->link != greth->link) { in greth_link_change()
1232 greth->speed = 0; in greth_link_change()
1233 greth->duplex = -1; in greth_link_change()
1235 greth->link = phydev->link; in greth_link_change()
1240 spin_unlock_irqrestore(&greth->devlock, flags); in greth_link_change()
1254 struct greth_private *greth = netdev_priv(dev); in greth_mdio_probe() local
1259 phy = phy_find_first(greth->mdio); in greth_mdio_probe()
1262 if (netif_msg_probe(greth)) in greth_mdio_probe()
1268 greth->gbit_mac ? PHY_INTERFACE_MODE_GMII : PHY_INTERFACE_MODE_MII); in greth_mdio_probe()
1270 if (netif_msg_ifup(greth)) in greth_mdio_probe()
1275 if (greth->gbit_mac) in greth_mdio_probe()
1282 greth->link = 0; in greth_mdio_probe()
1283 greth->speed = 0; in greth_mdio_probe()
1284 greth->duplex = -1; in greth_mdio_probe()
1289 static int greth_mdio_init(struct greth_private *greth) in greth_mdio_init() argument
1293 struct net_device *ndev = greth->netdev; in greth_mdio_init()
1295 greth->mdio = mdiobus_alloc(); in greth_mdio_init()
1296 if (!greth->mdio) { in greth_mdio_init()
1300 greth->mdio->name = "greth-mdio"; in greth_mdio_init()
1301 snprintf(greth->mdio->id, MII_BUS_ID_SIZE, "%s-%d", greth->mdio->name, greth->irq); in greth_mdio_init()
1302 greth->mdio->read = greth_mdio_read; in greth_mdio_init()
1303 greth->mdio->write = greth_mdio_write; in greth_mdio_init()
1304 greth->mdio->priv = greth; in greth_mdio_init()
1306 ret = mdiobus_register(greth->mdio); in greth_mdio_init()
1311 ret = greth_mdio_probe(greth->netdev); in greth_mdio_init()
1313 if (netif_msg_probe(greth)) in greth_mdio_init()
1314 dev_err(&greth->netdev->dev, "failed to probe MDIO bus\n"); in greth_mdio_init()
1321 if (greth->edcl && greth_edcl == 1) { in greth_mdio_init()
1328 greth_link_change(greth->netdev); in greth_mdio_init()
1334 mdiobus_unregister(greth->mdio); in greth_mdio_init()
1336 mdiobus_free(greth->mdio); in greth_mdio_init()
1344 struct greth_private *greth; in greth_of_probe() local
1358 greth = netdev_priv(dev); in greth_of_probe()
1359 greth->netdev = dev; in greth_of_probe()
1360 greth->dev = &ofdev->dev; in greth_of_probe()
1363 greth->msg_enable = greth_debug; in greth_of_probe()
1365 greth->msg_enable = GRETH_DEF_MSG_ENABLE; in greth_of_probe()
1367 spin_lock_init(&greth->devlock); in greth_of_probe()
1369 greth->regs = of_ioremap(&ofdev->resource[0], 0, in greth_of_probe()
1373 if (greth->regs == NULL) { in greth_of_probe()
1374 if (netif_msg_probe(greth)) in greth_of_probe()
1375 dev_err(greth->dev, "ioremap failure.\n"); in greth_of_probe()
1380 regs = greth->regs; in greth_of_probe()
1381 greth->irq = ofdev->archdata.irqs[0]; in greth_of_probe()
1383 dev_set_drvdata(greth->dev, dev); in greth_of_probe()
1384 SET_NETDEV_DEV(dev, greth->dev); in greth_of_probe()
1386 if (netif_msg_probe(greth)) in greth_of_probe()
1387 dev_dbg(greth->dev, "resetting controller.\n"); in greth_of_probe()
1397 if (netif_msg_probe(greth)) in greth_of_probe()
1398 dev_err(greth->dev, "timeout when waiting for reset.\n"); in greth_of_probe()
1404 greth->phyaddr = (GRETH_REGLOAD(regs->mdio) >> 11) & 0x1F; in greth_of_probe()
1408 greth->gbit_mac = (tmp >> 27) & 1; in greth_of_probe()
1411 greth->multicast = (tmp >> 25) & 1; in greth_of_probe()
1413 greth->edcl = (tmp >> 31) & 1; in greth_of_probe()
1417 if (greth->edcl != 0) in greth_of_probe()
1421 greth->mdio_int_en = (tmp >> 26) & 1; in greth_of_probe()
1423 err = greth_mdio_init(greth); in greth_of_probe()
1425 if (netif_msg_probe(greth)) in greth_of_probe()
1426 dev_err(greth->dev, "failed to register MDIO bus\n"); in greth_of_probe()
1431 greth->tx_bd_base = dma_alloc_coherent(greth->dev, 1024, in greth_of_probe()
1432 &greth->tx_bd_base_phys, in greth_of_probe()
1434 if (!greth->tx_bd_base) { in greth_of_probe()
1440 greth->rx_bd_base = dma_alloc_coherent(greth->dev, 1024, in greth_of_probe()
1441 &greth->rx_bd_base_phys, in greth_of_probe()
1443 if (!greth->rx_bd_base) { in greth_of_probe()
1473 if (netif_msg_probe(greth)) in greth_of_probe()
1474 dev_err(greth->dev, "no valid ethernet address, aborting.\n"); in greth_of_probe()
1486 if (greth->gbit_mac) { in greth_of_probe()
1493 if (greth->multicast) { in greth_of_probe()
1505 if (netif_msg_probe(greth)) in greth_of_probe()
1506 dev_err(greth->dev, "netdevice registration failed.\n"); in greth_of_probe()
1511 netif_napi_add(dev, &greth->napi, greth_poll); in greth_of_probe()
1516 dma_free_coherent(greth->dev, 1024, greth->rx_bd_base, greth->rx_bd_base_phys); in greth_of_probe()
1518 dma_free_coherent(greth->dev, 1024, greth->tx_bd_base, greth->tx_bd_base_phys); in greth_of_probe()
1520 mdiobus_unregister(greth->mdio); in greth_of_probe()
1522 of_iounmap(&ofdev->resource[0], greth->regs, resource_size(&ofdev->resource[0])); in greth_of_probe()
1531 struct greth_private *greth = netdev_priv(ndev); in greth_of_remove() local
1534 dma_free_coherent(&of_dev->dev, 1024, greth->rx_bd_base, greth->rx_bd_base_phys); in greth_of_remove()
1536 dma_free_coherent(&of_dev->dev, 1024, greth->tx_bd_base, greth->tx_bd_base_phys); in greth_of_remove()
1540 mdiobus_unregister(greth->mdio); in greth_of_remove()
1544 of_iounmap(&of_dev->resource[0], greth->regs, resource_size(&of_dev->resource[0])); in greth_of_remove()