Lines Matching refs:bd
21 static inline int get_rssi0(struct wcn36xx_rx_bd *bd)
23 return 100 - ((bd->phy_stat0 >> 24) & 0xff);
239 struct wcn36xx_rx_bd *bd;
248 bd = (struct wcn36xx_rx_bd *)skb->data;
249 buff_to_be((u32 *)bd, sizeof(*bd)/sizeof(u32));
251 "BD <<< ", (char *)bd,
254 skb_put(skb, bd->pdu.mpdu_header_off + bd->pdu.mpdu_len);
255 skb_pull(skb, bd->pdu.mpdu_header_off);
262 status.signal = -get_rssi0(bd);
272 if (bd->scan_learn) {
274 * band/channel from bd descriptor.
276 u8 hwch = (bd->reserved0 << 4) + bd->rx_ch;
278 if (bd->rf_band != 1 && hwch <= sizeof(ab_rx_ch_map) && hwch >= 1) {
291 if (bd->rate_id < ARRAY_SIZE(wcn36xx_rate_table)) {
292 rate = &wcn36xx_rate_table[bd->rate_id];
335 static void wcn36xx_set_tx_pdu(struct wcn36xx_tx_bd *bd,
340 bd->pdu.mpdu_header_len = mpdu_header_len;
341 bd->pdu.mpdu_header_off = sizeof(*bd);
342 bd->pdu.mpdu_data_off = bd->pdu.mpdu_header_len +
343 bd->pdu.mpdu_header_off;
344 bd->pdu.mpdu_len = len;
345 bd->pdu.tid = tid;
397 static void wcn36xx_set_tx_data(struct wcn36xx_tx_bd *bd,
411 bd->bd_rate = WCN36XX_BD_RATE_DATA;
421 bd->dpu_sign = sta_priv->ucast_dpu_sign;
423 bd->sta_index = sta_priv->bss_sta_index;
424 bd->dpu_desc_idx = sta_priv->bss_dpu_desc_index;
428 bd->sta_index = sta_priv->sta_index;
429 bd->dpu_desc_idx = sta_priv->dpu_desc_index;
433 bd->sta_index = __vif_priv->self_sta_index;
434 bd->dpu_desc_idx = __vif_priv->self_dpu_desc_index;
435 bd->dpu_sign = __vif_priv->self_ucast_dpu_sign;
441 bd->queue_id = tid;
442 bd->pdu.bd_ssn = WCN36XX_TXBD_SSN_FILL_DPU_QOS;
444 bd->pdu.bd_ssn = WCN36XX_TXBD_SSN_FILL_DPU_NON_QOS;
449 bd->dpu_ne = 1;
454 bd->queue_id = WCN36XX_TX_U_WQ_ID;
455 bd->bd_rate = WCN36XX_BD_RATE_CTRL;
457 bd->pdu.bd_ssn = WCN36XX_TXBD_SSN_FILL_HOST;
461 bd->ub = 1;
462 bd->ack_policy = 1;
466 wcn36xx_set_tx_pdu(bd,
476 static void wcn36xx_set_tx_mgmt(struct wcn36xx_tx_bd *bd,
485 bd->sta_index = __vif_priv->self_sta_index;
486 bd->dpu_desc_idx = __vif_priv->self_dpu_desc_index;
487 bd->dpu_ne = 1;
491 bd->bd_rate = (WCN36XX_BAND(wcn) == NL80211_BAND_5GHZ) ?
495 bd->bd_rate = WCN36XX_BD_RATE_CTRL;
509 bd->ub = 1;
511 bd->ack_policy = 1;
512 bd->queue_id = WCN36XX_TX_B_WQ_ID;
514 bd->queue_id = WCN36XX_TX_U_WQ_ID;
517 bd->pdu.bd_ssn = WCN36XX_TXBD_SSN_FILL_DPU_NON_QOS;
519 wcn36xx_set_tx_pdu(bd,
538 struct wcn36xx_tx_bd bd;
541 memset(&bd, 0, sizeof(bd));
551 bd.dpu_rf = WCN36XX_BMU_WQ_TX;
562 bd.tx_comp = 1;
567 wcn36xx_set_tx_data(&bd, wcn, &vif_priv, sta_priv, skb, bcast);
570 wcn36xx_set_tx_mgmt(&bd, wcn, &vif_priv, skb, bcast);
572 buff_to_be((u32 *)&bd, sizeof(bd)/sizeof(u32));
573 bd.tx_bd_sign = 0xbdbdbdbd;
575 ret = wcn36xx_dxe_tx_frame(wcn, vif_priv, &bd, skb, is_low);