diff options
| author | Adrian Chadd <adrian@FreeBSD.org> | 2016-05-17 20:18:23 +0000 |
|---|---|---|
| committer | Adrian Chadd <adrian@FreeBSD.org> | 2016-05-17 20:18:23 +0000 |
| commit | f629a23855d801c740d32f59c6cebdd4e528f761 (patch) | |
| tree | e3fddaff67fb9f8eebaad84b19145270a0fb9a53 /sys/dev/bwn/if_bwn.c | |
| parent | 07454911f015b0a9465a78f5af07f61be6f7b978 (diff) | |
Notes
Diffstat (limited to 'sys/dev/bwn/if_bwn.c')
| -rw-r--r-- | sys/dev/bwn/if_bwn.c | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/sys/dev/bwn/if_bwn.c b/sys/dev/bwn/if_bwn.c index a8da51b65c999..34ac6084eddf7 100644 --- a/sys/dev/bwn/if_bwn.c +++ b/sys/dev/bwn/if_bwn.c @@ -2656,8 +2656,21 @@ bwn_dma_ringsetup(struct bwn_mac *mac, int controller_index, dr->dr_curslot = -1; } else { if (dr->dr_index == 0) { - dr->dr_rx_bufsize = BWN_DMA0_RX_BUFFERSIZE; - dr->dr_frameoffset = BWN_DMA0_RX_FRAMEOFFSET; + switch (mac->mac_fw.fw_hdr_format) { + case BWN_FW_HDR_351: + case BWN_FW_HDR_410: + dr->dr_rx_bufsize = + BWN_DMA0_RX_BUFFERSIZE_FW351; + dr->dr_frameoffset = + BWN_DMA0_RX_FRAMEOFFSET_FW351; + break; + case BWN_FW_HDR_598: + dr->dr_rx_bufsize = + BWN_DMA0_RX_BUFFERSIZE_FW598; + dr->dr_frameoffset = + BWN_DMA0_RX_FRAMEOFFSET_FW598; + break; + } } else KASSERT(0 == 1, ("%s:%d: fail", __func__, __LINE__)); } @@ -2676,7 +2689,7 @@ bwn_dma_ringsetup(struct bwn_mac *mac, int controller_index, dr->dr_txhdr_cache = contigmalloc( (dr->dr_numslots / BWN_TX_SLOTS_PER_FRAME) * - BWN_HDRSIZE(mac), M_DEVBUF, M_ZERO, + BWN_MAXTXHDRSIZE, M_DEVBUF, M_ZERO, 0, BUS_SPACE_MAXADDR, 8, 0); if (dr->dr_txhdr_cache == NULL) { device_printf(sc->sc_dev, @@ -2773,7 +2786,7 @@ fail2: if (dr->dr_txhdr_cache != NULL) { contigfree(dr->dr_txhdr_cache, (dr->dr_numslots / BWN_TX_SLOTS_PER_FRAME) * - BWN_HDRSIZE(mac), M_DEVBUF); + BWN_MAXTXHDRSIZE, M_DEVBUF); } fail1: free(dr->dr_meta, M_DEVBUF); @@ -2795,7 +2808,7 @@ bwn_dma_ringfree(struct bwn_dma_ring **dr) if ((*dr)->dr_txhdr_cache != NULL) { contigfree((*dr)->dr_txhdr_cache, ((*dr)->dr_numslots / BWN_TX_SLOTS_PER_FRAME) * - BWN_HDRSIZE((*dr)->dr_mac), M_DEVBUF); + BWN_MAXTXHDRSIZE, M_DEVBUF); } free((*dr)->dr_meta, M_DEVBUF); free(*dr, M_DEVBUF); |
