Lines Matching defs:conn
102 static bool ath6kl_process_uapsdq(struct ath6kl_sta *conn,
114 if (conn->sta_flags & STA_PS_APSD_TRIGGER) {
120 spin_lock_bh(&conn->psq_lock);
121 if (!skb_queue_empty(&conn->apsdq))
123 else if (conn->sta_flags & STA_PS_APSD_EOSP)
126 spin_unlock_bh(&conn->psq_lock);
128 } else if (!conn->apsd_info) {
152 if ((conn->apsd_info & (1 << traffic_class)) == 0)
156 spin_lock_bh(&conn->psq_lock);
157 is_apsdq_empty = skb_queue_empty(&conn->apsdq);
158 skb_queue_tail(&conn->apsdq, skb);
159 spin_unlock_bh(&conn->psq_lock);
168 conn->aid, 1, 0);
175 static bool ath6kl_process_psq(struct ath6kl_sta *conn,
183 if (conn->sta_flags & STA_PS_POLLED) {
184 spin_lock_bh(&conn->psq_lock);
185 if (!skb_queue_empty(&conn->psq))
187 spin_unlock_bh(&conn->psq_lock);
192 spin_lock_bh(&conn->psq_lock);
193 is_psq_empty = skb_queue_empty(&conn->psq);
194 skb_queue_tail(&conn->psq, skb);
195 spin_unlock_bh(&conn->psq_lock);
205 conn->aid, 1);
213 struct ath6kl_sta *conn = NULL;
265 conn = ath6kl_find_sta(vif, datap->h_dest);
266 if (!conn) {
273 if (conn->sta_flags & STA_PS_SLEEP) {
274 ps_queued = ath6kl_process_uapsdq(conn,
277 ps_queued = ath6kl_process_psq(conn,
1233 struct ath6kl_sta *conn)
1249 num_frames_to_deliver = (conn->apsd_info >> ATH6KL_APSD_NUM_OF_AC) &
1260 spin_lock_bh(&conn->psq_lock);
1261 is_apsdq_empty = skb_queue_empty(&conn->apsdq);
1262 spin_unlock_bh(&conn->psq_lock);
1266 spin_lock_bh(&conn->psq_lock);
1267 skb = skb_dequeue(&conn->apsdq);
1268 is_apsdq_empty = skb_queue_empty(&conn->apsdq);
1269 spin_unlock_bh(&conn->psq_lock);
1275 conn->sta_flags |= STA_PS_APSD_TRIGGER;
1280 conn->sta_flags |= STA_PS_APSD_EOSP;
1283 conn->sta_flags &= ~(STA_PS_APSD_TRIGGER);
1284 conn->sta_flags &= ~(STA_PS_APSD_EOSP);
1295 conn->aid, 0, flags);
1314 struct ath6kl_sta *conn = NULL;
1427 conn = ath6kl_find_sta(vif, datap->h_source);
1429 if (!conn) {
1443 prev_ps = !!(conn->sta_flags & STA_PS_SLEEP);
1446 conn->sta_flags |= STA_PS_SLEEP;
1448 conn->sta_flags &= ~STA_PS_SLEEP;
1451 if ((conn->sta_flags & STA_PS_SLEEP) && trig_state)
1452 ath6kl_uapsd_trigger_frame_rx(vif, conn);
1454 if (prev_ps ^ !!(conn->sta_flags & STA_PS_SLEEP)) {
1455 if (!(conn->sta_flags & STA_PS_SLEEP)) {
1461 spin_lock_bh(&conn->psq_lock);
1462 while (conn->mgmt_psq_len > 0) {
1464 &conn->mgmt_psq,
1468 conn->mgmt_psq_len--;
1469 spin_unlock_bh(&conn->psq_lock);
1482 spin_lock_bh(&conn->psq_lock);
1484 conn->mgmt_psq_len = 0;
1485 while ((skbuff = skb_dequeue(&conn->psq))) {
1486 spin_unlock_bh(&conn->psq_lock);
1488 spin_lock_bh(&conn->psq_lock);
1491 is_apsdq_empty = skb_queue_empty(&conn->apsdq);
1492 while ((skbuff = skb_dequeue(&conn->apsdq))) {
1493 spin_unlock_bh(&conn->psq_lock);
1495 spin_lock_bh(&conn->psq_lock);
1497 spin_unlock_bh(&conn->psq_lock);
1503 conn->aid, 0, 0);
1507 conn->aid, 0);
1580 conn = ath6kl_find_sta(vif, datap->h_dest);
1582 if (conn && ar->intra_bss) {
1585 } else if (conn && !ar->intra_bss) {
1603 conn = ath6kl_find_sta(vif, datap->h_source);
1604 if (!conn)
1606 aggr_conn = conn->aggr_conn;