if_bwnvar.h (299110) | if_bwnvar.h (299790) |
---|---|
1/*- 2 * Copyright (c) 2009-2010 Weongyo Jeong <weongyo@freebsd.org> 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 12 unchanged lines hidden (view full) --- 21 * THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, 22 * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 23 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 24 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER 25 * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 26 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF 27 * THE POSSIBILITY OF SUCH DAMAGES. 28 * | 1/*- 2 * Copyright (c) 2009-2010 Weongyo Jeong <weongyo@freebsd.org> 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 12 unchanged lines hidden (view full) --- 21 * THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, 22 * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 23 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 24 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER 25 * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 26 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF 27 * THE POSSIBILITY OF SUCH DAMAGES. 28 * |
29 * $FreeBSD: head/sys/dev/bwn/if_bwnvar.h 299110 2016-05-05 07:04:38Z adrian $ | 29 * $FreeBSD: head/sys/dev/bwn/if_bwnvar.h 299790 2016-05-14 23:38:21Z adrian $ |
30 */ 31 32#ifndef _IF_BWNVAR_H 33#define _IF_BWNVAR_H 34 35struct siba_dev_softc; 36struct bwn_softc; 37struct bwn_mac; --- 15 unchanged lines hidden (view full) --- 53#define BWN_GETTIME(v) do { \ 54 struct timespec ts; \ 55 nanouptime(&ts); \ 56 (v) = ts.tv_nsec / 1000000 + ts.tv_sec * 1000; \ 57} while (0) 58#define BWN_ISOLDFMT(mac) ((mac)->mac_fw.rev <= 351) 59#define BWN_TSSI2DBM(num, den) \ 60 ((int32_t)((num < 0) ? num / den : (num + den / 2) / den)) | 30 */ 31 32#ifndef _IF_BWNVAR_H 33#define _IF_BWNVAR_H 34 35struct siba_dev_softc; 36struct bwn_softc; 37struct bwn_mac; --- 15 unchanged lines hidden (view full) --- 53#define BWN_GETTIME(v) do { \ 54 struct timespec ts; \ 55 nanouptime(&ts); \ 56 (v) = ts.tv_nsec / 1000000 + ts.tv_sec * 1000; \ 57} while (0) 58#define BWN_ISOLDFMT(mac) ((mac)->mac_fw.rev <= 351) 59#define BWN_TSSI2DBM(num, den) \ 60 ((int32_t)((num < 0) ? num / den : (num + den / 2) / den)) |
61#define BWN_HDRSIZE(mac) \ 62 ((BWN_ISOLDFMT(mac)) ? (100 + sizeof(struct bwn_plcp6)) : \ 63 (104 + sizeof(struct bwn_plcp6))) | 61#define BWN_HDRSIZE(mac) bwn_tx_hdrsize(mac) 62 |
64#define BWN_PIO_COOKIE(tq, tp) \ 65 ((uint16_t)((((uint16_t)tq->tq_index + 1) << 12) | tp->tp_index)) 66#define BWN_DMA_COOKIE(dr, slot) \ 67 ((uint16_t)(((uint16_t)dr->dr_index + 1) << 12) | (uint16_t)slot) 68#define BWN_READ_2(mac, o) (siba_read_2(mac->mac_sc->sc_dev, o)) 69#define BWN_READ_4(mac, o) (siba_read_4(mac->mac_sc->sc_dev, o)) 70#define BWN_WRITE_2(mac, o, v) \ 71 (siba_write_2(mac->mac_sc->sc_dev, o, v)) | 63#define BWN_PIO_COOKIE(tq, tp) \ 64 ((uint16_t)((((uint16_t)tq->tq_index + 1) << 12) | tp->tp_index)) 65#define BWN_DMA_COOKIE(dr, slot) \ 66 ((uint16_t)(((uint16_t)dr->dr_index + 1) << 12) | (uint16_t)slot) 67#define BWN_READ_2(mac, o) (siba_read_2(mac->mac_sc->sc_dev, o)) 68#define BWN_READ_4(mac, o) (siba_read_4(mac->mac_sc->sc_dev, o)) 69#define BWN_WRITE_2(mac, o, v) \ 70 (siba_write_2(mac->mac_sc->sc_dev, o, v)) |
71#define BWN_WRITE_2_F(mac, o, v) do { \ 72 (BWN_WRITE_2(mac, o, v)); \ 73 BWN_READ_2(mac, o); \ 74} while(0) 75#define BWN_WRITE_SETMASK2(mac, offset, mask, set) \ 76 BWN_WRITE_2(mac, offset, (BWN_READ_2(mac, offset) & mask) | set) |
|
72#define BWN_WRITE_4(mac, o, v) \ 73 (siba_write_4(mac->mac_sc->sc_dev, o, v)) | 77#define BWN_WRITE_4(mac, o, v) \ 78 (siba_write_4(mac->mac_sc->sc_dev, o, v)) |
79#define BWN_WRITE_SETMASK4(mac, offset, mask, set) \ 80 BWN_WRITE_4(mac, offset, (BWN_READ_4(mac, offset) & mask) | set) |
|
74#define BWN_PIO_TXQOFFSET(mac) \ 75 ((siba_get_revid(mac->mac_sc->sc_dev) >= 11) ? 0x18 : 0) 76#define BWN_PIO_RXQOFFSET(mac) \ 77 ((siba_get_revid(mac->mac_sc->sc_dev) >= 11) ? 0x38 : 8) 78#define BWN_SEC_NEWAPI(mac) (mac->mac_fw.rev >= 351) 79#define BWN_SEC_KEY2FW(mac, idx) \ 80 (BWN_SEC_NEWAPI(mac) ? idx : ((idx >= 4) ? idx - 4 : idx)) 81#define BWN_RF_READ(mac, r) (mac->mac_phy.rf_read(mac, r)) --- 62 unchanged lines hidden (view full) --- 144 rate == BWN_CCK_RATE_5MB || rate == BWN_CCK_RATE_11MB) 145#define BWN_ISOFDMRATE(rate) (!BWN_ISCCKRATE(rate)) 146#define BWN_BARRIER(mac, flags) siba_barrier(mac->mac_sc->sc_dev, flags) 147#define BWN_DMA_READ(dr, offset) \ 148 (BWN_READ_4(dr->dr_mac, dr->dr_base + offset)) 149#define BWN_DMA_WRITE(dr, offset, value) \ 150 (BWN_WRITE_4(dr->dr_mac, dr->dr_base + offset, value)) 151 | 81#define BWN_PIO_TXQOFFSET(mac) \ 82 ((siba_get_revid(mac->mac_sc->sc_dev) >= 11) ? 0x18 : 0) 83#define BWN_PIO_RXQOFFSET(mac) \ 84 ((siba_get_revid(mac->mac_sc->sc_dev) >= 11) ? 0x38 : 8) 85#define BWN_SEC_NEWAPI(mac) (mac->mac_fw.rev >= 351) 86#define BWN_SEC_KEY2FW(mac, idx) \ 87 (BWN_SEC_NEWAPI(mac) ? idx : ((idx >= 4) ? idx - 4 : idx)) 88#define BWN_RF_READ(mac, r) (mac->mac_phy.rf_read(mac, r)) --- 62 unchanged lines hidden (view full) --- 151 rate == BWN_CCK_RATE_5MB || rate == BWN_CCK_RATE_11MB) 152#define BWN_ISOFDMRATE(rate) (!BWN_ISCCKRATE(rate)) 153#define BWN_BARRIER(mac, flags) siba_barrier(mac->mac_sc->sc_dev, flags) 154#define BWN_DMA_READ(dr, offset) \ 155 (BWN_READ_4(dr->dr_mac, dr->dr_base + offset)) 156#define BWN_DMA_WRITE(dr, offset, value) \ 157 (BWN_WRITE_4(dr->dr_mac, dr->dr_base + offset, value)) 158 |
159 160typedef enum { 161 BWN_PHY_BAND_2G = 0, 162 BWN_PHY_BAND_5G_LO = 1, 163 BWN_PHY_BAND_5G_MI = 2, 164 BWN_PHY_BAND_5G_HI = 3 165} bwn_phy_band_t; 166 167typedef enum { 168 BWN_BAND_2G, 169 BWN_BAND_5G, 170} bwn_band_t; 171 172typedef enum { 173 BWN_CHAN_TYPE_20, 174 BWN_CHAN_TYPE_20_HT, 175 BWN_CHAN_TYPE_40_HT_U, 176 BWN_CHAN_TYPE_40_HT_D, 177} bwn_chan_type_t; 178 |
|
152struct bwn_rate { 153 uint16_t rateid; 154 uint32_t flags; 155}; 156 157#define BWN_ANT0 0 158#define BWN_ANT1 1 159#define BWN_ANTAUTO0 2 --- 40 unchanged lines hidden (view full) --- 200 201#define BWN_DC_LT_SIZE 32 202 203struct bwn_loctl { 204 int8_t i; 205 int8_t q; 206}; 207 | 179struct bwn_rate { 180 uint16_t rateid; 181 uint32_t flags; 182}; 183 184#define BWN_ANT0 0 185#define BWN_ANT1 1 186#define BWN_ANTAUTO0 2 --- 40 unchanged lines hidden (view full) --- 227 228#define BWN_DC_LT_SIZE 32 229 230struct bwn_loctl { 231 int8_t i; 232 int8_t q; 233}; 234 |
235typedef enum { 236 BWN_TXPWR_RES_NEED_ADJUST, 237 BWN_TXPWR_RES_DONE, 238} bwn_txpwr_result_t; 239 |
|
208struct bwn_lo_calib { 209 struct bwn_bbatt bbatt; 210 struct bwn_rfatt rfatt; 211 struct bwn_loctl ctl; 212 unsigned long calib_time; 213 TAILQ_ENTRY(bwn_lo_calib) list; 214}; 215 --- 6 unchanged lines hidden (view full) --- 222 uint8_t rssi; 223 uint8_t sig_qual; 224 } __packed abg; 225 struct { 226 int8_t power0; 227 int8_t power1; 228 } __packed n; 229 } __packed phy; | 240struct bwn_lo_calib { 241 struct bwn_bbatt bbatt; 242 struct bwn_rfatt rfatt; 243 struct bwn_loctl ctl; 244 unsigned long calib_time; 245 TAILQ_ENTRY(bwn_lo_calib) list; 246}; 247 --- 6 unchanged lines hidden (view full) --- 254 uint8_t rssi; 255 uint8_t sig_qual; 256 } __packed abg; 257 struct { 258 int8_t power0; 259 int8_t power1; 260 } __packed n; 261 } __packed phy; |
230 uint16_t phy_status2; | 262 union { 263 struct { 264 int8_t power2; 265 uint8_t pad; 266 } __packed n; 267 struct { 268 uint8_t pad; 269 int8_t ht_power0; 270 } __packed ht; 271 uint16_t phy_status2; 272 } __packed ps2; |
231 uint16_t phy_status3; 232 uint32_t mac_status; 233 uint16_t mac_time; 234 uint16_t channel; 235} __packed; 236 237struct bwn_txstatus { 238 uint16_t cookie; --- 70 unchanged lines hidden (view full) --- 309 uint16_t pg_ofdmtab_addr; 310 unsigned pg_ofdmtab_dir; 311}; 312 313#define BWN_IMMODE_NONE 0 314#define BWN_IMMODE_NONWLAN 1 315#define BWN_IMMODE_MANUAL 2 316#define BWN_IMMODE_AUTO 3 | 273 uint16_t phy_status3; 274 uint32_t mac_status; 275 uint16_t mac_time; 276 uint16_t channel; 277} __packed; 278 279struct bwn_txstatus { 280 uint16_t cookie; --- 70 unchanged lines hidden (view full) --- 351 uint16_t pg_ofdmtab_addr; 352 unsigned pg_ofdmtab_dir; 353}; 354 355#define BWN_IMMODE_NONE 0 356#define BWN_IMMODE_NONWLAN 1 357#define BWN_IMMODE_MANUAL 2 358#define BWN_IMMODE_AUTO 3 |
317#define BWN_TXPWR_RES_NEED_ADJUST 0 318#define BWN_TXPWR_RES_DONE 1 | |
319 320#define BWN_PHYLP_TXPCTL_UNKNOWN 0 321#define BWN_PHYLP_TXPCTL_OFF 1 322#define BWN_PHYLP_TXPCTL_ON_SW 2 323#define BWN_PHYLP_TXPCTL_ON_HW 3 324 325struct bwn_phy_lp { 326 uint8_t plp_chan; --- 64 unchanged lines hidden (view full) --- 391 392struct bwn_b206x_rfinit_entry { 393 uint16_t br_offset; 394 uint16_t br_valuea; 395 uint16_t br_valueg; 396 uint8_t br_flags; 397}; 398 | 359 360#define BWN_PHYLP_TXPCTL_UNKNOWN 0 361#define BWN_PHYLP_TXPCTL_OFF 1 362#define BWN_PHYLP_TXPCTL_ON_SW 2 363#define BWN_PHYLP_TXPCTL_ON_HW 3 364 365struct bwn_phy_lp { 366 uint8_t plp_chan; --- 64 unchanged lines hidden (view full) --- 431 432struct bwn_b206x_rfinit_entry { 433 uint16_t br_offset; 434 uint16_t br_valuea; 435 uint16_t br_valueg; 436 uint8_t br_flags; 437}; 438 |
439struct bwn_phy_n; 440 |
|
399struct bwn_phy { 400 uint8_t type; 401 uint8_t rev; 402 uint8_t analog; 403 404 int supports_2ghz; 405 int supports_5ghz; 406 407 int gmode; 408 struct bwn_phy_g phy_g; 409 struct bwn_phy_lp phy_lp; 410 | 441struct bwn_phy { 442 uint8_t type; 443 uint8_t rev; 444 uint8_t analog; 445 446 int supports_2ghz; 447 int supports_5ghz; 448 449 int gmode; 450 struct bwn_phy_g phy_g; 451 struct bwn_phy_lp phy_lp; 452 |
453 /* 454 * I'd like the newer PHY code to not hide in the top-level 455 * structs.. 456 */ 457 struct bwn_phy_n *phy_n; 458 |
|
411 uint16_t rf_manuf; 412 uint16_t rf_ver; 413 uint8_t rf_rev; 414 int rf_on; | 459 uint16_t rf_manuf; 460 uint16_t rf_ver; 461 uint8_t rf_rev; 462 int rf_on; |
463 int phy_do_full_init; |
|
415 416 int txpower; 417 int hwpctl; 418 unsigned long nexttime; 419 unsigned int chan; 420 int txerrors; 421 422 int (*attach)(struct bwn_mac *); --- 13 unchanged lines hidden (view full) --- 436 int (*use_hwpctl)(struct bwn_mac *); 437 void (*rf_onoff)(struct bwn_mac *, int); 438 void (*switch_analog)(struct bwn_mac *, int); 439 int (*switch_channel)(struct bwn_mac *, 440 unsigned int); 441 uint32_t (*get_default_chan)(struct bwn_mac *); 442 void (*set_antenna)(struct bwn_mac *, int); 443 int (*set_im)(struct bwn_mac *, int); | 464 465 int txpower; 466 int hwpctl; 467 unsigned long nexttime; 468 unsigned int chan; 469 int txerrors; 470 471 int (*attach)(struct bwn_mac *); --- 13 unchanged lines hidden (view full) --- 485 int (*use_hwpctl)(struct bwn_mac *); 486 void (*rf_onoff)(struct bwn_mac *, int); 487 void (*switch_analog)(struct bwn_mac *, int); 488 int (*switch_channel)(struct bwn_mac *, 489 unsigned int); 490 uint32_t (*get_default_chan)(struct bwn_mac *); 491 void (*set_antenna)(struct bwn_mac *, int); 492 int (*set_im)(struct bwn_mac *, int); |
444 int (*recalc_txpwr)(struct bwn_mac *, int); | 493 bwn_txpwr_result_t (*recalc_txpwr)(struct bwn_mac *, int); |
445 void (*set_txpwr)(struct bwn_mac *); 446 void (*task_15s)(struct bwn_mac *); 447 void (*task_60s)(struct bwn_mac *); 448}; 449 450struct bwn_chan_band { 451 uint32_t flags; 452 uint8_t nchan; --- 431 unchanged lines hidden (view full) --- 884 unsigned int mac_task_state; 885 struct task mac_intrtask; 886 struct task mac_hwreset; 887 struct task mac_txpower; 888 889 TAILQ_ENTRY(bwn_mac) mac_list; 890}; 891 | 494 void (*set_txpwr)(struct bwn_mac *); 495 void (*task_15s)(struct bwn_mac *); 496 void (*task_60s)(struct bwn_mac *); 497}; 498 499struct bwn_chan_band { 500 uint32_t flags; 501 uint8_t nchan; --- 431 unchanged lines hidden (view full) --- 933 unsigned int mac_task_state; 934 struct task mac_intrtask; 935 struct task mac_hwreset; 936 struct task mac_txpower; 937 938 TAILQ_ENTRY(bwn_mac) mac_list; 939}; 940 |
941static inline int 942bwn_tx_hdrsize(struct bwn_mac *mac) 943{ 944 switch (mac->mac_fw.fw_hdr_format) { 945 case BWN_FW_HDR_598: 946 return (112 + (sizeof(struct bwn_plcp6))); 947 case BWN_FW_HDR_410: 948 return (104 + (sizeof(struct bwn_plcp6))); 949 case BWN_FW_HDR_351: 950 return (100 + (sizeof(struct bwn_plcp6))); 951 default: 952 printf("%s: unknown header format (%d)\n", __func__, 953 mac->mac_fw.fw_hdr_format); 954 return (112 + (sizeof(struct bwn_plcp6))); 955 } 956} 957 |
|
892/* 893 * Driver-specific vap state. 894 */ 895struct bwn_vap { 896 struct ieee80211vap bv_vap; /* base class */ 897 int (*bv_newstate)(struct ieee80211vap *, 898 enum ieee80211_state, int); 899}; --- 51 unchanged lines hidden (view full) --- 951#define BWN_LOCK_INIT(sc) \ 952 mtx_init(&(sc)->sc_mtx, device_get_nameunit((sc)->sc_dev), \ 953 MTX_NETWORK_LOCK, MTX_DEF) 954#define BWN_LOCK_DESTROY(sc) mtx_destroy(&(sc)->sc_mtx) 955#define BWN_LOCK(sc) mtx_lock(&(sc)->sc_mtx) 956#define BWN_UNLOCK(sc) mtx_unlock(&(sc)->sc_mtx) 957#define BWN_ASSERT_LOCKED(sc) mtx_assert(&(sc)->sc_mtx, MA_OWNED) 958 | 958/* 959 * Driver-specific vap state. 960 */ 961struct bwn_vap { 962 struct ieee80211vap bv_vap; /* base class */ 963 int (*bv_newstate)(struct ieee80211vap *, 964 enum ieee80211_state, int); 965}; --- 51 unchanged lines hidden (view full) --- 1017#define BWN_LOCK_INIT(sc) \ 1018 mtx_init(&(sc)->sc_mtx, device_get_nameunit((sc)->sc_dev), \ 1019 MTX_NETWORK_LOCK, MTX_DEF) 1020#define BWN_LOCK_DESTROY(sc) mtx_destroy(&(sc)->sc_mtx) 1021#define BWN_LOCK(sc) mtx_lock(&(sc)->sc_mtx) 1022#define BWN_UNLOCK(sc) mtx_unlock(&(sc)->sc_mtx) 1023#define BWN_ASSERT_LOCKED(sc) mtx_assert(&(sc)->sc_mtx, MA_OWNED) 1024 |
1025static inline bwn_band_t 1026bwn_channel_band(struct bwn_mac *mac, struct ieee80211_channel *c) 1027{ 1028 if (IEEE80211_IS_CHAN_5GHZ(c)) 1029 return BWN_BAND_5G; 1030 /* XXX check 2g, log error if not 2g or 5g? */ 1031 return BWN_BAND_2G; 1032} 1033 1034static inline bwn_band_t 1035bwn_current_band(struct bwn_mac *mac) 1036{ 1037 struct ieee80211com *ic = &mac->mac_sc->sc_ic; 1038 if (IEEE80211_IS_CHAN_5GHZ(ic->ic_curchan)) 1039 return BWN_BAND_5G; 1040 /* XXX check 2g, log error if not 2g or 5g? */ 1041 return BWN_BAND_2G; 1042} 1043 1044static inline bool 1045bwn_is_40mhz(struct bwn_mac *mac) 1046{ 1047 struct ieee80211com *ic = &mac->mac_sc->sc_ic; 1048 1049 return !! (IEEE80211_IS_CHAN_HT40(ic->ic_curchan)); 1050} 1051 1052static inline int 1053bwn_get_centre_freq(struct bwn_mac *mac) 1054{ 1055 1056 struct ieee80211com *ic = &mac->mac_sc->sc_ic; 1057 /* XXX TODO: calculate correctly for HT40 mode */ 1058 return ic->ic_curchan->ic_freq; 1059} 1060 1061static inline int 1062bwn_get_chan_centre_freq(struct bwn_mac *mac, struct ieee80211_channel *chan) 1063{ 1064 1065 /* XXX TODO: calculate correctly for HT40 mode */ 1066 return chan->ic_freq; 1067} 1068 1069static inline int 1070bwn_get_chan(struct bwn_mac *mac) 1071{ 1072 1073 struct ieee80211com *ic = &mac->mac_sc->sc_ic; 1074 /* XXX TODO: calculate correctly for HT40 mode */ 1075 return ic->ic_curchan->ic_ieee; 1076} 1077 1078static inline struct ieee80211_channel * 1079bwn_get_channel(struct bwn_mac *mac) 1080{ 1081 1082 struct ieee80211com *ic = &mac->mac_sc->sc_ic; 1083 return ic->ic_curchan; 1084} 1085 1086static inline bool 1087bwn_is_chan_passive(struct bwn_mac *mac) 1088{ 1089 1090 struct ieee80211com *ic = &mac->mac_sc->sc_ic; 1091 return !! IEEE80211_IS_CHAN_PASSIVE(ic->ic_curchan); 1092} 1093 1094static inline bwn_chan_type_t 1095bwn_get_chan_type(struct bwn_mac *mac, struct ieee80211_channel *c) 1096{ 1097 struct ieee80211com *ic = &mac->mac_sc->sc_ic; 1098 if (c == NULL) 1099 c = ic->ic_curchan; 1100 if (IEEE80211_IS_CHAN_HT40U(c)) 1101 return BWN_CHAN_TYPE_40_HT_U; 1102 else if (IEEE80211_IS_CHAN_HT40D(c)) 1103 return BWN_CHAN_TYPE_40_HT_D; 1104 else if (IEEE80211_IS_CHAN_HT20(c)) 1105 return BWN_CHAN_TYPE_20_HT; 1106 else 1107 return BWN_CHAN_TYPE_20; 1108} 1109 1110static inline int 1111bwn_get_chan_power(struct bwn_mac *mac, struct ieee80211_channel *c) 1112{ 1113 1114 /* return in dbm */ 1115 return c->ic_maxpower / 2; 1116} 1117 1118/* 1119 * For now there's no bhnd bus support. Places where it matters 1120 * should call this routine so we can start logging things. 1121 */ 1122static inline int 1123bwn_is_bus_siba(struct bwn_mac *mac) 1124{ 1125 1126 return 1; 1127} |
|
959#endif /* !_IF_BWNVAR_H */ | 1128#endif /* !_IF_BWNVAR_H */ |