Lines Matching +full:max +full:- +full:cur

9  * Copyright (C) 1999-2017, Broadcom Corporation
30 * <<Broadcom-WL-IPTag/Open:>>
32 * $Id: dhd_flowring.c 699841 2017-05-16 16:47:06Z $
93 ASSERT(flowid < dhdp->num_flow_rings); in dhd_flow_ring_node()
94 if (flowid >= dhdp->num_flow_rings) { in dhd_flow_ring_node()
98 flow_ring_node = &(((flow_ring_node_t*)(dhdp->flow_ring_table))[flowid]); in dhd_flow_ring_node()
100 ASSERT(flow_ring_node->flowid == flowid); in dhd_flow_ring_node()
112 return &flow_ring_node->queue; in dhd_flow_queue()
121 dhd_flow_queue_reinit(dhd_pub_t *dhdp, flow_queue_t *queue, int max) in dhd_flow_queue_reinit() argument
123 ASSERT((queue != NULL) && (max > 0)); in dhd_flow_queue_reinit()
125 queue->head = queue->tail = NULL; in dhd_flow_queue_reinit()
126 queue->len = 0; in dhd_flow_queue_reinit()
129 ASSERT(max > 1); in dhd_flow_queue_reinit()
130 DHD_FLOW_QUEUE_SET_MAX(queue, max); in dhd_flow_queue_reinit()
131 DHD_FLOW_QUEUE_SET_THRESHOLD(queue, max); in dhd_flow_queue_reinit()
132 DHD_FLOW_QUEUE_SET_CLEN(queue, &dhdp->cumm_ctr); in dhd_flow_queue_reinit()
133 DHD_FLOW_QUEUE_SET_L2CLEN(queue, &dhdp->l2cumm_ctr); in dhd_flow_queue_reinit()
135 queue->failures = 0U; in dhd_flow_queue_reinit()
136 queue->cb = &dhd_flow_queue_overflow; in dhd_flow_queue_reinit()
141 dhd_flow_queue_init(dhd_pub_t *dhdp, flow_queue_t *queue, int max) in dhd_flow_queue_init() argument
143 ASSERT((queue != NULL) && (max > 0)); in dhd_flow_queue_init()
145 dll_init(&queue->list); in dhd_flow_queue_init()
146 dhd_flow_queue_reinit(dhdp, queue, max); in dhd_flow_queue_init()
154 queue->cb = cb; in dhd_flow_queue_register()
169 queue->failures++; in dhd_flow_queue_enqueue()
170 ret = (*queue->cb)(queue, pkt); in dhd_flow_queue_enqueue()
174 if (queue->head) { in dhd_flow_queue_enqueue()
175 FLOW_QUEUE_PKT_SETNEXT(queue->tail, pkt); in dhd_flow_queue_enqueue()
177 queue->head = pkt; in dhd_flow_queue_enqueue()
182 queue->tail = pkt; /* at tail */ in dhd_flow_queue_enqueue()
184 queue->len++; in dhd_flow_queue_enqueue()
202 pkt = queue->head; /* from head */ in dhd_flow_queue_dequeue()
205 ASSERT((queue->len == 0) && (queue->tail == NULL)); in dhd_flow_queue_dequeue()
209 queue->head = FLOW_QUEUE_PKT_NEXT(pkt); in dhd_flow_queue_dequeue()
210 if (queue->head == NULL) in dhd_flow_queue_dequeue()
211 queue->tail = NULL; in dhd_flow_queue_dequeue()
213 queue->len--; in dhd_flow_queue_dequeue()
229 if (queue->head == NULL) { in dhd_flow_queue_reinsert()
230 queue->tail = pkt; in dhd_flow_queue_reinsert()
233 FLOW_QUEUE_PKT_SETNEXT(pkt, queue->head); in dhd_flow_queue_reinsert()
234 queue->head = pkt; in dhd_flow_queue_reinsert()
235 queue->len++; in dhd_flow_queue_reinsert()
259 DHD_FLOW_QUEUE_SET_MAX(queue, queue_budget); /* Max queue length */ in dhd_flow_ring_config_thresholds()
282 if (dhdp->flow_prio_map[i] == dhdp->flow_prio_map[j]) { in dhd_num_prio_supported_per_flow_ring()
308 uint8 total_tx_flow_rings = dhdp->num_flow_rings - dhdp->bus->max_cmn_rings; in dhd_get_max_multi_client_flow_rings()
309 uint8 max_multi_client_flow_rings = total_tx_flow_rings - reserved_infra_sta_flow_rings; in dhd_get_max_multi_client_flow_rings()
330 flowid_allocator = id16_map_init(dhdp->osh, in dhd_flow_rings_init()
331 num_flow_rings - dhdp->bus->max_cmn_rings, FLOWID_RESERVED); in dhd_flow_rings_init()
339 flow_ring_table = (flow_ring_table_t *)MALLOCZ(dhdp->osh, flow_ring_table_sz); in dhd_flow_rings_init()
346 DHD_CUMM_CTR_INIT(&dhdp->cumm_ctr); in dhd_flow_rings_init()
347 DHD_CUMM_CTR_INIT(&dhdp->l2cumm_ctr); in dhd_flow_rings_init()
352 flow_ring_table[idx].lock = dhd_os_spin_lock_init(dhdp->osh); in dhd_flow_rings_init()
386 lock = dhd_os_spin_lock_init(dhdp->osh); in dhd_flow_rings_init()
390 list_lock = dhd_os_spin_lock_init(dhdp->osh); in dhd_flow_rings_init()
394 dhdp->flow_prio_map_type = DHD_FLOW_PRIO_AC_MAP; in dhd_flow_rings_init()
395 bcopy(prio2ac, dhdp->flow_prio_map, sizeof(uint8) * NUMPRIO); in dhd_flow_rings_init()
397 dhdp->max_multi_client_flow_rings = dhd_get_max_multi_client_flow_rings(dhdp); in dhd_flow_rings_init()
398 dhdp->multi_client_flow_rings = 0U; in dhd_flow_rings_init()
401 dhdp->dequeue_prec_map = ALLPRIO; in dhd_flow_rings_init()
405 dhdp->num_flow_rings = num_flow_rings; in dhd_flow_rings_init()
406 dhdp->flowid_allocator = (void *)flowid_allocator; in dhd_flow_rings_init()
407 dhdp->flow_ring_table = (void *)flow_ring_table; in dhd_flow_rings_init()
408 dhdp->if_flow_lkup = (void *)if_flow_lkup; in dhd_flow_rings_init()
409 dhdp->flowid_lock = lock; in dhd_flow_rings_init()
410 dhdp->flow_rings_inited = TRUE; in dhd_flow_rings_init()
411 dhdp->flowring_list_lock = list_lock; in dhd_flow_rings_init()
419 dhd_os_spin_lock_deinit(dhdp->osh, lock); in dhd_flow_rings_init()
429 dhd_os_spin_lock_deinit(dhdp->osh, flow_ring_table[idx].lock); in dhd_flow_rings_init()
431 MFREE(dhdp->osh, flow_ring_table, flow_ring_table_sz); in dhd_flow_rings_init()
433 id16_map_fini(dhdp->osh, flowid_allocator); in dhd_flow_rings_init()
450 if (!(dhdp->flow_rings_inited)) { in dhd_flow_rings_deinit()
455 if (dhdp->flow_ring_table != NULL) { in dhd_flow_rings_deinit()
457 ASSERT(dhdp->num_flow_rings > 0); in dhd_flow_rings_deinit()
459 DHD_FLOWID_LOCK(dhdp->flowid_lock, flags); in dhd_flow_rings_deinit()
460 flow_ring_table = (flow_ring_table_t *)dhdp->flow_ring_table; in dhd_flow_rings_deinit()
461 dhdp->flow_ring_table = NULL; in dhd_flow_rings_deinit()
462 DHD_FLOWID_UNLOCK(dhdp->flowid_lock, flags); in dhd_flow_rings_deinit()
463 for (idx = 0; idx < dhdp->num_flow_rings; idx++) { in dhd_flow_rings_deinit()
465 dhd_bus_clean_flow_ring(dhdp->bus, &flow_ring_table[idx]); in dhd_flow_rings_deinit()
471 dhd_os_spin_lock_deinit(dhdp->osh, flow_ring_table[idx].lock); in dhd_flow_rings_deinit()
478 flow_ring_table_sz = dhdp->num_flow_rings * sizeof(flow_ring_table_t); in dhd_flow_rings_deinit()
479 MFREE(dhdp->osh, flow_ring_table, flow_ring_table_sz); in dhd_flow_rings_deinit()
482 DHD_FLOWID_LOCK(dhdp->flowid_lock, flags); in dhd_flow_rings_deinit()
485 if (dhdp->if_flow_lkup != NULL) { in dhd_flow_rings_deinit()
487 bzero((uchar *)dhdp->if_flow_lkup, if_flow_lkup_sz); in dhd_flow_rings_deinit()
488 DHD_OS_PREFREE(dhdp, dhdp->if_flow_lkup, if_flow_lkup_sz); in dhd_flow_rings_deinit()
489 dhdp->if_flow_lkup = NULL; in dhd_flow_rings_deinit()
493 if (dhdp->flowid_allocator != NULL) in dhd_flow_rings_deinit()
494 dhdp->flowid_allocator = id16_map_fini(dhdp->osh, dhdp->flowid_allocator); in dhd_flow_rings_deinit()
496 dhdp->num_flow_rings = 0U; in dhd_flow_rings_deinit()
497 bzero(dhdp->flow_prio_map, sizeof(uint8) * NUMPRIO); in dhd_flow_rings_deinit()
499 dhdp->max_multi_client_flow_rings = 0U; in dhd_flow_rings_deinit()
500 dhdp->multi_client_flow_rings = 0U; in dhd_flow_rings_deinit()
502 lock = dhdp->flowid_lock; in dhd_flow_rings_deinit()
503 dhdp->flowid_lock = NULL; in dhd_flow_rings_deinit()
507 dhd_os_spin_lock_deinit(dhdp->osh, lock); in dhd_flow_rings_deinit()
510 dhd_os_spin_lock_deinit(dhdp->osh, dhdp->flowring_list_lock); in dhd_flow_rings_deinit()
511 dhdp->flowring_list_lock = NULL; in dhd_flow_rings_deinit()
513 ASSERT(dhdp->if_flow_lkup == NULL); in dhd_flow_rings_deinit()
514 ASSERT(dhdp->flowid_allocator == NULL); in dhd_flow_rings_deinit()
515 ASSERT(dhdp->flow_ring_table == NULL); in dhd_flow_rings_deinit()
516 dhdp->flow_rings_inited = FALSE; in dhd_flow_rings_deinit()
523 if_flow_lkup_t *if_flow_lkup = (if_flow_lkup_t *)dhdp->if_flow_lkup; in dhd_flow_rings_ifindex2role()
532 tdls_peer_node_t *cur = NULL; in is_tdls_destination() local
534 DHD_TDLS_LOCK(&dhdp->tdls_lock, flags); in is_tdls_destination()
535 cur = dhdp->peer_tbl.node; in is_tdls_destination()
537 while (cur != NULL) { in is_tdls_destination()
538 if (!memcmp(da, cur->addr, ETHER_ADDR_LEN)) { in is_tdls_destination()
539 DHD_TDLS_UNLOCK(&dhdp->tdls_lock, flags); in is_tdls_destination()
542 cur = cur->next; in is_tdls_destination()
544 DHD_TDLS_UNLOCK(&dhdp->tdls_lock, flags); in is_tdls_destination()
555 flow_hash_info_t *cur; in dhd_flowid_find() local
563 DHD_FLOWID_LOCK(dhdp->flowid_lock, flags); in dhd_flowid_find()
564 if_flow_lkup = (if_flow_lkup_t *)dhdp->if_flow_lkup; in dhd_flowid_find()
570 if (dhdp->peer_tbl.tdls_peer_count && !(ETHER_ISMULTI(da)) && in dhd_flowid_find()
573 cur = if_flow_lkup[ifindex].fl_hash[hash]; in dhd_flowid_find()
574 while (cur != NULL) { in dhd_flowid_find()
575 if (!memcmp(cur->flow_info.da, da, ETHER_ADDR_LEN)) { in dhd_flowid_find()
576 DHD_FLOWID_UNLOCK(dhdp->flowid_lock, flags); in dhd_flowid_find()
577 return cur->flowid; in dhd_flowid_find()
579 cur = cur->next; in dhd_flowid_find()
581 DHD_FLOWID_UNLOCK(dhdp->flowid_lock, flags); in dhd_flowid_find()
586 cur = if_flow_lkup[ifindex].fl_hash[prio]; in dhd_flowid_find()
587 if (cur) { in dhd_flowid_find()
588 DHD_FLOWID_UNLOCK(dhdp->flowid_lock, flags); in dhd_flowid_find()
589 return cur->flowid; in dhd_flowid_find()
600 cur = if_flow_lkup[ifindex].fl_hash[hash]; in dhd_flowid_find()
602 while (cur) { in dhd_flowid_find()
603 if ((ismcast && ETHER_ISMULTI(cur->flow_info.da)) || in dhd_flowid_find()
604 (!memcmp(cur->flow_info.da, da, ETHER_ADDR_LEN) && in dhd_flowid_find()
605 (cur->flow_info.tid == prio))) { in dhd_flowid_find()
606 DHD_FLOWID_UNLOCK(dhdp->flowid_lock, flags); in dhd_flowid_find()
607 return cur->flowid; in dhd_flowid_find()
609 cur = cur->next; in dhd_flowid_find()
612 DHD_FLOWID_UNLOCK(dhdp->flowid_lock, flags); in dhd_flowid_find()
622 flow_hash_info_t *fl_hash_node, *cur; in dhd_flowid_alloc() local
628 fl_hash_node = (flow_hash_info_t *) MALLOCZ(dhdp->osh, sizeof(flow_hash_info_t)); in dhd_flowid_alloc()
633 memcpy(fl_hash_node->flow_info.da, da, sizeof(fl_hash_node->flow_info.da)); in dhd_flowid_alloc()
635 DHD_FLOWID_LOCK(dhdp->flowid_lock, flags); in dhd_flowid_alloc()
636 ASSERT(dhdp->flowid_allocator != NULL); in dhd_flowid_alloc()
637 flowid = id16_map_alloc(dhdp->flowid_allocator); in dhd_flowid_alloc()
638 DHD_FLOWID_UNLOCK(dhdp->flowid_lock, flags); in dhd_flowid_alloc()
641 MFREE(dhdp->osh, fl_hash_node, sizeof(flow_hash_info_t)); in dhd_flowid_alloc()
646 fl_hash_node->flowid = flowid; in dhd_flowid_alloc()
647 fl_hash_node->flow_info.tid = prio; in dhd_flowid_alloc()
648 fl_hash_node->flow_info.ifindex = ifindex; in dhd_flowid_alloc()
649 fl_hash_node->next = NULL; in dhd_flowid_alloc()
651 DHD_FLOWID_LOCK(dhdp->flowid_lock, flags); in dhd_flowid_alloc()
652 if_flow_lkup = (if_flow_lkup_t *)dhdp->if_flow_lkup; in dhd_flowid_alloc()
657 if (dhdp->peer_tbl.tdls_peer_count && in dhd_flowid_alloc()
660 cur = if_flow_lkup[ifindex].fl_hash[hash]; in dhd_flowid_alloc()
661 if (cur) { in dhd_flowid_alloc()
662 while (cur->next) { in dhd_flowid_alloc()
663 cur = cur->next; in dhd_flowid_alloc()
665 cur->next = fl_hash_node; in dhd_flowid_alloc()
676 cur = if_flow_lkup[ifindex].fl_hash[hash]; in dhd_flowid_alloc()
677 if (cur) { in dhd_flowid_alloc()
678 while (cur->next) { in dhd_flowid_alloc()
679 cur = cur->next; in dhd_flowid_alloc()
681 cur->next = fl_hash_node; in dhd_flowid_alloc()
685 DHD_FLOWID_UNLOCK(dhdp->flowid_lock, flags); in dhd_flowid_alloc()
687 DHD_INFO(("%s: allocated flowid %d\n", __FUNCTION__, fl_hash_node->flowid)); in dhd_flowid_alloc()
689 if (fl_hash_node->flowid >= dhdp->num_flow_rings) { in dhd_flowid_alloc()
691 __FUNCTION__, fl_hash_node->flowid, dhdp->num_flow_rings, in dhd_flowid_alloc()
698 return fl_hash_node->flowid; in dhd_flowid_alloc()
714 if (!dhdp->flow_ring_table) { in dhd_flowid_lookup()
722 flow_ring_table = (flow_ring_table_t *)dhdp->flow_ring_table; in dhd_flowid_lookup()
729 if_flow_lkup = (if_flow_lkup_t *)dhdp->if_flow_lkup; in dhd_flowid_lookup()
740 (dhdp->multi_client_flow_rings >= dhdp->max_multi_client_flow_rings)) { in dhd_flowid_lookup()
741 DHD_ERROR_RLMT(("%s: Max multi client flow rings reached: %d:%d\n", in dhd_flowid_lookup()
742 __FUNCTION__, dhdp->multi_client_flow_rings, in dhd_flowid_lookup()
743 dhdp->max_multi_client_flow_rings)); in dhd_flowid_lookup()
764 ASSERT(id < dhdp->num_flow_rings); in dhd_flowid_lookup()
768 dhdp->multi_client_flow_rings++; in dhd_flowid_lookup()
776 DHD_FLOWRING_LOCK(flow_ring_node->lock, flags); in dhd_flowid_lookup()
779 memcpy(flow_ring_node->flow_info.sa, sa, sizeof(flow_ring_node->flow_info.sa)); in dhd_flowid_lookup()
780 memcpy(flow_ring_node->flow_info.da, da, sizeof(flow_ring_node->flow_info.da)); in dhd_flowid_lookup()
781 flow_ring_node->flow_info.tid = prio; in dhd_flowid_lookup()
782 flow_ring_node->flow_info.ifindex = ifindex; in dhd_flowid_lookup()
783 flow_ring_node->active = TRUE; in dhd_flowid_lookup()
784 flow_ring_node->status = FLOW_RING_STATUS_CREATE_PENDING; in dhd_flowid_lookup()
787 flow_ring_node->flow_info.num_tx_status = 0; in dhd_flowid_lookup()
788 flow_ring_node->flow_info.cum_tx_status_latency = 0; in dhd_flowid_lookup()
789 flow_ring_node->flow_info.num_tx_pkts = 0; in dhd_flowid_lookup()
791 DHD_FLOWRING_UNLOCK(flow_ring_node->lock, flags); in dhd_flowid_lookup()
794 if (dhd_bus_flow_ring_create_request(dhdp->bus, (void *)flow_ring_node) in dhd_flowid_lookup()
796 DHD_FLOWRING_LOCK(flow_ring_node->lock, flags); in dhd_flowid_lookup()
797 flow_ring_node->status = FLOW_RING_STATUS_CLOSED; in dhd_flowid_lookup()
798 flow_ring_node->active = FALSE; in dhd_flowid_lookup()
799 DHD_FLOWRING_UNLOCK(flow_ring_node->lock, flags); in dhd_flowid_lookup()
809 if (id >= dhdp->num_flow_rings) { in dhd_flowid_lookup()
811 __FUNCTION__, id, dhdp->num_flow_rings)); in dhd_flowid_lookup()
818 DHD_FLOWRING_LOCK(flow_ring_node->lock, flags); in dhd_flowid_lookup()
842 if (flow_ring_node->status == FLOW_RING_STATUS_DELETE_PENDING || in dhd_flowid_lookup()
843 flow_ring_node->status == FLOW_RING_STATUS_CLOSED) { in dhd_flowid_lookup()
851 DHD_FLOWRING_UNLOCK(flow_ring_node->lock, flags); in dhd_flowid_lookup()
861 flow_hash_info_t *cur; in dhd_flowid_find_by_ifidx() local
865 if (!dhdp->flow_ring_table) { in dhd_flowid_find_by_ifidx()
866 DHD_ERROR(("%s : dhd->flow_ring_table is NULL\n", __FUNCTION__)); in dhd_flowid_find_by_ifidx()
870 DHD_FLOWID_LOCK(dhdp->flowid_lock, flags); in dhd_flowid_find_by_ifidx()
871 if_flow_lkup = (if_flow_lkup_t *)dhdp->if_flow_lkup; in dhd_flowid_find_by_ifidx()
873 cur = if_flow_lkup[ifindex].fl_hash[hashidx]; in dhd_flowid_find_by_ifidx()
874 if (cur) { in dhd_flowid_find_by_ifidx()
875 if (cur->flowid == flowid) { in dhd_flowid_find_by_ifidx()
879 while (!found && cur) { in dhd_flowid_find_by_ifidx()
880 if (cur->flowid == flowid) { in dhd_flowid_find_by_ifidx()
884 cur = cur->next; in dhd_flowid_find_by_ifidx()
888 DHD_FLOWID_UNLOCK(dhdp->flowid_lock, flags); in dhd_flowid_find_by_ifidx()
893 DHD_FLOWID_UNLOCK(dhdp->flowid_lock, flags); in dhd_flowid_find_by_ifidx()
912 uint8 *pktdata = (uint8 *)PKTDATA(dhdp->osh, pktbuf); in dhd_flowid_update()
922 if (!dhdp->flowid_allocator) { in dhd_flowid_update()
927 if (dhd_flowid_lookup(dhdp, ifindex, prio, (char *)eh->ether_shost, (char *)eh->ether_dhost, in dhd_flowid_update()
944 flow_hash_info_t *cur, *prev; in dhd_flowid_free() local
953 DHD_FLOWID_LOCK(dhdp->flowid_lock, flags); in dhd_flowid_free()
954 if_flow_lkup = (if_flow_lkup_t *)dhdp->if_flow_lkup; in dhd_flowid_free()
960 cur = if_flow_lkup[ifindex].fl_hash[hashix]; in dhd_flowid_free()
962 if (cur) { in dhd_flowid_free()
963 if (cur->flowid == flowid) { in dhd_flowid_free()
968 while (!found && cur) { in dhd_flowid_free()
969 if (cur->flowid == flowid) { in dhd_flowid_free()
973 prev = cur; in dhd_flowid_free()
974 cur = cur->next; in dhd_flowid_free()
978 if_flow_lkup[ifindex].fl_hash[hashix] = cur->next; in dhd_flowid_free()
980 prev->next = cur->next; in dhd_flowid_free()
985 dhdp->multi_client_flow_rings--; in dhd_flowid_free()
991 id16_map_free(dhdp->flowid_allocator, flowid); in dhd_flowid_free()
992 DHD_FLOWID_UNLOCK(dhdp->flowid_lock, flags); in dhd_flowid_free()
993 MFREE(dhdp->osh, cur, sizeof(flow_hash_info_t)); in dhd_flowid_free()
1000 DHD_FLOWID_UNLOCK(dhdp->flowid_lock, flags); in dhd_flowid_free()
1021 if (!dhdp->flow_ring_table) in dhd_flow_rings_delete()
1024 flow_ring_table = (flow_ring_table_t *)dhdp->flow_ring_table; in dhd_flow_rings_delete()
1025 for (id = 0; id < dhdp->num_flow_rings; id++) { in dhd_flow_rings_delete()
1029 dhd_bus_flow_ring_delete_request(dhdp->bus, in dhd_flow_rings_delete()
1047 if (!dhdp->flow_ring_table) in dhd_flow_rings_flush()
1049 flow_ring_table = (flow_ring_table_t *)dhdp->flow_ring_table; in dhd_flow_rings_flush()
1051 for (id = 0; id < dhdp->num_flow_rings; id++) { in dhd_flow_rings_flush()
1055 dhd_bus_flow_ring_flush_request(dhdp->bus, in dhd_flow_rings_flush()
1074 if (!dhdp->flow_ring_table) in dhd_flow_rings_delete_for_peer()
1077 flow_ring_table = (flow_ring_table_t *)dhdp->flow_ring_table; in dhd_flow_rings_delete_for_peer()
1078 for (id = 0; id < dhdp->num_flow_rings; id++) { in dhd_flow_rings_delete_for_peer()
1095 dhd_bus_flow_ring_delete_request(dhdp->bus, in dhd_flow_rings_delete_for_peer()
1115 if (!dhdp->flowid_allocator) { in dhd_update_interface_flow_info()
1120 DHD_FLOWID_LOCK(dhdp->flowid_lock, flags); in dhd_update_interface_flow_info()
1121 if_flow_lkup = (if_flow_lkup_t *)dhdp->if_flow_lkup; in dhd_update_interface_flow_info()
1144 DHD_FLOWID_UNLOCK(dhdp->flowid_lock, flags); in dhd_update_interface_flow_info()
1160 DHD_FLOWID_LOCK(dhdp->flowid_lock, flags); in dhd_update_interface_link_status()
1161 if_flow_lkup = (if_flow_lkup_t *)dhdp->if_flow_lkup; in dhd_update_interface_link_status()
1169 DHD_FLOWID_UNLOCK(dhdp->flowid_lock, flags); in dhd_update_interface_link_status()
1184 if (map == dhdp->flow_prio_map_type) in dhd_update_flow_prio_map()
1188 for (flowid = 0; flowid < dhdp->num_flow_rings; flowid++) { in dhd_update_flow_prio_map()
1190 if (flow_ring_node->active) in dhd_update_flow_prio_map()
1199 dhdp->flow_prio_map_type = map; in dhd_update_flow_prio_map()
1200 if (dhdp->flow_prio_map_type == DHD_FLOW_PRIO_TID_MAP) in dhd_update_flow_prio_map()
1201 bcopy(prio2tid, dhdp->flow_prio_map, sizeof(uint8) * NUMPRIO); in dhd_update_flow_prio_map()
1203 bcopy(prio2ac, dhdp->flow_prio_map, sizeof(uint8) * NUMPRIO); in dhd_update_flow_prio_map()
1205 dhdp->max_multi_client_flow_rings = dhd_get_max_multi_client_flow_rings(dhdp); in dhd_update_flow_prio_map()