summaryrefslogtreecommitdiffstats
path: root/sys/pci/if_rlreg.h
diff options
context:
space:
mode:
authorwpaul <wpaul@FreeBSD.org>2001-08-15 17:38:43 +0000
committerwpaul <wpaul@FreeBSD.org>2001-08-15 17:38:43 +0000
commit3420b9251b1fde96009222c3335489d8f34edcee (patch)
treed02c2e7dcb5460927414e17349bd92e6b0abbd0a /sys/pci/if_rlreg.h
parentbf74860be15599f1e7ef46c085c1c5d2b291c23d (diff)
downloadFreeBSD-src-3420b9251b1fde96009222c3335489d8f34edcee.zip
FreeBSD-src-3420b9251b1fde96009222c3335489d8f34edcee.tar.gz
Convert the if_sis and if_rl drivers to use the bus_dma API instead of
calling vtophys() and contigmalloc()/contigfree() directly. Hopefully, I have shaken out all of the problems with busdma on the alpha now. (Everything seems to work as expected.) Also, change the max RX DMA limit to 1024 bytes instead of "unlimited," as the latter seems not to work correctly on the alpha that I tested. (At 100Mbps, all attempts to receive frames yield RX errors.)
Diffstat (limited to 'sys/pci/if_rlreg.h')
-rw-r--r--sys/pci/if_rlreg.h13
1 files changed, 7 insertions, 6 deletions
diff --git a/sys/pci/if_rlreg.h b/sys/pci/if_rlreg.h
index 4e08e16..aecc83d 100644
--- a/sys/pci/if_rlreg.h
+++ b/sys/pci/if_rlreg.h
@@ -303,7 +303,7 @@
#define RL_TXTHRESH(x) ((x) << 11)
#define RL_TX_THRESH_INIT 96
#define RL_RX_FIFOTHRESH RL_RXFIFO_256BYTES
-#define RL_RX_MAXDMA RL_RXDMA_UNLIMITED
+#define RL_RX_MAXDMA RL_RXDMA_1024BYTES /*RL_RXDMA_UNLIMITED*/
#define RL_TX_MAXDMA RL_TXDMA_2048BYTES
#define RL_RXCFG_CONFIG (RL_RX_FIFOTHRESH|RL_RX_MAXDMA|RL_RX_BUF_SZ)
@@ -315,8 +315,10 @@ struct rl_chain_data {
u_int16_t cur_rx;
caddr_t rl_rx_buf;
caddr_t rl_rx_buf_ptr;
+ bus_dmamap_t rl_rx_dmamap;
struct mbuf *rl_tx_chain[RL_TX_LIST_CNT];
+ bus_dmamap_t rl_tx_dmamap[RL_TX_LIST_CNT];
u_int8_t last_tx;
u_int8_t cur_tx;
};
@@ -325,9 +327,11 @@ struct rl_chain_data {
#define RL_CUR_TXADDR(x) ((x->rl_cdata.cur_tx * 4) + RL_TXADDR0)
#define RL_CUR_TXSTAT(x) ((x->rl_cdata.cur_tx * 4) + RL_TXSTAT0)
#define RL_CUR_TXMBUF(x) (x->rl_cdata.rl_tx_chain[x->rl_cdata.cur_tx])
+#define RL_CUR_DMAMAP(x) (x->rl_cdata.rl_tx_dmamap[x->rl_cdata.cur_tx])
#define RL_LAST_TXADDR(x) ((x->rl_cdata.last_tx * 4) + RL_TXADDR0)
#define RL_LAST_TXSTAT(x) ((x->rl_cdata.last_tx * 4) + RL_TXSTAT0)
#define RL_LAST_TXMBUF(x) (x->rl_cdata.rl_tx_chain[x->rl_cdata.last_tx])
+#define RL_LAST_DMAMAP(x) (x->rl_cdata.rl_tx_dmamap[x->rl_cdata.last_tx])
struct rl_type {
u_int16_t rl_vid;
@@ -363,6 +367,8 @@ struct rl_softc {
struct resource *rl_irq;
void *rl_intrhand;
device_t rl_miibus;
+ bus_dma_tag_t rl_parent_tag;
+ bus_dma_tag_t rl_tag;
u_int8_t rl_unit; /* interface number */
u_int8_t rl_type;
int rl_eecmd_read;
@@ -483,8 +489,3 @@ struct rl_softc {
#define RL_PSTATE_D3 0x0003
#define RL_PME_EN 0x0010
#define RL_PME_STATUS 0x8000
-
-#ifdef __alpha__
-#undef vtophys
-#define vtophys(va) alpha_XXX_dmamap((vm_offset_t)va)
-#endif
OpenPOWER on IntegriCloud