Lines Matching defs:h2c

1255 		rtw89_err(rtwdev, "failed to send h2c\n");
1332 rtw89_err(rtwdev, "failed to send h2c\n");
1799 rtw89_err(rtwdev, "failed to send h2c\n");
1814 struct rtw89_h2c_dctlinfo_ud_v1 *h2c;
1815 u32 len = sizeof(*h2c);
1825 h2c = (struct rtw89_h2c_dctlinfo_ud_v1 *)skb->data;
1827 rtw89_cam_fill_dctl_sec_cam_info_v1(rtwdev, rtwvif, rtwsta, h2c);
1837 rtw89_err(rtwdev, "failed to send h2c\n");
1853 struct rtw89_h2c_dctlinfo_ud_v2 *h2c;
1854 u32 len = sizeof(*h2c);
1864 h2c = (struct rtw89_h2c_dctlinfo_ud_v2 *)skb->data;
1866 rtw89_cam_fill_dctl_sec_cam_info_v2(rtwdev, rtwvif, rtwsta, h2c);
1876 rtw89_err(rtwdev, "failed to send h2c\n");
1893 struct rtw89_h2c_dctlinfo_ud_v2 *h2c;
1894 u32 len = sizeof(*h2c);
1904 h2c = (struct rtw89_h2c_dctlinfo_ud_v2 *)skb->data;
1906 h2c->c0 = le32_encode_bits(mac_id, DCTLINFO_V2_C0_MACID) |
1909 h2c->m0 = cpu_to_le32(DCTLINFO_V2_W0_ALL);
1910 h2c->m1 = cpu_to_le32(DCTLINFO_V2_W1_ALL);
1911 h2c->m2 = cpu_to_le32(DCTLINFO_V2_W2_ALL);
1912 h2c->m3 = cpu_to_le32(DCTLINFO_V2_W3_ALL);
1913 h2c->m4 = cpu_to_le32(DCTLINFO_V2_W4_ALL);
1914 h2c->m5 = cpu_to_le32(DCTLINFO_V2_W5_ALL);
1915 h2c->m6 = cpu_to_le32(DCTLINFO_V2_W6_ALL);
1916 h2c->m7 = cpu_to_le32(DCTLINFO_V2_W7_ALL);
1917 h2c->m8 = cpu_to_le32(DCTLINFO_V2_W8_ALL);
1918 h2c->m9 = cpu_to_le32(DCTLINFO_V2_W9_ALL);
1919 h2c->m10 = cpu_to_le32(DCTLINFO_V2_W10_ALL);
1920 h2c->m11 = cpu_to_le32(DCTLINFO_V2_W11_ALL);
1921 h2c->m12 = cpu_to_le32(DCTLINFO_V2_W12_ALL);
1931 rtw89_err(rtwdev, "failed to send h2c\n");
1948 struct rtw89_h2c_ba_cam *h2c;
1950 u32 len = sizeof(*h2c);
1963 "failed to %s entry tid=%d for h2c ba cam\n",
1970 rtw89_err(rtwdev, "failed to alloc skb for h2c ba cam\n");
1974 h2c = (struct rtw89_h2c_ba_cam *)skb->data;
1976 h2c->w0 = le32_encode_bits(macid, RTW89_H2C_BA_CAM_W0_MACID);
1978 h2c->w1 |= le32_encode_bits(entry_idx, RTW89_H2C_BA_CAM_W1_ENTRY_IDX_V1);
1980 h2c->w0 |= le32_encode_bits(entry_idx, RTW89_H2C_BA_CAM_W0_ENTRY_IDX);
1983 h2c->w0 |= le32_encode_bits(valid, RTW89_H2C_BA_CAM_W0_VALID) |
1986 h2c->w0 |= le32_encode_bits(4, RTW89_H2C_BA_CAM_W0_BMAP_SIZE);
1988 h2c->w0 |= le32_encode_bits(0, RTW89_H2C_BA_CAM_W0_BMAP_SIZE);
1990 h2c->w0 |= le32_encode_bits(1, RTW89_H2C_BA_CAM_W0_INIT_REQ) |
1994 h2c->w1 |= le32_encode_bits(1, RTW89_H2C_BA_CAM_W1_STD_EN) |
2007 rtw89_err(rtwdev, "failed to send h2c\n");
2022 struct rtw89_h2c_ba_cam *h2c;
2023 u32 len = sizeof(*h2c);
2029 rtw89_err(rtwdev, "failed to alloc skb for dynamic h2c ba cam\n");
2033 h2c = (struct rtw89_h2c_ba_cam *)skb->data;
2035 h2c->w0 = le32_encode_bits(1, RTW89_H2C_BA_CAM_W0_VALID);
2036 h2c->w1 = le32_encode_bits(entry_idx, RTW89_H2C_BA_CAM_W1_ENTRY_IDX_V1) |
2049 rtw89_err(rtwdev, "failed to send h2c\n");
2079 struct rtw89_h2c_ba_cam_v1 *h2c;
2081 u32 len = sizeof(*h2c);
2095 "failed to %s entry tid=%d for h2c ba cam\n",
2102 rtw89_err(rtwdev, "failed to alloc skb for h2c ba cam\n");
2106 h2c = (struct rtw89_h2c_ba_cam_v1 *)skb->data;
2117 h2c->w0 = le32_encode_bits(valid, RTW89_H2C_BA_CAM_V1_W0_VALID) |
2125 h2c->w1 = le32_encode_bits(entry_idx, RTW89_H2C_BA_CAM_V1_W1_ENTRY_IDX_MASK) |
2137 rtw89_err(rtwdev, "failed to send h2c\n");
2152 struct rtw89_h2c_ba_cam_init *h2c;
2153 u32 len = sizeof(*h2c);
2159 rtw89_err(rtwdev, "failed to alloc skb for h2c ba cam init\n");
2163 h2c = (struct rtw89_h2c_ba_cam_init *)skb->data;
2165 h2c->w0 = le32_encode_bits(users, RTW89_H2C_BA_CAM_INIT_USERS_MASK) |
2177 rtw89_err(rtwdev, "failed to send h2c\n");
2220 rtw89_err(rtwdev, "failed to send h2c\n");
2474 rtw89_err(rtwdev, "failed to send h2c\n");
2518 rtw89_err(rtwdev, "failed to send h2c\n");
2534 struct rtw89_h2c_lps_ch_info *h2c;
2535 u32 len = sizeof(*h2c);
2545 rtw89_err(rtwdev, "failed to alloc skb for h2c lps_ch_info\n");
2549 h2c = (struct rtw89_h2c_lps_ch_info *)skb->data;
2551 h2c->info[0].central_ch = chan->channel;
2552 h2c->info[0].pri_ch = chan->primary_channel;
2553 h2c->info[0].band = chan->band_type;
2554 h2c->info[0].bw = chan->band_width;
2555 h2c->mlo_dbcc_mode_lps = cpu_to_le32(MLO_2_PLUS_0_1RF);
2564 rtw89_err(rtwdev, "failed to send h2c\n");
2594 rtw89_err(rtwdev, "failed to alloc skb for h2c p2p act\n");
2621 rtw89_err(rtwdev, "failed to send h2c\n");
2693 rtw89_err(rtwdev, "failed to send h2c\n");
2710 struct rtw89_h2c_cctlinfo_ud_g7 *h2c;
2711 u32 len = sizeof(*h2c);
2721 h2c = (struct rtw89_h2c_cctlinfo_ud_g7 *)skb->data;
2723 h2c->c0 = le32_encode_bits(mac_id, CCTLINFO_G7_C0_MACID) |
2726 h2c->w0 = le32_encode_bits(4, CCTLINFO_G7_W0_DATARATE);
2727 h2c->m0 = cpu_to_le32(CCTLINFO_G7_W0_ALL);
2729 h2c->w1 = le32_encode_bits(4, CCTLINFO_G7_W1_DATA_RTY_LOWEST_RATE) |
2732 h2c->m1 = cpu_to_le32(CCTLINFO_G7_W1_ALL);
2734 h2c->m2 = cpu_to_le32(CCTLINFO_G7_W2_ALL);
2736 h2c->m3 = cpu_to_le32(CCTLINFO_G7_W3_ALL);
2738 h2c->w4 = le32_encode_bits(0xFFFF, CCTLINFO_G7_W4_ACT_SUBCH_CBW);
2739 h2c->m4 = cpu_to_le32(CCTLINFO_G7_W4_ALL);
2741 h2c->w5 = le32_encode_bits(2, CCTLINFO_G7_W5_NOMINAL_PKT_PADDING0) |
2746 h2c->m5 = cpu_to_le32(CCTLINFO_G7_W5_ALL);
2748 h2c->w6 = le32_encode_bits(0xb, CCTLINFO_G7_W6_RESP_REF_RATE);
2749 h2c->m6 = cpu_to_le32(CCTLINFO_G7_W6_ALL);
2751 h2c->w7 = le32_encode_bits(1, CCTLINFO_G7_W7_NC) |
2756 h2c->m7 = cpu_to_le32(CCTLINFO_G7_W7_ALL);
2758 h2c->m8 = cpu_to_le32(CCTLINFO_G7_W8_ALL);
2760 h2c->w14 = le32_encode_bits(0, CCTLINFO_G7_W14_VO_CURR_RATE) |
2763 h2c->m14 = cpu_to_le32(CCTLINFO_G7_W14_ALL);
2765 h2c->w15 = le32_encode_bits(0, CCTLINFO_G7_W15_BE_CURR_RATE_H) |
2768 h2c->m15 = cpu_to_le32(CCTLINFO_G7_W15_ALL);
2777 rtw89_err(rtwdev, "failed to send h2c\n");
2911 rtw89_err(rtwdev, "failed to send h2c\n");
2988 struct rtw89_h2c_cctlinfo_ud_g7 *h2c;
2990 u32 len = sizeof(*h2c);
3016 h2c = (struct rtw89_h2c_cctlinfo_ud_g7 *)skb->data;
3018 h2c->c0 = le32_encode_bits(mac_id, CCTLINFO_G7_C0_MACID) |
3021 h2c->w0 = le32_encode_bits(1, CCTLINFO_G7_W0_DISRTSFB) |
3023 h2c->m0 = cpu_to_le32(CCTLINFO_G7_W0_DISRTSFB |
3026 h2c->w1 = le32_encode_bits(lowest_rate, CCTLINFO_G7_W1_RTS_RTY_LOWEST_RATE);
3027 h2c->m1 = cpu_to_le32(CCTLINFO_G7_W1_RTS_RTY_LOWEST_RATE);
3029 h2c->w2 = le32_encode_bits(0, CCTLINFO_G7_W2_DATA_TXCNT_LMT_SEL);
3030 h2c->m2 = cpu_to_le32(CCTLINFO_G7_W2_DATA_TXCNT_LMT_SEL);
3032 h2c->w3 = le32_encode_bits(0, CCTLINFO_G7_W3_RTS_TXCNT_LMT_SEL);
3033 h2c->m3 = cpu_to_le32(CCTLINFO_G7_W3_RTS_TXCNT_LMT_SEL);
3035 h2c->w4 = le32_encode_bits(rtwvif->port, CCTLINFO_G7_W4_MULTI_PORT_ID);
3036 h2c->m4 = cpu_to_le32(CCTLINFO_G7_W4_MULTI_PORT_ID);
3039 h2c->w4 |= le32_encode_bits(0, CCTLINFO_G7_W4_DATA_DCM);
3040 h2c->m4 |= cpu_to_le32(CCTLINFO_G7_W4_DATA_DCM);
3046 h2c->w4 |= le32_encode_bits(~punct,
3048 h2c->m4 |= cpu_to_le32(CCTLINFO_G7_W4_ACT_SUBCH_CBW);
3051 h2c->w5 = le32_encode_bits(pads[RTW89_CHANNEL_WIDTH_20],
3061 h2c->m5 = cpu_to_le32(CCTLINFO_G7_W5_NOMINAL_PKT_PADDING0 |
3067 h2c->w6 = le32_encode_bits(vif->type == NL80211_IFTYPE_STATION ? 1 : 0,
3069 h2c->m6 = cpu_to_le32(CCTLINFO_G7_W6_ULDL);
3072 h2c->w8 = le32_encode_bits(sta->deflink.he_cap.has_he,
3074 h2c->m8 = cpu_to_le32(CCTLINFO_G7_W8_BSR_QUEUE_SIZE_FORMAT);
3084 rtw89_err(rtwdev, "failed to send h2c\n");
3101 struct rtw89_h2c_cctlinfo_ud_g7 *h2c;
3102 u32 len = sizeof(*h2c);
3115 h2c = (struct rtw89_h2c_cctlinfo_ud_g7 *)skb->data;
3137 h2c->c0 = le32_encode_bits(rtwsta->mac_id, CCTLINFO_G7_C0_MACID) |
3140 h2c->w3 = le32_encode_bits(ba_bmap, CCTLINFO_G7_W3_BA_BMAP);
3141 h2c->m3 = cpu_to_le32(CCTLINFO_G7_W3_BA_BMAP);
3150 rtw89_err(rtwdev, "failed to send h2c\n");
3193 rtw89_err(rtwdev, "failed to send h2c\n");
3232 rtw89_err(rtwdev, "failed to send h2c\n");
3249 struct rtw89_h2c_bcn_upd *h2c;
3252 u32 len = sizeof(*h2c);
3293 h2c = (struct rtw89_h2c_bcn_upd *)skb->data;
3295 h2c->w0 = le32_encode_bits(rtwvif->port, RTW89_H2C_BCN_UPD_W0_PORT) |
3299 h2c->w1 = le32_encode_bits(rtwvif->mac_id, RTW89_H2C_BCN_UPD_W1_MACID) |
3314 rtw89_err(rtwdev, "failed to send h2c\n");
3328 struct rtw89_h2c_bcn_upd_be *h2c;
3331 u32 len = sizeof(*h2c);
3372 h2c = (struct rtw89_h2c_bcn_upd_be *)skb->data;
3374 h2c->w0 = le32_encode_bits(rtwvif->port, RTW89_H2C_BCN_UPD_BE_W0_PORT) |
3378 h2c->w1 = le32_encode_bits(rtwvif->mac_id, RTW89_H2C_BCN_UPD_BE_W1_MACID) |
3393 rtw89_err(rtwdev, "failed to send h2c\n");
3428 rtw89_err(rtwdev, "failed to alloc skb for h2c join\n");
3444 rtw89_err(rtwdev, "failed to send h2c\n");
3490 struct rtw89_h2c_join *h2c;
3491 u32 len = sizeof(*h2c);
3507 rtw89_err(rtwdev, "failed to alloc skb for h2c join\n");
3511 h2c = (struct rtw89_h2c_join *)skb->data;
3513 h2c->w0 = le32_encode_bits(mac_id, RTW89_H2C_JOININFO_W0_MACID) |
3545 rtw89_err(rtwdev, "failed to send h2c\n");
3558 struct rtw89_h2c_notify_dbcc *h2c;
3559 u32 len = sizeof(*h2c);
3565 rtw89_err(rtwdev, "failed to alloc skb for h2c notify dbcc\n");
3569 h2c = (struct rtw89_h2c_notify_dbcc *)skb->data;
3571 h2c->w0 = le32_encode_bits(en, RTW89_H2C_NOTIFY_DBCC_EN);
3580 rtw89_err(rtwdev, "failed to send h2c\n");
3595 struct rtw89_fw_macid_pause_grp *h2c;
3607 len = sizeof(*h2c);
3612 rtw89_err(rtwdev, "failed to alloc skb for h2c macid pause\n");
3627 h2c = (struct rtw89_fw_macid_pause_grp *)skb->data;
3629 h2c->mask_grp[grp] = set;
3631 h2c->pause_grp[grp] = set;
3641 rtw89_err(rtwdev, "failed to send h2c\n");
3661 rtw89_err(rtwdev, "failed to alloc skb for h2c edca\n");
3678 rtw89_err(rtwdev, "failed to send h2c\n");
3700 rtw89_err(rtwdev, "failed to alloc skb for h2c p2p act\n");
3718 rtw89_err(rtwdev, "failed to send h2c\n");
3738 rtw89_err(rtwdev, "failed to alloc skb for h2c ofld\n");
3750 rtw89_err(rtwdev, "failed to send h2c\n");
3769 struct rtw89_h2c_bcnfltr *h2c;
3770 u32 len = sizeof(*h2c);
3782 rtw89_err(rtwdev, "failed to alloc skb for h2c bcn filter\n");
3787 h2c = (struct rtw89_h2c_bcnfltr *)skb->data;
3794 h2c->w0 = le32_encode_bits(connect, RTW89_H2C_BCNFLTR_W0_MON_RSSI) |
3811 rtw89_err(rtwdev, "failed to send h2c\n");
3825 struct rtw89_h2c_ofld_rssi *h2c;
3826 u32 len = sizeof(*h2c);
3839 rtw89_err(rtwdev, "failed to alloc skb for h2c rssi\n");
3845 h2c = (struct rtw89_h2c_ofld_rssi *)skb->data;
3847 h2c->w0 = le32_encode_bits(phy_ppdu->mac_id, RTW89_H2C_OFLD_RSSI_W0_MACID) |
3849 h2c->w1 = le32_encode_bits(rssi, RTW89_H2C_OFLD_RSSI_W1_VAL);
3857 rtw89_err(rtwdev, "failed to send h2c\n");
3871 struct rtw89_h2c_ofld *h2c;
3872 u32 len = sizeof(*h2c);
3881 rtw89_err(rtwdev, "failed to alloc skb for h2c tp\n");
3886 h2c = (struct rtw89_h2c_ofld *)skb->data;
3888 h2c->w0 = le32_encode_bits(rtwvif->mac_id, RTW89_H2C_OFLD_W0_MAC_ID) |
3898 rtw89_err(rtwdev, "failed to send h2c\n");
3913 struct rtw89_h2c_ra *h2c;
3914 u32 len = sizeof(*h2c);
3926 rtw89_err(rtwdev, "failed to alloc skb for h2c join\n");
3930 h2c = (struct rtw89_h2c_ra *)skb->data;
3938 h2c->w0 = le32_encode_bits(ra->mode_ctrl, RTW89_H2C_RA_W0_MODE) |
3952 h2c->w1 = le32_encode_bits(ra->ra_mask, RTW89_H2C_RA_W1_RAMASK_LO32);
3953 h2c->w2 = le32_encode_bits(ra->ra_mask >> 32, RTW89_H2C_RA_W2_RAMASK_HI32);
3954 h2c->w3 = le32_encode_bits(ra->fix_giltf_en, RTW89_H2C_RA_W3_FIX_GILTF_EN) |
3960 h2c_v1 = (struct rtw89_h2c_ra_v1 *)h2c;
3968 h2c->w2 |= le32_encode_bits(1, RTW89_H2C_RA_W2_BFEE_CSI_CTL);
3969 h2c->w3 |= le32_encode_bits(ra->band_num, RTW89_H2C_RA_W3_BAND_NUM) |
3986 rtw89_err(rtwdev, "failed to send h2c\n");
4004 struct rtw89_h2c_cxinit *h2c;
4005 u32 len = sizeof(*h2c);
4011 rtw89_err(rtwdev, "failed to alloc skb for h2c cxdrv_init\n");
4015 h2c = (struct rtw89_h2c_cxinit *)skb->data;
4017 h2c->hdr.type = type;
4018 h2c->hdr.len = len - H2C_LEN_CXDRVHDR;
4020 h2c->ant_type = ant->type;
4021 h2c->ant_num = ant->num;
4022 h2c->ant_iso = ant->isolation;
4023 h2c->ant_info =
4029 h2c->mod_rfe = module->rfe_type;
4030 h2c->mod_cv = module->cv;
4031 h2c->mod_info =
4036 h2c->mod_adie_kt = module->kt_ver_adie;
4037 h2c->wl_gch = init_info->wl_guard_ch;
4039 h2c->info =
4053 rtw89_err(rtwdev, "failed to send h2c\n");
4069 struct rtw89_h2c_cxinit_v7 *h2c;
4070 u32 len = sizeof(*h2c);
4076 rtw89_err(rtwdev, "failed to alloc skb for h2c cxdrv_init_v7\n");
4080 h2c = (struct rtw89_h2c_cxinit_v7 *)skb->data;
4082 h2c->hdr.type = type;
4083 h2c->hdr.ver = btc->ver->fcxinit;
4084 h2c->hdr.len = len - H2C_LEN_CXDRVHDR_V7;
4085 h2c->init = *init_info;
4094 rtw89_err(rtwdev, "failed to send h2c\n");
4129 rtw89_err(rtwdev, "failed to alloc skb for h2c cxdrv_role\n");
4177 rtw89_err(rtwdev, "failed to send h2c\n");
4209 rtw89_err(rtwdev, "failed to alloc skb for h2c cxdrv_role\n");
4267 rtw89_err(rtwdev, "failed to send h2c\n");
4299 rtw89_err(rtwdev, "failed to alloc skb for h2c cxdrv_role\n");
4353 rtw89_err(rtwdev, "failed to send h2c\n");
4368 struct rtw89_h2c_cxrole_v8 *h2c;
4369 u32 len = sizeof(*h2c);
4375 rtw89_err(rtwdev, "failed to alloc skb for h2c cxdrv_ctrl\n");
4379 h2c = (struct rtw89_h2c_cxrole_v8 *)skb->data;
4381 h2c->hdr.type = type;
4382 h2c->hdr.len = len - H2C_LEN_CXDRVHDR_V7;
4383 memcpy(&h2c->_u8, role, sizeof(h2c->_u8));
4384 h2c->_u32.role_map = cpu_to_le32(role->role_map);
4385 h2c->_u32.mrole_type = cpu_to_le32(role->mrole_type);
4386 h2c->_u32.mrole_noa_duration = cpu_to_le32(role->mrole_noa_duration);
4395 rtw89_err(rtwdev, "failed to send h2c\n");
4418 rtw89_err(rtwdev, "failed to alloc skb for h2c cxdrv_ctrl\n");
4440 rtw89_err(rtwdev, "failed to send h2c\n");
4455 struct rtw89_h2c_cxctrl_v7 *h2c;
4456 u32 len = sizeof(*h2c);
4462 rtw89_err(rtwdev, "failed to alloc skb for h2c cxdrv_ctrl\n");
4466 h2c = (struct rtw89_h2c_cxctrl_v7 *)skb->data;
4468 h2c->hdr.type = type;
4469 h2c->hdr.ver = btc->ver->fcxctrl;
4470 h2c->hdr.len = sizeof(*h2c) - H2C_LEN_CXDRVHDR_V7;
4471 h2c->ctrl = *ctrl;
4479 rtw89_err(rtwdev, "failed to send h2c\n");
4501 rtw89_err(rtwdev, "failed to alloc skb for h2c cxdrv_trx\n");
4535 rtw89_err(rtwdev, "failed to send h2c\n");
4558 rtw89_err(rtwdev, "failed to alloc skb for h2c cxdrv_ctrl\n");
4580 rtw89_err(rtwdev, "failed to send h2c\n");
4602 rtw89_err(rtwdev, "failed to alloc skb for h2c pkt offload\n");
4649 rtw89_err(rtwdev, "failed to alloc skb for h2c pkt offload\n");
4686 struct rtw89_h2c_chinfo *h2c;
4694 skb_len = struct_size(h2c, elem, ch_num);
4697 rtw89_err(rtwdev, "failed to alloc skb for h2c scan list\n");
4700 skb_put(skb, sizeof(*h2c));
4701 h2c = (struct rtw89_h2c_chinfo *)skb->data;
4703 h2c->ch_num = ch_num;
4704 h2c->elem_size = sizeof(*elem) / 4; /* in unit of 4 bytes */
4757 struct rtw89_h2c_chinfo *h2c;
4765 skb_len = struct_size(h2c, elem, ch_num);
4768 rtw89_err(rtwdev, "failed to alloc skb for h2c scan list\n");
4772 skb_put(skb, sizeof(*h2c));
4773 h2c = (struct rtw89_h2c_chinfo *)skb->data;
4775 h2c->ch_num = ch_num;
4776 h2c->elem_size = sizeof(*elem) / 4; /* in unit of 4 bytes */
4777 h2c->arg = u8_encode_bits(RTW89_PHY_0, RTW89_H2C_CHINFO_ARG_MAC_IDX_MASK);
4853 struct rtw89_h2c_scanofld *h2c;
4854 u32 len = sizeof(*h2c);
4861 rtw89_err(rtwdev, "failed to alloc skb for h2c scan offload\n");
4865 h2c = (struct rtw89_h2c_scanofld *)skb->data;
4867 h2c->w0 = le32_encode_bits(rtwvif->mac_id, RTW89_H2C_SCANOFLD_W0_MACID) |
4872 h2c->w1 = le32_encode_bits(true, RTW89_H2C_SCANOFLD_W1_NOTIFY_END) |
4880 h2c->w1 |= le32_encode_bits(op->band_width,
4886 h2c->w0 |= le32_encode_bits(op->band_type,
4942 struct rtw89_h2c_scanofld_be *h2c;
4959 len = sizeof(*h2c) + macc_role_size + opch_size;
4962 rtw89_err(rtwdev, "failed to alloc skb for h2c scan offload\n");
4967 h2c = (struct rtw89_h2c_scanofld_be *)skb->data;
4980 h2c->w0 = le32_encode_bits(option->operation, RTW89_H2C_SCANOFLD_BE_W0_OP) |
4990 h2c->w1 = le32_encode_bits(option->num_macc_role, RTW89_H2C_SCANOFLD_BE_W1_NUM_MACC_ROLE) |
4994 h2c->w2 = le32_encode_bits(option->slow_pd, RTW89_H2C_SCANOFLD_BE_W2_SLOW_PD) |
4998 h2c->w3 = le32_encode_bits(0, RTW89_H2C_SCANOFLD_BE_W3_NUM_SSID) |
5003 h2c->w4 = le32_encode_bits(probe_id[NL80211_BAND_5GHZ],
5009 h2c->w5 = le32_encode_bits(option->mlo_mode, RTW89_H2C_SCANOFLD_BE_W5_MLO_MODE);
5011 h2c->w6 = le32_encode_bits(option->prohib_chan,
5013 h2c->w7 = le32_encode_bits(option->prohib_chan >> 32,
5016 h2c->w0 |= le32_encode_bits(true, RTW89_H2C_SCANOFLD_BE_W0_PROBE_WITH_RATE);
5017 h2c->w8 = le32_encode_bits(RTW89_HW_RATE_OFDM6,
5024 ptr += sizeof(*h2c);
5027 macc_role = (struct rtw89_h2c_scanofld_be_macc_role *)&h2c->role[i];
5116 rtw89_err(rtwdev, "failed to alloc skb for h2c rf reg\n");
5127 rtw89_err(rtwdev, "failed to send h2c\n");
5148 rtw89_err(rtwdev, "failed to alloc skb for h2c cxdrv_ctrl\n");
5169 rtw89_err(rtwdev, "failed to send h2c\n");
5185 struct rtw89_fw_h2c_rfk_pre_info *h2c;
5187 u32 len = sizeof(*h2c);
5195 rtw89_err(rtwdev, "failed to alloc skb for h2c rfk_pre_ntfy\n");
5199 h2c = (struct rtw89_fw_h2c_rfk_pre_info *)skb->data;
5201 h2c->mlo_mode = cpu_to_le32(rtwdev->mlo_dbcc_mode);
5207 h2c->dbcc.ch[path][tbl] = cpu_to_le32(rfk_mcc->ch[tbl]);
5208 h2c->dbcc.band[path][tbl] = cpu_to_le32(rfk_mcc->band[tbl]);
5213 h2c->tbl.cur_ch[path] = cpu_to_le32(rfk_mcc->ch[tbl_sel]);
5214 h2c->tbl.cur_band[path] = cpu_to_le32(rfk_mcc->band[tbl_sel]);
5217 h2c->phy_idx = cpu_to_le32(phy_idx);
5218 h2c->cur_band = cpu_to_le32(rfk_mcc->band[tbl_sel]);
5219 h2c->cur_bw = cpu_to_le32(rfk_mcc->bw[tbl_sel]);
5220 h2c->cur_center_ch = cpu_to_le32(rfk_mcc->ch[tbl_sel]);
5223 h2c->ktbl_sel0 = cpu_to_le32(val32);
5225 h2c->ktbl_sel1 = cpu_to_le32(val32);
5227 h2c->rfmod0 = cpu_to_le32(val32);
5229 h2c->rfmod1 = cpu_to_le32(val32);
5232 h2c->mlo_1_1 = cpu_to_le32(1);
5234 h2c->rfe_type = cpu_to_le32(rtwdev->efuse.rfe_type);
5243 rtw89_err(rtwdev, "failed to send h2c\n");
5260 struct rtw89_h2c_rf_tssi *h2c;
5261 u32 len = sizeof(*h2c);
5267 rtw89_err(rtwdev, "failed to alloc skb for h2c RF TSSI\n");
5271 h2c = (struct rtw89_h2c_rf_tssi *)skb->data;
5273 h2c->len = cpu_to_le16(len);
5274 h2c->phy = phy_idx;
5275 h2c->ch = chan->channel;
5276 h2c->bw = chan->band_width;
5277 h2c->band = chan->band_type;
5278 h2c->hwtx_en = true;
5279 h2c->cv = hal->cv;
5280 h2c->tssi_mode = tssi_mode;
5282 rtw89_phy_rfk_tssi_fill_fwcmd_efuse_to_de(rtwdev, phy_idx, chan, h2c);
5283 rtw89_phy_rfk_tssi_fill_fwcmd_tmeter_tbl(rtwdev, phy_idx, chan, h2c);
5291 rtw89_err(rtwdev, "failed to send h2c\n");
5304 struct rtw89_h2c_rf_iqk *h2c;
5305 u32 len = sizeof(*h2c);
5311 rtw89_err(rtwdev, "failed to alloc skb for h2c RF IQK\n");
5315 h2c = (struct rtw89_h2c_rf_iqk *)skb->data;
5317 h2c->phy_idx = cpu_to_le32(phy_idx);
5318 h2c->dbcc = cpu_to_le32(rtwdev->dbcc_en);
5326 rtw89_err(rtwdev, "failed to send h2c\n");
5341 struct rtw89_h2c_rf_dpk *h2c;
5342 u32 len = sizeof(*h2c);
5348 rtw89_err(rtwdev, "failed to alloc skb for h2c RF DPK\n");
5352 h2c = (struct rtw89_h2c_rf_dpk *)skb->data;
5354 h2c->len = len;
5355 h2c->phy = phy_idx;
5356 h2c->dpk_enable = true;
5357 h2c->kpath = RF_AB;
5358 h2c->cur_band = chan->band_type;
5359 h2c->cur_bw = chan->band_width;
5360 h2c->cur_ch = chan->channel;
5361 h2c->dpk_dbg_en = rtw89_debug_is_enabled(rtwdev, RTW89_DBG_RFK);
5369 rtw89_err(rtwdev, "failed to send h2c\n");
5385 struct rtw89_h2c_rf_txgapk *h2c;
5386 u32 len = sizeof(*h2c);
5392 rtw89_err(rtwdev, "failed to alloc skb for h2c RF TXGAPK\n");
5396 h2c = (struct rtw89_h2c_rf_txgapk *)skb->data;
5398 h2c->len = len;
5399 h2c->ktype = 2;
5400 h2c->phy = phy_idx;
5401 h2c->kpath = RF_AB;
5402 h2c->band = chan->band_type;
5403 h2c->bw = chan->band_width;
5404 h2c->ch = chan->channel;
5405 h2c->cv = hal->cv;
5413 rtw89_err(rtwdev, "failed to send h2c\n");
5426 struct rtw89_h2c_rf_dack *h2c;
5427 u32 len = sizeof(*h2c);
5433 rtw89_err(rtwdev, "failed to alloc skb for h2c RF DACK\n");
5437 h2c = (struct rtw89_h2c_rf_dack *)skb->data;
5439 h2c->len = cpu_to_le32(len);
5440 h2c->phy = cpu_to_le32(phy_idx);
5441 h2c->type = cpu_to_le32(0);
5449 rtw89_err(rtwdev, "failed to send h2c\n");
5464 struct rtw89_h2c_rf_rxdck *h2c;
5465 u32 len = sizeof(*h2c);
5471 rtw89_err(rtwdev, "failed to alloc skb for h2c RF RXDCK\n");
5475 h2c = (struct rtw89_h2c_rf_rxdck *)skb->data;
5477 h2c->len = len;
5478 h2c->phy = phy_idx;
5479 h2c->is_afe = false;
5480 h2c->kpath = RF_AB;
5481 h2c->cur_band = chan->band_type;
5482 h2c->cur_bw = chan->band_width;
5483 h2c->cur_ch = chan->channel;
5484 h2c->rxdck_dbg_en = rtw89_debug_is_enabled(rtwdev, RTW89_DBG_RFK);
5492 rtw89_err(rtwdev, "failed to send h2c\n");
5523 rtw89_err(rtwdev, "failed to send h2c\n");
5541 rtw89_err(rtwdev, "failed to alloc skb for h2c raw\n");
5548 rtw89_err(rtwdev, "failed to send h2c\n");
5566 rtw89_fw_h2c_raw(rtwdev, early_h2c->h2c, early_h2c->h2c_len);
5577 kfree(early_h2c->h2c);
5689 rtw89_warn(rtwdev, "FW does not process h2c registers\n");
6440 rtw89_err(rtwdev, "failed to send h2c\n");
6503 rtw89_err(rtwdev, "failed to send h2c\n");
6551 rtw89_err(rtwdev, "failed to send h2c\n");
6566 struct rtw89_h2c_arp_offload *h2c;
6567 u32 len = sizeof(*h2c);
6587 h2c = (struct rtw89_h2c_arp_offload *)skb->data;
6589 h2c->w0 = le32_encode_bits(enable, RTW89_H2C_ARP_OFFLOAD_W0_ENABLE) |
6602 rtw89_err(rtwdev, "failed to send h2c\n");
6647 rtw89_err(rtwdev, "failed to send h2c\n");
6663 struct rtw89_h2c_wow_global *h2c;
6665 u32 len = sizeof(*h2c);
6676 h2c = (struct rtw89_h2c_wow_global *)skb->data;
6678 h2c->w0 = le32_encode_bits(enable, RTW89_H2C_WOW_GLOBAL_W0_ENABLE) |
6684 h2c->key_info = rtw_wow->key_info;
6694 rtw89_err(rtwdev, "failed to send h2c\n");
6741 rtw89_err(rtwdev, "failed to send h2c\n");
6794 rtw89_err(rtwdev, "failed to send h2c\n");
6811 struct rtw89_h2c_wow_gtk_ofld *h2c;
6813 u32 len = sizeof(*h2c);
6829 h2c = (struct rtw89_h2c_wow_gtk_ofld *)skb->data;
6849 h2c->w0 = le32_encode_bits(enable, RTW89_H2C_WOW_GTK_OFLD_W0_EN) |
6855 h2c->w1 = le32_encode_bits(gtk_info->igtk_keyid ? pkt_id_sa_query : 0,
6858 h2c->gtk_info = rtw_wow->gtk_info;
6869 rtw89_err(rtwdev, "failed to send h2c\n");
6883 struct rtw89_h2c_wow_aoac *h2c;
6884 u32 len = sizeof(*h2c);
6921 rtw89_err(rtwdev, "failed to send h2c\n");
7364 rtw89_err(rtwdev, "failed to send h2c\n");
7376 struct rtw89_h2c_mrc_start *h2c;
7377 u32 len = sizeof(*h2c);
7388 h2c = (struct rtw89_h2c_mrc_start *)skb->data;
7390 h2c->w0 = le32_encode_bits(arg->sch_idx,
7397 h2c->start_tsf_high = cpu_to_le32(arg->start_tsf >> 32);
7398 h2c->start_tsf_low = cpu_to_le32(arg->start_tsf);
7413 struct rtw89_h2c_mrc_del *h2c;
7414 u32 len = sizeof(*h2c);
7425 h2c = (struct rtw89_h2c_mrc_del *)skb->data;
7427 h2c->w0 = le32_encode_bits(sch_idx, RTW89_H2C_MRC_DEL_W0_SCH_IDX);
7444 struct rtw89_h2c_mrc_req_tsf *h2c;
7451 len = struct_size(h2c, infos, arg->num);
7459 h2c = (struct rtw89_h2c_mrc_req_tsf *)skb->data;
7461 h2c->req_tsf_num = arg->num;
7463 h2c->infos[i] =
7488 struct rtw89_h2c_mrc_upd_bitmap *h2c;
7489 u32 len = sizeof(*h2c);
7500 h2c = (struct rtw89_h2c_mrc_upd_bitmap *)skb->data;
7502 h2c->w0 = le32_encode_bits(arg->sch_idx,
7508 h2c->w1 = le32_encode_bits(arg->client_macid,
7519 rtw89_err(rtwdev, "failed to send h2c\n");
7530 struct rtw89_h2c_mrc_sync *h2c;
7531 u32 len = sizeof(*h2c);
7542 h2c = (struct rtw89_h2c_mrc_sync *)skb->data;
7544 h2c->w0 = le32_encode_bits(true, RTW89_H2C_MRC_SYNC_W0_SYNC_EN) |
7553 h2c->w1 = le32_encode_bits(arg->offset, RTW89_H2C_MRC_SYNC_W1_OFFSET);
7563 rtw89_err(rtwdev, "failed to send h2c\n");
7574 struct rtw89_h2c_mrc_upd_duration *h2c;
7580 len = struct_size(h2c, slots, arg->slot_num);
7588 h2c = (struct rtw89_h2c_mrc_upd_duration *)skb->data;
7590 h2c->w0 = le32_encode_bits(arg->sch_idx,
7597 h2c->start_tsf_high = cpu_to_le32(arg->start_tsf >> 32);
7598 h2c->start_tsf_low = cpu_to_le32(arg->start_tsf);
7601 h2c->slots[i] =
7616 rtw89_err(rtwdev, "failed to send h2c\n");