Lines Matching refs:bd
21 static inline int get_rssi0(struct wcn36xx_rx_bd *bd) in get_rssi0() argument
23 return 100 - ((bd->phy_stat0 >> 24) & 0xff); in get_rssi0()
232 struct wcn36xx_rx_bd *bd; in wcn36xx_rx_skb() local
242 bd = (struct wcn36xx_rx_bd *)skb->data; in wcn36xx_rx_skb()
243 buff_to_be((u32 *)bd, sizeof(*bd)/sizeof(u32)); in wcn36xx_rx_skb()
245 "BD <<< ", (char *)bd, in wcn36xx_rx_skb()
248 skb_put(skb, bd->pdu.mpdu_header_off + bd->pdu.mpdu_len); in wcn36xx_rx_skb()
249 skb_pull(skb, bd->pdu.mpdu_header_off); in wcn36xx_rx_skb()
258 status.signal = -get_rssi0(bd); in wcn36xx_rx_skb()
268 if (bd->rate_id < ARRAY_SIZE(wcn36xx_rate_table)) { in wcn36xx_rx_skb()
269 rate = &wcn36xx_rate_table[bd->rate_id]; in wcn36xx_rx_skb()
309 static void wcn36xx_set_tx_pdu(struct wcn36xx_tx_bd *bd, in wcn36xx_set_tx_pdu() argument
314 bd->pdu.mpdu_header_len = mpdu_header_len; in wcn36xx_set_tx_pdu()
315 bd->pdu.mpdu_header_off = sizeof(*bd); in wcn36xx_set_tx_pdu()
316 bd->pdu.mpdu_data_off = bd->pdu.mpdu_header_len + in wcn36xx_set_tx_pdu()
317 bd->pdu.mpdu_header_off; in wcn36xx_set_tx_pdu()
318 bd->pdu.mpdu_len = len; in wcn36xx_set_tx_pdu()
319 bd->pdu.tid = tid; in wcn36xx_set_tx_pdu()
321 bd->pdu.bd_ssn = WCN36XX_TXBD_SSN_FILL_HOST; in wcn36xx_set_tx_pdu()
373 static void wcn36xx_set_tx_data(struct wcn36xx_tx_bd *bd, in wcn36xx_set_tx_data() argument
387 bd->bd_rate = WCN36XX_BD_RATE_DATA; in wcn36xx_set_tx_data()
397 bd->dpu_sign = sta_priv->ucast_dpu_sign; in wcn36xx_set_tx_data()
399 bd->sta_index = sta_priv->bss_sta_index; in wcn36xx_set_tx_data()
400 bd->dpu_desc_idx = sta_priv->bss_dpu_desc_index; in wcn36xx_set_tx_data()
404 bd->sta_index = sta_priv->sta_index; in wcn36xx_set_tx_data()
405 bd->dpu_desc_idx = sta_priv->dpu_desc_index; in wcn36xx_set_tx_data()
409 bd->sta_index = __vif_priv->self_sta_index; in wcn36xx_set_tx_data()
410 bd->dpu_desc_idx = __vif_priv->self_dpu_desc_index; in wcn36xx_set_tx_data()
411 bd->dpu_sign = __vif_priv->self_ucast_dpu_sign; in wcn36xx_set_tx_data()
417 bd->queue_id = tid; in wcn36xx_set_tx_data()
422 bd->dpu_ne = 1; in wcn36xx_set_tx_data()
427 bd->queue_id = WCN36XX_TX_U_WQ_ID; in wcn36xx_set_tx_data()
431 bd->ub = 1; in wcn36xx_set_tx_data()
432 bd->ack_policy = 1; in wcn36xx_set_tx_data()
436 wcn36xx_set_tx_pdu(bd, in wcn36xx_set_tx_data()
446 static void wcn36xx_set_tx_mgmt(struct wcn36xx_tx_bd *bd, in wcn36xx_set_tx_mgmt() argument
455 bd->sta_index = __vif_priv->self_sta_index; in wcn36xx_set_tx_mgmt()
456 bd->dpu_desc_idx = __vif_priv->self_dpu_desc_index; in wcn36xx_set_tx_mgmt()
457 bd->dpu_ne = 1; in wcn36xx_set_tx_mgmt()
461 bd->bd_rate = (WCN36XX_BAND(wcn) == NL80211_BAND_5GHZ) ? in wcn36xx_set_tx_mgmt()
465 bd->bd_rate = WCN36XX_BD_RATE_CTRL; in wcn36xx_set_tx_mgmt()
479 bd->ub = 1; in wcn36xx_set_tx_mgmt()
481 bd->ack_policy = 1; in wcn36xx_set_tx_mgmt()
482 bd->queue_id = WCN36XX_TX_B_WQ_ID; in wcn36xx_set_tx_mgmt()
484 bd->queue_id = WCN36XX_TX_U_WQ_ID; in wcn36xx_set_tx_mgmt()
487 wcn36xx_set_tx_pdu(bd, in wcn36xx_set_tx_mgmt()
505 struct wcn36xx_tx_bd bd; in wcn36xx_start_tx() local
508 memset(&bd, 0, sizeof(bd)); in wcn36xx_start_tx()
518 bd.dpu_rf = WCN36XX_BMU_WQ_TX; in wcn36xx_start_tx()
543 bd.tx_comp = 1; in wcn36xx_start_tx()
548 wcn36xx_set_tx_data(&bd, wcn, &vif_priv, sta_priv, skb, bcast); in wcn36xx_start_tx()
551 wcn36xx_set_tx_mgmt(&bd, wcn, &vif_priv, skb, bcast); in wcn36xx_start_tx()
553 buff_to_be((u32 *)&bd, sizeof(bd)/sizeof(u32)); in wcn36xx_start_tx()
554 bd.tx_bd_sign = 0xbdbdbdbd; in wcn36xx_start_tx()
556 ret = wcn36xx_dxe_tx_frame(wcn, vif_priv, &bd, skb, is_low); in wcn36xx_start_tx()