• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-WNDR4500v2-V1.0.0.60_1.0.38/src/linux/linux-2.6/drivers/net/fs_enet/

Lines Matching refs:fep

67 	struct fs_enet_private *fep = netdev_priv(dev);
69 (*fep->ops->set_multicast_list)(dev);
75 struct fs_enet_private *fep = netdev_priv(dev);
76 const struct fs_platform_info *fpi = fep->fpi;
93 bdp = fep->cur_rx;
96 (*fep->ops->napi_clear_rx_event)(dev);
100 curidx = bdp - fep->rx_bd_base;
116 fep->stats.rx_errors++;
119 fep->stats.rx_length_errors++;
122 fep->stats.rx_frame_errors++;
125 fep->stats.rx_crc_errors++;
128 fep->stats.rx_crc_errors++;
130 skb = fep->rx_skbuff[curidx];
132 dma_unmap_single(fep->dev, CBDR_BUFADDR(bdp),
144 skb = fep->rx_skbuff[curidx];
146 dma_unmap_single(fep->dev, CBDR_BUFADDR(bdp),
153 fep->stats.rx_packets++;
155 fep->stats.rx_bytes += pkt_len + 4;
181 fep->stats.rx_dropped++;
186 fep->rx_skbuff[curidx] = skbn;
187 CBDW_BUFADDR(bdp, dma_map_single(fep->dev, skbn->data,
199 bdp = fep->rx_bd_base;
201 (*fep->ops->rx_bd_done)(dev);
204 fep->cur_rx = bdp;
215 (*fep->ops->napi_enable_rx)(dev);
223 struct fs_enet_private *fep = netdev_priv(dev);
224 const struct fs_platform_info *fpi = fep->fpi;
234 bdp = fep->cur_rx;
238 curidx = bdp - fep->rx_bd_base;
254 fep->stats.rx_errors++;
257 fep->stats.rx_length_errors++;
260 fep->stats.rx_frame_errors++;
263 fep->stats.rx_crc_errors++;
266 fep->stats.rx_crc_errors++;
268 skb = fep->rx_skbuff[curidx];
270 dma_unmap_single(fep->dev, CBDR_BUFADDR(bdp),
278 skb = fep->rx_skbuff[curidx];
280 dma_unmap_single(fep->dev, CBDR_BUFADDR(bdp),
287 fep->stats.rx_packets++;
289 fep->stats.rx_bytes += pkt_len + 4;
315 fep->stats.rx_dropped++;
320 fep->rx_skbuff[curidx] = skbn;
321 CBDW_BUFADDR(bdp, dma_map_single(fep->dev, skbn->data,
333 bdp = fep->rx_bd_base;
335 (*fep->ops->rx_bd_done)(dev);
338 fep->cur_rx = bdp;
345 struct fs_enet_private *fep = netdev_priv(dev);
351 spin_lock(&fep->lock);
352 bdp = fep->dirty_tx;
357 dirtyidx = bdp - fep->tx_bd_base;
359 if (fep->tx_free == fep->tx_ring)
362 skb = fep->tx_skbuff[dirtyidx];
371 fep->stats.tx_heartbeat_errors++;
373 fep->stats.tx_window_errors++;
375 fep->stats.tx_aborted_errors++;
377 fep->stats.tx_fifo_errors++;
379 fep->stats.tx_carrier_errors++;
382 fep->stats.tx_errors++;
386 fep->stats.tx_packets++;
398 fep->stats.collisions++;
401 dma_unmap_single(fep->dev, CBDR_BUFADDR(bdp),
408 fep->tx_skbuff[dirtyidx] = NULL;
416 bdp = fep->tx_bd_base;
422 if (!fep->tx_free++)
426 fep->dirty_tx = bdp;
429 (*fep->ops->tx_restart)(dev);
431 spin_unlock(&fep->lock);
445 struct fs_enet_private *fep;
452 fep = netdev_priv(dev);
453 fpi = fep->fpi;
456 while ((int_events = (*fep->ops->get_int_events)(dev)) != 0) {
462 int_clr_events &= ~fep->ev_napi_rx;
464 (*fep->ops->clear_int_events)(dev, int_clr_events);
466 if (int_events & fep->ev_err)
467 (*fep->ops->ev_error)(dev, int_events);
469 if (int_events & fep->ev_rx) {
475 (*fep->ops->napi_disable_rx)(dev);
476 (*fep->ops->clear_int_events)(dev, fep->ev_napi_rx);
485 if (int_events & fep->ev_tx)
495 struct fs_enet_private *fep = netdev_priv(dev);
502 fep->dirty_tx = fep->cur_tx = fep->tx_bd_base;
503 fep->tx_free = fep->tx_ring;
504 fep->cur_rx = fep->rx_bd_base;
509 for (i = 0, bdp = fep->rx_bd_base; i < fep->rx_ring; i++, bdp++) {
517 fep->rx_skbuff[i] = skb;
519 dma_map_single(fep->dev, skb->data,
524 ((i < fep->rx_ring - 1) ? 0 : BD_SC_WRAP));
529 for (; i < fep->rx_ring; i++, bdp++) {
530 fep->rx_skbuff[i] = NULL;
531 CBDW_SC(bdp, (i < fep->rx_ring - 1) ? 0 : BD_SC_WRAP);
537 for (i = 0, bdp = fep->tx_bd_base; i < fep->tx_ring; i++, bdp++) {
538 fep->tx_skbuff[i] = NULL;
541 CBDW_SC(bdp, (i < fep->tx_ring - 1) ? 0 : BD_SC_WRAP);
547 struct fs_enet_private *fep = netdev_priv(dev);
555 for (i = 0, bdp = fep->tx_bd_base; i < fep->tx_ring; i++, bdp++) {
556 if ((skb = fep->tx_skbuff[i]) == NULL)
560 dma_unmap_single(fep->dev, CBDR_BUFADDR(bdp),
563 fep->tx_skbuff[i] = NULL;
570 for (i = 0, bdp = fep->rx_bd_base; i < fep->rx_ring; i++, bdp++) {
571 if ((skb = fep->rx_skbuff[i]) == NULL)
575 dma_unmap_single(fep->dev, CBDR_BUFADDR(bdp),
579 fep->rx_skbuff[i] = NULL;
589 struct fs_enet_private *fep = netdev_priv(dev);
595 spin_lock_irqsave(&fep->tx_lock, flags);
600 bdp = fep->cur_tx;
602 if (!fep->tx_free || (CBDR_SC(bdp) & BD_ENET_TX_READY)) {
604 spin_unlock_irqrestore(&fep->tx_lock, flags);
615 curidx = bdp - fep->tx_bd_base;
624 fep->tx_skbuff[curidx] = skb;
626 fep->stats.tx_bytes += skb->len;
631 CBDW_BUFADDR(bdp, dma_map_single(fep->dev,
641 fep->cur_tx++;
643 fep->cur_tx = fep->tx_bd_base;
645 if (!--fep->tx_free)
659 (*fep->ops->tx_kickstart)(dev);
661 spin_unlock_irqrestore(&fep->tx_lock, flags);
669 struct fs_enet_private *fep = netdev_priv(dev);
671 (*fep->ops->pre_request_irq)(dev, irq);
677 struct fs_enet_private *fep = netdev_priv(dev);
680 (*fep->ops->post_free_irq)(dev, irq);
685 struct fs_enet_private *fep = netdev_priv(dev);
689 fep->stats.tx_errors++;
691 spin_lock_irqsave(&fep->lock, flags);
694 phy_stop(fep->phydev);
695 (*fep->ops->stop)(dev);
696 (*fep->ops->restart)(dev);
697 phy_start(fep->phydev);
700 phy_start(fep->phydev);
701 wake = fep->tx_free && !(CBDR_SC(fep->cur_tx) & BD_ENET_TX_READY);
702 spin_unlock_irqrestore(&fep->lock, flags);
713 struct fs_enet_private *fep = netdev_priv(dev);
714 struct phy_device *phydev = fep->phydev;
720 if (phydev->duplex != fep->oldduplex){
722 fep->oldduplex = phydev->duplex;
725 if (phydev->speed != fep->oldspeed) {
727 fep->oldspeed = phydev->speed;
730 if (!fep->oldlink) {
732 fep->oldlink = 1;
739 fep->ops->restart(dev);
741 } else if (fep->oldlink) {
743 fep->oldlink = 0;
744 fep->oldspeed = 0;
745 fep->oldduplex = -1;
750 if (new_state && netif_msg_link(fep))
757 struct fs_enet_private *fep = netdev_priv(dev);
760 spin_lock_irqsave(&fep->lock, flags);
762 if(fep->ops->adjust_link)
763 fep->ops->adjust_link(dev);
767 spin_unlock_irqrestore(&fep->lock, flags);
772 struct fs_enet_private *fep = netdev_priv(dev);
775 fep->oldlink = 0;
776 fep->oldspeed = 0;
777 fep->oldduplex = -1;
778 if(fep->fpi->bus_id)
779 phydev = phy_connect(dev, fep->fpi->bus_id, &fs_adjust_link, 0,
790 fep->phydev = phydev;
798 struct fs_enet_private *fep = netdev_priv(dev);
803 r = fs_request_irq(dev, fep->interrupt, "fs_enet-mac", fs_enet_interrupt);
814 phy_start(fep->phydev);
821 struct fs_enet_private *fep = netdev_priv(dev);
826 phy_stop(fep->phydev);
828 spin_lock_irqsave(&fep->lock, flags);
829 (*fep->ops->stop)(dev);
830 spin_unlock_irqrestore(&fep->lock, flags);
833 phy_disconnect(fep->phydev);
834 fep->phydev = NULL;
835 fs_free_irq(dev, fep->interrupt);
842 struct fs_enet_private *fep = netdev_priv(dev);
843 return &fep->stats;
857 struct fs_enet_private *fep = netdev_priv(dev);
859 return (*fep->ops->get_regs_len)(dev);
865 struct fs_enet_private *fep = netdev_priv(dev);
871 spin_lock_irqsave(&fep->lock, flags);
872 r = (*fep->ops->get_regs)(dev, p, &len);
873 spin_unlock_irqrestore(&fep->lock, flags);
881 struct fs_enet_private *fep = netdev_priv(dev);
882 return phy_ethtool_gset(fep->phydev, cmd);
887 struct fs_enet_private *fep = netdev_priv(dev);
888 phy_ethtool_sset(fep->phydev, cmd);
899 struct fs_enet_private *fep = netdev_priv(dev);
900 return fep->msg_enable;
905 struct fs_enet_private *fep = netdev_priv(dev);
906 fep->msg_enable = value;
927 struct fs_enet_private *fep = netdev_priv(dev);
935 spin_lock_irqsave(&fep->lock, flags);
936 rc = phy_mii_ioctl(fep->phydev, mii, cmd);
937 spin_unlock_irqrestore(&fep->lock, flags);
948 struct fs_enet_private *fep = NULL;
956 privsize = sizeof(*fep) + (sizeof(struct sk_buff **) *
966 fep = netdev_priv(ndev);
967 memset(fep, 0, privsize); /* clear everything */
969 fep->dev = dev;
971 fep->fpi = fpi;
977 fep->ops = &fs_fec_ops;
982 fep->ops = &fs_scc_ops;
987 fep->ops = &fs_fcc_ops;
990 if (fep->ops == NULL) {
998 r = (*fep->ops->setup_data)(ndev);
1008 fep->rx_skbuff = (struct sk_buff **)&fep[1];
1009 fep->tx_skbuff = fep->rx_skbuff + fpi->rx_ring;
1012 spin_lock_init(&fep->lock);
1013 spin_lock_init(&fep->tx_lock);
1021 r = (*fep->ops->allocate_bd)(ndev);
1023 if (fep->ring_base == NULL) {
1033 fep->rx_bd_base = fep->ring_base;
1034 fep->tx_bd_base = fep->rx_bd_base + fpi->rx_ring;
1037 fep->tx_ring = fpi->tx_ring;
1038 fep->rx_ring = fpi->rx_ring;
1057 init_timer(&fep->phy_timer_list);
1078 if (fep != NULL) {
1079 (*fep->ops->free_bd)(ndev);
1080 (*fep->ops->cleanup_data)(ndev);
1093 struct fs_enet_private *fep;
1100 fep = netdev_priv(ndev);
1101 if (fep == NULL)
1104 fpi = fep->fpi;
1108 dma_free_coherent(fep->dev, (fpi->tx_ring + fpi->rx_ring) * sizeof(cbd_t),
1109 fep->ring_base, fep->ring_mem_addr);
1112 (*fep->ops->cleanup_data)(ndev);
1114 dev = fep->dev;
1117 fep->dev = NULL;