diff options
author | Al Viro <viro@ftp.linux.org.uk> | 2007-12-22 13:55:49 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-01-28 18:07:59 -0500 |
commit | 3dd5f1d422d8a736178a760562c98d4169b33a23 (patch) | |
tree | fb484782158edf65d16c3a8aedeec9e88395364c /drivers/net | |
parent | 904584018e9ba30a3e562d86ee7dfb6239105664 (diff) |
eepro100 annotations
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to 'drivers/net')
-rw-r--r-- | drivers/net/eepro100.c | 90 |
1 files changed, 42 insertions, 48 deletions
diff --git a/drivers/net/eepro100.c b/drivers/net/eepro100.c index 3003e9276976..e3e26c595fa3 100644 --- a/drivers/net/eepro100.c +++ b/drivers/net/eepro100.c | |||
@@ -304,13 +304,7 @@ enum commands { | |||
304 | #if defined(__alpha__) | 304 | #if defined(__alpha__) |
305 | # define clear_suspend(cmd) clear_bit(30, &(cmd)->cmd_status); | 305 | # define clear_suspend(cmd) clear_bit(30, &(cmd)->cmd_status); |
306 | #else | 306 | #else |
307 | # if defined(__LITTLE_ENDIAN) | 307 | # define clear_suspend(cmd) ((__le16 *)&(cmd)->cmd_status)[1] &= ~cpu_to_le16(1<<14) |
308 | # define clear_suspend(cmd) ((__u16 *)&(cmd)->cmd_status)[1] &= ~0x4000 | ||
309 | # elif defined(__BIG_ENDIAN) | ||
310 | # define clear_suspend(cmd) ((__u16 *)&(cmd)->cmd_status)[1] &= ~0x0040 | ||
311 | # else | ||
312 | # error Unsupported byteorder | ||
313 | # endif | ||
314 | #endif | 308 | #endif |
315 | 309 | ||
316 | enum SCBCmdBits { | 310 | enum SCBCmdBits { |
@@ -331,17 +325,17 @@ enum SCBPort_cmds { | |||
331 | 325 | ||
332 | /* The Speedo3 Rx and Tx frame/buffer descriptors. */ | 326 | /* The Speedo3 Rx and Tx frame/buffer descriptors. */ |
333 | struct descriptor { /* A generic descriptor. */ | 327 | struct descriptor { /* A generic descriptor. */ |
334 | volatile s32 cmd_status; /* All command and status fields. */ | 328 | volatile __le32 cmd_status; /* All command and status fields. */ |
335 | u32 link; /* struct descriptor * */ | 329 | __le32 link; /* struct descriptor * */ |
336 | unsigned char params[0]; | 330 | unsigned char params[0]; |
337 | }; | 331 | }; |
338 | 332 | ||
339 | /* The Speedo3 Rx and Tx buffer descriptors. */ | 333 | /* The Speedo3 Rx and Tx buffer descriptors. */ |
340 | struct RxFD { /* Receive frame descriptor. */ | 334 | struct RxFD { /* Receive frame descriptor. */ |
341 | volatile s32 status; | 335 | volatile __le32 status; |
342 | u32 link; /* struct RxFD * */ | 336 | __le32 link; /* struct RxFD * */ |
343 | u32 rx_buf_addr; /* void * */ | 337 | __le32 rx_buf_addr; /* void * */ |
344 | u32 count; | 338 | __le32 count; |
345 | } RxFD_ALIGNMENT; | 339 | } RxFD_ALIGNMENT; |
346 | 340 | ||
347 | /* Selected elements of the Tx/RxFD.status word. */ | 341 | /* Selected elements of the Tx/RxFD.status word. */ |
@@ -354,16 +348,16 @@ enum RxFD_bits { | |||
354 | 348 | ||
355 | #define CONFIG_DATA_SIZE 22 | 349 | #define CONFIG_DATA_SIZE 22 |
356 | struct TxFD { /* Transmit frame descriptor set. */ | 350 | struct TxFD { /* Transmit frame descriptor set. */ |
357 | s32 status; | 351 | __le32 status; |
358 | u32 link; /* void * */ | 352 | __le32 link; /* void * */ |
359 | u32 tx_desc_addr; /* Always points to the tx_buf_addr element. */ | 353 | __le32 tx_desc_addr; /* Always points to the tx_buf_addr element. */ |
360 | s32 count; /* # of TBD (=1), Tx start thresh., etc. */ | 354 | __le32 count; /* # of TBD (=1), Tx start thresh., etc. */ |
361 | /* This constitutes two "TBD" entries -- we only use one. */ | 355 | /* This constitutes two "TBD" entries -- we only use one. */ |
362 | #define TX_DESCR_BUF_OFFSET 16 | 356 | #define TX_DESCR_BUF_OFFSET 16 |
363 | u32 tx_buf_addr0; /* void *, frame to be transmitted. */ | 357 | __le32 tx_buf_addr0; /* void *, frame to be transmitted. */ |
364 | s32 tx_buf_size0; /* Length of Tx frame. */ | 358 | __le32 tx_buf_size0; /* Length of Tx frame. */ |
365 | u32 tx_buf_addr1; /* void *, frame to be transmitted. */ | 359 | __le32 tx_buf_addr1; /* void *, frame to be transmitted. */ |
366 | s32 tx_buf_size1; /* Length of Tx frame. */ | 360 | __le32 tx_buf_size1; /* Length of Tx frame. */ |
367 | /* the structure must have space for at least CONFIG_DATA_SIZE starting | 361 | /* the structure must have space for at least CONFIG_DATA_SIZE starting |
368 | * from tx_desc_addr field */ | 362 | * from tx_desc_addr field */ |
369 | }; | 363 | }; |
@@ -379,23 +373,23 @@ struct speedo_mc_block { | |||
379 | 373 | ||
380 | /* Elements of the dump_statistics block. This block must be lword aligned. */ | 374 | /* Elements of the dump_statistics block. This block must be lword aligned. */ |
381 | struct speedo_stats { | 375 | struct speedo_stats { |
382 | u32 tx_good_frames; | 376 | __le32 tx_good_frames; |
383 | u32 tx_coll16_errs; | 377 | __le32 tx_coll16_errs; |
384 | u32 tx_late_colls; | 378 | __le32 tx_late_colls; |
385 | u32 tx_underruns; | 379 | __le32 tx_underruns; |
386 | u32 tx_lost_carrier; | 380 | __le32 tx_lost_carrier; |
387 | u32 tx_deferred; | 381 | __le32 tx_deferred; |
388 | u32 tx_one_colls; | 382 | __le32 tx_one_colls; |
389 | u32 tx_multi_colls; | 383 | __le32 tx_multi_colls; |
390 | u32 tx_total_colls; | 384 | __le32 tx_total_colls; |
391 | u32 rx_good_frames; | 385 | __le32 rx_good_frames; |
392 | u32 rx_crc_errs; | 386 | __le32 rx_crc_errs; |
393 | u32 rx_align_errs; | 387 | __le32 rx_align_errs; |
394 | u32 rx_resource_errs; | 388 | __le32 rx_resource_errs; |
395 | u32 rx_overrun_errs; | 389 | __le32 rx_overrun_errs; |
396 | u32 rx_colls_errs; | 390 | __le32 rx_colls_errs; |
397 | u32 rx_runt_errs; | 391 | __le32 rx_runt_errs; |
398 | u32 done_marker; | 392 | __le32 done_marker; |
399 | }; | 393 | }; |
400 | 394 | ||
401 | enum Rx_ring_state_bits { | 395 | enum Rx_ring_state_bits { |
@@ -1139,7 +1133,7 @@ speedo_rx_soft_reset(struct net_device *dev) | |||
1139 | 1133 | ||
1140 | rfd = sp->rx_ringp[sp->cur_rx % RX_RING_SIZE]; | 1134 | rfd = sp->rx_ringp[sp->cur_rx % RX_RING_SIZE]; |
1141 | 1135 | ||
1142 | rfd->rx_buf_addr = 0xffffffff; | 1136 | rfd->rx_buf_addr = cpu_to_le32(0xffffffff); |
1143 | 1137 | ||
1144 | if (wait_for_cmd_done(dev, sp) != 0) { | 1138 | if (wait_for_cmd_done(dev, sp) != 0) { |
1145 | printk("%s: RxAbort command stalled\n", dev->name); | 1139 | printk("%s: RxAbort command stalled\n", dev->name); |
@@ -1275,7 +1269,7 @@ speedo_init_rx_ring(struct net_device *dev) | |||
1275 | rxf->status = cpu_to_le32(0x00000001); /* '1' is flag value only. */ | 1269 | rxf->status = cpu_to_le32(0x00000001); /* '1' is flag value only. */ |
1276 | rxf->link = 0; /* None yet. */ | 1270 | rxf->link = 0; /* None yet. */ |
1277 | /* This field unused by i82557. */ | 1271 | /* This field unused by i82557. */ |
1278 | rxf->rx_buf_addr = 0xffffffff; | 1272 | rxf->rx_buf_addr = cpu_to_le32(0xffffffff); |
1279 | rxf->count = cpu_to_le32(PKT_BUF_SZ << 16); | 1273 | rxf->count = cpu_to_le32(PKT_BUF_SZ << 16); |
1280 | pci_dma_sync_single_for_device(sp->pdev, sp->rx_ring_dma[i], | 1274 | pci_dma_sync_single_for_device(sp->pdev, sp->rx_ring_dma[i], |
1281 | sizeof(struct RxFD), PCI_DMA_TODEVICE); | 1275 | sizeof(struct RxFD), PCI_DMA_TODEVICE); |
@@ -1657,7 +1651,7 @@ static inline struct RxFD *speedo_rx_alloc(struct net_device *dev, int entry) | |||
1657 | PKT_BUF_SZ + sizeof(struct RxFD), PCI_DMA_FROMDEVICE); | 1651 | PKT_BUF_SZ + sizeof(struct RxFD), PCI_DMA_FROMDEVICE); |
1658 | skb->dev = dev; | 1652 | skb->dev = dev; |
1659 | skb_reserve(skb, sizeof(struct RxFD)); | 1653 | skb_reserve(skb, sizeof(struct RxFD)); |
1660 | rxf->rx_buf_addr = 0xffffffff; | 1654 | rxf->rx_buf_addr = cpu_to_le32(0xffffffff); |
1661 | pci_dma_sync_single_for_device(sp->pdev, sp->rx_ring_dma[entry], | 1655 | pci_dma_sync_single_for_device(sp->pdev, sp->rx_ring_dma[entry], |
1662 | sizeof(struct RxFD), PCI_DMA_TODEVICE); | 1656 | sizeof(struct RxFD), PCI_DMA_TODEVICE); |
1663 | return rxf; | 1657 | return rxf; |
@@ -1933,7 +1927,7 @@ speedo_get_stats(struct net_device *dev) | |||
1933 | void __iomem *ioaddr = sp->regs; | 1927 | void __iomem *ioaddr = sp->regs; |
1934 | 1928 | ||
1935 | /* Update only if the previous dump finished. */ | 1929 | /* Update only if the previous dump finished. */ |
1936 | if (sp->lstats->done_marker == le32_to_cpu(0xA007)) { | 1930 | if (sp->lstats->done_marker == cpu_to_le32(0xA007)) { |
1937 | sp->stats.tx_aborted_errors += le32_to_cpu(sp->lstats->tx_coll16_errs); | 1931 | sp->stats.tx_aborted_errors += le32_to_cpu(sp->lstats->tx_coll16_errs); |
1938 | sp->stats.tx_window_errors += le32_to_cpu(sp->lstats->tx_late_colls); | 1932 | sp->stats.tx_window_errors += le32_to_cpu(sp->lstats->tx_late_colls); |
1939 | sp->stats.tx_fifo_errors += le32_to_cpu(sp->lstats->tx_underruns); | 1933 | sp->stats.tx_fifo_errors += le32_to_cpu(sp->lstats->tx_underruns); |
@@ -2142,7 +2136,7 @@ static void set_rx_mode(struct net_device *dev) | |||
2142 | /* The simple case of 0-3 multicast list entries occurs often, and | 2136 | /* The simple case of 0-3 multicast list entries occurs often, and |
2143 | fits within one tx_ring[] entry. */ | 2137 | fits within one tx_ring[] entry. */ |
2144 | struct dev_mc_list *mclist; | 2138 | struct dev_mc_list *mclist; |
2145 | u16 *setup_params, *eaddrs; | 2139 | __le16 *setup_params, *eaddrs; |
2146 | 2140 | ||
2147 | spin_lock_irqsave(&sp->lock, flags); | 2141 | spin_lock_irqsave(&sp->lock, flags); |
2148 | entry = sp->cur_tx++ % TX_RING_SIZE; | 2142 | entry = sp->cur_tx++ % TX_RING_SIZE; |
@@ -2154,12 +2148,12 @@ static void set_rx_mode(struct net_device *dev) | |||
2154 | sp->tx_ring[entry].link = | 2148 | sp->tx_ring[entry].link = |
2155 | cpu_to_le32(TX_RING_ELEM_DMA(sp, (entry + 1) % TX_RING_SIZE)); | 2149 | cpu_to_le32(TX_RING_ELEM_DMA(sp, (entry + 1) % TX_RING_SIZE)); |
2156 | sp->tx_ring[entry].tx_desc_addr = 0; /* Really MC list count. */ | 2150 | sp->tx_ring[entry].tx_desc_addr = 0; /* Really MC list count. */ |
2157 | setup_params = (u16 *)&sp->tx_ring[entry].tx_desc_addr; | 2151 | setup_params = (__le16 *)&sp->tx_ring[entry].tx_desc_addr; |
2158 | *setup_params++ = cpu_to_le16(dev->mc_count*6); | 2152 | *setup_params++ = cpu_to_le16(dev->mc_count*6); |
2159 | /* Fill in the multicast addresses. */ | 2153 | /* Fill in the multicast addresses. */ |
2160 | for (i = 0, mclist = dev->mc_list; i < dev->mc_count; | 2154 | for (i = 0, mclist = dev->mc_list; i < dev->mc_count; |
2161 | i++, mclist = mclist->next) { | 2155 | i++, mclist = mclist->next) { |
2162 | eaddrs = (u16 *)mclist->dmi_addr; | 2156 | eaddrs = (__le16 *)mclist->dmi_addr; |
2163 | *setup_params++ = *eaddrs++; | 2157 | *setup_params++ = *eaddrs++; |
2164 | *setup_params++ = *eaddrs++; | 2158 | *setup_params++ = *eaddrs++; |
2165 | *setup_params++ = *eaddrs++; | 2159 | *setup_params++ = *eaddrs++; |
@@ -2177,7 +2171,7 @@ static void set_rx_mode(struct net_device *dev) | |||
2177 | spin_unlock_irqrestore(&sp->lock, flags); | 2171 | spin_unlock_irqrestore(&sp->lock, flags); |
2178 | } else if (new_rx_mode == 0) { | 2172 | } else if (new_rx_mode == 0) { |
2179 | struct dev_mc_list *mclist; | 2173 | struct dev_mc_list *mclist; |
2180 | u16 *setup_params, *eaddrs; | 2174 | __le16 *setup_params, *eaddrs; |
2181 | struct speedo_mc_block *mc_blk; | 2175 | struct speedo_mc_block *mc_blk; |
2182 | struct descriptor *mc_setup_frm; | 2176 | struct descriptor *mc_setup_frm; |
2183 | int i; | 2177 | int i; |
@@ -2204,12 +2198,12 @@ static void set_rx_mode(struct net_device *dev) | |||
2204 | mc_setup_frm->cmd_status = | 2198 | mc_setup_frm->cmd_status = |
2205 | cpu_to_le32(CmdSuspend | CmdIntr | CmdMulticastList); | 2199 | cpu_to_le32(CmdSuspend | CmdIntr | CmdMulticastList); |
2206 | /* Link set below. */ | 2200 | /* Link set below. */ |
2207 | setup_params = (u16 *)&mc_setup_frm->params; | 2201 | setup_params = (__le16 *)&mc_setup_frm->params; |
2208 | *setup_params++ = cpu_to_le16(dev->mc_count*6); | 2202 | *setup_params++ = cpu_to_le16(dev->mc_count*6); |
2209 | /* Fill in the multicast addresses. */ | 2203 | /* Fill in the multicast addresses. */ |
2210 | for (i = 0, mclist = dev->mc_list; i < dev->mc_count; | 2204 | for (i = 0, mclist = dev->mc_list; i < dev->mc_count; |
2211 | i++, mclist = mclist->next) { | 2205 | i++, mclist = mclist->next) { |
2212 | eaddrs = (u16 *)mclist->dmi_addr; | 2206 | eaddrs = (__le16 *)mclist->dmi_addr; |
2213 | *setup_params++ = *eaddrs++; | 2207 | *setup_params++ = *eaddrs++; |
2214 | *setup_params++ = *eaddrs++; | 2208 | *setup_params++ = *eaddrs++; |
2215 | *setup_params++ = *eaddrs++; | 2209 | *setup_params++ = *eaddrs++; |