diff options
Diffstat (limited to 'drivers/net')
-rw-r--r-- | drivers/net/fec.c | 37 | ||||
-rw-r--r-- | drivers/net/fec.h | 8 |
2 files changed, 24 insertions, 21 deletions
diff --git a/drivers/net/fec.c b/drivers/net/fec.c index 37b333265629..f8396fb30326 100644 --- a/drivers/net/fec.c +++ b/drivers/net/fec.c | |||
@@ -180,10 +180,14 @@ struct fec_enet_private { | |||
180 | /* CPM dual port RAM relative addresses. | 180 | /* CPM dual port RAM relative addresses. |
181 | */ | 181 | */ |
182 | dma_addr_t bd_dma; | 182 | dma_addr_t bd_dma; |
183 | cbd_t *rx_bd_base; /* Address of Rx and Tx buffers. */ | 183 | /* Address of Rx and Tx buffers. */ |
184 | cbd_t *tx_bd_base; | 184 | struct bufdesc *rx_bd_base; |
185 | cbd_t *cur_rx, *cur_tx; /* The next free ring entry */ | 185 | struct bufdesc *tx_bd_base; |
186 | cbd_t *dirty_tx; /* The ring entries to be free()ed. */ | 186 | /* The next free ring entry */ |
187 | struct bufdesc *cur_rx, *cur_tx; | ||
188 | /* The ring entries to be free()ed. */ | ||
189 | struct bufdesc *dirty_tx; | ||
190 | |||
187 | uint tx_full; | 191 | uint tx_full; |
188 | /* hold while accessing the HW like ringbuffer for tx/rx but not MAC */ | 192 | /* hold while accessing the HW like ringbuffer for tx/rx but not MAC */ |
189 | spinlock_t hw_lock; | 193 | spinlock_t hw_lock; |
@@ -289,7 +293,7 @@ static int | |||
289 | fec_enet_start_xmit(struct sk_buff *skb, struct net_device *dev) | 293 | fec_enet_start_xmit(struct sk_buff *skb, struct net_device *dev) |
290 | { | 294 | { |
291 | struct fec_enet_private *fep = netdev_priv(dev); | 295 | struct fec_enet_private *fep = netdev_priv(dev); |
292 | volatile cbd_t *bdp; | 296 | struct bufdesc *bdp; |
293 | unsigned short status; | 297 | unsigned short status; |
294 | unsigned long flags; | 298 | unsigned long flags; |
295 | 299 | ||
@@ -374,7 +378,7 @@ fec_enet_start_xmit(struct sk_buff *skb, struct net_device *dev) | |||
374 | netif_stop_queue(dev); | 378 | netif_stop_queue(dev); |
375 | } | 379 | } |
376 | 380 | ||
377 | fep->cur_tx = (cbd_t *)bdp; | 381 | fep->cur_tx = bdp; |
378 | 382 | ||
379 | spin_unlock_irqrestore(&fep->hw_lock, flags); | 383 | spin_unlock_irqrestore(&fep->hw_lock, flags); |
380 | 384 | ||
@@ -391,7 +395,7 @@ fec_timeout(struct net_device *dev) | |||
391 | #ifndef final_version | 395 | #ifndef final_version |
392 | { | 396 | { |
393 | int i; | 397 | int i; |
394 | cbd_t *bdp; | 398 | struct bufdesc *bdp; |
395 | 399 | ||
396 | printk("Ring data dump: cur_tx %lx%s, dirty_tx %lx cur_rx: %lx\n", | 400 | printk("Ring data dump: cur_tx %lx%s, dirty_tx %lx cur_rx: %lx\n", |
397 | (unsigned long)fep->cur_tx, fep->tx_full ? " (full)" : "", | 401 | (unsigned long)fep->cur_tx, fep->tx_full ? " (full)" : "", |
@@ -471,7 +475,7 @@ static void | |||
471 | fec_enet_tx(struct net_device *dev) | 475 | fec_enet_tx(struct net_device *dev) |
472 | { | 476 | { |
473 | struct fec_enet_private *fep; | 477 | struct fec_enet_private *fep; |
474 | volatile cbd_t *bdp; | 478 | struct bufdesc *bdp; |
475 | unsigned short status; | 479 | unsigned short status; |
476 | struct sk_buff *skb; | 480 | struct sk_buff *skb; |
477 | 481 | ||
@@ -534,7 +538,7 @@ fec_enet_tx(struct net_device *dev) | |||
534 | netif_wake_queue(dev); | 538 | netif_wake_queue(dev); |
535 | } | 539 | } |
536 | } | 540 | } |
537 | fep->dirty_tx = (cbd_t *)bdp; | 541 | fep->dirty_tx = bdp; |
538 | spin_unlock_irq(&fep->hw_lock); | 542 | spin_unlock_irq(&fep->hw_lock); |
539 | } | 543 | } |
540 | 544 | ||
@@ -548,7 +552,7 @@ static void | |||
548 | fec_enet_rx(struct net_device *dev) | 552 | fec_enet_rx(struct net_device *dev) |
549 | { | 553 | { |
550 | struct fec_enet_private *fep = netdev_priv(dev); | 554 | struct fec_enet_private *fep = netdev_priv(dev); |
551 | volatile cbd_t *bdp; | 555 | struct bufdesc *bdp; |
552 | unsigned short status; | 556 | unsigned short status; |
553 | struct sk_buff *skb; | 557 | struct sk_buff *skb; |
554 | ushort pkt_len; | 558 | ushort pkt_len; |
@@ -656,7 +660,7 @@ while (!((status = bdp->cbd_sc) & BD_ENET_RX_EMPTY)) { | |||
656 | writel(0, fep->hwp + FEC_R_DES_ACTIVE); | 660 | writel(0, fep->hwp + FEC_R_DES_ACTIVE); |
657 | #endif | 661 | #endif |
658 | } /* while (!((status = bdp->cbd_sc) & BD_ENET_RX_EMPTY)) */ | 662 | } /* while (!((status = bdp->cbd_sc) & BD_ENET_RX_EMPTY)) */ |
659 | fep->cur_rx = (cbd_t *)bdp; | 663 | fep->cur_rx = bdp; |
660 | 664 | ||
661 | #if 0 | 665 | #if 0 |
662 | /* Doing this here will allow us to process all frames in the | 666 | /* Doing this here will allow us to process all frames in the |
@@ -1653,8 +1657,7 @@ int __init fec_enet_init(struct net_device *dev, int index) | |||
1653 | { | 1657 | { |
1654 | struct fec_enet_private *fep = netdev_priv(dev); | 1658 | struct fec_enet_private *fep = netdev_priv(dev); |
1655 | unsigned long mem_addr; | 1659 | unsigned long mem_addr; |
1656 | volatile cbd_t *bdp; | 1660 | struct bufdesc *bdp, *cbd_base; |
1657 | cbd_t *cbd_base; | ||
1658 | int i, j; | 1661 | int i, j; |
1659 | 1662 | ||
1660 | /* Allocate memory for buffer descriptors. | 1663 | /* Allocate memory for buffer descriptors. |
@@ -1695,7 +1698,7 @@ int __init fec_enet_init(struct net_device *dev, int index) | |||
1695 | } | 1698 | } |
1696 | #endif | 1699 | #endif |
1697 | 1700 | ||
1698 | cbd_base = (cbd_t *)mem_addr; | 1701 | cbd_base = (struct bufdesc *)mem_addr; |
1699 | 1702 | ||
1700 | /* Set receive and transmit descriptor base. | 1703 | /* Set receive and transmit descriptor base. |
1701 | */ | 1704 | */ |
@@ -1760,7 +1763,7 @@ int __init fec_enet_init(struct net_device *dev, int index) | |||
1760 | /* Set receive and transmit descriptor base. | 1763 | /* Set receive and transmit descriptor base. |
1761 | */ | 1764 | */ |
1762 | writel(fep->bd_dma, fep->hwp + FEC_R_DES_START); | 1765 | writel(fep->bd_dma, fep->hwp + FEC_R_DES_START); |
1763 | writel((unsigned long)fep->bd_dma + sizeof(cbd_t) * RX_RING_SIZE, | 1766 | writel((unsigned long)fep->bd_dma + sizeof(struct bufdesc) * RX_RING_SIZE, |
1764 | fep->hwp + FEC_X_DES_START); | 1767 | fep->hwp + FEC_X_DES_START); |
1765 | 1768 | ||
1766 | #ifdef HAVE_mii_link_interrupt | 1769 | #ifdef HAVE_mii_link_interrupt |
@@ -1824,7 +1827,7 @@ static void | |||
1824 | fec_restart(struct net_device *dev, int duplex) | 1827 | fec_restart(struct net_device *dev, int duplex) |
1825 | { | 1828 | { |
1826 | struct fec_enet_private *fep = netdev_priv(dev); | 1829 | struct fec_enet_private *fep = netdev_priv(dev); |
1827 | volatile cbd_t *bdp; | 1830 | struct bufdesc *bdp; |
1828 | int i; | 1831 | int i; |
1829 | 1832 | ||
1830 | /* Whack a reset. We should wait for this. */ | 1833 | /* Whack a reset. We should wait for this. */ |
@@ -1846,7 +1849,7 @@ fec_restart(struct net_device *dev, int duplex) | |||
1846 | 1849 | ||
1847 | /* Set receive and transmit descriptor base. */ | 1850 | /* Set receive and transmit descriptor base. */ |
1848 | writel(fep->bd_dma, fep->hwp + FEC_R_DES_START); | 1851 | writel(fep->bd_dma, fep->hwp + FEC_R_DES_START); |
1849 | writel((unsigned long)fep->bd_dma + sizeof(cbd_t) * RX_RING_SIZE, | 1852 | writel((unsigned long)fep->bd_dma + sizeof(struct bufdesc) * RX_RING_SIZE, |
1850 | fep->hwp + FEC_X_DES_START); | 1853 | fep->hwp + FEC_X_DES_START); |
1851 | 1854 | ||
1852 | fep->dirty_tx = fep->cur_tx = fep->tx_bd_base; | 1855 | fep->dirty_tx = fep->cur_tx = fep->tx_bd_base; |
diff --git a/drivers/net/fec.h b/drivers/net/fec.h index 5474ba39d46c..30b7dd671336 100644 --- a/drivers/net/fec.h +++ b/drivers/net/fec.h | |||
@@ -77,17 +77,17 @@ | |||
77 | * Define the buffer descriptor structure. | 77 | * Define the buffer descriptor structure. |
78 | */ | 78 | */ |
79 | #ifdef CONFIG_ARCH_MXC | 79 | #ifdef CONFIG_ARCH_MXC |
80 | typedef struct bufdesc { | 80 | struct bufdesc { |
81 | unsigned short cbd_datlen; /* Data length */ | 81 | unsigned short cbd_datlen; /* Data length */ |
82 | unsigned short cbd_sc; /* Control and status info */ | 82 | unsigned short cbd_sc; /* Control and status info */ |
83 | unsigned long cbd_bufaddr; /* Buffer address */ | 83 | unsigned long cbd_bufaddr; /* Buffer address */ |
84 | } cbd_t; | 84 | }; |
85 | #else | 85 | #else |
86 | typedef struct bufdesc { | 86 | struct bufdesc { |
87 | unsigned short cbd_sc; /* Control and status info */ | 87 | unsigned short cbd_sc; /* Control and status info */ |
88 | unsigned short cbd_datlen; /* Data length */ | 88 | unsigned short cbd_datlen; /* Data length */ |
89 | unsigned long cbd_bufaddr; /* Buffer address */ | 89 | unsigned long cbd_bufaddr; /* Buffer address */ |
90 | } cbd_t; | 90 | }; |
91 | #endif | 91 | #endif |
92 | 92 | ||
93 | /* | 93 | /* |