| .. | .. |
|---|
| 275 | 275 | } |
|---|
| 276 | 276 | } |
|---|
| 277 | 277 | |
|---|
| 278 | | -/** |
|---|
| 278 | +/* |
|---|
| 279 | 279 | * This function frees the WL per-device resources. |
|---|
| 280 | 280 | * |
|---|
| 281 | 281 | * This function frees resources owned by the WL device pointed to |
|---|
| 282 | 282 | * by the wl parameter. |
|---|
| 283 | 283 | * |
|---|
| 284 | 284 | * precondition: can both be called locked and unlocked |
|---|
| 285 | | - * |
|---|
| 286 | 285 | */ |
|---|
| 287 | 286 | static void brcms_free(struct brcms_info *wl) |
|---|
| 288 | 287 | { |
|---|
| .. | .. |
|---|
| 850 | 849 | "START: tid %d is not agg\'able\n", tid); |
|---|
| 851 | 850 | return -EINVAL; |
|---|
| 852 | 851 | } |
|---|
| 853 | | - ieee80211_start_tx_ba_cb_irqsafe(vif, sta->addr, tid); |
|---|
| 854 | | - break; |
|---|
| 852 | + return IEEE80211_AMPDU_TX_START_IMMEDIATE; |
|---|
| 855 | 853 | |
|---|
| 856 | 854 | case IEEE80211_AMPDU_TX_STOP_CONT: |
|---|
| 857 | 855 | case IEEE80211_AMPDU_TX_STOP_FLUSH: |
|---|
| .. | .. |
|---|
| 983 | 981 | .set_tim = brcms_ops_beacon_set_tim, |
|---|
| 984 | 982 | }; |
|---|
| 985 | 983 | |
|---|
| 986 | | -void brcms_dpc(unsigned long data) |
|---|
| 984 | +void brcms_dpc(struct tasklet_struct *t) |
|---|
| 987 | 985 | { |
|---|
| 988 | 986 | struct brcms_info *wl; |
|---|
| 989 | 987 | |
|---|
| 990 | | - wl = (struct brcms_info *) data; |
|---|
| 988 | + wl = from_tasklet(wl, t, tasklet); |
|---|
| 991 | 989 | |
|---|
| 992 | 990 | spin_lock_bh(&wl->lock); |
|---|
| 993 | 991 | |
|---|
| .. | .. |
|---|
| 1116 | 1114 | return ieee_hw_rate_init(hw); |
|---|
| 1117 | 1115 | } |
|---|
| 1118 | 1116 | |
|---|
| 1119 | | -/** |
|---|
| 1117 | +/* |
|---|
| 1120 | 1118 | * attach to the WL device. |
|---|
| 1121 | 1119 | * |
|---|
| 1122 | 1120 | * Attach to the WL device identified by vendor and device parameters. |
|---|
| .. | .. |
|---|
| 1150 | 1148 | init_waitqueue_head(&wl->tx_flush_wq); |
|---|
| 1151 | 1149 | |
|---|
| 1152 | 1150 | /* setup the bottom half handler */ |
|---|
| 1153 | | - tasklet_init(&wl->tasklet, brcms_dpc, (unsigned long) wl); |
|---|
| 1151 | + tasklet_setup(&wl->tasklet, brcms_dpc); |
|---|
| 1154 | 1152 | |
|---|
| 1155 | 1153 | spin_lock_init(&wl->lock); |
|---|
| 1156 | 1154 | spin_lock_init(&wl->isr_lock); |
|---|
| .. | .. |
|---|
| 1211 | 1209 | |
|---|
| 1212 | 1210 | |
|---|
| 1213 | 1211 | |
|---|
| 1214 | | -/** |
|---|
| 1212 | +/* |
|---|
| 1215 | 1213 | * determines if a device is a WL device, and if so, attaches it. |
|---|
| 1216 | 1214 | * |
|---|
| 1217 | 1215 | * This function determines if a device pointed to by pdev is a WL device, |
|---|
| .. | .. |
|---|
| 1297 | 1295 | .id_table = brcms_coreid_table, |
|---|
| 1298 | 1296 | }; |
|---|
| 1299 | 1297 | |
|---|
| 1300 | | -/** |
|---|
| 1298 | +/* |
|---|
| 1301 | 1299 | * This is the main entry point for the brcmsmac driver. |
|---|
| 1302 | 1300 | * |
|---|
| 1303 | 1301 | * This function is scheduled upon module initialization and |
|---|
| .. | .. |
|---|
| 1324 | 1322 | return 0; |
|---|
| 1325 | 1323 | } |
|---|
| 1326 | 1324 | |
|---|
| 1327 | | -/** |
|---|
| 1325 | +/* |
|---|
| 1328 | 1326 | * This function unloads the brcmsmac driver from the system. |
|---|
| 1329 | 1327 | * |
|---|
| 1330 | 1328 | * This function unconditionally unloads the brcmsmac driver module from the |
|---|
| .. | .. |
|---|
| 1438 | 1436 | * precondition: perimeter lock has been acquired |
|---|
| 1439 | 1437 | */ |
|---|
| 1440 | 1438 | void brcms_down(struct brcms_info *wl) |
|---|
| 1439 | + __must_hold(&wl->lock) |
|---|
| 1441 | 1440 | { |
|---|
| 1442 | 1441 | uint callbacks, ret_val = 0; |
|---|
| 1443 | 1442 | |
|---|
| .. | .. |
|---|
| 1724 | 1723 | * precondition: perimeter lock has been acquired |
|---|
| 1725 | 1724 | */ |
|---|
| 1726 | 1725 | bool brcms_rfkill_set_hw_state(struct brcms_info *wl) |
|---|
| 1726 | + __must_hold(&wl->lock) |
|---|
| 1727 | 1727 | { |
|---|
| 1728 | 1728 | bool blocked = brcms_c_check_radio_disabled(wl->wlc); |
|---|
| 1729 | 1729 | |
|---|