Lines Matching refs:skb

56 				    struct sk_buff *skb);
57 static int rtw89_h2c_tx_and_wait(struct rtw89_dev *rtwdev, struct sk_buff *skb,
72 struct sk_buff *skb; in rtw89_fw_h2c_alloc_skb() local
79 skb = dev_alloc_skb(len + header_len + h2c_desc_size); in rtw89_fw_h2c_alloc_skb()
80 if (!skb) in rtw89_fw_h2c_alloc_skb()
82 skb_reserve(skb, header_len + h2c_desc_size); in rtw89_fw_h2c_alloc_skb()
83 memset(skb->data, 0, len); in rtw89_fw_h2c_alloc_skb()
85 return skb; in rtw89_fw_h2c_alloc_skb()
1210 void rtw89_h2c_pkt_set_hdr(struct rtw89_dev *rtwdev, struct sk_buff *skb, in rtw89_h2c_pkt_set_hdr() argument
1216 hdr = (struct fwcmd_hdr *)skb_push(skb, 8); in rtw89_h2c_pkt_set_hdr()
1235 struct sk_buff *skb, in rtw89_h2c_pkt_set_hdr_fwdl() argument
1241 hdr = (struct fwcmd_hdr *)skb_push(skb, 8); in rtw89_h2c_pkt_set_hdr_fwdl()
1316 struct sk_buff *skb; in __rtw89_fw_download_hdr() local
1320 skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, len); in __rtw89_fw_download_hdr()
1321 if (!skb) { in __rtw89_fw_download_hdr()
1326 skb_put_data(skb, fw, len); in __rtw89_fw_download_hdr()
1330 fw_hdr = (struct rtw89_fw_hdr *)skb->data; in __rtw89_fw_download_hdr()
1334 fw_hdr_v1 = (struct rtw89_fw_hdr_v1 *)skb->data; in __rtw89_fw_download_hdr()
1344 skb_trim(skb, len); in __rtw89_fw_download_hdr()
1347 rtw89_h2c_pkt_set_hdr_fwdl(rtwdev, skb, FWCMD_TYPE_H2C, in __rtw89_fw_download_hdr()
1351 ret = rtw89_h2c_tx(rtwdev, skb, false); in __rtw89_fw_download_hdr()
1360 dev_kfree_skb_any(skb); in __rtw89_fw_download_hdr()
1393 struct sk_buff *skb; in __rtw89_fw_download_main() local
1427 skb = rtw89_fw_h2c_alloc_skb_no_hdr(rtwdev, pkt_len); in __rtw89_fw_download_main()
1428 if (!skb) { in __rtw89_fw_download_main()
1432 skb_put_data(skb, section, pkt_len); in __rtw89_fw_download_main()
1435 memcpy(skb->data + pkt_len - info->key_len, in __rtw89_fw_download_main()
1438 ret = rtw89_h2c_tx(rtwdev, skb, true); in __rtw89_fw_download_main()
1451 dev_kfree_skb_any(skb); in __rtw89_fw_download_main()
1889 struct sk_buff *skb; in rtw89_fw_h2c_cam() local
1892 skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, H2C_CAM_LEN); in rtw89_fw_h2c_cam()
1893 if (!skb) { in rtw89_fw_h2c_cam()
1897 skb_put(skb, H2C_CAM_LEN); in rtw89_fw_h2c_cam()
1899 skb->data); in rtw89_fw_h2c_cam()
1900 rtw89_cam_fill_bssid_cam_info(rtwdev, rtwvif_link, rtwsta_link, skb->data); in rtw89_fw_h2c_cam()
1902 rtw89_h2c_pkt_set_hdr(rtwdev, skb, FWCMD_TYPE_H2C, in rtw89_fw_h2c_cam()
1908 ret = rtw89_h2c_tx(rtwdev, skb, false); in rtw89_fw_h2c_cam()
1916 dev_kfree_skb_any(skb); in rtw89_fw_h2c_cam()
1927 struct sk_buff *skb; in rtw89_fw_h2c_dctl_sec_cam_v1() local
1930 skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, len); in rtw89_fw_h2c_dctl_sec_cam_v1()
1931 if (!skb) { in rtw89_fw_h2c_dctl_sec_cam_v1()
1935 skb_put(skb, len); in rtw89_fw_h2c_dctl_sec_cam_v1()
1936 h2c = (struct rtw89_h2c_dctlinfo_ud_v1 *)skb->data; in rtw89_fw_h2c_dctl_sec_cam_v1()
1940 rtw89_h2c_pkt_set_hdr(rtwdev, skb, FWCMD_TYPE_H2C, in rtw89_fw_h2c_dctl_sec_cam_v1()
1946 ret = rtw89_h2c_tx(rtwdev, skb, false); in rtw89_fw_h2c_dctl_sec_cam_v1()
1954 dev_kfree_skb_any(skb); in rtw89_fw_h2c_dctl_sec_cam_v1()
1966 struct sk_buff *skb; in rtw89_fw_h2c_dctl_sec_cam_v2() local
1969 skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, len); in rtw89_fw_h2c_dctl_sec_cam_v2()
1970 if (!skb) { in rtw89_fw_h2c_dctl_sec_cam_v2()
1974 skb_put(skb, len); in rtw89_fw_h2c_dctl_sec_cam_v2()
1975 h2c = (struct rtw89_h2c_dctlinfo_ud_v2 *)skb->data; in rtw89_fw_h2c_dctl_sec_cam_v2()
1979 rtw89_h2c_pkt_set_hdr(rtwdev, skb, FWCMD_TYPE_H2C, in rtw89_fw_h2c_dctl_sec_cam_v2()
1985 ret = rtw89_h2c_tx(rtwdev, skb, false); in rtw89_fw_h2c_dctl_sec_cam_v2()
1993 dev_kfree_skb_any(skb); in rtw89_fw_h2c_dctl_sec_cam_v2()
2006 struct sk_buff *skb; in rtw89_fw_h2c_default_dmac_tbl_v2() local
2009 skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, len); in rtw89_fw_h2c_default_dmac_tbl_v2()
2010 if (!skb) { in rtw89_fw_h2c_default_dmac_tbl_v2()
2014 skb_put(skb, len); in rtw89_fw_h2c_default_dmac_tbl_v2()
2015 h2c = (struct rtw89_h2c_dctlinfo_ud_v2 *)skb->data; in rtw89_fw_h2c_default_dmac_tbl_v2()
2034 rtw89_h2c_pkt_set_hdr(rtwdev, skb, FWCMD_TYPE_H2C, in rtw89_fw_h2c_default_dmac_tbl_v2()
2040 ret = rtw89_h2c_tx(rtwdev, skb, false); in rtw89_fw_h2c_default_dmac_tbl_v2()
2048 dev_kfree_skb_any(skb); in rtw89_fw_h2c_default_dmac_tbl_v2()
2063 struct sk_buff *skb; in rtw89_fw_h2c_ba_cam() local
2082 skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, len); in rtw89_fw_h2c_ba_cam()
2083 if (!skb) { in rtw89_fw_h2c_ba_cam()
2087 skb_put(skb, len); in rtw89_fw_h2c_ba_cam()
2088 h2c = (struct rtw89_h2c_ba_cam *)skb->data; in rtw89_fw_h2c_ba_cam()
2114 rtw89_h2c_pkt_set_hdr(rtwdev, skb, FWCMD_TYPE_H2C, in rtw89_fw_h2c_ba_cam()
2120 ret = rtw89_h2c_tx(rtwdev, skb, false); in rtw89_fw_h2c_ba_cam()
2128 dev_kfree_skb_any(skb); in rtw89_fw_h2c_ba_cam()
2139 struct sk_buff *skb; in rtw89_fw_h2c_init_ba_cam_v0_ext() local
2142 skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, len); in rtw89_fw_h2c_init_ba_cam_v0_ext()
2143 if (!skb) { in rtw89_fw_h2c_init_ba_cam_v0_ext()
2147 skb_put(skb, len); in rtw89_fw_h2c_init_ba_cam_v0_ext()
2148 h2c = (struct rtw89_h2c_ba_cam *)skb->data; in rtw89_fw_h2c_init_ba_cam_v0_ext()
2156 rtw89_h2c_pkt_set_hdr(rtwdev, skb, FWCMD_TYPE_H2C, in rtw89_fw_h2c_init_ba_cam_v0_ext()
2162 ret = rtw89_h2c_tx(rtwdev, skb, false); in rtw89_fw_h2c_init_ba_cam_v0_ext()
2170 dev_kfree_skb_any(skb); in rtw89_fw_h2c_init_ba_cam_v0_ext()
2198 struct sk_buff *skb; in rtw89_fw_h2c_ba_cam_v1() local
2218 skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, len); in rtw89_fw_h2c_ba_cam_v1()
2219 if (!skb) { in rtw89_fw_h2c_ba_cam_v1()
2223 skb_put(skb, len); in rtw89_fw_h2c_ba_cam_v1()
2224 h2c = (struct rtw89_h2c_ba_cam_v1 *)skb->data; in rtw89_fw_h2c_ba_cam_v1()
2248 rtw89_h2c_pkt_set_hdr(rtwdev, skb, FWCMD_TYPE_H2C, in rtw89_fw_h2c_ba_cam_v1()
2254 ret = rtw89_h2c_tx(rtwdev, skb, false); in rtw89_fw_h2c_ba_cam_v1()
2262 dev_kfree_skb_any(skb); in rtw89_fw_h2c_ba_cam_v1()
2273 struct sk_buff *skb; in rtw89_fw_h2c_init_ba_cam_users() local
2276 skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, len); in rtw89_fw_h2c_init_ba_cam_users()
2277 if (!skb) { in rtw89_fw_h2c_init_ba_cam_users()
2281 skb_put(skb, len); in rtw89_fw_h2c_init_ba_cam_users()
2282 h2c = (struct rtw89_h2c_ba_cam_init *)skb->data; in rtw89_fw_h2c_init_ba_cam_users()
2288 rtw89_h2c_pkt_set_hdr(rtwdev, skb, FWCMD_TYPE_H2C, in rtw89_fw_h2c_init_ba_cam_users()
2294 ret = rtw89_h2c_tx(rtwdev, skb, false); in rtw89_fw_h2c_init_ba_cam_users()
2302 dev_kfree_skb_any(skb); in rtw89_fw_h2c_init_ba_cam_users()
2310 struct sk_buff *skb; in rtw89_fw_h2c_fw_log() local
2319 skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, H2C_LOG_CFG_LEN); in rtw89_fw_h2c_fw_log()
2320 if (!skb) { in rtw89_fw_h2c_fw_log()
2325 skb_put(skb, H2C_LOG_CFG_LEN); in rtw89_fw_h2c_fw_log()
2326 SET_LOG_CFG_LEVEL(skb->data, RTW89_FW_LOG_LEVEL_LOUD); in rtw89_fw_h2c_fw_log()
2327 SET_LOG_CFG_PATH(skb->data, BIT(RTW89_FW_LOG_LEVEL_C2H)); in rtw89_fw_h2c_fw_log()
2328 SET_LOG_CFG_COMP(skb->data, comp); in rtw89_fw_h2c_fw_log()
2329 SET_LOG_CFG_COMP_EXT(skb->data, 0); in rtw89_fw_h2c_fw_log()
2331 rtw89_h2c_pkt_set_hdr(rtwdev, skb, FWCMD_TYPE_H2C, in rtw89_fw_h2c_fw_log()
2337 ret = rtw89_h2c_tx(rtwdev, skb, false); in rtw89_fw_h2c_fw_log()
2345 dev_kfree_skb_any(skb); in rtw89_fw_h2c_fw_log()
2360 struct sk_buff *skb; in rtw89_eapol_get() local
2372 skb = dev_alloc_skb(sizeof(*hdr) + sec_hdr_len + sizeof(*eapol_pkt)); in rtw89_eapol_get()
2373 if (!skb) in rtw89_eapol_get()
2376 hdr = skb_put_zero(skb, sizeof(*hdr)); in rtw89_eapol_get()
2391 skb_put_zero(skb, sec_hdr_len); in rtw89_eapol_get()
2393 eapol_pkt = skb_put_zero(skb, sizeof(*eapol_pkt)); in rtw89_eapol_get()
2397 return skb; in rtw89_eapol_get()
2407 struct sk_buff *skb; in rtw89_sa_query_get() local
2409 skb = dev_alloc_skb(sizeof(*hdr) + sec_hdr_len + sizeof(*sa_query)); in rtw89_sa_query_get()
2410 if (!skb) in rtw89_sa_query_get()
2413 hdr = skb_put_zero(skb, sizeof(*hdr)); in rtw89_sa_query_get()
2428 skb_put_zero(skb, sec_hdr_len); in rtw89_sa_query_get()
2430 sa_query = skb_put_zero(skb, sizeof(*sa_query)); in rtw89_sa_query_get()
2434 return skb; in rtw89_sa_query_get()
2446 struct sk_buff *skb; in rtw89_arp_response_get() local
2449 skb = dev_alloc_skb(sizeof(*hdr) + sec_hdr_len + sizeof(*arp_skb)); in rtw89_arp_response_get()
2450 if (!skb) in rtw89_arp_response_get()
2453 hdr = skb_put_zero(skb, sizeof(*hdr)); in rtw89_arp_response_get()
2466 skb_put_zero(skb, sec_hdr_len); in rtw89_arp_response_get()
2468 arp_skb = skb_put_zero(skb, sizeof(*arp_skb)); in rtw89_arp_response_get()
2482 return skb; in rtw89_arp_response_get()
2493 struct sk_buff *skb; in rtw89_fw_h2c_add_general_pkt() local
2502 skb = ieee80211_pspoll_get(rtwdev->hw, vif); in rtw89_fw_h2c_add_general_pkt()
2505 skb = ieee80211_proberesp_get(rtwdev->hw, vif); in rtw89_fw_h2c_add_general_pkt()
2508 skb = ieee80211_nullfunc_get(rtwdev->hw, vif, link_id, false); in rtw89_fw_h2c_add_general_pkt()
2511 skb = ieee80211_nullfunc_get(rtwdev->hw, vif, link_id, true); in rtw89_fw_h2c_add_general_pkt()
2514 skb = rtw89_eapol_get(rtwdev, rtwvif_link); in rtw89_fw_h2c_add_general_pkt()
2517 skb = rtw89_sa_query_get(rtwdev, rtwvif_link); in rtw89_fw_h2c_add_general_pkt()
2520 skb = rtw89_arp_response_get(rtwdev, rtwvif_link); in rtw89_fw_h2c_add_general_pkt()
2526 if (!skb) in rtw89_fw_h2c_add_general_pkt()
2529 ret = rtw89_fw_h2c_add_pkt_offload(rtwdev, &info->id, skb); in rtw89_fw_h2c_add_general_pkt()
2530 kfree_skb(skb); in rtw89_fw_h2c_add_general_pkt()
2581 struct sk_buff *skb; in rtw89_fw_h2c_general_pkt() local
2591 skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, H2C_GENERAL_PKT_LEN); in rtw89_fw_h2c_general_pkt()
2592 if (!skb) { in rtw89_fw_h2c_general_pkt()
2596 skb_put(skb, H2C_GENERAL_PKT_LEN); in rtw89_fw_h2c_general_pkt()
2597 SET_GENERAL_PKT_MACID(skb->data, macid); in rtw89_fw_h2c_general_pkt()
2598 SET_GENERAL_PKT_PROBRSP_ID(skb->data, H2C_GENERAL_PKT_ID_UND); in rtw89_fw_h2c_general_pkt()
2599 SET_GENERAL_PKT_PSPOLL_ID(skb->data, pkt_id_ps_poll); in rtw89_fw_h2c_general_pkt()
2600 SET_GENERAL_PKT_NULL_ID(skb->data, pkt_id_null); in rtw89_fw_h2c_general_pkt()
2601 SET_GENERAL_PKT_QOS_NULL_ID(skb->data, pkt_id_qos_null); in rtw89_fw_h2c_general_pkt()
2602 SET_GENERAL_PKT_CTS2SELF_ID(skb->data, H2C_GENERAL_PKT_ID_UND); in rtw89_fw_h2c_general_pkt()
2604 rtw89_h2c_pkt_set_hdr(rtwdev, skb, FWCMD_TYPE_H2C, in rtw89_fw_h2c_general_pkt()
2610 ret = rtw89_h2c_tx(rtwdev, skb, false); in rtw89_fw_h2c_general_pkt()
2618 dev_kfree_skb_any(skb); in rtw89_fw_h2c_general_pkt()
2627 struct sk_buff *skb; in rtw89_fw_h2c_lps_parm() local
2630 skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, H2C_LPS_PARM_LEN); in rtw89_fw_h2c_lps_parm()
2631 if (!skb) { in rtw89_fw_h2c_lps_parm()
2635 skb_put(skb, H2C_LPS_PARM_LEN); in rtw89_fw_h2c_lps_parm()
2637 SET_LPS_PARM_MACID(skb->data, lps_param->macid); in rtw89_fw_h2c_lps_parm()
2638 SET_LPS_PARM_PSMODE(skb->data, lps_param->psmode); in rtw89_fw_h2c_lps_parm()
2639 SET_LPS_PARM_LASTRPWM(skb->data, lps_param->lastrpwm); in rtw89_fw_h2c_lps_parm()
2640 SET_LPS_PARM_RLBM(skb->data, 1); in rtw89_fw_h2c_lps_parm()
2641 SET_LPS_PARM_SMARTPS(skb->data, 1); in rtw89_fw_h2c_lps_parm()
2642 SET_LPS_PARM_AWAKEINTERVAL(skb->data, 1); in rtw89_fw_h2c_lps_parm()
2643 SET_LPS_PARM_VOUAPSD(skb->data, 0); in rtw89_fw_h2c_lps_parm()
2644 SET_LPS_PARM_VIUAPSD(skb->data, 0); in rtw89_fw_h2c_lps_parm()
2645 SET_LPS_PARM_BEUAPSD(skb->data, 0); in rtw89_fw_h2c_lps_parm()
2646 SET_LPS_PARM_BKUAPSD(skb->data, 0); in rtw89_fw_h2c_lps_parm()
2648 rtw89_h2c_pkt_set_hdr(rtwdev, skb, FWCMD_TYPE_H2C, in rtw89_fw_h2c_lps_parm()
2654 ret = rtw89_h2c_tx(rtwdev, skb, false); in rtw89_fw_h2c_lps_parm()
2662 dev_kfree_skb_any(skb); in rtw89_fw_h2c_lps_parm()
2675 struct sk_buff *skb; in rtw89_fw_h2c_lps_ch_info() local
2684 skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, len); in rtw89_fw_h2c_lps_ch_info()
2685 if (!skb) { in rtw89_fw_h2c_lps_ch_info()
2689 skb_put(skb, len); in rtw89_fw_h2c_lps_ch_info()
2690 h2c = (struct rtw89_h2c_lps_ch_info *)skb->data; in rtw89_fw_h2c_lps_ch_info()
2714 rtw89_h2c_pkt_set_hdr(rtwdev, skb, FWCMD_TYPE_H2C, in rtw89_fw_h2c_lps_ch_info()
2719 ret = rtw89_h2c_tx(rtwdev, skb, false); in rtw89_fw_h2c_lps_ch_info()
2732 dev_kfree_skb_any(skb); in rtw89_fw_h2c_lps_ch_info()
2749 struct sk_buff *skb; in rtw89_fw_h2c_lps_ml_cmn_info() local
2759 skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, len); in rtw89_fw_h2c_lps_ml_cmn_info()
2760 if (!skb) { in rtw89_fw_h2c_lps_ml_cmn_info()
2764 skb_put(skb, len); in rtw89_fw_h2c_lps_ml_cmn_info()
2765 h2c = (struct rtw89_h2c_lps_ml_cmn_info *)skb->data; in rtw89_fw_h2c_lps_ml_cmn_info()
2795 rtw89_h2c_pkt_set_hdr(rtwdev, skb, FWCMD_TYPE_H2C, in rtw89_fw_h2c_lps_ml_cmn_info()
2800 ret = rtw89_h2c_tx(rtwdev, skb, false); in rtw89_fw_h2c_lps_ml_cmn_info()
2813 dev_kfree_skb_any(skb); in rtw89_fw_h2c_lps_ml_cmn_info()
2827 struct sk_buff *skb; in rtw89_fw_h2c_p2p_act() local
2831 skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, H2C_P2P_ACT_LEN); in rtw89_fw_h2c_p2p_act()
2832 if (!skb) { in rtw89_fw_h2c_p2p_act()
2836 skb_put(skb, H2C_P2P_ACT_LEN); in rtw89_fw_h2c_p2p_act()
2837 cmd = skb->data; in rtw89_fw_h2c_p2p_act()
2853 rtw89_h2c_pkt_set_hdr(rtwdev, skb, FWCMD_TYPE_H2C, in rtw89_fw_h2c_p2p_act()
2858 ret = rtw89_h2c_tx(rtwdev, skb, false); in rtw89_fw_h2c_p2p_act()
2866 dev_kfree_skb_any(skb); in rtw89_fw_h2c_p2p_act()
2872 struct sk_buff *skb) in __rtw89_fw_h2c_set_tx_path() argument
2887 SET_CMC_TBL_NTX_PATH_EN(skb->data, ntx_path); in __rtw89_fw_h2c_set_tx_path()
2888 SET_CMC_TBL_PATH_MAP_A(skb->data, 0); in __rtw89_fw_h2c_set_tx_path()
2889 SET_CMC_TBL_PATH_MAP_B(skb->data, map_b); in __rtw89_fw_h2c_set_tx_path()
2890 SET_CMC_TBL_PATH_MAP_C(skb->data, 0); in __rtw89_fw_h2c_set_tx_path()
2891 SET_CMC_TBL_PATH_MAP_D(skb->data, 0); in __rtw89_fw_h2c_set_tx_path()
2901 struct sk_buff *skb; in rtw89_fw_h2c_default_cmac_tbl() local
2904 skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, H2C_CMC_TBL_LEN); in rtw89_fw_h2c_default_cmac_tbl()
2905 if (!skb) { in rtw89_fw_h2c_default_cmac_tbl()
2909 skb_put(skb, H2C_CMC_TBL_LEN); in rtw89_fw_h2c_default_cmac_tbl()
2910 SET_CTRL_INFO_MACID(skb->data, macid); in rtw89_fw_h2c_default_cmac_tbl()
2911 SET_CTRL_INFO_OPERATION(skb->data, 1); in rtw89_fw_h2c_default_cmac_tbl()
2913 SET_CMC_TBL_TXPWR_MODE(skb->data, 0); in rtw89_fw_h2c_default_cmac_tbl()
2914 __rtw89_fw_h2c_set_tx_path(rtwdev, skb); in rtw89_fw_h2c_default_cmac_tbl()
2915 SET_CMC_TBL_ANTSEL_A(skb->data, 0); in rtw89_fw_h2c_default_cmac_tbl()
2916 SET_CMC_TBL_ANTSEL_B(skb->data, 0); in rtw89_fw_h2c_default_cmac_tbl()
2917 SET_CMC_TBL_ANTSEL_C(skb->data, 0); in rtw89_fw_h2c_default_cmac_tbl()
2918 SET_CMC_TBL_ANTSEL_D(skb->data, 0); in rtw89_fw_h2c_default_cmac_tbl()
2920 SET_CMC_TBL_DOPPLER_CTRL(skb->data, 0); in rtw89_fw_h2c_default_cmac_tbl()
2921 SET_CMC_TBL_TXPWR_TOLERENCE(skb->data, 0); in rtw89_fw_h2c_default_cmac_tbl()
2923 SET_CMC_TBL_DATA_DCM(skb->data, 0); in rtw89_fw_h2c_default_cmac_tbl()
2925 rtw89_h2c_pkt_set_hdr(rtwdev, skb, FWCMD_TYPE_H2C, in rtw89_fw_h2c_default_cmac_tbl()
2930 ret = rtw89_h2c_tx(rtwdev, skb, false); in rtw89_fw_h2c_default_cmac_tbl()
2938 dev_kfree_skb_any(skb); in rtw89_fw_h2c_default_cmac_tbl()
2951 struct sk_buff *skb; in rtw89_fw_h2c_default_cmac_tbl_g7() local
2954 skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, len); in rtw89_fw_h2c_default_cmac_tbl_g7()
2955 if (!skb) { in rtw89_fw_h2c_default_cmac_tbl_g7()
2959 skb_put(skb, len); in rtw89_fw_h2c_default_cmac_tbl_g7()
2960 h2c = (struct rtw89_h2c_cctlinfo_ud_g7 *)skb->data; in rtw89_fw_h2c_default_cmac_tbl_g7()
3009 rtw89_h2c_pkt_set_hdr(rtwdev, skb, FWCMD_TYPE_H2C, in rtw89_fw_h2c_default_cmac_tbl_g7()
3014 ret = rtw89_h2c_tx(rtwdev, skb, false); in rtw89_fw_h2c_default_cmac_tbl_g7()
3022 dev_kfree_skb_any(skb); in rtw89_fw_h2c_default_cmac_tbl_g7()
3092 struct sk_buff *skb; in rtw89_fw_h2c_assoc_cmac_tbl() local
3100 skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, H2C_CMC_TBL_LEN); in rtw89_fw_h2c_assoc_cmac_tbl()
3101 if (!skb) { in rtw89_fw_h2c_assoc_cmac_tbl()
3121 skb_put(skb, H2C_CMC_TBL_LEN); in rtw89_fw_h2c_assoc_cmac_tbl()
3122 SET_CTRL_INFO_MACID(skb->data, mac_id); in rtw89_fw_h2c_assoc_cmac_tbl()
3123 SET_CTRL_INFO_OPERATION(skb->data, 1); in rtw89_fw_h2c_assoc_cmac_tbl()
3124 SET_CMC_TBL_DISRTSFB(skb->data, 1); in rtw89_fw_h2c_assoc_cmac_tbl()
3125 SET_CMC_TBL_DISDATAFB(skb->data, 1); in rtw89_fw_h2c_assoc_cmac_tbl()
3126 SET_CMC_TBL_RTS_RTY_LOWEST_RATE(skb->data, lowest_rate); in rtw89_fw_h2c_assoc_cmac_tbl()
3127 SET_CMC_TBL_RTS_TXCNT_LMT_SEL(skb->data, 0); in rtw89_fw_h2c_assoc_cmac_tbl()
3128 SET_CMC_TBL_DATA_TXCNT_LMT_SEL(skb->data, 0); in rtw89_fw_h2c_assoc_cmac_tbl()
3130 SET_CMC_TBL_ULDL(skb->data, 1); in rtw89_fw_h2c_assoc_cmac_tbl()
3132 SET_CMC_TBL_ULDL(skb->data, 0); in rtw89_fw_h2c_assoc_cmac_tbl()
3133 SET_CMC_TBL_MULTI_PORT_ID(skb->data, rtwvif_link->port); in rtw89_fw_h2c_assoc_cmac_tbl()
3135 SET_CMC_TBL_NOMINAL_PKT_PADDING_V1(skb->data, pads[RTW89_CHANNEL_WIDTH_20]); in rtw89_fw_h2c_assoc_cmac_tbl()
3136 SET_CMC_TBL_NOMINAL_PKT_PADDING40_V1(skb->data, pads[RTW89_CHANNEL_WIDTH_40]); in rtw89_fw_h2c_assoc_cmac_tbl()
3137 SET_CMC_TBL_NOMINAL_PKT_PADDING80_V1(skb->data, pads[RTW89_CHANNEL_WIDTH_80]); in rtw89_fw_h2c_assoc_cmac_tbl()
3138 SET_CMC_TBL_NOMINAL_PKT_PADDING160_V1(skb->data, pads[RTW89_CHANNEL_WIDTH_160]); in rtw89_fw_h2c_assoc_cmac_tbl()
3140 SET_CMC_TBL_NOMINAL_PKT_PADDING(skb->data, pads[RTW89_CHANNEL_WIDTH_20]); in rtw89_fw_h2c_assoc_cmac_tbl()
3141 SET_CMC_TBL_NOMINAL_PKT_PADDING40(skb->data, pads[RTW89_CHANNEL_WIDTH_40]); in rtw89_fw_h2c_assoc_cmac_tbl()
3142 SET_CMC_TBL_NOMINAL_PKT_PADDING80(skb->data, pads[RTW89_CHANNEL_WIDTH_80]); in rtw89_fw_h2c_assoc_cmac_tbl()
3143 SET_CMC_TBL_NOMINAL_PKT_PADDING160(skb->data, pads[RTW89_CHANNEL_WIDTH_160]); in rtw89_fw_h2c_assoc_cmac_tbl()
3146 SET_CMC_TBL_BSR_QUEUE_SIZE_FORMAT(skb->data, in rtw89_fw_h2c_assoc_cmac_tbl()
3149 SET_CMC_TBL_DATA_DCM(skb->data, 0); in rtw89_fw_h2c_assoc_cmac_tbl()
3153 rtw89_h2c_pkt_set_hdr(rtwdev, skb, FWCMD_TYPE_H2C, in rtw89_fw_h2c_assoc_cmac_tbl()
3158 ret = rtw89_h2c_tx(rtwdev, skb, false); in rtw89_fw_h2c_assoc_cmac_tbl()
3166 dev_kfree_skb_any(skb); in rtw89_fw_h2c_assoc_cmac_tbl()
3242 struct sk_buff *skb; in rtw89_fw_h2c_assoc_cmac_tbl_g7() local
3248 skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, len); in rtw89_fw_h2c_assoc_cmac_tbl_g7()
3249 if (!skb) { in rtw89_fw_h2c_assoc_cmac_tbl_g7()
3274 skb_put(skb, len); in rtw89_fw_h2c_assoc_cmac_tbl_g7()
3275 h2c = (struct rtw89_h2c_cctlinfo_ud_g7 *)skb->data; in rtw89_fw_h2c_assoc_cmac_tbl_g7()
3338 rtw89_h2c_pkt_set_hdr(rtwdev, skb, FWCMD_TYPE_H2C, in rtw89_fw_h2c_assoc_cmac_tbl_g7()
3343 ret = rtw89_h2c_tx(rtwdev, skb, false); in rtw89_fw_h2c_assoc_cmac_tbl_g7()
3351 dev_kfree_skb_any(skb); in rtw89_fw_h2c_assoc_cmac_tbl_g7()
3364 struct sk_buff *skb; in rtw89_fw_h2c_ampdu_cmac_tbl_g7() local
3370 skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, len); in rtw89_fw_h2c_ampdu_cmac_tbl_g7()
3371 if (!skb) { in rtw89_fw_h2c_ampdu_cmac_tbl_g7()
3375 skb_put(skb, len); in rtw89_fw_h2c_ampdu_cmac_tbl_g7()
3376 h2c = (struct rtw89_h2c_cctlinfo_ud_g7 *)skb->data; in rtw89_fw_h2c_ampdu_cmac_tbl_g7()
3404 rtw89_h2c_pkt_set_hdr(rtwdev, skb, FWCMD_TYPE_H2C, in rtw89_fw_h2c_ampdu_cmac_tbl_g7()
3409 ret = rtw89_h2c_tx(rtwdev, skb, false); in rtw89_fw_h2c_ampdu_cmac_tbl_g7()
3417 dev_kfree_skb_any(skb); in rtw89_fw_h2c_ampdu_cmac_tbl_g7()
3427 struct sk_buff *skb; in rtw89_fw_h2c_txtime_cmac_tbl() local
3430 skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, H2C_CMC_TBL_LEN); in rtw89_fw_h2c_txtime_cmac_tbl()
3431 if (!skb) { in rtw89_fw_h2c_txtime_cmac_tbl()
3435 skb_put(skb, H2C_CMC_TBL_LEN); in rtw89_fw_h2c_txtime_cmac_tbl()
3436 SET_CTRL_INFO_MACID(skb->data, rtwsta_link->mac_id); in rtw89_fw_h2c_txtime_cmac_tbl()
3437 SET_CTRL_INFO_OPERATION(skb->data, 1); in rtw89_fw_h2c_txtime_cmac_tbl()
3439 SET_CMC_TBL_AMPDU_TIME_SEL(skb->data, 1); in rtw89_fw_h2c_txtime_cmac_tbl()
3440 SET_CMC_TBL_AMPDU_MAX_TIME(skb->data, rtwsta_link->ampdu_max_time); in rtw89_fw_h2c_txtime_cmac_tbl()
3443 SET_CMC_TBL_DATA_TXCNT_LMT_SEL(skb->data, 1); in rtw89_fw_h2c_txtime_cmac_tbl()
3444 SET_CMC_TBL_DATA_TX_CNT_LMT(skb->data, rtwsta_link->data_tx_cnt_lmt); in rtw89_fw_h2c_txtime_cmac_tbl()
3447 rtw89_h2c_pkt_set_hdr(rtwdev, skb, FWCMD_TYPE_H2C, in rtw89_fw_h2c_txtime_cmac_tbl()
3452 ret = rtw89_h2c_tx(rtwdev, skb, false); in rtw89_fw_h2c_txtime_cmac_tbl()
3460 dev_kfree_skb_any(skb); in rtw89_fw_h2c_txtime_cmac_tbl()
3469 struct sk_buff *skb; in rtw89_fw_h2c_txpath_cmac_tbl() local
3475 skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, H2C_CMC_TBL_LEN); in rtw89_fw_h2c_txpath_cmac_tbl()
3476 if (!skb) { in rtw89_fw_h2c_txpath_cmac_tbl()
3480 skb_put(skb, H2C_CMC_TBL_LEN); in rtw89_fw_h2c_txpath_cmac_tbl()
3481 SET_CTRL_INFO_MACID(skb->data, rtwsta_link->mac_id); in rtw89_fw_h2c_txpath_cmac_tbl()
3482 SET_CTRL_INFO_OPERATION(skb->data, 1); in rtw89_fw_h2c_txpath_cmac_tbl()
3484 __rtw89_fw_h2c_set_tx_path(rtwdev, skb); in rtw89_fw_h2c_txpath_cmac_tbl()
3486 rtw89_h2c_pkt_set_hdr(rtwdev, skb, FWCMD_TYPE_H2C, in rtw89_fw_h2c_txpath_cmac_tbl()
3491 ret = rtw89_h2c_tx(rtwdev, skb, false); in rtw89_fw_h2c_txpath_cmac_tbl()
3499 dev_kfree_skb_any(skb); in rtw89_fw_h2c_txpath_cmac_tbl()
3514 struct sk_buff *skb; in rtw89_fw_h2c_update_beacon() local
3547 skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, bcn_total_len); in rtw89_fw_h2c_update_beacon()
3548 if (!skb) { in rtw89_fw_h2c_update_beacon()
3553 skb_put(skb, len); in rtw89_fw_h2c_update_beacon()
3554 h2c = (struct rtw89_h2c_bcn_upd *)skb->data; in rtw89_fw_h2c_update_beacon()
3565 skb_put_data(skb, skb_beacon->data, skb_beacon->len); in rtw89_fw_h2c_update_beacon()
3568 rtw89_h2c_pkt_set_hdr(rtwdev, skb, FWCMD_TYPE_H2C, in rtw89_fw_h2c_update_beacon()
3573 ret = rtw89_h2c_tx(rtwdev, skb, false); in rtw89_fw_h2c_update_beacon()
3576 dev_kfree_skb_any(skb); in rtw89_fw_h2c_update_beacon()
3593 struct sk_buff *skb; in rtw89_fw_h2c_update_beacon_be() local
3626 skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, bcn_total_len); in rtw89_fw_h2c_update_beacon_be()
3627 if (!skb) { in rtw89_fw_h2c_update_beacon_be()
3632 skb_put(skb, len); in rtw89_fw_h2c_update_beacon_be()
3633 h2c = (struct rtw89_h2c_bcn_upd_be *)skb->data; in rtw89_fw_h2c_update_beacon_be()
3644 skb_put_data(skb, skb_beacon->data, skb_beacon->len); in rtw89_fw_h2c_update_beacon_be()
3647 rtw89_h2c_pkt_set_hdr(rtwdev, skb, FWCMD_TYPE_H2C, in rtw89_fw_h2c_update_beacon_be()
3652 ret = rtw89_h2c_tx(rtwdev, skb, false); in rtw89_fw_h2c_update_beacon_be()
3661 dev_kfree_skb_any(skb); in rtw89_fw_h2c_update_beacon_be()
3673 struct sk_buff *skb; in rtw89_fw_h2c_role_maintain() local
3687 skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, H2C_ROLE_MAINTAIN_LEN); in rtw89_fw_h2c_role_maintain()
3688 if (!skb) { in rtw89_fw_h2c_role_maintain()
3692 skb_put(skb, H2C_ROLE_MAINTAIN_LEN); in rtw89_fw_h2c_role_maintain()
3693 SET_FWROLE_MAINTAIN_MACID(skb->data, mac_id); in rtw89_fw_h2c_role_maintain()
3694 SET_FWROLE_MAINTAIN_SELF_ROLE(skb->data, self_role); in rtw89_fw_h2c_role_maintain()
3695 SET_FWROLE_MAINTAIN_UPD_MODE(skb->data, upd_mode); in rtw89_fw_h2c_role_maintain()
3696 SET_FWROLE_MAINTAIN_WIFI_ROLE(skb->data, rtwvif_link->wifi_role); in rtw89_fw_h2c_role_maintain()
3698 rtw89_h2c_pkt_set_hdr(rtwdev, skb, FWCMD_TYPE_H2C, in rtw89_fw_h2c_role_maintain()
3703 ret = rtw89_h2c_tx(rtwdev, skb, false); in rtw89_fw_h2c_role_maintain()
3711 dev_kfree_skb_any(skb); in rtw89_fw_h2c_role_maintain()
3759 struct sk_buff *skb; in rtw89_fw_h2c_join_info() local
3780 skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, len); in rtw89_fw_h2c_join_info()
3781 if (!skb) { in rtw89_fw_h2c_join_info()
3785 skb_put(skb, len); in rtw89_fw_h2c_join_info()
3786 h2c = (struct rtw89_h2c_join *)skb->data; in rtw89_fw_h2c_join_info()
3806 h2c_v1 = (struct rtw89_h2c_join_v1 *)skb->data; in rtw89_fw_h2c_join_info()
3814 rtw89_h2c_pkt_set_hdr(rtwdev, skb, FWCMD_TYPE_H2C, in rtw89_fw_h2c_join_info()
3819 ret = rtw89_h2c_tx(rtwdev, skb, false); in rtw89_fw_h2c_join_info()
3827 dev_kfree_skb_any(skb); in rtw89_fw_h2c_join_info()
3836 struct sk_buff *skb; in rtw89_fw_h2c_notify_dbcc() local
3839 skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, len); in rtw89_fw_h2c_notify_dbcc()
3840 if (!skb) { in rtw89_fw_h2c_notify_dbcc()
3844 skb_put(skb, len); in rtw89_fw_h2c_notify_dbcc()
3845 h2c = (struct rtw89_h2c_notify_dbcc *)skb->data; in rtw89_fw_h2c_notify_dbcc()
3849 rtw89_h2c_pkt_set_hdr(rtwdev, skb, FWCMD_TYPE_H2C, in rtw89_fw_h2c_notify_dbcc()
3854 ret = rtw89_h2c_tx(rtwdev, skb, false); in rtw89_fw_h2c_notify_dbcc()
3862 dev_kfree_skb_any(skb); in rtw89_fw_h2c_notify_dbcc()
3874 struct sk_buff *skb; in rtw89_fw_h2c_macid_pause() local
3886 skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, len); in rtw89_fw_h2c_macid_pause()
3887 if (!skb) { in rtw89_fw_h2c_macid_pause()
3891 skb_put(skb, len); in rtw89_fw_h2c_macid_pause()
3894 h2c_new = (struct rtw89_fw_macid_pause_sleep_grp *)skb->data; in rtw89_fw_h2c_macid_pause()
3903 h2c = (struct rtw89_fw_macid_pause_grp *)skb->data; in rtw89_fw_h2c_macid_pause()
3910 rtw89_h2c_pkt_set_hdr(rtwdev, skb, FWCMD_TYPE_H2C, in rtw89_fw_h2c_macid_pause()
3915 ret = rtw89_h2c_tx(rtwdev, skb, false); in rtw89_fw_h2c_macid_pause()
3923 dev_kfree_skb_any(skb); in rtw89_fw_h2c_macid_pause()
3932 struct sk_buff *skb; in rtw89_fw_h2c_set_edca() local
3935 skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, H2C_EDCA_LEN); in rtw89_fw_h2c_set_edca()
3936 if (!skb) { in rtw89_fw_h2c_set_edca()
3940 skb_put(skb, H2C_EDCA_LEN); in rtw89_fw_h2c_set_edca()
3941 RTW89_SET_EDCA_SEL(skb->data, 0); in rtw89_fw_h2c_set_edca()
3942 RTW89_SET_EDCA_BAND(skb->data, rtwvif_link->mac_idx); in rtw89_fw_h2c_set_edca()
3943 RTW89_SET_EDCA_WMM(skb->data, 0); in rtw89_fw_h2c_set_edca()
3944 RTW89_SET_EDCA_AC(skb->data, ac); in rtw89_fw_h2c_set_edca()
3945 RTW89_SET_EDCA_PARAM(skb->data, val); in rtw89_fw_h2c_set_edca()
3947 rtw89_h2c_pkt_set_hdr(rtwdev, skb, FWCMD_TYPE_H2C, in rtw89_fw_h2c_set_edca()
3952 ret = rtw89_h2c_tx(rtwdev, skb, false); in rtw89_fw_h2c_set_edca()
3960 dev_kfree_skb_any(skb); in rtw89_fw_h2c_set_edca()
3970 struct sk_buff *skb; in rtw89_fw_h2c_tsf32_toggle() local
3975 skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, H2C_TSF32_TOGL_LEN); in rtw89_fw_h2c_tsf32_toggle()
3976 if (!skb) { in rtw89_fw_h2c_tsf32_toggle()
3980 skb_put(skb, H2C_TSF32_TOGL_LEN); in rtw89_fw_h2c_tsf32_toggle()
3981 cmd = skb->data; in rtw89_fw_h2c_tsf32_toggle()
3988 rtw89_h2c_pkt_set_hdr(rtwdev, skb, FWCMD_TYPE_H2C, in rtw89_fw_h2c_tsf32_toggle()
3993 ret = rtw89_h2c_tx(rtwdev, skb, false); in rtw89_fw_h2c_tsf32_toggle()
4001 dev_kfree_skb_any(skb); in rtw89_fw_h2c_tsf32_toggle()
4010 struct sk_buff *skb; in rtw89_fw_h2c_set_ofld_cfg() local
4013 skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, H2C_OFLD_CFG_LEN); in rtw89_fw_h2c_set_ofld_cfg()
4014 if (!skb) { in rtw89_fw_h2c_set_ofld_cfg()
4018 skb_put_data(skb, cfg, H2C_OFLD_CFG_LEN); in rtw89_fw_h2c_set_ofld_cfg()
4020 rtw89_h2c_pkt_set_hdr(rtwdev, skb, FWCMD_TYPE_H2C, in rtw89_fw_h2c_set_ofld_cfg()
4025 ret = rtw89_h2c_tx(rtwdev, skb, false); in rtw89_fw_h2c_set_ofld_cfg()
4033 dev_kfree_skb_any(skb); in rtw89_fw_h2c_set_ofld_cfg()
4042 struct sk_buff *skb; in rtw89_fw_h2c_tx_duty() local
4046 skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, len); in rtw89_fw_h2c_tx_duty()
4047 if (!skb) { in rtw89_fw_h2c_tx_duty()
4052 skb_put(skb, len); in rtw89_fw_h2c_tx_duty()
4053 h2c = (struct rtw89_h2c_tx_duty *)skb->data; in rtw89_fw_h2c_tx_duty()
4067 rtw89_h2c_pkt_set_hdr(rtwdev, skb, FWCMD_TYPE_H2C, in rtw89_fw_h2c_tx_duty()
4071 ret = rtw89_h2c_tx(rtwdev, skb, false); in rtw89_fw_h2c_tx_duty()
4079 dev_kfree_skb_any(skb); in rtw89_fw_h2c_tx_duty()
4093 struct sk_buff *skb; in rtw89_fw_h2c_set_bcn_fltr_cfg() local
4113 skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, len); in rtw89_fw_h2c_set_bcn_fltr_cfg()
4114 if (!skb) { in rtw89_fw_h2c_set_bcn_fltr_cfg()
4119 skb_put(skb, len); in rtw89_fw_h2c_set_bcn_fltr_cfg()
4120 h2c = (struct rtw89_h2c_bcnfltr *)skb->data; in rtw89_fw_h2c_set_bcn_fltr_cfg()
4133 rtw89_h2c_pkt_set_hdr(rtwdev, skb, FWCMD_TYPE_H2C, in rtw89_fw_h2c_set_bcn_fltr_cfg()
4137 ret = rtw89_h2c_tx(rtwdev, skb, false); in rtw89_fw_h2c_set_bcn_fltr_cfg()
4145 dev_kfree_skb_any(skb); in rtw89_fw_h2c_set_bcn_fltr_cfg()
4155 struct sk_buff *skb; in rtw89_fw_h2c_rssi_offload() local
4165 skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, len); in rtw89_fw_h2c_rssi_offload()
4166 if (!skb) { in rtw89_fw_h2c_rssi_offload()
4172 skb_put(skb, len); in rtw89_fw_h2c_rssi_offload()
4173 h2c = (struct rtw89_h2c_ofld_rssi *)skb->data; in rtw89_fw_h2c_rssi_offload()
4179 rtw89_h2c_pkt_set_hdr(rtwdev, skb, FWCMD_TYPE_H2C, in rtw89_fw_h2c_rssi_offload()
4183 ret = rtw89_h2c_tx(rtwdev, skb, false); in rtw89_fw_h2c_rssi_offload()
4191 dev_kfree_skb_any(skb); in rtw89_fw_h2c_rssi_offload()
4202 struct sk_buff *skb; in rtw89_fw_h2c_tp_offload() local
4208 skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, len); in rtw89_fw_h2c_tp_offload()
4209 if (!skb) { in rtw89_fw_h2c_tp_offload()
4214 skb_put(skb, len); in rtw89_fw_h2c_tp_offload()
4215 h2c = (struct rtw89_h2c_ofld *)skb->data; in rtw89_fw_h2c_tp_offload()
4221 rtw89_h2c_pkt_set_hdr(rtwdev, skb, FWCMD_TYPE_H2C, in rtw89_fw_h2c_tp_offload()
4225 ret = rtw89_h2c_tx(rtwdev, skb, false); in rtw89_fw_h2c_tp_offload()
4233 dev_kfree_skb_any(skb); in rtw89_fw_h2c_tp_offload()
4245 struct sk_buff *skb; in rtw89_fw_h2c_ra() local
4253 skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, len); in rtw89_fw_h2c_ra()
4254 if (!skb) { in rtw89_fw_h2c_ra()
4258 skb_put(skb, len); in rtw89_fw_h2c_ra()
4259 h2c = (struct rtw89_h2c_ra *)skb->data; in rtw89_fw_h2c_ra()
4308 rtw89_h2c_pkt_set_hdr(rtwdev, skb, FWCMD_TYPE_H2C, in rtw89_fw_h2c_ra()
4313 ret = rtw89_h2c_tx(rtwdev, skb, false); in rtw89_fw_h2c_ra()
4321 dev_kfree_skb_any(skb); in rtw89_fw_h2c_ra()
4335 struct sk_buff *skb; in rtw89_fw_h2c_cxdrv_init() local
4338 skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, len); in rtw89_fw_h2c_cxdrv_init()
4339 if (!skb) { in rtw89_fw_h2c_cxdrv_init()
4343 skb_put(skb, len); in rtw89_fw_h2c_cxdrv_init()
4344 h2c = (struct rtw89_h2c_cxinit *)skb->data; in rtw89_fw_h2c_cxdrv_init()
4375 rtw89_h2c_pkt_set_hdr(rtwdev, skb, FWCMD_TYPE_H2C, in rtw89_fw_h2c_cxdrv_init()
4380 ret = rtw89_h2c_tx(rtwdev, skb, false); in rtw89_fw_h2c_cxdrv_init()
4388 dev_kfree_skb_any(skb); in rtw89_fw_h2c_cxdrv_init()
4400 struct sk_buff *skb; in rtw89_fw_h2c_cxdrv_init_v7() local
4403 skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, len); in rtw89_fw_h2c_cxdrv_init_v7()
4404 if (!skb) { in rtw89_fw_h2c_cxdrv_init_v7()
4408 skb_put(skb, len); in rtw89_fw_h2c_cxdrv_init_v7()
4409 h2c = (struct rtw89_h2c_cxinit_v7 *)skb->data; in rtw89_fw_h2c_cxdrv_init_v7()
4416 rtw89_h2c_pkt_set_hdr(rtwdev, skb, FWCMD_TYPE_H2C, in rtw89_fw_h2c_cxdrv_init_v7()
4421 ret = rtw89_h2c_tx(rtwdev, skb, false); in rtw89_fw_h2c_cxdrv_init_v7()
4429 dev_kfree_skb_any(skb); in rtw89_fw_h2c_cxdrv_init_v7()
4447 struct sk_buff *skb; in rtw89_fw_h2c_cxdrv_role() local
4456 skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, len); in rtw89_fw_h2c_cxdrv_role()
4457 if (!skb) { in rtw89_fw_h2c_cxdrv_role()
4461 skb_put(skb, len); in rtw89_fw_h2c_cxdrv_role()
4462 cmd = skb->data; in rtw89_fw_h2c_cxdrv_role()
4499 rtw89_h2c_pkt_set_hdr(rtwdev, skb, FWCMD_TYPE_H2C, in rtw89_fw_h2c_cxdrv_role()
4504 ret = rtw89_h2c_tx(rtwdev, skb, false); in rtw89_fw_h2c_cxdrv_role()
4512 dev_kfree_skb_any(skb); in rtw89_fw_h2c_cxdrv_role()
4528 struct sk_buff *skb; in rtw89_fw_h2c_cxdrv_role_v1() local
4536 skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, len); in rtw89_fw_h2c_cxdrv_role_v1()
4537 if (!skb) { in rtw89_fw_h2c_cxdrv_role_v1()
4541 skb_put(skb, len); in rtw89_fw_h2c_cxdrv_role_v1()
4542 cmd = skb->data; in rtw89_fw_h2c_cxdrv_role_v1()
4589 rtw89_h2c_pkt_set_hdr(rtwdev, skb, FWCMD_TYPE_H2C, in rtw89_fw_h2c_cxdrv_role_v1()
4594 ret = rtw89_h2c_tx(rtwdev, skb, false); in rtw89_fw_h2c_cxdrv_role_v1()
4602 dev_kfree_skb_any(skb); in rtw89_fw_h2c_cxdrv_role_v1()
4618 struct sk_buff *skb; in rtw89_fw_h2c_cxdrv_role_v2() local
4626 skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, len); in rtw89_fw_h2c_cxdrv_role_v2()
4627 if (!skb) { in rtw89_fw_h2c_cxdrv_role_v2()
4631 skb_put(skb, len); in rtw89_fw_h2c_cxdrv_role_v2()
4632 cmd = skb->data; in rtw89_fw_h2c_cxdrv_role_v2()
4675 rtw89_h2c_pkt_set_hdr(rtwdev, skb, FWCMD_TYPE_H2C, in rtw89_fw_h2c_cxdrv_role_v2()
4680 ret = rtw89_h2c_tx(rtwdev, skb, false); in rtw89_fw_h2c_cxdrv_role_v2()
4688 dev_kfree_skb_any(skb); in rtw89_fw_h2c_cxdrv_role_v2()
4699 struct sk_buff *skb; in rtw89_fw_h2c_cxdrv_role_v7() local
4702 skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, len); in rtw89_fw_h2c_cxdrv_role_v7()
4703 if (!skb) { in rtw89_fw_h2c_cxdrv_role_v7()
4707 skb_put(skb, len); in rtw89_fw_h2c_cxdrv_role_v7()
4708 h2c = (struct rtw89_h2c_cxrole_v7 *)skb->data; in rtw89_fw_h2c_cxdrv_role_v7()
4721 rtw89_h2c_pkt_set_hdr(rtwdev, skb, FWCMD_TYPE_H2C, in rtw89_fw_h2c_cxdrv_role_v7()
4726 ret = rtw89_h2c_tx(rtwdev, skb, false); in rtw89_fw_h2c_cxdrv_role_v7()
4734 dev_kfree_skb_any(skb); in rtw89_fw_h2c_cxdrv_role_v7()
4745 struct sk_buff *skb; in rtw89_fw_h2c_cxdrv_role_v8() local
4748 skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, len); in rtw89_fw_h2c_cxdrv_role_v8()
4749 if (!skb) { in rtw89_fw_h2c_cxdrv_role_v8()
4753 skb_put(skb, len); in rtw89_fw_h2c_cxdrv_role_v8()
4754 h2c = (struct rtw89_h2c_cxrole_v8 *)skb->data; in rtw89_fw_h2c_cxdrv_role_v8()
4764 rtw89_h2c_pkt_set_hdr(rtwdev, skb, FWCMD_TYPE_H2C, in rtw89_fw_h2c_cxdrv_role_v8()
4769 ret = rtw89_h2c_tx(rtwdev, skb, false); in rtw89_fw_h2c_cxdrv_role_v8()
4777 dev_kfree_skb_any(skb); in rtw89_fw_h2c_cxdrv_role_v8()
4788 struct sk_buff *skb; in rtw89_fw_h2c_cxdrv_ctrl() local
4792 skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, H2C_LEN_CXDRVINFO_CTRL); in rtw89_fw_h2c_cxdrv_ctrl()
4793 if (!skb) { in rtw89_fw_h2c_cxdrv_ctrl()
4797 skb_put(skb, H2C_LEN_CXDRVINFO_CTRL); in rtw89_fw_h2c_cxdrv_ctrl()
4798 cmd = skb->data; in rtw89_fw_h2c_cxdrv_ctrl()
4809 rtw89_h2c_pkt_set_hdr(rtwdev, skb, FWCMD_TYPE_H2C, in rtw89_fw_h2c_cxdrv_ctrl()
4814 ret = rtw89_h2c_tx(rtwdev, skb, false); in rtw89_fw_h2c_cxdrv_ctrl()
4822 dev_kfree_skb_any(skb); in rtw89_fw_h2c_cxdrv_ctrl()
4833 struct sk_buff *skb; in rtw89_fw_h2c_cxdrv_ctrl_v7() local
4836 skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, len); in rtw89_fw_h2c_cxdrv_ctrl_v7()
4837 if (!skb) { in rtw89_fw_h2c_cxdrv_ctrl_v7()
4841 skb_put(skb, len); in rtw89_fw_h2c_cxdrv_ctrl_v7()
4842 h2c = (struct rtw89_h2c_cxctrl_v7 *)skb->data; in rtw89_fw_h2c_cxdrv_ctrl_v7()
4849 rtw89_h2c_pkt_set_hdr(rtwdev, skb, FWCMD_TYPE_H2C, in rtw89_fw_h2c_cxdrv_ctrl_v7()
4853 ret = rtw89_h2c_tx(rtwdev, skb, false); in rtw89_fw_h2c_cxdrv_ctrl_v7()
4861 dev_kfree_skb_any(skb); in rtw89_fw_h2c_cxdrv_ctrl_v7()
4871 struct sk_buff *skb; in rtw89_fw_h2c_cxdrv_trx() local
4875 skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, H2C_LEN_CXDRVINFO_TRX); in rtw89_fw_h2c_cxdrv_trx()
4876 if (!skb) { in rtw89_fw_h2c_cxdrv_trx()
4880 skb_put(skb, H2C_LEN_CXDRVINFO_TRX); in rtw89_fw_h2c_cxdrv_trx()
4881 cmd = skb->data; in rtw89_fw_h2c_cxdrv_trx()
4904 rtw89_h2c_pkt_set_hdr(rtwdev, skb, FWCMD_TYPE_H2C, in rtw89_fw_h2c_cxdrv_trx()
4909 ret = rtw89_h2c_tx(rtwdev, skb, false); in rtw89_fw_h2c_cxdrv_trx()
4917 dev_kfree_skb_any(skb); in rtw89_fw_h2c_cxdrv_trx()
4928 struct sk_buff *skb; in rtw89_fw_h2c_cxdrv_rfk() local
4932 skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, H2C_LEN_CXDRVINFO_RFK); in rtw89_fw_h2c_cxdrv_rfk()
4933 if (!skb) { in rtw89_fw_h2c_cxdrv_rfk()
4937 skb_put(skb, H2C_LEN_CXDRVINFO_RFK); in rtw89_fw_h2c_cxdrv_rfk()
4938 cmd = skb->data; in rtw89_fw_h2c_cxdrv_rfk()
4949 rtw89_h2c_pkt_set_hdr(rtwdev, skb, FWCMD_TYPE_H2C, in rtw89_fw_h2c_cxdrv_rfk()
4954 ret = rtw89_h2c_tx(rtwdev, skb, false); in rtw89_fw_h2c_cxdrv_rfk()
4962 dev_kfree_skb_any(skb); in rtw89_fw_h2c_cxdrv_rfk()
4971 struct sk_buff *skb; in rtw89_fw_h2c_del_pkt_offload() local
4976 skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, H2C_LEN_PKT_OFLD); in rtw89_fw_h2c_del_pkt_offload()
4977 if (!skb) { in rtw89_fw_h2c_del_pkt_offload()
4981 skb_put(skb, H2C_LEN_PKT_OFLD); in rtw89_fw_h2c_del_pkt_offload()
4982 cmd = skb->data; in rtw89_fw_h2c_del_pkt_offload()
4987 rtw89_h2c_pkt_set_hdr(rtwdev, skb, FWCMD_TYPE_H2C, in rtw89_fw_h2c_del_pkt_offload()
4994 ret = rtw89_h2c_tx_and_wait(rtwdev, skb, wait, cond); in rtw89_fw_h2c_del_pkt_offload()
5010 struct sk_buff *skb; in rtw89_fw_h2c_add_pkt_offload() local
5023 skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, H2C_LEN_PKT_OFLD + skb_ofld->len); in rtw89_fw_h2c_add_pkt_offload()
5024 if (!skb) { in rtw89_fw_h2c_add_pkt_offload()
5029 skb_put(skb, H2C_LEN_PKT_OFLD); in rtw89_fw_h2c_add_pkt_offload()
5030 cmd = skb->data; in rtw89_fw_h2c_add_pkt_offload()
5035 skb_put_data(skb, skb_ofld->data, skb_ofld->len); in rtw89_fw_h2c_add_pkt_offload()
5037 rtw89_h2c_pkt_set_hdr(rtwdev, skb, FWCMD_TYPE_H2C, in rtw89_fw_h2c_add_pkt_offload()
5044 ret = rtw89_h2c_tx_and_wait(rtwdev, skb, wait, cond); in rtw89_fw_h2c_add_pkt_offload()
5064 struct sk_buff *skb; in rtw89_fw_h2c_scan_list_offload() local
5072 skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, skb_len); in rtw89_fw_h2c_scan_list_offload()
5073 if (!skb) { in rtw89_fw_h2c_scan_list_offload()
5077 skb_put(skb, sizeof(*h2c)); in rtw89_fw_h2c_scan_list_offload()
5078 h2c = (struct rtw89_h2c_chinfo *)skb->data; in rtw89_fw_h2c_scan_list_offload()
5084 elem = (struct rtw89_h2c_chinfo_elem *)skb_put(skb, sizeof(*elem)); in rtw89_fw_h2c_scan_list_offload()
5113 rtw89_h2c_pkt_set_hdr(rtwdev, skb, FWCMD_TYPE_H2C, in rtw89_fw_h2c_scan_list_offload()
5119 ret = rtw89_h2c_tx_and_wait(rtwdev, skb, wait, cond); in rtw89_fw_h2c_scan_list_offload()
5137 struct sk_buff *skb; in rtw89_fw_h2c_scan_list_offload_be() local
5146 skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, skb_len); in rtw89_fw_h2c_scan_list_offload_be()
5147 if (!skb) { in rtw89_fw_h2c_scan_list_offload_be()
5155 skb_put(skb, sizeof(*h2c)); in rtw89_fw_h2c_scan_list_offload_be()
5156 h2c = (struct rtw89_h2c_chinfo_be *)skb->data; in rtw89_fw_h2c_scan_list_offload_be()
5164 elem = (struct rtw89_h2c_chinfo_elem_be *)skb_put(skb, sizeof(*elem)); in rtw89_fw_h2c_scan_list_offload_be()
5221 rtw89_h2c_pkt_set_hdr(rtwdev, skb, FWCMD_TYPE_H2C, in rtw89_fw_h2c_scan_list_offload_be()
5227 ret = rtw89_h2c_tx_and_wait(rtwdev, skb, wait, cond); in rtw89_fw_h2c_scan_list_offload_be()
5247 struct sk_buff *skb; in rtw89_fw_h2c_scan_offload_ax() local
5252 skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, len); in rtw89_fw_h2c_scan_offload_ax()
5253 if (!skb) { in rtw89_fw_h2c_scan_offload_ax()
5257 skb_put(skb, len); in rtw89_fw_h2c_scan_offload_ax()
5258 h2c = (struct rtw89_h2c_scanofld *)skb->data; in rtw89_fw_h2c_scan_offload_ax()
5301 rtw89_h2c_pkt_set_hdr(rtwdev, skb, FWCMD_TYPE_H2C, in rtw89_fw_h2c_scan_offload_ax()
5311 ret = rtw89_h2c_tx_and_wait(rtwdev, skb, wait, cond); in rtw89_fw_h2c_scan_offload_ax()
5356 struct sk_buff *skb; in rtw89_fw_h2c_scan_offload_be() local
5375 skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, len); in rtw89_fw_h2c_scan_offload_be()
5376 if (!skb) { in rtw89_fw_h2c_scan_offload_be()
5381 skb_put(skb, len); in rtw89_fw_h2c_scan_offload_be()
5382 h2c = (struct rtw89_h2c_scanofld_be *)skb->data; in rtw89_fw_h2c_scan_offload_be()
5383 ptr = skb->data; in rtw89_fw_h2c_scan_offload_be()
5529 rtw89_h2c_pkt_set_hdr(rtwdev, skb, FWCMD_TYPE_H2C, in rtw89_fw_h2c_scan_offload_be()
5539 ret = rtw89_h2c_tx_and_wait(rtwdev, skb, wait, cond); in rtw89_fw_h2c_scan_offload_be()
5552 struct sk_buff *skb; in rtw89_fw_h2c_rf_reg() local
5557 skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, len); in rtw89_fw_h2c_rf_reg()
5558 if (!skb) { in rtw89_fw_h2c_rf_reg()
5562 skb_put_data(skb, info->rtw89_phy_config_rf_h2c[page], len); in rtw89_fw_h2c_rf_reg()
5564 rtw89_h2c_pkt_set_hdr(rtwdev, skb, FWCMD_TYPE_H2C, in rtw89_fw_h2c_rf_reg()
5568 ret = rtw89_h2c_tx(rtwdev, skb, false); in rtw89_fw_h2c_rf_reg()
5576 dev_kfree_skb_any(skb); in rtw89_fw_h2c_rf_reg()
5585 struct sk_buff *skb; in rtw89_fw_h2c_rf_ntfy_mcc() local
5589 skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, sizeof(*mccch)); in rtw89_fw_h2c_rf_ntfy_mcc()
5590 if (!skb) { in rtw89_fw_h2c_rf_ntfy_mcc()
5594 skb_put(skb, sizeof(*mccch)); in rtw89_fw_h2c_rf_ntfy_mcc()
5595 mccch = (struct rtw89_fw_h2c_rf_get_mccch *)skb->data; in rtw89_fw_h2c_rf_ntfy_mcc()
5605 rtw89_h2c_pkt_set_hdr(rtwdev, skb, FWCMD_TYPE_H2C, in rtw89_fw_h2c_rf_ntfy_mcc()
5610 ret = rtw89_h2c_tx(rtwdev, skb, false); in rtw89_fw_h2c_rf_ntfy_mcc()
5618 dev_kfree_skb_any(skb); in rtw89_fw_h2c_rf_ntfy_mcc()
5634 struct sk_buff *skb; in rtw89_fw_h2c_rf_pre_ntfy() local
5648 skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, len); in rtw89_fw_h2c_rf_pre_ntfy()
5649 if (!skb) { in rtw89_fw_h2c_rf_pre_ntfy()
5653 skb_put(skb, len); in rtw89_fw_h2c_rf_pre_ntfy()
5654 h2c = (struct rtw89_fw_h2c_rfk_pre_info *)skb->data; in rtw89_fw_h2c_rf_pre_ntfy()
5689 h2c_v0 = (struct rtw89_fw_h2c_rfk_pre_info_v0 *)skb->data; in rtw89_fw_h2c_rf_pre_ntfy()
5717 rtw89_h2c_pkt_set_hdr(rtwdev, skb, FWCMD_TYPE_H2C, in rtw89_fw_h2c_rf_pre_ntfy()
5722 ret = rtw89_h2c_tx(rtwdev, skb, false); in rtw89_fw_h2c_rf_pre_ntfy()
5730 dev_kfree_skb_any(skb); in rtw89_fw_h2c_rf_pre_ntfy()
5741 struct sk_buff *skb; in rtw89_fw_h2c_rf_tssi() local
5744 skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, len); in rtw89_fw_h2c_rf_tssi()
5745 if (!skb) { in rtw89_fw_h2c_rf_tssi()
5749 skb_put(skb, len); in rtw89_fw_h2c_rf_tssi()
5750 h2c = (struct rtw89_h2c_rf_tssi *)skb->data; in rtw89_fw_h2c_rf_tssi()
5764 rtw89_h2c_pkt_set_hdr(rtwdev, skb, FWCMD_TYPE_H2C, in rtw89_fw_h2c_rf_tssi()
5768 ret = rtw89_h2c_tx(rtwdev, skb, false); in rtw89_fw_h2c_rf_tssi()
5776 dev_kfree_skb_any(skb); in rtw89_fw_h2c_rf_tssi()
5786 struct sk_buff *skb; in rtw89_fw_h2c_rf_iqk() local
5789 skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, len); in rtw89_fw_h2c_rf_iqk()
5790 if (!skb) { in rtw89_fw_h2c_rf_iqk()
5794 skb_put(skb, len); in rtw89_fw_h2c_rf_iqk()
5795 h2c = (struct rtw89_h2c_rf_iqk *)skb->data; in rtw89_fw_h2c_rf_iqk()
5800 rtw89_h2c_pkt_set_hdr(rtwdev, skb, FWCMD_TYPE_H2C, in rtw89_fw_h2c_rf_iqk()
5804 ret = rtw89_h2c_tx(rtwdev, skb, false); in rtw89_fw_h2c_rf_iqk()
5812 dev_kfree_skb_any(skb); in rtw89_fw_h2c_rf_iqk()
5822 struct sk_buff *skb; in rtw89_fw_h2c_rf_dpk() local
5825 skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, len); in rtw89_fw_h2c_rf_dpk()
5826 if (!skb) { in rtw89_fw_h2c_rf_dpk()
5830 skb_put(skb, len); in rtw89_fw_h2c_rf_dpk()
5831 h2c = (struct rtw89_h2c_rf_dpk *)skb->data; in rtw89_fw_h2c_rf_dpk()
5842 rtw89_h2c_pkt_set_hdr(rtwdev, skb, FWCMD_TYPE_H2C, in rtw89_fw_h2c_rf_dpk()
5846 ret = rtw89_h2c_tx(rtwdev, skb, false); in rtw89_fw_h2c_rf_dpk()
5854 dev_kfree_skb_any(skb); in rtw89_fw_h2c_rf_dpk()
5865 struct sk_buff *skb; in rtw89_fw_h2c_rf_txgapk() local
5868 skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, len); in rtw89_fw_h2c_rf_txgapk()
5869 if (!skb) { in rtw89_fw_h2c_rf_txgapk()
5873 skb_put(skb, len); in rtw89_fw_h2c_rf_txgapk()
5874 h2c = (struct rtw89_h2c_rf_txgapk *)skb->data; in rtw89_fw_h2c_rf_txgapk()
5885 rtw89_h2c_pkt_set_hdr(rtwdev, skb, FWCMD_TYPE_H2C, in rtw89_fw_h2c_rf_txgapk()
5889 ret = rtw89_h2c_tx(rtwdev, skb, false); in rtw89_fw_h2c_rf_txgapk()
5897 dev_kfree_skb_any(skb); in rtw89_fw_h2c_rf_txgapk()
5907 struct sk_buff *skb; in rtw89_fw_h2c_rf_dack() local
5910 skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, len); in rtw89_fw_h2c_rf_dack()
5911 if (!skb) { in rtw89_fw_h2c_rf_dack()
5915 skb_put(skb, len); in rtw89_fw_h2c_rf_dack()
5916 h2c = (struct rtw89_h2c_rf_dack *)skb->data; in rtw89_fw_h2c_rf_dack()
5922 rtw89_h2c_pkt_set_hdr(rtwdev, skb, FWCMD_TYPE_H2C, in rtw89_fw_h2c_rf_dack()
5926 ret = rtw89_h2c_tx(rtwdev, skb, false); in rtw89_fw_h2c_rf_dack()
5934 dev_kfree_skb_any(skb); in rtw89_fw_h2c_rf_dack()
5945 struct sk_buff *skb; in rtw89_fw_h2c_rf_rxdck() local
5954 skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, len); in rtw89_fw_h2c_rf_rxdck()
5955 if (!skb) { in rtw89_fw_h2c_rf_rxdck()
5959 skb_put(skb, len); in rtw89_fw_h2c_rf_rxdck()
5960 v0 = (struct rtw89_h2c_rf_rxdck_v0 *)skb->data; in rtw89_fw_h2c_rf_rxdck()
5974 h2c = (struct rtw89_h2c_rf_rxdck *)skb->data; in rtw89_fw_h2c_rf_rxdck()
5978 rtw89_h2c_pkt_set_hdr(rtwdev, skb, FWCMD_TYPE_H2C, in rtw89_fw_h2c_rf_rxdck()
5982 ret = rtw89_h2c_tx(rtwdev, skb, false); in rtw89_fw_h2c_rf_rxdck()
5990 dev_kfree_skb_any(skb); in rtw89_fw_h2c_rf_rxdck()
5999 struct sk_buff *skb; in rtw89_fw_h2c_raw_with_hdr() local
6002 skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, len); in rtw89_fw_h2c_raw_with_hdr()
6003 if (!skb) { in rtw89_fw_h2c_raw_with_hdr()
6007 skb_put_data(skb, buf, len); in rtw89_fw_h2c_raw_with_hdr()
6009 rtw89_h2c_pkt_set_hdr(rtwdev, skb, FWCMD_TYPE_H2C, in rtw89_fw_h2c_raw_with_hdr()
6013 ret = rtw89_h2c_tx(rtwdev, skb, false); in rtw89_fw_h2c_raw_with_hdr()
6021 dev_kfree_skb_any(skb); in rtw89_fw_h2c_raw_with_hdr()
6028 struct sk_buff *skb; in rtw89_fw_h2c_raw() local
6031 skb = rtw89_fw_h2c_alloc_skb_no_hdr(rtwdev, len); in rtw89_fw_h2c_raw()
6032 if (!skb) { in rtw89_fw_h2c_raw()
6036 skb_put_data(skb, buf, len); in rtw89_fw_h2c_raw()
6038 ret = rtw89_h2c_tx(rtwdev, skb, false); in rtw89_fw_h2c_raw()
6046 dev_kfree_skb_any(skb); in rtw89_fw_h2c_raw()
6120 struct sk_buff *skb) in rtw89_fw_c2h_cmd_handle() argument
6122 struct rtw89_fw_c2h_attr *attr = RTW89_SKB_C2H_CB(skb); in rtw89_fw_c2h_cmd_handle()
6136 rtw89_mac_c2h_handle(rtwdev, skb, len, class, func); in rtw89_fw_c2h_cmd_handle()
6144 rtw89_btc_c2h_handle(rtwdev, skb, len, class, func); in rtw89_fw_c2h_cmd_handle()
6146 rtw89_phy_c2h_handle(rtwdev, skb, len, class, func); in rtw89_fw_c2h_cmd_handle()
6151 rtw89_hex_dump(rtwdev, RTW89_DBG_FW, "C2H: ", skb->data, skb->len); in rtw89_fw_c2h_cmd_handle()
6158 struct sk_buff *skb, *tmp; in rtw89_fw_c2h_work() local
6160 skb_queue_walk_safe(&rtwdev->c2h_queue, skb, tmp) { in rtw89_fw_c2h_work()
6161 skb_unlink(skb, &rtwdev->c2h_queue); in rtw89_fw_c2h_work()
6163 rtw89_fw_c2h_cmd_handle(rtwdev, skb); in rtw89_fw_c2h_work()
6165 dev_kfree_skb_any(skb); in rtw89_fw_c2h_work()
6327 struct sk_buff *skb, u8 ssid_idx) in rtw89_append_probe_req_ie() argument
6342 new = skb_copy(skb, GFP_KERNEL); in rtw89_append_probe_req_ie()
6378 struct sk_buff *skb; in rtw89_hw_scan_update_probe_req() local
6383 skb = ieee80211_probereq_get(rtwdev->hw, rtwvif_link->mac_addr, in rtw89_hw_scan_update_probe_req()
6387 if (!skb) in rtw89_hw_scan_update_probe_req()
6390 ret = rtw89_append_probe_req_ie(rtwdev, rtwvif_link, skb, i); in rtw89_hw_scan_update_probe_req()
6391 kfree_skb(skb); in rtw89_hw_scan_update_probe_req()
6410 struct sk_buff *skb; in rtw89_update_6ghz_rnr_chan() local
6435 skb = ieee80211_probereq_get(rtwdev->hw, rtwvif_link->mac_addr, in rtw89_update_6ghz_rnr_chan()
6437 if (!skb) in rtw89_update_6ghz_rnr_chan()
6440 skb_put_data(skb, ies->ies[NL80211_BAND_6GHZ], ies->len[NL80211_BAND_6GHZ]); in rtw89_update_6ghz_rnr_chan()
6441 skb_put_data(skb, ies->common_ies, ies->common_ie_len); in rtw89_update_6ghz_rnr_chan()
6442 hdr = (struct ieee80211_hdr *)skb->data; in rtw89_update_6ghz_rnr_chan()
6448 kfree_skb(skb); in rtw89_update_6ghz_rnr_chan()
6452 ret = rtw89_fw_h2c_add_pkt_offload(rtwdev, &info->id, skb); in rtw89_update_6ghz_rnr_chan()
6454 kfree_skb(skb); in rtw89_update_6ghz_rnr_chan()
6466 kfree_skb(skb); in rtw89_update_6ghz_rnr_chan()
7149 struct sk_buff *skb; in rtw89_fw_h2c_trigger_cpu_exception() local
7152 skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, H2C_FW_CPU_EXCEPTION_LEN); in rtw89_fw_h2c_trigger_cpu_exception()
7153 if (!skb) { in rtw89_fw_h2c_trigger_cpu_exception()
7159 skb_put(skb, H2C_FW_CPU_EXCEPTION_LEN); in rtw89_fw_h2c_trigger_cpu_exception()
7160 RTW89_SET_FWCMD_CPU_EXCEPTION_TYPE(skb->data, in rtw89_fw_h2c_trigger_cpu_exception()
7163 rtw89_h2c_pkt_set_hdr(rtwdev, skb, FWCMD_TYPE_H2C, in rtw89_fw_h2c_trigger_cpu_exception()
7169 ret = rtw89_h2c_tx(rtwdev, skb, false); in rtw89_fw_h2c_trigger_cpu_exception()
7178 dev_kfree_skb_any(skb); in rtw89_fw_h2c_trigger_cpu_exception()
7186 struct sk_buff *skb; in rtw89_fw_h2c_pkt_drop() local
7189 skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, H2C_PKT_DROP_LEN); in rtw89_fw_h2c_pkt_drop()
7190 if (!skb) { in rtw89_fw_h2c_pkt_drop()
7210 skb_put(skb, H2C_PKT_DROP_LEN); in rtw89_fw_h2c_pkt_drop()
7211 RTW89_SET_FWCMD_PKT_DROP_SEL(skb->data, params->sel); in rtw89_fw_h2c_pkt_drop()
7212 RTW89_SET_FWCMD_PKT_DROP_MACID(skb->data, params->macid); in rtw89_fw_h2c_pkt_drop()
7213 RTW89_SET_FWCMD_PKT_DROP_BAND(skb->data, params->mac_band); in rtw89_fw_h2c_pkt_drop()
7214 RTW89_SET_FWCMD_PKT_DROP_PORT(skb->data, params->port); in rtw89_fw_h2c_pkt_drop()
7215 RTW89_SET_FWCMD_PKT_DROP_MBSSID(skb->data, params->mbssid); in rtw89_fw_h2c_pkt_drop()
7216 RTW89_SET_FWCMD_PKT_DROP_ROLE_A_INFO_TF_TRS(skb->data, params->tf_trs); in rtw89_fw_h2c_pkt_drop()
7217 RTW89_SET_FWCMD_PKT_DROP_MACID_BAND_SEL_0(skb->data, in rtw89_fw_h2c_pkt_drop()
7219 RTW89_SET_FWCMD_PKT_DROP_MACID_BAND_SEL_1(skb->data, in rtw89_fw_h2c_pkt_drop()
7221 RTW89_SET_FWCMD_PKT_DROP_MACID_BAND_SEL_2(skb->data, in rtw89_fw_h2c_pkt_drop()
7223 RTW89_SET_FWCMD_PKT_DROP_MACID_BAND_SEL_3(skb->data, in rtw89_fw_h2c_pkt_drop()
7226 rtw89_h2c_pkt_set_hdr(rtwdev, skb, FWCMD_TYPE_H2C, in rtw89_fw_h2c_pkt_drop()
7232 ret = rtw89_h2c_tx(rtwdev, skb, false); in rtw89_fw_h2c_pkt_drop()
7241 dev_kfree_skb_any(skb); in rtw89_fw_h2c_pkt_drop()
7249 struct sk_buff *skb; in rtw89_fw_h2c_keep_alive() local
7261 skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, H2C_KEEP_ALIVE_LEN); in rtw89_fw_h2c_keep_alive()
7262 if (!skb) { in rtw89_fw_h2c_keep_alive()
7267 skb_put(skb, H2C_KEEP_ALIVE_LEN); in rtw89_fw_h2c_keep_alive()
7269 RTW89_SET_KEEP_ALIVE_ENABLE(skb->data, enable); in rtw89_fw_h2c_keep_alive()
7270 RTW89_SET_KEEP_ALIVE_PKT_NULL_ID(skb->data, pkt_id); in rtw89_fw_h2c_keep_alive()
7271 RTW89_SET_KEEP_ALIVE_PERIOD(skb->data, 5); in rtw89_fw_h2c_keep_alive()
7272 RTW89_SET_KEEP_ALIVE_MACID(skb->data, rtwvif_link->mac_id); in rtw89_fw_h2c_keep_alive()
7274 rtw89_h2c_pkt_set_hdr(rtwdev, skb, FWCMD_TYPE_H2C, in rtw89_fw_h2c_keep_alive()
7280 ret = rtw89_h2c_tx(rtwdev, skb, false); in rtw89_fw_h2c_keep_alive()
7289 dev_kfree_skb_any(skb); in rtw89_fw_h2c_keep_alive()
7299 struct sk_buff *skb; in rtw89_fw_h2c_arp_offload() local
7311 skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, len); in rtw89_fw_h2c_arp_offload()
7312 if (!skb) { in rtw89_fw_h2c_arp_offload()
7317 skb_put(skb, len); in rtw89_fw_h2c_arp_offload()
7318 h2c = (struct rtw89_h2c_arp_offload *)skb->data; in rtw89_fw_h2c_arp_offload()
7325 rtw89_h2c_pkt_set_hdr(rtwdev, skb, FWCMD_TYPE_H2C, in rtw89_fw_h2c_arp_offload()
7331 ret = rtw89_h2c_tx(rtwdev, skb, false); in rtw89_fw_h2c_arp_offload()
7340 dev_kfree_skb_any(skb); in rtw89_fw_h2c_arp_offload()
7350 struct sk_buff *skb; in rtw89_fw_h2c_disconnect_detect() local
7354 skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, H2C_DISCONNECT_DETECT_LEN); in rtw89_fw_h2c_disconnect_detect()
7355 if (!skb) { in rtw89_fw_h2c_disconnect_detect()
7360 skb_put(skb, H2C_DISCONNECT_DETECT_LEN); in rtw89_fw_h2c_disconnect_detect()
7363 RTW89_SET_DISCONNECT_DETECT_ENABLE(skb->data, enable); in rtw89_fw_h2c_disconnect_detect()
7364 RTW89_SET_DISCONNECT_DETECT_DISCONNECT(skb->data, !enable); in rtw89_fw_h2c_disconnect_detect()
7365 RTW89_SET_DISCONNECT_DETECT_MAC_ID(skb->data, macid); in rtw89_fw_h2c_disconnect_detect()
7366 RTW89_SET_DISCONNECT_DETECT_CHECK_PERIOD(skb->data, 100); in rtw89_fw_h2c_disconnect_detect()
7367 RTW89_SET_DISCONNECT_DETECT_TRY_PKT_COUNT(skb->data, 5); in rtw89_fw_h2c_disconnect_detect()
7370 rtw89_h2c_pkt_set_hdr(rtwdev, skb, FWCMD_TYPE_H2C, in rtw89_fw_h2c_disconnect_detect()
7376 ret = rtw89_h2c_tx(rtwdev, skb, false); in rtw89_fw_h2c_disconnect_detect()
7385 dev_kfree_skb_any(skb); in rtw89_fw_h2c_disconnect_detect()
7397 struct sk_buff *skb; in rtw89_fw_h2c_cfg_pno() local
7400 skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, len); in rtw89_fw_h2c_cfg_pno()
7401 if (!skb) { in rtw89_fw_h2c_cfg_pno()
7406 skb_put(skb, len); in rtw89_fw_h2c_cfg_pno()
7407 h2c = (struct rtw89_h2c_cfg_nlo *)skb->data; in rtw89_fw_h2c_cfg_pno()
7422 rtw89_h2c_pkt_set_hdr(rtwdev, skb, FWCMD_TYPE_H2C, in rtw89_fw_h2c_cfg_pno()
7428 ret = rtw89_h2c_tx(rtwdev, skb, false); in rtw89_fw_h2c_cfg_pno()
7437 dev_kfree_skb_any(skb); in rtw89_fw_h2c_cfg_pno()
7448 struct sk_buff *skb; in rtw89_fw_h2c_wow_global() local
7451 skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, len); in rtw89_fw_h2c_wow_global()
7452 if (!skb) { in rtw89_fw_h2c_wow_global()
7457 skb_put(skb, len); in rtw89_fw_h2c_wow_global()
7458 h2c = (struct rtw89_h2c_wow_global *)skb->data; in rtw89_fw_h2c_wow_global()
7468 rtw89_h2c_pkt_set_hdr(rtwdev, skb, FWCMD_TYPE_H2C, in rtw89_fw_h2c_wow_global()
7474 ret = rtw89_h2c_tx(rtwdev, skb, false); in rtw89_fw_h2c_wow_global()
7483 dev_kfree_skb_any(skb); in rtw89_fw_h2c_wow_global()
7494 struct sk_buff *skb; in rtw89_fw_h2c_wow_wakeup_ctrl() local
7498 skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, H2C_WAKEUP_CTRL_LEN); in rtw89_fw_h2c_wow_wakeup_ctrl()
7499 if (!skb) { in rtw89_fw_h2c_wow_wakeup_ctrl()
7504 skb_put(skb, H2C_WAKEUP_CTRL_LEN); in rtw89_fw_h2c_wow_wakeup_ctrl()
7507 RTW89_SET_WOW_WAKEUP_CTRL_PATTERN_MATCH_ENABLE(skb->data, enable); in rtw89_fw_h2c_wow_wakeup_ctrl()
7509 RTW89_SET_WOW_WAKEUP_CTRL_MAGIC_ENABLE(skb->data, enable); in rtw89_fw_h2c_wow_wakeup_ctrl()
7511 RTW89_SET_WOW_WAKEUP_CTRL_DEAUTH_ENABLE(skb->data, enable); in rtw89_fw_h2c_wow_wakeup_ctrl()
7513 RTW89_SET_WOW_WAKEUP_CTRL_MAC_ID(skb->data, macid); in rtw89_fw_h2c_wow_wakeup_ctrl()
7515 rtw89_h2c_pkt_set_hdr(rtwdev, skb, FWCMD_TYPE_H2C, in rtw89_fw_h2c_wow_wakeup_ctrl()
7521 ret = rtw89_h2c_tx(rtwdev, skb, false); in rtw89_fw_h2c_wow_wakeup_ctrl()
7530 dev_kfree_skb_any(skb); in rtw89_fw_h2c_wow_wakeup_ctrl()
7539 struct sk_buff *skb; in rtw89_fw_wow_cam_update() local
7542 skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, H2C_WOW_CAM_UPD_LEN); in rtw89_fw_wow_cam_update()
7543 if (!skb) { in rtw89_fw_wow_cam_update()
7548 skb_put(skb, H2C_WOW_CAM_UPD_LEN); in rtw89_fw_wow_cam_update()
7550 RTW89_SET_WOW_CAM_UPD_R_W(skb->data, cam_info->r_w); in rtw89_fw_wow_cam_update()
7551 RTW89_SET_WOW_CAM_UPD_IDX(skb->data, cam_info->idx); in rtw89_fw_wow_cam_update()
7553 RTW89_SET_WOW_CAM_UPD_WKFM1(skb->data, cam_info->mask[0]); in rtw89_fw_wow_cam_update()
7554 RTW89_SET_WOW_CAM_UPD_WKFM2(skb->data, cam_info->mask[1]); in rtw89_fw_wow_cam_update()
7555 RTW89_SET_WOW_CAM_UPD_WKFM3(skb->data, cam_info->mask[2]); in rtw89_fw_wow_cam_update()
7556 RTW89_SET_WOW_CAM_UPD_WKFM4(skb->data, cam_info->mask[3]); in rtw89_fw_wow_cam_update()
7557 RTW89_SET_WOW_CAM_UPD_CRC(skb->data, cam_info->crc); in rtw89_fw_wow_cam_update()
7558 RTW89_SET_WOW_CAM_UPD_NEGATIVE_PATTERN_MATCH(skb->data, in rtw89_fw_wow_cam_update()
7560 RTW89_SET_WOW_CAM_UPD_SKIP_MAC_HDR(skb->data, in rtw89_fw_wow_cam_update()
7562 RTW89_SET_WOW_CAM_UPD_UC(skb->data, cam_info->uc); in rtw89_fw_wow_cam_update()
7563 RTW89_SET_WOW_CAM_UPD_MC(skb->data, cam_info->mc); in rtw89_fw_wow_cam_update()
7564 RTW89_SET_WOW_CAM_UPD_BC(skb->data, cam_info->bc); in rtw89_fw_wow_cam_update()
7566 RTW89_SET_WOW_CAM_UPD_VALID(skb->data, cam_info->valid); in rtw89_fw_wow_cam_update()
7568 rtw89_h2c_pkt_set_hdr(rtwdev, skb, FWCMD_TYPE_H2C, in rtw89_fw_wow_cam_update()
7574 ret = rtw89_h2c_tx(rtwdev, skb, false); in rtw89_fw_wow_cam_update()
7582 dev_kfree_skb_any(skb); in rtw89_fw_wow_cam_update()
7597 struct sk_buff *skb; in rtw89_fw_h2c_wow_gtk_ofld() local
7604 skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, len); in rtw89_fw_h2c_wow_gtk_ofld()
7605 if (!skb) { in rtw89_fw_h2c_wow_gtk_ofld()
7610 skb_put(skb, len); in rtw89_fw_h2c_wow_gtk_ofld()
7611 h2c = (struct rtw89_h2c_wow_gtk_ofld *)skb->data; in rtw89_fw_h2c_wow_gtk_ofld()
7643 rtw89_h2c_pkt_set_hdr(rtwdev, skb, FWCMD_TYPE_H2C, in rtw89_fw_h2c_wow_gtk_ofld()
7649 ret = rtw89_h2c_tx(rtwdev, skb, false); in rtw89_fw_h2c_wow_gtk_ofld()
7656 dev_kfree_skb_any(skb); in rtw89_fw_h2c_wow_gtk_ofld()
7667 struct sk_buff *skb; in rtw89_fw_h2c_fwips() local
7669 skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, len); in rtw89_fw_h2c_fwips()
7670 if (!skb) { in rtw89_fw_h2c_fwips()
7674 skb_put(skb, len); in rtw89_fw_h2c_fwips()
7675 h2c = (struct rtw89_h2c_fwips *)skb->data; in rtw89_fw_h2c_fwips()
7680 rtw89_h2c_pkt_set_hdr(rtwdev, skb, FWCMD_TYPE_H2C, in rtw89_fw_h2c_fwips()
7686 return rtw89_h2c_tx_and_wait(rtwdev, skb, wait, RTW89_PS_WAIT_COND_IPS_CFG); in rtw89_fw_h2c_fwips()
7694 struct sk_buff *skb; in rtw89_fw_h2c_wow_request_aoac() local
7696 skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, len); in rtw89_fw_h2c_wow_request_aoac()
7697 if (!skb) { in rtw89_fw_h2c_wow_request_aoac()
7702 skb_put(skb, len); in rtw89_fw_h2c_wow_request_aoac()
7707 rtw89_h2c_pkt_set_hdr(rtwdev, skb, FWCMD_TYPE_H2C, in rtw89_fw_h2c_wow_request_aoac()
7713 return rtw89_h2c_tx_and_wait(rtwdev, skb, wait, RTW89_WOW_WAIT_COND_AOAC); in rtw89_fw_h2c_wow_request_aoac()
7721 static int rtw89_h2c_tx_and_wait(struct rtw89_dev *rtwdev, struct sk_buff *skb, in rtw89_h2c_tx_and_wait() argument
7726 ret = rtw89_h2c_tx(rtwdev, skb, false); in rtw89_h2c_tx_and_wait()
7729 dev_kfree_skb_any(skb); in rtw89_h2c_tx_and_wait()
7744 struct sk_buff *skb; in rtw89_fw_h2c_add_mcc() local
7747 skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, H2C_ADD_MCC_LEN); in rtw89_fw_h2c_add_mcc()
7748 if (!skb) { in rtw89_fw_h2c_add_mcc()
7754 skb_put(skb, H2C_ADD_MCC_LEN); in rtw89_fw_h2c_add_mcc()
7755 RTW89_SET_FWCMD_ADD_MCC_MACID(skb->data, p->macid); in rtw89_fw_h2c_add_mcc()
7756 RTW89_SET_FWCMD_ADD_MCC_CENTRAL_CH_SEG0(skb->data, p->central_ch_seg0); in rtw89_fw_h2c_add_mcc()
7757 RTW89_SET_FWCMD_ADD_MCC_CENTRAL_CH_SEG1(skb->data, p->central_ch_seg1); in rtw89_fw_h2c_add_mcc()
7758 RTW89_SET_FWCMD_ADD_MCC_PRIMARY_CH(skb->data, p->primary_ch); in rtw89_fw_h2c_add_mcc()
7759 RTW89_SET_FWCMD_ADD_MCC_BANDWIDTH(skb->data, p->bandwidth); in rtw89_fw_h2c_add_mcc()
7760 RTW89_SET_FWCMD_ADD_MCC_GROUP(skb->data, p->group); in rtw89_fw_h2c_add_mcc()
7761 RTW89_SET_FWCMD_ADD_MCC_C2H_RPT(skb->data, p->c2h_rpt); in rtw89_fw_h2c_add_mcc()
7762 RTW89_SET_FWCMD_ADD_MCC_DIS_TX_NULL(skb->data, p->dis_tx_null); in rtw89_fw_h2c_add_mcc()
7763 RTW89_SET_FWCMD_ADD_MCC_DIS_SW_RETRY(skb->data, p->dis_sw_retry); in rtw89_fw_h2c_add_mcc()
7764 RTW89_SET_FWCMD_ADD_MCC_IN_CURR_CH(skb->data, p->in_curr_ch); in rtw89_fw_h2c_add_mcc()
7765 RTW89_SET_FWCMD_ADD_MCC_SW_RETRY_COUNT(skb->data, p->sw_retry_count); in rtw89_fw_h2c_add_mcc()
7766 RTW89_SET_FWCMD_ADD_MCC_TX_NULL_EARLY(skb->data, p->tx_null_early); in rtw89_fw_h2c_add_mcc()
7767 RTW89_SET_FWCMD_ADD_MCC_BTC_IN_2G(skb->data, p->btc_in_2g); in rtw89_fw_h2c_add_mcc()
7768 RTW89_SET_FWCMD_ADD_MCC_PTA_EN(skb->data, p->pta_en); in rtw89_fw_h2c_add_mcc()
7769 RTW89_SET_FWCMD_ADD_MCC_RFK_BY_PASS(skb->data, p->rfk_by_pass); in rtw89_fw_h2c_add_mcc()
7770 RTW89_SET_FWCMD_ADD_MCC_CH_BAND_TYPE(skb->data, p->ch_band_type); in rtw89_fw_h2c_add_mcc()
7771 RTW89_SET_FWCMD_ADD_MCC_DURATION(skb->data, p->duration); in rtw89_fw_h2c_add_mcc()
7772 RTW89_SET_FWCMD_ADD_MCC_COURTESY_EN(skb->data, p->courtesy_en); in rtw89_fw_h2c_add_mcc()
7773 RTW89_SET_FWCMD_ADD_MCC_COURTESY_NUM(skb->data, p->courtesy_num); in rtw89_fw_h2c_add_mcc()
7774 RTW89_SET_FWCMD_ADD_MCC_COURTESY_TARGET(skb->data, p->courtesy_target); in rtw89_fw_h2c_add_mcc()
7776 rtw89_h2c_pkt_set_hdr(rtwdev, skb, FWCMD_TYPE_H2C, in rtw89_fw_h2c_add_mcc()
7783 return rtw89_h2c_tx_and_wait(rtwdev, skb, wait, cond); in rtw89_fw_h2c_add_mcc()
7791 struct sk_buff *skb; in rtw89_fw_h2c_start_mcc() local
7794 skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, H2C_START_MCC_LEN); in rtw89_fw_h2c_start_mcc()
7795 if (!skb) { in rtw89_fw_h2c_start_mcc()
7801 skb_put(skb, H2C_START_MCC_LEN); in rtw89_fw_h2c_start_mcc()
7802 RTW89_SET_FWCMD_START_MCC_GROUP(skb->data, p->group); in rtw89_fw_h2c_start_mcc()
7803 RTW89_SET_FWCMD_START_MCC_BTC_IN_GROUP(skb->data, p->btc_in_group); in rtw89_fw_h2c_start_mcc()
7804 RTW89_SET_FWCMD_START_MCC_OLD_GROUP_ACTION(skb->data, p->old_group_action); in rtw89_fw_h2c_start_mcc()
7805 RTW89_SET_FWCMD_START_MCC_OLD_GROUP(skb->data, p->old_group); in rtw89_fw_h2c_start_mcc()
7806 RTW89_SET_FWCMD_START_MCC_NOTIFY_CNT(skb->data, p->notify_cnt); in rtw89_fw_h2c_start_mcc()
7807 RTW89_SET_FWCMD_START_MCC_NOTIFY_RXDBG_EN(skb->data, p->notify_rxdbg_en); in rtw89_fw_h2c_start_mcc()
7808 RTW89_SET_FWCMD_START_MCC_MACID(skb->data, p->macid); in rtw89_fw_h2c_start_mcc()
7809 RTW89_SET_FWCMD_START_MCC_TSF_LOW(skb->data, p->tsf_low); in rtw89_fw_h2c_start_mcc()
7810 RTW89_SET_FWCMD_START_MCC_TSF_HIGH(skb->data, p->tsf_high); in rtw89_fw_h2c_start_mcc()
7812 rtw89_h2c_pkt_set_hdr(rtwdev, skb, FWCMD_TYPE_H2C, in rtw89_fw_h2c_start_mcc()
7819 return rtw89_h2c_tx_and_wait(rtwdev, skb, wait, cond); in rtw89_fw_h2c_start_mcc()
7827 struct sk_buff *skb; in rtw89_fw_h2c_stop_mcc() local
7830 skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, H2C_STOP_MCC_LEN); in rtw89_fw_h2c_stop_mcc()
7831 if (!skb) { in rtw89_fw_h2c_stop_mcc()
7837 skb_put(skb, H2C_STOP_MCC_LEN); in rtw89_fw_h2c_stop_mcc()
7838 RTW89_SET_FWCMD_STOP_MCC_MACID(skb->data, macid); in rtw89_fw_h2c_stop_mcc()
7839 RTW89_SET_FWCMD_STOP_MCC_GROUP(skb->data, group); in rtw89_fw_h2c_stop_mcc()
7840 RTW89_SET_FWCMD_STOP_MCC_PREV_GROUPS(skb->data, prev_groups); in rtw89_fw_h2c_stop_mcc()
7842 rtw89_h2c_pkt_set_hdr(rtwdev, skb, FWCMD_TYPE_H2C, in rtw89_fw_h2c_stop_mcc()
7849 return rtw89_h2c_tx_and_wait(rtwdev, skb, wait, cond); in rtw89_fw_h2c_stop_mcc()
7857 struct sk_buff *skb; in rtw89_fw_h2c_del_mcc_group() local
7860 skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, H2C_DEL_MCC_GROUP_LEN); in rtw89_fw_h2c_del_mcc_group()
7861 if (!skb) { in rtw89_fw_h2c_del_mcc_group()
7867 skb_put(skb, H2C_DEL_MCC_GROUP_LEN); in rtw89_fw_h2c_del_mcc_group()
7868 RTW89_SET_FWCMD_DEL_MCC_GROUP_GROUP(skb->data, group); in rtw89_fw_h2c_del_mcc_group()
7869 RTW89_SET_FWCMD_DEL_MCC_GROUP_PREV_GROUPS(skb->data, prev_groups); in rtw89_fw_h2c_del_mcc_group()
7871 rtw89_h2c_pkt_set_hdr(rtwdev, skb, FWCMD_TYPE_H2C, in rtw89_fw_h2c_del_mcc_group()
7878 return rtw89_h2c_tx_and_wait(rtwdev, skb, wait, cond); in rtw89_fw_h2c_del_mcc_group()
7885 struct sk_buff *skb; in rtw89_fw_h2c_reset_mcc_group() local
7888 skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, H2C_RESET_MCC_GROUP_LEN); in rtw89_fw_h2c_reset_mcc_group()
7889 if (!skb) { in rtw89_fw_h2c_reset_mcc_group()
7895 skb_put(skb, H2C_RESET_MCC_GROUP_LEN); in rtw89_fw_h2c_reset_mcc_group()
7896 RTW89_SET_FWCMD_RESET_MCC_GROUP_GROUP(skb->data, group); in rtw89_fw_h2c_reset_mcc_group()
7898 rtw89_h2c_pkt_set_hdr(rtwdev, skb, FWCMD_TYPE_H2C, in rtw89_fw_h2c_reset_mcc_group()
7905 return rtw89_h2c_tx_and_wait(rtwdev, skb, wait, cond); in rtw89_fw_h2c_reset_mcc_group()
7915 struct sk_buff *skb; in rtw89_fw_h2c_mcc_req_tsf() local
7919 skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, H2C_MCC_REQ_TSF_LEN); in rtw89_fw_h2c_mcc_req_tsf()
7920 if (!skb) { in rtw89_fw_h2c_mcc_req_tsf()
7926 skb_put(skb, H2C_MCC_REQ_TSF_LEN); in rtw89_fw_h2c_mcc_req_tsf()
7927 RTW89_SET_FWCMD_MCC_REQ_TSF_GROUP(skb->data, req->group); in rtw89_fw_h2c_mcc_req_tsf()
7928 RTW89_SET_FWCMD_MCC_REQ_TSF_MACID_X(skb->data, req->macid_x); in rtw89_fw_h2c_mcc_req_tsf()
7929 RTW89_SET_FWCMD_MCC_REQ_TSF_MACID_Y(skb->data, req->macid_y); in rtw89_fw_h2c_mcc_req_tsf()
7931 rtw89_h2c_pkt_set_hdr(rtwdev, skb, FWCMD_TYPE_H2C, in rtw89_fw_h2c_mcc_req_tsf()
7938 ret = rtw89_h2c_tx_and_wait(rtwdev, skb, wait, cond); in rtw89_fw_h2c_mcc_req_tsf()
7953 struct sk_buff *skb; in rtw89_fw_h2c_mcc_macid_bitmap() local
7961 skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, h2c_len); in rtw89_fw_h2c_mcc_macid_bitmap()
7962 if (!skb) { in rtw89_fw_h2c_mcc_macid_bitmap()
7968 skb_put(skb, h2c_len); in rtw89_fw_h2c_mcc_macid_bitmap()
7969 RTW89_SET_FWCMD_MCC_MACID_BITMAP_GROUP(skb->data, group); in rtw89_fw_h2c_mcc_macid_bitmap()
7970 RTW89_SET_FWCMD_MCC_MACID_BITMAP_MACID(skb->data, macid); in rtw89_fw_h2c_mcc_macid_bitmap()
7971 RTW89_SET_FWCMD_MCC_MACID_BITMAP_BITMAP_LENGTH(skb->data, map_len); in rtw89_fw_h2c_mcc_macid_bitmap()
7972 RTW89_SET_FWCMD_MCC_MACID_BITMAP_BITMAP(skb->data, bitmap, map_len); in rtw89_fw_h2c_mcc_macid_bitmap()
7974 rtw89_h2c_pkt_set_hdr(rtwdev, skb, FWCMD_TYPE_H2C, in rtw89_fw_h2c_mcc_macid_bitmap()
7981 return rtw89_h2c_tx_and_wait(rtwdev, skb, wait, cond); in rtw89_fw_h2c_mcc_macid_bitmap()
7989 struct sk_buff *skb; in rtw89_fw_h2c_mcc_sync() local
7992 skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, H2C_MCC_SYNC_LEN); in rtw89_fw_h2c_mcc_sync()
7993 if (!skb) { in rtw89_fw_h2c_mcc_sync()
7999 skb_put(skb, H2C_MCC_SYNC_LEN); in rtw89_fw_h2c_mcc_sync()
8000 RTW89_SET_FWCMD_MCC_SYNC_GROUP(skb->data, group); in rtw89_fw_h2c_mcc_sync()
8001 RTW89_SET_FWCMD_MCC_SYNC_MACID_SOURCE(skb->data, source); in rtw89_fw_h2c_mcc_sync()
8002 RTW89_SET_FWCMD_MCC_SYNC_MACID_TARGET(skb->data, target); in rtw89_fw_h2c_mcc_sync()
8003 RTW89_SET_FWCMD_MCC_SYNC_SYNC_OFFSET(skb->data, offset); in rtw89_fw_h2c_mcc_sync()
8005 rtw89_h2c_pkt_set_hdr(rtwdev, skb, FWCMD_TYPE_H2C, in rtw89_fw_h2c_mcc_sync()
8012 return rtw89_h2c_tx_and_wait(rtwdev, skb, wait, cond); in rtw89_fw_h2c_mcc_sync()
8020 struct sk_buff *skb; in rtw89_fw_h2c_mcc_set_duration() local
8023 skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, H2C_MCC_SET_DURATION_LEN); in rtw89_fw_h2c_mcc_set_duration()
8024 if (!skb) { in rtw89_fw_h2c_mcc_set_duration()
8030 skb_put(skb, H2C_MCC_SET_DURATION_LEN); in rtw89_fw_h2c_mcc_set_duration()
8031 RTW89_SET_FWCMD_MCC_SET_DURATION_GROUP(skb->data, p->group); in rtw89_fw_h2c_mcc_set_duration()
8032 RTW89_SET_FWCMD_MCC_SET_DURATION_BTC_IN_GROUP(skb->data, p->btc_in_group); in rtw89_fw_h2c_mcc_set_duration()
8033 RTW89_SET_FWCMD_MCC_SET_DURATION_START_MACID(skb->data, p->start_macid); in rtw89_fw_h2c_mcc_set_duration()
8034 RTW89_SET_FWCMD_MCC_SET_DURATION_MACID_X(skb->data, p->macid_x); in rtw89_fw_h2c_mcc_set_duration()
8035 RTW89_SET_FWCMD_MCC_SET_DURATION_MACID_Y(skb->data, p->macid_y); in rtw89_fw_h2c_mcc_set_duration()
8036 RTW89_SET_FWCMD_MCC_SET_DURATION_START_TSF_LOW(skb->data, in rtw89_fw_h2c_mcc_set_duration()
8038 RTW89_SET_FWCMD_MCC_SET_DURATION_START_TSF_HIGH(skb->data, in rtw89_fw_h2c_mcc_set_duration()
8040 RTW89_SET_FWCMD_MCC_SET_DURATION_DURATION_X(skb->data, p->duration_x); in rtw89_fw_h2c_mcc_set_duration()
8041 RTW89_SET_FWCMD_MCC_SET_DURATION_DURATION_Y(skb->data, p->duration_y); in rtw89_fw_h2c_mcc_set_duration()
8043 rtw89_h2c_pkt_set_hdr(rtwdev, skb, FWCMD_TYPE_H2C, in rtw89_fw_h2c_mcc_set_duration()
8050 return rtw89_h2c_tx_and_wait(rtwdev, skb, wait, cond); in rtw89_fw_h2c_mcc_set_duration()
8118 struct sk_buff *skb; in rtw89_fw_h2c_mrc_add() local
8132 skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, len); in rtw89_fw_h2c_mrc_add()
8133 if (!skb) { in rtw89_fw_h2c_mrc_add()
8138 skb_put(skb, len); in rtw89_fw_h2c_mrc_add()
8139 tmp = skb->data; in rtw89_fw_h2c_mrc_add()
8163 rtw89_h2c_pkt_set_hdr(rtwdev, skb, FWCMD_TYPE_H2C, in rtw89_fw_h2c_mrc_add()
8169 ret = rtw89_h2c_tx(rtwdev, skb, false); in rtw89_fw_h2c_mrc_add()
8172 dev_kfree_skb_any(skb); in rtw89_fw_h2c_mrc_add()
8185 struct sk_buff *skb; in rtw89_fw_h2c_mrc_start() local
8188 skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, len); in rtw89_fw_h2c_mrc_start()
8189 if (!skb) { in rtw89_fw_h2c_mrc_start()
8194 skb_put(skb, len); in rtw89_fw_h2c_mrc_start()
8195 h2c = (struct rtw89_h2c_mrc_start *)skb->data; in rtw89_fw_h2c_mrc_start()
8207 rtw89_h2c_pkt_set_hdr(rtwdev, skb, FWCMD_TYPE_H2C, in rtw89_fw_h2c_mrc_start()
8214 return rtw89_h2c_tx_and_wait(rtwdev, skb, wait, cond); in rtw89_fw_h2c_mrc_start()
8222 struct sk_buff *skb; in rtw89_fw_h2c_mrc_del() local
8225 skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, len); in rtw89_fw_h2c_mrc_del()
8226 if (!skb) { in rtw89_fw_h2c_mrc_del()
8231 skb_put(skb, len); in rtw89_fw_h2c_mrc_del()
8232 h2c = (struct rtw89_h2c_mrc_del *)skb->data; in rtw89_fw_h2c_mrc_del()
8237 rtw89_h2c_pkt_set_hdr(rtwdev, skb, FWCMD_TYPE_H2C, in rtw89_fw_h2c_mrc_del()
8244 return rtw89_h2c_tx_and_wait(rtwdev, skb, wait, cond); in rtw89_fw_h2c_mrc_del()
8254 struct sk_buff *skb; in rtw89_fw_h2c_mrc_req_tsf() local
8260 skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, len); in rtw89_fw_h2c_mrc_req_tsf()
8261 if (!skb) { in rtw89_fw_h2c_mrc_req_tsf()
8266 skb_put(skb, len); in rtw89_fw_h2c_mrc_req_tsf()
8267 h2c = (struct rtw89_h2c_mrc_req_tsf *)skb->data; in rtw89_fw_h2c_mrc_req_tsf()
8277 rtw89_h2c_pkt_set_hdr(rtwdev, skb, FWCMD_TYPE_H2C, in rtw89_fw_h2c_mrc_req_tsf()
8283 ret = rtw89_h2c_tx_and_wait(rtwdev, skb, wait, RTW89_MRC_WAIT_COND_REQ_TSF); in rtw89_fw_h2c_mrc_req_tsf()
8298 struct sk_buff *skb; in rtw89_fw_h2c_mrc_upd_bitmap() local
8301 skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, len); in rtw89_fw_h2c_mrc_upd_bitmap()
8302 if (!skb) { in rtw89_fw_h2c_mrc_upd_bitmap()
8307 skb_put(skb, len); in rtw89_fw_h2c_mrc_upd_bitmap()
8308 h2c = (struct rtw89_h2c_mrc_upd_bitmap *)skb->data; in rtw89_fw_h2c_mrc_upd_bitmap()
8319 rtw89_h2c_pkt_set_hdr(rtwdev, skb, FWCMD_TYPE_H2C, in rtw89_fw_h2c_mrc_upd_bitmap()
8325 ret = rtw89_h2c_tx(rtwdev, skb, false); in rtw89_fw_h2c_mrc_upd_bitmap()
8328 dev_kfree_skb_any(skb); in rtw89_fw_h2c_mrc_upd_bitmap()
8340 struct sk_buff *skb; in rtw89_fw_h2c_mrc_sync() local
8343 skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, len); in rtw89_fw_h2c_mrc_sync()
8344 if (!skb) { in rtw89_fw_h2c_mrc_sync()
8349 skb_put(skb, len); in rtw89_fw_h2c_mrc_sync()
8350 h2c = (struct rtw89_h2c_mrc_sync *)skb->data; in rtw89_fw_h2c_mrc_sync()
8363 rtw89_h2c_pkt_set_hdr(rtwdev, skb, FWCMD_TYPE_H2C, in rtw89_fw_h2c_mrc_sync()
8369 ret = rtw89_h2c_tx(rtwdev, skb, false); in rtw89_fw_h2c_mrc_sync()
8372 dev_kfree_skb_any(skb); in rtw89_fw_h2c_mrc_sync()
8383 struct sk_buff *skb; in rtw89_fw_h2c_mrc_upd_duration() local
8389 skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, len); in rtw89_fw_h2c_mrc_upd_duration()
8390 if (!skb) { in rtw89_fw_h2c_mrc_upd_duration()
8395 skb_put(skb, len); in rtw89_fw_h2c_mrc_upd_duration()
8396 h2c = (struct rtw89_h2c_mrc_upd_duration *)skb->data; in rtw89_fw_h2c_mrc_upd_duration()
8416 rtw89_h2c_pkt_set_hdr(rtwdev, skb, FWCMD_TYPE_H2C, in rtw89_fw_h2c_mrc_upd_duration()
8422 ret = rtw89_h2c_tx(rtwdev, skb, false); in rtw89_fw_h2c_mrc_upd_duration()
8425 dev_kfree_skb_any(skb); in rtw89_fw_h2c_mrc_upd_duration()
8436 struct sk_buff *skb; in rtw89_fw_h2c_ap_info() local
8439 skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, len); in rtw89_fw_h2c_ap_info()
8440 if (!skb) { in rtw89_fw_h2c_ap_info()
8445 skb_put(skb, len); in rtw89_fw_h2c_ap_info()
8446 h2c = (struct rtw89_h2c_ap_info *)skb->data; in rtw89_fw_h2c_ap_info()
8450 rtw89_h2c_pkt_set_hdr(rtwdev, skb, FWCMD_TYPE_H2C, in rtw89_fw_h2c_ap_info()
8456 ret = rtw89_h2c_tx(rtwdev, skb, false); in rtw89_fw_h2c_ap_info()
8459 dev_kfree_skb_any(skb); in rtw89_fw_h2c_ap_info()