greth 117 drivers/net/ethernet/aeroflex/greth.c static inline void greth_enable_tx(struct greth_private *greth) greth 120 drivers/net/ethernet/aeroflex/greth.c GRETH_REGORIN(greth->regs->control, GRETH_TXEN); greth 123 drivers/net/ethernet/aeroflex/greth.c static inline void greth_enable_tx_and_irq(struct greth_private *greth) greth 126 drivers/net/ethernet/aeroflex/greth.c GRETH_REGORIN(greth->regs->control, GRETH_TXEN | GRETH_TXI); greth 129 drivers/net/ethernet/aeroflex/greth.c static inline void greth_disable_tx(struct greth_private *greth) greth 131 drivers/net/ethernet/aeroflex/greth.c GRETH_REGANDIN(greth->regs->control, ~GRETH_TXEN); greth 134 drivers/net/ethernet/aeroflex/greth.c static inline void greth_enable_rx(struct greth_private *greth) greth 137 drivers/net/ethernet/aeroflex/greth.c GRETH_REGORIN(greth->regs->control, GRETH_RXEN); greth 140 drivers/net/ethernet/aeroflex/greth.c static inline void greth_disable_rx(struct greth_private *greth) greth 142 drivers/net/ethernet/aeroflex/greth.c GRETH_REGANDIN(greth->regs->control, ~GRETH_RXEN); greth 145 drivers/net/ethernet/aeroflex/greth.c static inline void greth_enable_irqs(struct greth_private *greth) greth 147 drivers/net/ethernet/aeroflex/greth.c GRETH_REGORIN(greth->regs->control, GRETH_RXI | GRETH_TXI); greth 150 drivers/net/ethernet/aeroflex/greth.c static inline void greth_disable_irqs(struct greth_private *greth) greth 152 drivers/net/ethernet/aeroflex/greth.c GRETH_REGANDIN(greth->regs->control, ~(GRETH_RXI|GRETH_TXI)); greth 165 drivers/net/ethernet/aeroflex/greth.c static void greth_clean_rings(struct greth_private *greth) greth 168 drivers/net/ethernet/aeroflex/greth.c struct greth_bd *rx_bdp = greth->rx_bd_base; greth 169 drivers/net/ethernet/aeroflex/greth.c struct greth_bd *tx_bdp = greth->tx_bd_base; greth 171 drivers/net/ethernet/aeroflex/greth.c if (greth->gbit_mac) { greth 175 drivers/net/ethernet/aeroflex/greth.c if (greth->rx_skbuff[i] != NULL) { greth 176 drivers/net/ethernet/aeroflex/greth.c dev_kfree_skb(greth->rx_skbuff[i]); greth 177 drivers/net/ethernet/aeroflex/greth.c dma_unmap_single(greth->dev, greth 185 drivers/net/ethernet/aeroflex/greth.c while (greth->tx_free < GRETH_TXBD_NUM) { greth 187 drivers/net/ethernet/aeroflex/greth.c struct sk_buff *skb = greth->tx_skbuff[greth->tx_last]; greth 189 drivers/net/ethernet/aeroflex/greth.c tx_bdp = greth->tx_bd_base + greth->tx_last; greth 190 drivers/net/ethernet/aeroflex/greth.c greth->tx_last = NEXT_TX(greth->tx_last); greth 192 drivers/net/ethernet/aeroflex/greth.c dma_unmap_single(greth->dev, greth 199 drivers/net/ethernet/aeroflex/greth.c tx_bdp = greth->tx_bd_base + greth->tx_last; greth 201 drivers/net/ethernet/aeroflex/greth.c dma_unmap_page(greth->dev, greth 206 drivers/net/ethernet/aeroflex/greth.c greth->tx_last = NEXT_TX(greth->tx_last); greth 208 drivers/net/ethernet/aeroflex/greth.c greth->tx_free += nr_frags+1; greth 216 drivers/net/ethernet/aeroflex/greth.c kfree(greth->rx_bufs[i]); greth 217 drivers/net/ethernet/aeroflex/greth.c dma_unmap_single(greth->dev, greth 223 drivers/net/ethernet/aeroflex/greth.c kfree(greth->tx_bufs[i]); greth 224 drivers/net/ethernet/aeroflex/greth.c dma_unmap_single(greth->dev, greth 232 drivers/net/ethernet/aeroflex/greth.c static int greth_init_rings(struct greth_private *greth) greth 239 drivers/net/ethernet/aeroflex/greth.c rx_bd = greth->rx_bd_base; greth 240 drivers/net/ethernet/aeroflex/greth.c tx_bd = greth->tx_bd_base; greth 243 drivers/net/ethernet/aeroflex/greth.c if (greth->gbit_mac) { greth 246 drivers/net/ethernet/aeroflex/greth.c skb = netdev_alloc_skb(greth->netdev, MAX_FRAME_SIZE+NET_IP_ALIGN); greth 248 drivers/net/ethernet/aeroflex/greth.c if (netif_msg_ifup(greth)) greth 249 drivers/net/ethernet/aeroflex/greth.c dev_err(greth->dev, "Error allocating DMA ring.\n"); greth 253 drivers/net/ethernet/aeroflex/greth.c dma_addr = dma_map_single(greth->dev, greth 258 drivers/net/ethernet/aeroflex/greth.c if (dma_mapping_error(greth->dev, dma_addr)) { greth 259 drivers/net/ethernet/aeroflex/greth.c if (netif_msg_ifup(greth)) greth 260 drivers/net/ethernet/aeroflex/greth.c dev_err(greth->dev, "Could not create initial DMA mapping\n"); greth 263 drivers/net/ethernet/aeroflex/greth.c greth->rx_skbuff[i] = skb; greth 273 drivers/net/ethernet/aeroflex/greth.c greth->rx_bufs[i] = kmalloc(MAX_FRAME_SIZE, GFP_KERNEL); greth 275 drivers/net/ethernet/aeroflex/greth.c if (greth->rx_bufs[i] == NULL) { greth 276 drivers/net/ethernet/aeroflex/greth.c if (netif_msg_ifup(greth)) greth 277 drivers/net/ethernet/aeroflex/greth.c dev_err(greth->dev, "Error allocating DMA ring.\n"); greth 281 drivers/net/ethernet/aeroflex/greth.c dma_addr = dma_map_single(greth->dev, greth 282 drivers/net/ethernet/aeroflex/greth.c greth->rx_bufs[i], greth 286 drivers/net/ethernet/aeroflex/greth.c if (dma_mapping_error(greth->dev, dma_addr)) { greth 287 drivers/net/ethernet/aeroflex/greth.c if (netif_msg_ifup(greth)) greth 288 drivers/net/ethernet/aeroflex/greth.c dev_err(greth->dev, "Could not create initial DMA mapping\n"); greth 296 drivers/net/ethernet/aeroflex/greth.c greth->tx_bufs[i] = kmalloc(MAX_FRAME_SIZE, GFP_KERNEL); greth 298 drivers/net/ethernet/aeroflex/greth.c if (greth->tx_bufs[i] == NULL) { greth 299 drivers/net/ethernet/aeroflex/greth.c if (netif_msg_ifup(greth)) greth 300 drivers/net/ethernet/aeroflex/greth.c dev_err(greth->dev, "Error allocating DMA ring.\n"); greth 304 drivers/net/ethernet/aeroflex/greth.c dma_addr = dma_map_single(greth->dev, greth 305 drivers/net/ethernet/aeroflex/greth.c greth->tx_bufs[i], greth 309 drivers/net/ethernet/aeroflex/greth.c if (dma_mapping_error(greth->dev, dma_addr)) { greth 310 drivers/net/ethernet/aeroflex/greth.c if (netif_msg_ifup(greth)) greth 311 drivers/net/ethernet/aeroflex/greth.c dev_err(greth->dev, "Could not create initial DMA mapping\n"); greth 322 drivers/net/ethernet/aeroflex/greth.c greth->rx_cur = 0; greth 323 drivers/net/ethernet/aeroflex/greth.c greth->tx_next = 0; greth 324 drivers/net/ethernet/aeroflex/greth.c greth->tx_last = 0; greth 325 drivers/net/ethernet/aeroflex/greth.c greth->tx_free = GRETH_TXBD_NUM; greth 328 drivers/net/ethernet/aeroflex/greth.c GRETH_REGSAVE(greth->regs->tx_desc_p, greth->tx_bd_base_phys); greth 329 drivers/net/ethernet/aeroflex/greth.c GRETH_REGSAVE(greth->regs->rx_desc_p, greth->rx_bd_base_phys); greth 334 drivers/net/ethernet/aeroflex/greth.c greth_clean_rings(greth); greth 340 drivers/net/ethernet/aeroflex/greth.c struct greth_private *greth = netdev_priv(dev); greth 343 drivers/net/ethernet/aeroflex/greth.c err = greth_init_rings(greth); greth 345 drivers/net/ethernet/aeroflex/greth.c if (netif_msg_ifup(greth)) greth 350 drivers/net/ethernet/aeroflex/greth.c err = request_irq(greth->irq, greth_interrupt, 0, "eth", (void *) dev); greth 352 drivers/net/ethernet/aeroflex/greth.c if (netif_msg_ifup(greth)) greth 354 drivers/net/ethernet/aeroflex/greth.c greth_clean_rings(greth); greth 358 drivers/net/ethernet/aeroflex/greth.c if (netif_msg_ifup(greth)) greth 362 drivers/net/ethernet/aeroflex/greth.c GRETH_REGSAVE(greth->regs->status, 0xFF); greth 364 drivers/net/ethernet/aeroflex/greth.c napi_enable(&greth->napi); greth 366 drivers/net/ethernet/aeroflex/greth.c greth_enable_irqs(greth); greth 367 drivers/net/ethernet/aeroflex/greth.c greth_enable_tx(greth); greth 368 drivers/net/ethernet/aeroflex/greth.c greth_enable_rx(greth); greth 375 drivers/net/ethernet/aeroflex/greth.c struct greth_private *greth = netdev_priv(dev); greth 377 drivers/net/ethernet/aeroflex/greth.c napi_disable(&greth->napi); greth 379 drivers/net/ethernet/aeroflex/greth.c greth_disable_irqs(greth); greth 380 drivers/net/ethernet/aeroflex/greth.c greth_disable_tx(greth); greth 381 drivers/net/ethernet/aeroflex/greth.c greth_disable_rx(greth); greth 385 drivers/net/ethernet/aeroflex/greth.c free_irq(greth->irq, (void *) dev); greth 387 drivers/net/ethernet/aeroflex/greth.c greth_clean_rings(greth); greth 395 drivers/net/ethernet/aeroflex/greth.c struct greth_private *greth = netdev_priv(dev); greth 402 drivers/net/ethernet/aeroflex/greth.c greth_clean_tx(greth->netdev); greth 404 drivers/net/ethernet/aeroflex/greth.c if (unlikely(greth->tx_free <= 0)) { greth 405 drivers/net/ethernet/aeroflex/greth.c spin_lock_irqsave(&greth->devlock, flags);/*save from poll/irq*/ greth 406 drivers/net/ethernet/aeroflex/greth.c ctrl = GRETH_REGLOAD(greth->regs->control); greth 409 drivers/net/ethernet/aeroflex/greth.c GRETH_REGSAVE(greth->regs->control, ctrl | GRETH_TXI); greth 411 drivers/net/ethernet/aeroflex/greth.c spin_unlock_irqrestore(&greth->devlock, flags); greth 415 drivers/net/ethernet/aeroflex/greth.c if (netif_msg_pktdata(greth)) greth 424 drivers/net/ethernet/aeroflex/greth.c bdp = greth->tx_bd_base + greth->tx_next; greth 429 drivers/net/ethernet/aeroflex/greth.c dma_sync_single_for_device(greth->dev, dma_addr, skb->len, DMA_TO_DEVICE); greth 432 drivers/net/ethernet/aeroflex/greth.c greth->tx_bufs_length[greth->tx_next] = skb->len & GRETH_BD_LEN; greth 435 drivers/net/ethernet/aeroflex/greth.c if (greth->tx_next == GRETH_TXBD_NUM_MASK) { greth 439 drivers/net/ethernet/aeroflex/greth.c greth->tx_next = NEXT_TX(greth->tx_next); greth 440 drivers/net/ethernet/aeroflex/greth.c greth->tx_free--; greth 444 drivers/net/ethernet/aeroflex/greth.c spin_lock_irqsave(&greth->devlock, flags); /*save from poll/irq*/ greth 445 drivers/net/ethernet/aeroflex/greth.c greth_enable_tx(greth); greth 446 drivers/net/ethernet/aeroflex/greth.c spin_unlock_irqrestore(&greth->devlock, flags); greth 464 drivers/net/ethernet/aeroflex/greth.c struct greth_private *greth = netdev_priv(dev); greth 472 drivers/net/ethernet/aeroflex/greth.c tx_last = greth->tx_last; greth 475 drivers/net/ethernet/aeroflex/greth.c if (greth_num_free_bds(tx_last, greth->tx_next) < nr_frags + 1) { greth 481 drivers/net/ethernet/aeroflex/greth.c if (netif_msg_pktdata(greth)) greth 490 drivers/net/ethernet/aeroflex/greth.c greth->tx_skbuff[greth->tx_next] = skb; greth 501 drivers/net/ethernet/aeroflex/greth.c if (greth->tx_next == GRETH_TXBD_NUM_MASK) greth 505 drivers/net/ethernet/aeroflex/greth.c bdp = greth->tx_bd_base + greth->tx_next; greth 507 drivers/net/ethernet/aeroflex/greth.c dma_addr = dma_map_single(greth->dev, skb->data, skb_headlen(skb), DMA_TO_DEVICE); greth 509 drivers/net/ethernet/aeroflex/greth.c if (unlikely(dma_mapping_error(greth->dev, dma_addr))) greth 514 drivers/net/ethernet/aeroflex/greth.c curr_tx = NEXT_TX(greth->tx_next); greth 519 drivers/net/ethernet/aeroflex/greth.c greth->tx_skbuff[curr_tx] = NULL; greth 520 drivers/net/ethernet/aeroflex/greth.c bdp = greth->tx_bd_base + curr_tx; greth 539 drivers/net/ethernet/aeroflex/greth.c dma_addr = skb_frag_dma_map(greth->dev, frag, 0, skb_frag_size(frag), greth 542 drivers/net/ethernet/aeroflex/greth.c if (unlikely(dma_mapping_error(greth->dev, dma_addr))) greth 553 drivers/net/ethernet/aeroflex/greth.c bdp = greth->tx_bd_base + greth->tx_next; greth 557 drivers/net/ethernet/aeroflex/greth.c spin_lock_irqsave(&greth->devlock, flags); /*save from poll/irq*/ greth 558 drivers/net/ethernet/aeroflex/greth.c greth->tx_next = curr_tx; greth 559 drivers/net/ethernet/aeroflex/greth.c greth_enable_tx_and_irq(greth); greth 560 drivers/net/ethernet/aeroflex/greth.c spin_unlock_irqrestore(&greth->devlock, flags); greth 566 drivers/net/ethernet/aeroflex/greth.c for (i = 0; greth->tx_next + i != curr_tx; i++) { greth 567 drivers/net/ethernet/aeroflex/greth.c bdp = greth->tx_bd_base + greth->tx_next + i; greth 568 drivers/net/ethernet/aeroflex/greth.c dma_unmap_single(greth->dev, greth 576 drivers/net/ethernet/aeroflex/greth.c dev_warn(greth->dev, "Could not create TX DMA mapping\n"); greth 585 drivers/net/ethernet/aeroflex/greth.c struct greth_private *greth; greth 589 drivers/net/ethernet/aeroflex/greth.c greth = netdev_priv(dev); greth 591 drivers/net/ethernet/aeroflex/greth.c spin_lock(&greth->devlock); greth 594 drivers/net/ethernet/aeroflex/greth.c status = GRETH_REGLOAD(greth->regs->status); greth 600 drivers/net/ethernet/aeroflex/greth.c ctrl = GRETH_REGLOAD(greth->regs->control); greth 608 drivers/net/ethernet/aeroflex/greth.c greth_disable_irqs(greth); greth 609 drivers/net/ethernet/aeroflex/greth.c napi_schedule(&greth->napi); greth 612 drivers/net/ethernet/aeroflex/greth.c spin_unlock(&greth->devlock); greth 619 drivers/net/ethernet/aeroflex/greth.c struct greth_private *greth; greth 623 drivers/net/ethernet/aeroflex/greth.c greth = netdev_priv(dev); greth 626 drivers/net/ethernet/aeroflex/greth.c bdp = greth->tx_bd_base + greth->tx_last; greth 627 drivers/net/ethernet/aeroflex/greth.c GRETH_REGSAVE(greth->regs->status, GRETH_INT_TE | GRETH_INT_TX); greth 634 drivers/net/ethernet/aeroflex/greth.c if (greth->tx_free == GRETH_TXBD_NUM) greth 646 drivers/net/ethernet/aeroflex/greth.c dev->stats.tx_bytes += greth->tx_bufs_length[greth->tx_last]; greth 647 drivers/net/ethernet/aeroflex/greth.c greth->tx_last = NEXT_TX(greth->tx_last); greth 648 drivers/net/ethernet/aeroflex/greth.c greth->tx_free++; greth 651 drivers/net/ethernet/aeroflex/greth.c if (greth->tx_free > 0) { greth 673 drivers/net/ethernet/aeroflex/greth.c struct greth_private *greth; greth 680 drivers/net/ethernet/aeroflex/greth.c greth = netdev_priv(dev); greth 681 drivers/net/ethernet/aeroflex/greth.c tx_last = greth->tx_last; greth 683 drivers/net/ethernet/aeroflex/greth.c while (tx_last != greth->tx_next) { greth 685 drivers/net/ethernet/aeroflex/greth.c skb = greth->tx_skbuff[tx_last]; greth 690 drivers/net/ethernet/aeroflex/greth.c bdp_last_frag = greth->tx_bd_base + SKIP_TX(tx_last, nr_frags); greth 692 drivers/net/ethernet/aeroflex/greth.c GRETH_REGSAVE(greth->regs->status, GRETH_INT_TE | GRETH_INT_TX); greth 699 drivers/net/ethernet/aeroflex/greth.c greth->tx_skbuff[tx_last] = NULL; greth 704 drivers/net/ethernet/aeroflex/greth.c bdp = greth->tx_bd_base + tx_last; greth 708 drivers/net/ethernet/aeroflex/greth.c dma_unmap_single(greth->dev, greth 715 drivers/net/ethernet/aeroflex/greth.c bdp = greth->tx_bd_base + tx_last; greth 717 drivers/net/ethernet/aeroflex/greth.c dma_unmap_page(greth->dev, greth 728 drivers/net/ethernet/aeroflex/greth.c greth->tx_last = tx_last; greth 731 drivers/net/ethernet/aeroflex/greth.c (greth_num_free_bds(tx_last, greth->tx_next) > greth 739 drivers/net/ethernet/aeroflex/greth.c struct greth_private *greth; greth 747 drivers/net/ethernet/aeroflex/greth.c greth = netdev_priv(dev); greth 751 drivers/net/ethernet/aeroflex/greth.c bdp = greth->rx_bd_base + greth->rx_cur; greth 752 drivers/net/ethernet/aeroflex/greth.c GRETH_REGSAVE(greth->regs->status, GRETH_INT_RE | GRETH_INT_RX); greth 797 drivers/net/ethernet/aeroflex/greth.c dma_sync_single_for_cpu(greth->dev, greth 802 drivers/net/ethernet/aeroflex/greth.c if (netif_msg_pktdata(greth)) greth 816 drivers/net/ethernet/aeroflex/greth.c if (greth->rx_cur == GRETH_RXBD_NUM_MASK) { greth 823 drivers/net/ethernet/aeroflex/greth.c dma_sync_single_for_device(greth->dev, dma_addr, MAX_FRAME_SIZE, DMA_FROM_DEVICE); greth 825 drivers/net/ethernet/aeroflex/greth.c spin_lock_irqsave(&greth->devlock, flags); /* save from XMIT */ greth 826 drivers/net/ethernet/aeroflex/greth.c greth_enable_rx(greth); greth 827 drivers/net/ethernet/aeroflex/greth.c spin_unlock_irqrestore(&greth->devlock, flags); greth 829 drivers/net/ethernet/aeroflex/greth.c greth->rx_cur = NEXT_RX(greth->rx_cur); greth 855 drivers/net/ethernet/aeroflex/greth.c struct greth_private *greth; greth 863 drivers/net/ethernet/aeroflex/greth.c greth = netdev_priv(dev); greth 867 drivers/net/ethernet/aeroflex/greth.c bdp = greth->rx_bd_base + greth->rx_cur; greth 868 drivers/net/ethernet/aeroflex/greth.c skb = greth->rx_skbuff[greth->rx_cur]; greth 869 drivers/net/ethernet/aeroflex/greth.c GRETH_REGSAVE(greth->regs->status, GRETH_INT_RE | GRETH_INT_RX); greth 898 drivers/net/ethernet/aeroflex/greth.c dma_addr = dma_map_single(greth->dev, greth 903 drivers/net/ethernet/aeroflex/greth.c if (!dma_mapping_error(greth->dev, dma_addr)) { greth 907 drivers/net/ethernet/aeroflex/greth.c dma_unmap_single(greth->dev, greth 912 drivers/net/ethernet/aeroflex/greth.c if (netif_msg_pktdata(greth)) greth 927 drivers/net/ethernet/aeroflex/greth.c greth->rx_skbuff[greth->rx_cur] = newskb; greth 931 drivers/net/ethernet/aeroflex/greth.c dev_warn(greth->dev, "Could not create DMA mapping, dropping packet\n"); greth 947 drivers/net/ethernet/aeroflex/greth.c dev_warn(greth->dev, "Could not allocate SKB, dropping packet\n"); greth 953 drivers/net/ethernet/aeroflex/greth.c if (greth->rx_cur == GRETH_RXBD_NUM_MASK) { greth 959 drivers/net/ethernet/aeroflex/greth.c spin_lock_irqsave(&greth->devlock, flags); greth 960 drivers/net/ethernet/aeroflex/greth.c greth_enable_rx(greth); greth 961 drivers/net/ethernet/aeroflex/greth.c spin_unlock_irqrestore(&greth->devlock, flags); greth 962 drivers/net/ethernet/aeroflex/greth.c greth->rx_cur = NEXT_RX(greth->rx_cur); greth 971 drivers/net/ethernet/aeroflex/greth.c struct greth_private *greth; greth 975 drivers/net/ethernet/aeroflex/greth.c greth = container_of(napi, struct greth_private, napi); greth 978 drivers/net/ethernet/aeroflex/greth.c if (greth->gbit_mac) { greth 979 drivers/net/ethernet/aeroflex/greth.c greth_clean_tx_gbit(greth->netdev); greth 980 drivers/net/ethernet/aeroflex/greth.c work_done += greth_rx_gbit(greth->netdev, budget - work_done); greth 982 drivers/net/ethernet/aeroflex/greth.c if (netif_queue_stopped(greth->netdev)) greth 983 drivers/net/ethernet/aeroflex/greth.c greth_clean_tx(greth->netdev); greth 984 drivers/net/ethernet/aeroflex/greth.c work_done += greth_rx(greth->netdev, budget - work_done); greth 989 drivers/net/ethernet/aeroflex/greth.c spin_lock_irqsave(&greth->devlock, flags); greth 991 drivers/net/ethernet/aeroflex/greth.c ctrl = GRETH_REGLOAD(greth->regs->control); greth 992 drivers/net/ethernet/aeroflex/greth.c if ((greth->gbit_mac && (greth->tx_last != greth->tx_next)) || greth 993 drivers/net/ethernet/aeroflex/greth.c (!greth->gbit_mac && netif_queue_stopped(greth->netdev))) { greth 994 drivers/net/ethernet/aeroflex/greth.c GRETH_REGSAVE(greth->regs->control, greth 999 drivers/net/ethernet/aeroflex/greth.c GRETH_REGSAVE(greth->regs->control, ctrl | GRETH_RXI); greth 1003 drivers/net/ethernet/aeroflex/greth.c if (GRETH_REGLOAD(greth->regs->status) & mask) { greth 1004 drivers/net/ethernet/aeroflex/greth.c GRETH_REGSAVE(greth->regs->control, ctrl); greth 1005 drivers/net/ethernet/aeroflex/greth.c spin_unlock_irqrestore(&greth->devlock, flags); greth 1009 drivers/net/ethernet/aeroflex/greth.c spin_unlock_irqrestore(&greth->devlock, flags); greth 1019 drivers/net/ethernet/aeroflex/greth.c struct greth_private *greth; greth 1022 drivers/net/ethernet/aeroflex/greth.c greth = netdev_priv(dev); greth 1023 drivers/net/ethernet/aeroflex/greth.c regs = greth->regs; greth 1044 drivers/net/ethernet/aeroflex/greth.c struct greth_private *greth = netdev_priv(dev); greth 1045 drivers/net/ethernet/aeroflex/greth.c struct greth_regs *regs = greth->regs; greth 1063 drivers/net/ethernet/aeroflex/greth.c struct greth_private *greth = netdev_priv(dev); greth 1064 drivers/net/ethernet/aeroflex/greth.c struct greth_regs *regs = greth->regs; greth 1072 drivers/net/ethernet/aeroflex/greth.c if (greth->multicast) { greth 1096 drivers/net/ethernet/aeroflex/greth.c struct greth_private *greth = netdev_priv(dev); greth 1097 drivers/net/ethernet/aeroflex/greth.c return greth->msg_enable; greth 1102 drivers/net/ethernet/aeroflex/greth.c struct greth_private *greth = netdev_priv(dev); greth 1103 drivers/net/ethernet/aeroflex/greth.c greth->msg_enable = value; greth 1113 drivers/net/ethernet/aeroflex/greth.c struct greth_private *greth = netdev_priv(dev); greth 1115 drivers/net/ethernet/aeroflex/greth.c strlcpy(info->driver, dev_driver_string(greth->dev), greth 1118 drivers/net/ethernet/aeroflex/greth.c strlcpy(info->bus_info, greth->dev->bus->name, sizeof(info->bus_info)); greth 1125 drivers/net/ethernet/aeroflex/greth.c struct greth_private *greth = netdev_priv(dev); greth 1126 drivers/net/ethernet/aeroflex/greth.c u32 __iomem *greth_regs = (u32 __iomem *) greth->regs; greth 1152 drivers/net/ethernet/aeroflex/greth.c static inline int wait_for_mdio(struct greth_private *greth) greth 1155 drivers/net/ethernet/aeroflex/greth.c while (GRETH_REGLOAD(greth->regs->mdio) & GRETH_MII_BUSY) { greth 1164 drivers/net/ethernet/aeroflex/greth.c struct greth_private *greth = bus->priv; greth 1167 drivers/net/ethernet/aeroflex/greth.c if (!wait_for_mdio(greth)) greth 1170 drivers/net/ethernet/aeroflex/greth.c GRETH_REGSAVE(greth->regs->mdio, ((phy & 0x1F) << 11) | ((reg & 0x1F) << 6) | 2); greth 1172 drivers/net/ethernet/aeroflex/greth.c if (!wait_for_mdio(greth)) greth 1175 drivers/net/ethernet/aeroflex/greth.c if (!(GRETH_REGLOAD(greth->regs->mdio) & GRETH_MII_NVALID)) { greth 1176 drivers/net/ethernet/aeroflex/greth.c data = (GRETH_REGLOAD(greth->regs->mdio) >> 16) & 0xFFFF; greth 1186 drivers/net/ethernet/aeroflex/greth.c struct greth_private *greth = bus->priv; greth 1188 drivers/net/ethernet/aeroflex/greth.c if (!wait_for_mdio(greth)) greth 1191 drivers/net/ethernet/aeroflex/greth.c GRETH_REGSAVE(greth->regs->mdio, greth 1194 drivers/net/ethernet/aeroflex/greth.c if (!wait_for_mdio(greth)) greth 1202 drivers/net/ethernet/aeroflex/greth.c struct greth_private *greth = netdev_priv(dev); greth 1208 drivers/net/ethernet/aeroflex/greth.c spin_lock_irqsave(&greth->devlock, flags); greth 1212 drivers/net/ethernet/aeroflex/greth.c if ((greth->speed != phydev->speed) || (greth->duplex != phydev->duplex)) { greth 1213 drivers/net/ethernet/aeroflex/greth.c ctrl = GRETH_REGLOAD(greth->regs->control) & greth 1224 drivers/net/ethernet/aeroflex/greth.c GRETH_REGSAVE(greth->regs->control, ctrl); greth 1225 drivers/net/ethernet/aeroflex/greth.c greth->speed = phydev->speed; greth 1226 drivers/net/ethernet/aeroflex/greth.c greth->duplex = phydev->duplex; greth 1231 drivers/net/ethernet/aeroflex/greth.c if (phydev->link != greth->link) { greth 1233 drivers/net/ethernet/aeroflex/greth.c greth->speed = 0; greth 1234 drivers/net/ethernet/aeroflex/greth.c greth->duplex = -1; greth 1236 drivers/net/ethernet/aeroflex/greth.c greth->link = phydev->link; greth 1241 drivers/net/ethernet/aeroflex/greth.c spin_unlock_irqrestore(&greth->devlock, flags); greth 1255 drivers/net/ethernet/aeroflex/greth.c struct greth_private *greth = netdev_priv(dev); greth 1260 drivers/net/ethernet/aeroflex/greth.c phy = phy_find_first(greth->mdio); greth 1263 drivers/net/ethernet/aeroflex/greth.c if (netif_msg_probe(greth)) greth 1269 drivers/net/ethernet/aeroflex/greth.c greth->gbit_mac ? PHY_INTERFACE_MODE_GMII : PHY_INTERFACE_MODE_MII); greth 1271 drivers/net/ethernet/aeroflex/greth.c if (netif_msg_ifup(greth)) greth 1276 drivers/net/ethernet/aeroflex/greth.c if (greth->gbit_mac) greth 1283 drivers/net/ethernet/aeroflex/greth.c greth->link = 0; greth 1284 drivers/net/ethernet/aeroflex/greth.c greth->speed = 0; greth 1285 drivers/net/ethernet/aeroflex/greth.c greth->duplex = -1; greth 1290 drivers/net/ethernet/aeroflex/greth.c static int greth_mdio_init(struct greth_private *greth) greth 1294 drivers/net/ethernet/aeroflex/greth.c struct net_device *ndev = greth->netdev; greth 1296 drivers/net/ethernet/aeroflex/greth.c greth->mdio = mdiobus_alloc(); greth 1297 drivers/net/ethernet/aeroflex/greth.c if (!greth->mdio) { greth 1301 drivers/net/ethernet/aeroflex/greth.c greth->mdio->name = "greth-mdio"; greth 1302 drivers/net/ethernet/aeroflex/greth.c snprintf(greth->mdio->id, MII_BUS_ID_SIZE, "%s-%d", greth->mdio->name, greth->irq); greth 1303 drivers/net/ethernet/aeroflex/greth.c greth->mdio->read = greth_mdio_read; greth 1304 drivers/net/ethernet/aeroflex/greth.c greth->mdio->write = greth_mdio_write; greth 1305 drivers/net/ethernet/aeroflex/greth.c greth->mdio->priv = greth; greth 1307 drivers/net/ethernet/aeroflex/greth.c ret = mdiobus_register(greth->mdio); greth 1312 drivers/net/ethernet/aeroflex/greth.c ret = greth_mdio_probe(greth->netdev); greth 1314 drivers/net/ethernet/aeroflex/greth.c if (netif_msg_probe(greth)) greth 1315 drivers/net/ethernet/aeroflex/greth.c dev_err(&greth->netdev->dev, "failed to probe MDIO bus\n"); greth 1322 drivers/net/ethernet/aeroflex/greth.c if (greth->edcl && greth_edcl == 1) { greth 1329 drivers/net/ethernet/aeroflex/greth.c greth_link_change(greth->netdev); greth 1335 drivers/net/ethernet/aeroflex/greth.c mdiobus_unregister(greth->mdio); greth 1337 drivers/net/ethernet/aeroflex/greth.c mdiobus_free(greth->mdio); greth 1345 drivers/net/ethernet/aeroflex/greth.c struct greth_private *greth; greth 1358 drivers/net/ethernet/aeroflex/greth.c greth = netdev_priv(dev); greth 1359 drivers/net/ethernet/aeroflex/greth.c greth->netdev = dev; greth 1360 drivers/net/ethernet/aeroflex/greth.c greth->dev = &ofdev->dev; greth 1363 drivers/net/ethernet/aeroflex/greth.c greth->msg_enable = greth_debug; greth 1365 drivers/net/ethernet/aeroflex/greth.c greth->msg_enable = GRETH_DEF_MSG_ENABLE; greth 1367 drivers/net/ethernet/aeroflex/greth.c spin_lock_init(&greth->devlock); greth 1369 drivers/net/ethernet/aeroflex/greth.c greth->regs = of_ioremap(&ofdev->resource[0], 0, greth 1373 drivers/net/ethernet/aeroflex/greth.c if (greth->regs == NULL) { greth 1374 drivers/net/ethernet/aeroflex/greth.c if (netif_msg_probe(greth)) greth 1375 drivers/net/ethernet/aeroflex/greth.c dev_err(greth->dev, "ioremap failure.\n"); greth 1380 drivers/net/ethernet/aeroflex/greth.c regs = greth->regs; greth 1381 drivers/net/ethernet/aeroflex/greth.c greth->irq = ofdev->archdata.irqs[0]; greth 1383 drivers/net/ethernet/aeroflex/greth.c dev_set_drvdata(greth->dev, dev); greth 1384 drivers/net/ethernet/aeroflex/greth.c SET_NETDEV_DEV(dev, greth->dev); greth 1386 drivers/net/ethernet/aeroflex/greth.c if (netif_msg_probe(greth)) greth 1387 drivers/net/ethernet/aeroflex/greth.c dev_dbg(greth->dev, "resetting controller.\n"); greth 1397 drivers/net/ethernet/aeroflex/greth.c if (netif_msg_probe(greth)) greth 1398 drivers/net/ethernet/aeroflex/greth.c dev_err(greth->dev, "timeout when waiting for reset.\n"); greth 1404 drivers/net/ethernet/aeroflex/greth.c greth->phyaddr = (GRETH_REGLOAD(regs->mdio) >> 11) & 0x1F; greth 1408 drivers/net/ethernet/aeroflex/greth.c greth->gbit_mac = (tmp >> 27) & 1; greth 1411 drivers/net/ethernet/aeroflex/greth.c greth->multicast = (tmp >> 25) & 1; greth 1413 drivers/net/ethernet/aeroflex/greth.c greth->edcl = (tmp >> 31) & 1; greth 1417 drivers/net/ethernet/aeroflex/greth.c if (greth->edcl != 0) greth 1421 drivers/net/ethernet/aeroflex/greth.c greth->mdio_int_en = (tmp >> 26) & 1; greth 1423 drivers/net/ethernet/aeroflex/greth.c err = greth_mdio_init(greth); greth 1425 drivers/net/ethernet/aeroflex/greth.c if (netif_msg_probe(greth)) greth 1426 drivers/net/ethernet/aeroflex/greth.c dev_err(greth->dev, "failed to register MDIO bus\n"); greth 1431 drivers/net/ethernet/aeroflex/greth.c greth->tx_bd_base = dma_alloc_coherent(greth->dev, 1024, greth 1432 drivers/net/ethernet/aeroflex/greth.c &greth->tx_bd_base_phys, greth 1434 drivers/net/ethernet/aeroflex/greth.c if (!greth->tx_bd_base) { greth 1440 drivers/net/ethernet/aeroflex/greth.c greth->rx_bd_base = dma_alloc_coherent(greth->dev, 1024, greth 1441 drivers/net/ethernet/aeroflex/greth.c &greth->rx_bd_base_phys, greth 1443 drivers/net/ethernet/aeroflex/greth.c if (!greth->rx_bd_base) { greth 1474 drivers/net/ethernet/aeroflex/greth.c if (netif_msg_probe(greth)) greth 1475 drivers/net/ethernet/aeroflex/greth.c dev_err(greth->dev, "no valid ethernet address, aborting.\n"); greth 1487 drivers/net/ethernet/aeroflex/greth.c if (greth->gbit_mac) { greth 1494 drivers/net/ethernet/aeroflex/greth.c if (greth->multicast) { greth 1506 drivers/net/ethernet/aeroflex/greth.c if (netif_msg_probe(greth)) greth 1507 drivers/net/ethernet/aeroflex/greth.c dev_err(greth->dev, "netdevice registration failed.\n"); greth 1512 drivers/net/ethernet/aeroflex/greth.c netif_napi_add(dev, &greth->napi, greth_poll, 64); greth 1517 drivers/net/ethernet/aeroflex/greth.c dma_free_coherent(greth->dev, 1024, greth->rx_bd_base, greth->rx_bd_base_phys); greth 1519 drivers/net/ethernet/aeroflex/greth.c dma_free_coherent(greth->dev, 1024, greth->tx_bd_base, greth->tx_bd_base_phys); greth 1521 drivers/net/ethernet/aeroflex/greth.c mdiobus_unregister(greth->mdio); greth 1523 drivers/net/ethernet/aeroflex/greth.c of_iounmap(&ofdev->resource[0], greth->regs, resource_size(&ofdev->resource[0])); greth 1532 drivers/net/ethernet/aeroflex/greth.c struct greth_private *greth = netdev_priv(ndev); greth 1535 drivers/net/ethernet/aeroflex/greth.c dma_free_coherent(&of_dev->dev, 1024, greth->rx_bd_base, greth->rx_bd_base_phys); greth 1537 drivers/net/ethernet/aeroflex/greth.c dma_free_coherent(&of_dev->dev, 1024, greth->tx_bd_base, greth->tx_bd_base_phys); greth 1541 drivers/net/ethernet/aeroflex/greth.c mdiobus_unregister(greth->mdio); greth 1546 drivers/net/ethernet/aeroflex/greth.c of_iounmap(&of_dev->resource[0], greth->regs, resource_size(&of_dev->resource[0]));