Commit | Line | Data |
---|---|---|
cf2b4488 HP |
1 | /* |
2 | * Copyright (c) 2010 Broadcom Corporation | |
3 | * | |
4 | * Permission to use, copy, modify, and/or distribute this software for any | |
5 | * purpose with or without fee is hereby granted, provided that the above | |
6 | * copyright notice and this permission notice appear in all copies. | |
7 | * | |
8 | * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | |
9 | * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | |
10 | * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY | |
11 | * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | |
12 | * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION | |
13 | * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN | |
14 | * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | |
15 | */ | |
16 | ||
17 | #ifndef _dhd_bus_h_ | |
18 | #define _dhd_bus_h_ | |
19 | ||
8d825a8e AS |
20 | /* Packet alignment for most efficient SDIO (can change based on platform) */ |
21 | #ifndef BRCMF_SDALIGN | |
22 | #define BRCMF_SDALIGN 32 | |
23 | #endif | |
24 | #if !ISPOWEROF2(BRCMF_SDALIGN) | |
25 | #error BRCMF_SDALIGN is not a power of 2! | |
26 | #endif | |
27 | ||
cf2b4488 HP |
28 | /* |
29 | * Exported from dhd bus module (dhd_usb, dhd_sdio) | |
30 | */ | |
31 | ||
ac495534 FL |
32 | /* Watchdog timer interval */ |
33 | extern uint brcmf_watchdog_ms; | |
34 | ||
cf2b4488 | 35 | /* Indicate (dis)interest in finding dongles. */ |
46c3db78 AS |
36 | extern int brcmf_bus_register(void); |
37 | extern void brcmf_bus_unregister(void); | |
cf2b4488 | 38 | |
cf2b4488 | 39 | /* Stop bus module: clear pending frames, disable data flow */ |
46c3db78 | 40 | extern void brcmf_sdbrcm_bus_stop(struct brcmf_bus *bus, bool enforce_mutex); |
cf2b4488 HP |
41 | |
42 | /* Initialize bus module: prepare for communication w/dongle */ | |
6758a717 | 43 | extern int brcmf_sdbrcm_bus_init(struct brcmf_pub *drvr, bool enforce_mutex); |
cf2b4488 HP |
44 | |
45 | /* Send a data frame to the dongle. Callee disposes of txp. */ | |
46c3db78 | 46 | extern int brcmf_sdbrcm_bus_txdata(struct brcmf_bus *bus, struct sk_buff *txp); |
cf2b4488 HP |
47 | |
48 | /* Send/receive a control message to/from the dongle. | |
49 | * Expects caller to enforce a single outstanding transaction. | |
50 | */ | |
54ca2969 | 51 | extern int |
46c3db78 | 52 | brcmf_sdbrcm_bus_txctl(struct brcmf_bus *bus, unsigned char *msg, uint msglen); |
54ca2969 RV |
53 | |
54 | extern int | |
46c3db78 | 55 | brcmf_sdbrcm_bus_rxctl(struct brcmf_bus *bus, unsigned char *msg, uint msglen); |
cf2b4488 | 56 | |
cf2b4488 | 57 | /* Check for and handle local prot-specific iovar commands */ |
6758a717 | 58 | extern int brcmf_sdbrcm_bus_iovar_op(struct brcmf_pub *drvr, const char *name, |
cf2b4488 HP |
59 | void *params, int plen, void *arg, int len, |
60 | bool set); | |
61 | ||
62 | /* Add bus dump output to a buffer */ | |
6758a717 | 63 | extern void brcmf_sdbrcm_bus_dump(struct brcmf_pub *drvr, |
fb1d0aa2 | 64 | struct brcmu_strbuf *strbuf); |
cf2b4488 HP |
65 | |
66 | /* Clear any bus counters */ | |
46c3db78 | 67 | extern void brcmf_bus_clearcounts(struct brcmf_pub *drvr); |
cf2b4488 | 68 | |
46c3db78 | 69 | extern void brcmf_sdbrcm_wd_timer(struct brcmf_bus *bus, uint wdtick); |
ac495534 | 70 | |
cf2b4488 | 71 | #endif /* _dhd_bus_h_ */ |