aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/staging/brcm80211/brcmsmac
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/staging/brcm80211/brcmsmac')
-rw-r--r--drivers/staging/brcm80211/brcmsmac/bcmsrom.c1
-rw-r--r--drivers/staging/brcm80211/brcmsmac/dma.c36
-rw-r--r--drivers/staging/brcm80211/brcmsmac/phy/wlc_phy_cmn.c1
-rw-r--r--drivers/staging/brcm80211/brcmsmac/phy/wlc_phy_n.c1
-rw-r--r--drivers/staging/brcm80211/brcmsmac/wl_ucode.h2
-rw-r--r--drivers/staging/brcm80211/brcmsmac/wlc_main.h20
-rw-r--r--drivers/staging/brcm80211/brcmsmac/wlc_pub.h1
-rw-r--r--drivers/staging/brcm80211/brcmsmac/wlc_types.h18
8 files changed, 80 insertions, 0 deletions
diff --git a/drivers/staging/brcm80211/brcmsmac/bcmsrom.c b/drivers/staging/brcm80211/brcmsmac/bcmsrom.c
index 311bc0cdaa8..952bc402263 100644
--- a/drivers/staging/brcm80211/brcmsmac/bcmsrom.c
+++ b/drivers/staging/brcm80211/brcmsmac/bcmsrom.c
@@ -20,6 +20,7 @@
20#include <linux/module.h> 20#include <linux/module.h>
21#include <linux/pci.h> 21#include <linux/pci.h>
22#include <stdarg.h> 22#include <stdarg.h>
23#include "wlc_types.h"
23#include <bcmutils.h> 24#include <bcmutils.h>
24#include <bcmsoc.h> 25#include <bcmsoc.h>
25#include <sbchipc.h> 26#include <sbchipc.h>
diff --git a/drivers/staging/brcm80211/brcmsmac/dma.c b/drivers/staging/brcm80211/brcmsmac/dma.c
index 77baef2eebe..611a7e21e7e 100644
--- a/drivers/staging/brcm80211/brcmsmac/dma.c
+++ b/drivers/staging/brcm80211/brcmsmac/dma.c
@@ -24,6 +24,7 @@
24#include <bcmutils.h> 24#include <bcmutils.h>
25#include <aiutils.h> 25#include <aiutils.h>
26 26
27#include "wlc_types.h"
27#include <sbdma.h> 28#include <sbdma.h>
28#include <bcmdma.h> 29#include <bcmdma.h>
29 30
@@ -148,6 +149,19 @@
148#define D64_RX_FRM_STS_DSCRCNT 0x0f000000 /* no. of descriptors used - 1 */ 149#define D64_RX_FRM_STS_DSCRCNT 0x0f000000 /* no. of descriptors used - 1 */
149#define D64_RX_FRM_STS_DATATYPE 0xf0000000 /* core-dependent data type */ 150#define D64_RX_FRM_STS_DATATYPE 0xf0000000 /* core-dependent data type */
150 151
152#define DMADDRWIDTH_30 30 /* 30-bit addressing capability */
153#define DMADDRWIDTH_32 32 /* 32-bit addressing capability */
154#define DMADDRWIDTH_63 63 /* 64-bit addressing capability */
155#define DMADDRWIDTH_64 64 /* 64-bit addressing capability */
156
157/* packet headroom necessary to accommodate the largest header in the system, (i.e TXOFF).
158 * By doing, we avoid the need to allocate an extra buffer for the header when bridging to WL.
159 * There is a compile time check in wlc.c which ensure that this value is at least as big
160 * as TXOFF. This value is used in dma_rxfill (dma.c).
161 */
162
163#define BCMEXTRAHDROOM 172
164
151/* debug/trace */ 165/* debug/trace */
152#ifdef BCMDBG 166#ifdef BCMDBG
153#define DMA_ERROR(args) \ 167#define DMA_ERROR(args) \
@@ -171,6 +185,15 @@
171 185
172#define DMA_NONE(args) 186#define DMA_NONE(args)
173 187
188typedef unsigned long dmaaddr_t;
189#define PHYSADDRHI(_pa) (0)
190#define PHYSADDRHISET(_pa, _val)
191#define PHYSADDRLO(_pa) ((_pa))
192#define PHYSADDRLOSET(_pa, _val) \
193 do { \
194 (_pa) = (_val); \
195 } while (0)
196
174#define d64txregs dregs.d64_u.txregs_64 197#define d64txregs dregs.d64_u.txregs_64
175#define d64rxregs dregs.d64_u.rxregs_64 198#define d64rxregs dregs.d64_u.rxregs_64
176#define txd64 dregs.d64_u.txd_64 199#define txd64 dregs.d64_u.txd_64
@@ -186,6 +209,19 @@ static uint dma_msg_level;
186#define R_SM(r) (*(r)) 209#define R_SM(r) (*(r))
187#define W_SM(r, v) (*(r) = (v)) 210#define W_SM(r, v) (*(r) = (v))
188 211
212/* One physical DMA segment */
213typedef struct {
214 dmaaddr_t addr;
215 u32 length;
216} dma_seg_t;
217
218typedef struct {
219 void *oshdmah; /* Opaque handle for OSL to store its information */
220 uint origsize; /* Size of the virtual packet */
221 uint nsegs;
222 dma_seg_t segs[MAX_DMA_SEGS];
223} dma_seg_map_t;
224
189/* 225/*
190 * DMA Descriptor 226 * DMA Descriptor
191 * Descriptors are only read by the hardware, never written back. 227 * Descriptors are only read by the hardware, never written back.
diff --git a/drivers/staging/brcm80211/brcmsmac/phy/wlc_phy_cmn.c b/drivers/staging/brcm80211/brcmsmac/phy/wlc_phy_cmn.c
index 22ba415c047..1e9865fb955 100644
--- a/drivers/staging/brcm80211/brcmsmac/phy/wlc_phy_cmn.c
+++ b/drivers/staging/brcm80211/brcmsmac/phy/wlc_phy_cmn.c
@@ -29,6 +29,7 @@
29#include <bcmdevs.h> 29#include <bcmdevs.h>
30#include <sbdma.h> 30#include <sbdma.h>
31 31
32#include <wlc_types.h>
32#include <wlc_phy_int.h> 33#include <wlc_phy_int.h>
33#include <wlc_phyreg_n.h> 34#include <wlc_phyreg_n.h>
34#include <wlc_phy_radio.h> 35#include <wlc_phy_radio.h>
diff --git a/drivers/staging/brcm80211/brcmsmac/phy/wlc_phy_n.c b/drivers/staging/brcm80211/brcmsmac/phy/wlc_phy_n.c
index 620eb86f1fe..78d8cbe2887 100644
--- a/drivers/staging/brcm80211/brcmsmac/phy/wlc_phy_n.c
+++ b/drivers/staging/brcm80211/brcmsmac/phy/wlc_phy_n.c
@@ -27,6 +27,7 @@
27#include <bcmdevs.h> 27#include <bcmdevs.h>
28#include <sbdma.h> 28#include <sbdma.h>
29 29
30#include <wlc_types.h>
30#include <wlc_phy_radio.h> 31#include <wlc_phy_radio.h>
31#include <wlc_phy_int.h> 32#include <wlc_phy_int.h>
32#include <wlc_phyreg_n.h> 33#include <wlc_phyreg_n.h>
diff --git a/drivers/staging/brcm80211/brcmsmac/wl_ucode.h b/drivers/staging/brcm80211/brcmsmac/wl_ucode.h
index 6933fda0e6a..28838d83854 100644
--- a/drivers/staging/brcm80211/brcmsmac/wl_ucode.h
+++ b/drivers/staging/brcm80211/brcmsmac/wl_ucode.h
@@ -14,6 +14,8 @@
14 * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 14 * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
15 */ 15 */
16 16
17#include "wlc_types.h" /* forward structure declarations */
18
17#define MIN_FW_SIZE 40000 /* minimum firmware file size in bytes */ 19#define MIN_FW_SIZE 40000 /* minimum firmware file size in bytes */
18#define MAX_FW_SIZE 150000 20#define MAX_FW_SIZE 150000
19 21
diff --git a/drivers/staging/brcm80211/brcmsmac/wlc_main.h b/drivers/staging/brcm80211/brcmsmac/wlc_main.h
index d06633973de..4e62b11a8ed 100644
--- a/drivers/staging/brcm80211/brcmsmac/wlc_main.h
+++ b/drivers/staging/brcm80211/brcmsmac/wlc_main.h
@@ -47,6 +47,24 @@
47 47
48#define AC_COUNT 4 48#define AC_COUNT 4
49 49
50/* Macros for doing definition and get/set of bitfields
51 * Usage example, e.g. a three-bit field (bits 4-6):
52 * #define <NAME>_M BITFIELD_MASK(3)
53 * #define <NAME>_S 4
54 * ...
55 * regval = R_REG(osh, &regs->regfoo);
56 * field = GFIELD(regval, <NAME>);
57 * regval = SFIELD(regval, <NAME>, 1);
58 * W_REG(osh, &regs->regfoo, regval);
59 */
60#define BITFIELD_MASK(width) \
61 (((unsigned)1 << (width)) - 1)
62#define GFIELD(val, field) \
63 (((val) >> field ## _S) & field ## _M)
64#define SFIELD(val, field, bits) \
65 (((val) & (~(field ## _M << field ## _S))) | \
66 ((unsigned)(bits) << field ## _S))
67
50/* For managing scan result lists */ 68/* For managing scan result lists */
51struct wlc_bss_list { 69struct wlc_bss_list {
52 uint count; 70 uint count;
@@ -158,6 +176,8 @@ extern const u8 prio2fifo[];
158#define EDCF_LONG_M BITFIELD_MASK(4) 176#define EDCF_LONG_M BITFIELD_MASK(4)
159#define EDCF_LFB_M BITFIELD_MASK(4) 177#define EDCF_LFB_M BITFIELD_MASK(4)
160 178
179#define NFIFO 6 /* # tx/rx fifopairs */
180
161#define WLC_WME_RETRY_SHORT_GET(wlc, ac) GFIELD(wlc->wme_retries[ac], EDCF_SHORT) 181#define WLC_WME_RETRY_SHORT_GET(wlc, ac) GFIELD(wlc->wme_retries[ac], EDCF_SHORT)
162#define WLC_WME_RETRY_SFB_GET(wlc, ac) GFIELD(wlc->wme_retries[ac], EDCF_SFB) 182#define WLC_WME_RETRY_SFB_GET(wlc, ac) GFIELD(wlc->wme_retries[ac], EDCF_SFB)
163#define WLC_WME_RETRY_LONG_GET(wlc, ac) GFIELD(wlc->wme_retries[ac], EDCF_LONG) 183#define WLC_WME_RETRY_LONG_GET(wlc, ac) GFIELD(wlc->wme_retries[ac], EDCF_LONG)
diff --git a/drivers/staging/brcm80211/brcmsmac/wlc_pub.h b/drivers/staging/brcm80211/brcmsmac/wlc_pub.h
index bd0885e11bb..0ab16c45def 100644
--- a/drivers/staging/brcm80211/brcmsmac/wlc_pub.h
+++ b/drivers/staging/brcm80211/brcmsmac/wlc_pub.h
@@ -17,6 +17,7 @@
17#ifndef _wlc_pub_h_ 17#ifndef _wlc_pub_h_
18#define _wlc_pub_h_ 18#define _wlc_pub_h_
19 19
20#include "wlc_types.h" /* forward structure declarations */
20#include "bcmwifi.h" /* for chanspec_t */ 21#include "bcmwifi.h" /* for chanspec_t */
21 22
22#define WLC_NUMRATES 16 /* max # of rates in a rateset */ 23#define WLC_NUMRATES 16 /* max # of rates in a rateset */
diff --git a/drivers/staging/brcm80211/brcmsmac/wlc_types.h b/drivers/staging/brcm80211/brcmsmac/wlc_types.h
index b8cede1e6d6..76a1348e119 100644
--- a/drivers/staging/brcm80211/brcmsmac/wlc_types.h
+++ b/drivers/staging/brcm80211/brcmsmac/wlc_types.h
@@ -17,7 +17,24 @@
17#ifndef _wlc_types_h_ 17#ifndef _wlc_types_h_
18#define _wlc_types_h_ 18#define _wlc_types_h_
19 19
20/* Bus types */
21#define SI_BUS 0 /* SOC Interconnect */
22#define PCI_BUS 1 /* PCI target */
23#define SDIO_BUS 3 /* SDIO target */
24#define JTAG_BUS 4 /* JTAG */
25#define USB_BUS 5 /* USB (does not support R/W REG) */
26#define SPI_BUS 6 /* gSPI target */
27#define RPC_BUS 7 /* RPC target */
28
29#define WL_CHAN_FREQ_RANGE_2G 0
30#define WL_CHAN_FREQ_RANGE_5GL 1
31#define WL_CHAN_FREQ_RANGE_5GM 2
32#define WL_CHAN_FREQ_RANGE_5GH 3
33
34#define MAX_DMA_SEGS 4
35
20/* forward declarations */ 36/* forward declarations */
37struct wl_info;
21struct wlc_info; 38struct wlc_info;
22struct wlc_hw_info; 39struct wlc_hw_info;
23struct wlc_if; 40struct wlc_if;
@@ -27,5 +44,6 @@ struct antsel_info;
27struct bmac_pmq; 44struct bmac_pmq;
28struct d11init; 45struct d11init;
29struct dma_pub; 46struct dma_pub;
47struct wlc_bsscfg;
30 48
31#endif /* _wlc_types_h_ */ 49#endif /* _wlc_types_h_ */