wifi: rtw89: unify use of rtw89_h2c_tx()
Seaprate calling of rtw89_h2c_tx() out of if-expression, and bypass the return value to upper caller. Signed-off-by: Ping-Ke Shih <pkshih@realtek.com> Signed-off-by: Kalle Valo <kvalo@kernel.org> Link: https://lore.kernel.org/r/20220914035034.14521-2-pkshih@realtek.com
This commit is contained in:
parent
5280e4813a
commit
8b0f4b5d8b
|
@ -615,6 +615,7 @@ int rtw89_fw_h2c_cam(struct rtw89_dev *rtwdev, struct rtw89_vif *rtwvif,
|
|||
struct rtw89_sta *rtwsta, const u8 *scan_mac_addr)
|
||||
{
|
||||
struct sk_buff *skb;
|
||||
int ret;
|
||||
|
||||
skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, H2C_CAM_LEN);
|
||||
if (!skb) {
|
||||
|
@ -631,7 +632,8 @@ int rtw89_fw_h2c_cam(struct rtw89_dev *rtwdev, struct rtw89_vif *rtwvif,
|
|||
H2C_FUNC_MAC_ADDR_CAM_UPD, 0, 1,
|
||||
H2C_CAM_LEN);
|
||||
|
||||
if (rtw89_h2c_tx(rtwdev, skb, false)) {
|
||||
ret = rtw89_h2c_tx(rtwdev, skb, false);
|
||||
if (ret) {
|
||||
rtw89_err(rtwdev, "failed to send h2c\n");
|
||||
goto fail;
|
||||
}
|
||||
|
@ -640,7 +642,7 @@ int rtw89_fw_h2c_cam(struct rtw89_dev *rtwdev, struct rtw89_vif *rtwvif,
|
|||
fail:
|
||||
dev_kfree_skb_any(skb);
|
||||
|
||||
return -EBUSY;
|
||||
return ret;
|
||||
}
|
||||
|
||||
#define H2C_DCTL_SEC_CAM_LEN 68
|
||||
|
@ -649,6 +651,7 @@ int rtw89_fw_h2c_dctl_sec_cam_v1(struct rtw89_dev *rtwdev,
|
|||
struct rtw89_sta *rtwsta)
|
||||
{
|
||||
struct sk_buff *skb;
|
||||
int ret;
|
||||
|
||||
skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, H2C_DCTL_SEC_CAM_LEN);
|
||||
if (!skb) {
|
||||
|
@ -665,7 +668,8 @@ int rtw89_fw_h2c_dctl_sec_cam_v1(struct rtw89_dev *rtwdev,
|
|||
H2C_FUNC_MAC_DCTLINFO_UD_V1, 0, 0,
|
||||
H2C_DCTL_SEC_CAM_LEN);
|
||||
|
||||
if (rtw89_h2c_tx(rtwdev, skb, false)) {
|
||||
ret = rtw89_h2c_tx(rtwdev, skb, false);
|
||||
if (ret) {
|
||||
rtw89_err(rtwdev, "failed to send h2c\n");
|
||||
goto fail;
|
||||
}
|
||||
|
@ -674,7 +678,7 @@ int rtw89_fw_h2c_dctl_sec_cam_v1(struct rtw89_dev *rtwdev,
|
|||
fail:
|
||||
dev_kfree_skb_any(skb);
|
||||
|
||||
return -EBUSY;
|
||||
return ret;
|
||||
}
|
||||
EXPORT_SYMBOL(rtw89_fw_h2c_dctl_sec_cam_v1);
|
||||
|
||||
|
@ -737,7 +741,8 @@ end:
|
|||
H2C_FUNC_MAC_BA_CAM, 0, 1,
|
||||
H2C_BA_CAM_LEN);
|
||||
|
||||
if (rtw89_h2c_tx(rtwdev, skb, false)) {
|
||||
ret = rtw89_h2c_tx(rtwdev, skb, false);
|
||||
if (ret) {
|
||||
rtw89_err(rtwdev, "failed to send h2c\n");
|
||||
goto fail;
|
||||
}
|
||||
|
@ -746,13 +751,14 @@ end:
|
|||
fail:
|
||||
dev_kfree_skb_any(skb);
|
||||
|
||||
return -EBUSY;
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int rtw89_fw_h2c_init_dynamic_ba_cam_v1(struct rtw89_dev *rtwdev,
|
||||
u8 entry_idx, u8 uid)
|
||||
{
|
||||
struct sk_buff *skb;
|
||||
int ret;
|
||||
|
||||
skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, H2C_BA_CAM_LEN);
|
||||
if (!skb) {
|
||||
|
@ -773,7 +779,8 @@ static int rtw89_fw_h2c_init_dynamic_ba_cam_v1(struct rtw89_dev *rtwdev,
|
|||
H2C_FUNC_MAC_BA_CAM, 0, 1,
|
||||
H2C_BA_CAM_LEN);
|
||||
|
||||
if (rtw89_h2c_tx(rtwdev, skb, false)) {
|
||||
ret = rtw89_h2c_tx(rtwdev, skb, false);
|
||||
if (ret) {
|
||||
rtw89_err(rtwdev, "failed to send h2c\n");
|
||||
goto fail;
|
||||
}
|
||||
|
@ -782,7 +789,7 @@ static int rtw89_fw_h2c_init_dynamic_ba_cam_v1(struct rtw89_dev *rtwdev,
|
|||
fail:
|
||||
dev_kfree_skb_any(skb);
|
||||
|
||||
return -EBUSY;
|
||||
return ret;
|
||||
}
|
||||
|
||||
void rtw89_fw_h2c_init_ba_cam_v1(struct rtw89_dev *rtwdev)
|
||||
|
@ -805,6 +812,7 @@ int rtw89_fw_h2c_fw_log(struct rtw89_dev *rtwdev, bool enable)
|
|||
struct sk_buff *skb;
|
||||
u32 comp = enable ? BIT(RTW89_FW_LOG_COMP_INIT) | BIT(RTW89_FW_LOG_COMP_TASK) |
|
||||
BIT(RTW89_FW_LOG_COMP_PS) | BIT(RTW89_FW_LOG_COMP_ERROR) : 0;
|
||||
int ret;
|
||||
|
||||
skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, H2C_LOG_CFG_LEN);
|
||||
if (!skb) {
|
||||
|
@ -824,7 +832,8 @@ int rtw89_fw_h2c_fw_log(struct rtw89_dev *rtwdev, bool enable)
|
|||
H2C_FUNC_LOG_CFG, 0, 0,
|
||||
H2C_LOG_CFG_LEN);
|
||||
|
||||
if (rtw89_h2c_tx(rtwdev, skb, false)) {
|
||||
ret = rtw89_h2c_tx(rtwdev, skb, false);
|
||||
if (ret) {
|
||||
rtw89_err(rtwdev, "failed to send h2c\n");
|
||||
goto fail;
|
||||
}
|
||||
|
@ -833,7 +842,7 @@ int rtw89_fw_h2c_fw_log(struct rtw89_dev *rtwdev, bool enable)
|
|||
fail:
|
||||
dev_kfree_skb_any(skb);
|
||||
|
||||
return -EBUSY;
|
||||
return ret;
|
||||
}
|
||||
|
||||
#define H2C_GENERAL_PKT_LEN 6
|
||||
|
@ -841,6 +850,7 @@ fail:
|
|||
int rtw89_fw_h2c_general_pkt(struct rtw89_dev *rtwdev, u8 macid)
|
||||
{
|
||||
struct sk_buff *skb;
|
||||
int ret;
|
||||
|
||||
skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, H2C_GENERAL_PKT_LEN);
|
||||
if (!skb) {
|
||||
|
@ -861,7 +871,8 @@ int rtw89_fw_h2c_general_pkt(struct rtw89_dev *rtwdev, u8 macid)
|
|||
H2C_FUNC_MAC_GENERAL_PKT, 0, 1,
|
||||
H2C_GENERAL_PKT_LEN);
|
||||
|
||||
if (rtw89_h2c_tx(rtwdev, skb, false)) {
|
||||
ret = rtw89_h2c_tx(rtwdev, skb, false);
|
||||
if (ret) {
|
||||
rtw89_err(rtwdev, "failed to send h2c\n");
|
||||
goto fail;
|
||||
}
|
||||
|
@ -870,7 +881,7 @@ int rtw89_fw_h2c_general_pkt(struct rtw89_dev *rtwdev, u8 macid)
|
|||
fail:
|
||||
dev_kfree_skb_any(skb);
|
||||
|
||||
return -EBUSY;
|
||||
return ret;
|
||||
}
|
||||
|
||||
#define H2C_LPS_PARM_LEN 8
|
||||
|
@ -878,6 +889,7 @@ int rtw89_fw_h2c_lps_parm(struct rtw89_dev *rtwdev,
|
|||
struct rtw89_lps_parm *lps_param)
|
||||
{
|
||||
struct sk_buff *skb;
|
||||
int ret;
|
||||
|
||||
skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, H2C_LPS_PARM_LEN);
|
||||
if (!skb) {
|
||||
|
@ -903,7 +915,8 @@ int rtw89_fw_h2c_lps_parm(struct rtw89_dev *rtwdev,
|
|||
H2C_FUNC_MAC_LPS_PARM, 0, 1,
|
||||
H2C_LPS_PARM_LEN);
|
||||
|
||||
if (rtw89_h2c_tx(rtwdev, skb, false)) {
|
||||
ret = rtw89_h2c_tx(rtwdev, skb, false);
|
||||
if (ret) {
|
||||
rtw89_err(rtwdev, "failed to send h2c\n");
|
||||
goto fail;
|
||||
}
|
||||
|
@ -912,7 +925,7 @@ int rtw89_fw_h2c_lps_parm(struct rtw89_dev *rtwdev,
|
|||
fail:
|
||||
dev_kfree_skb_any(skb);
|
||||
|
||||
return -EBUSY;
|
||||
return ret;
|
||||
}
|
||||
|
||||
static void __rtw89_fw_h2c_set_tx_path(struct rtw89_dev *rtwdev,
|
||||
|
@ -936,6 +949,7 @@ int rtw89_fw_h2c_default_cmac_tbl(struct rtw89_dev *rtwdev,
|
|||
const struct rtw89_chip_info *chip = rtwdev->chip;
|
||||
struct sk_buff *skb;
|
||||
u8 macid = rtwvif->mac_id;
|
||||
int ret;
|
||||
|
||||
skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, H2C_CMC_TBL_LEN);
|
||||
if (!skb) {
|
||||
|
@ -963,7 +977,8 @@ int rtw89_fw_h2c_default_cmac_tbl(struct rtw89_dev *rtwdev,
|
|||
chip->h2c_cctl_func_id, 0, 1,
|
||||
H2C_CMC_TBL_LEN);
|
||||
|
||||
if (rtw89_h2c_tx(rtwdev, skb, false)) {
|
||||
ret = rtw89_h2c_tx(rtwdev, skb, false);
|
||||
if (ret) {
|
||||
rtw89_err(rtwdev, "failed to send h2c\n");
|
||||
goto fail;
|
||||
}
|
||||
|
@ -972,7 +987,7 @@ int rtw89_fw_h2c_default_cmac_tbl(struct rtw89_dev *rtwdev,
|
|||
fail:
|
||||
dev_kfree_skb_any(skb);
|
||||
|
||||
return -EBUSY;
|
||||
return ret;
|
||||
}
|
||||
|
||||
static void __get_sta_he_pkt_padding(struct rtw89_dev *rtwdev,
|
||||
|
@ -1043,6 +1058,7 @@ int rtw89_fw_h2c_assoc_cmac_tbl(struct rtw89_dev *rtwdev,
|
|||
struct sk_buff *skb;
|
||||
u8 pads[RTW89_PPE_BW_NUM];
|
||||
u8 mac_id = rtwsta ? rtwsta->mac_id : rtwvif->mac_id;
|
||||
int ret;
|
||||
|
||||
memset(pads, 0, sizeof(pads));
|
||||
if (sta)
|
||||
|
@ -1091,7 +1107,8 @@ int rtw89_fw_h2c_assoc_cmac_tbl(struct rtw89_dev *rtwdev,
|
|||
chip->h2c_cctl_func_id, 0, 1,
|
||||
H2C_CMC_TBL_LEN);
|
||||
|
||||
if (rtw89_h2c_tx(rtwdev, skb, false)) {
|
||||
ret = rtw89_h2c_tx(rtwdev, skb, false);
|
||||
if (ret) {
|
||||
rtw89_err(rtwdev, "failed to send h2c\n");
|
||||
goto fail;
|
||||
}
|
||||
|
@ -1100,7 +1117,7 @@ int rtw89_fw_h2c_assoc_cmac_tbl(struct rtw89_dev *rtwdev,
|
|||
fail:
|
||||
dev_kfree_skb_any(skb);
|
||||
|
||||
return -EBUSY;
|
||||
return ret;
|
||||
}
|
||||
|
||||
int rtw89_fw_h2c_txtime_cmac_tbl(struct rtw89_dev *rtwdev,
|
||||
|
@ -1108,6 +1125,7 @@ int rtw89_fw_h2c_txtime_cmac_tbl(struct rtw89_dev *rtwdev,
|
|||
{
|
||||
const struct rtw89_chip_info *chip = rtwdev->chip;
|
||||
struct sk_buff *skb;
|
||||
int ret;
|
||||
|
||||
skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, H2C_CMC_TBL_LEN);
|
||||
if (!skb) {
|
||||
|
@ -1131,7 +1149,8 @@ int rtw89_fw_h2c_txtime_cmac_tbl(struct rtw89_dev *rtwdev,
|
|||
chip->h2c_cctl_func_id, 0, 1,
|
||||
H2C_CMC_TBL_LEN);
|
||||
|
||||
if (rtw89_h2c_tx(rtwdev, skb, false)) {
|
||||
ret = rtw89_h2c_tx(rtwdev, skb, false);
|
||||
if (ret) {
|
||||
rtw89_err(rtwdev, "failed to send h2c\n");
|
||||
goto fail;
|
||||
}
|
||||
|
@ -1140,7 +1159,7 @@ int rtw89_fw_h2c_txtime_cmac_tbl(struct rtw89_dev *rtwdev,
|
|||
fail:
|
||||
dev_kfree_skb_any(skb);
|
||||
|
||||
return -EBUSY;
|
||||
return ret;
|
||||
}
|
||||
|
||||
int rtw89_fw_h2c_txpath_cmac_tbl(struct rtw89_dev *rtwdev,
|
||||
|
@ -1192,6 +1211,7 @@ int rtw89_fw_h2c_update_beacon(struct rtw89_dev *rtwdev,
|
|||
struct sk_buff *skb_beacon;
|
||||
u16 tim_offset;
|
||||
int bcn_total_len;
|
||||
int ret;
|
||||
|
||||
skb_beacon = ieee80211_beacon_get_tim(rtwdev->hw, vif, &tim_offset,
|
||||
NULL, 0);
|
||||
|
@ -1227,10 +1247,11 @@ int rtw89_fw_h2c_update_beacon(struct rtw89_dev *rtwdev,
|
|||
H2C_FUNC_MAC_BCN_UPD, 0, 1,
|
||||
bcn_total_len);
|
||||
|
||||
if (rtw89_h2c_tx(rtwdev, skb, false)) {
|
||||
ret = rtw89_h2c_tx(rtwdev, skb, false);
|
||||
if (ret) {
|
||||
rtw89_err(rtwdev, "failed to send h2c\n");
|
||||
dev_kfree_skb_any(skb);
|
||||
return -EBUSY;
|
||||
return ret;
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
@ -1245,6 +1266,7 @@ int rtw89_fw_h2c_role_maintain(struct rtw89_dev *rtwdev,
|
|||
struct sk_buff *skb;
|
||||
u8 mac_id = rtwsta ? rtwsta->mac_id : rtwvif->mac_id;
|
||||
u8 self_role;
|
||||
int ret;
|
||||
|
||||
if (rtwvif->net_type == RTW89_NET_TYPE_AP_MODE) {
|
||||
if (rtwsta)
|
||||
|
@ -1271,7 +1293,8 @@ int rtw89_fw_h2c_role_maintain(struct rtw89_dev *rtwdev,
|
|||
H2C_FUNC_MAC_FWROLE_MAINTAIN, 0, 1,
|
||||
H2C_ROLE_MAINTAIN_LEN);
|
||||
|
||||
if (rtw89_h2c_tx(rtwdev, skb, false)) {
|
||||
ret = rtw89_h2c_tx(rtwdev, skb, false);
|
||||
if (ret) {
|
||||
rtw89_err(rtwdev, "failed to send h2c\n");
|
||||
goto fail;
|
||||
}
|
||||
|
@ -1280,7 +1303,7 @@ int rtw89_fw_h2c_role_maintain(struct rtw89_dev *rtwdev,
|
|||
fail:
|
||||
dev_kfree_skb_any(skb);
|
||||
|
||||
return -EBUSY;
|
||||
return ret;
|
||||
}
|
||||
|
||||
#define H2C_JOIN_INFO_LEN 4
|
||||
|
@ -1291,6 +1314,7 @@ int rtw89_fw_h2c_join_info(struct rtw89_dev *rtwdev, struct rtw89_vif *rtwvif,
|
|||
u8 mac_id = rtwsta ? rtwsta->mac_id : rtwvif->mac_id;
|
||||
u8 self_role = rtwvif->self_role;
|
||||
u8 net_type = rtwvif->net_type;
|
||||
int ret;
|
||||
|
||||
if (net_type == RTW89_NET_TYPE_AP_MODE && rtwsta) {
|
||||
self_role = RTW89_SELF_ROLE_AP_CLIENT;
|
||||
|
@ -1322,7 +1346,8 @@ int rtw89_fw_h2c_join_info(struct rtw89_dev *rtwdev, struct rtw89_vif *rtwvif,
|
|||
H2C_FUNC_MAC_JOININFO, 0, 1,
|
||||
H2C_JOIN_INFO_LEN);
|
||||
|
||||
if (rtw89_h2c_tx(rtwdev, skb, false)) {
|
||||
ret = rtw89_h2c_tx(rtwdev, skb, false);
|
||||
if (ret) {
|
||||
rtw89_err(rtwdev, "failed to send h2c\n");
|
||||
goto fail;
|
||||
}
|
||||
|
@ -1331,7 +1356,7 @@ int rtw89_fw_h2c_join_info(struct rtw89_dev *rtwdev, struct rtw89_vif *rtwvif,
|
|||
fail:
|
||||
dev_kfree_skb_any(skb);
|
||||
|
||||
return -EBUSY;
|
||||
return ret;
|
||||
}
|
||||
|
||||
int rtw89_fw_h2c_macid_pause(struct rtw89_dev *rtwdev, u8 sh, u8 grp,
|
||||
|
@ -1340,6 +1365,7 @@ int rtw89_fw_h2c_macid_pause(struct rtw89_dev *rtwdev, u8 sh, u8 grp,
|
|||
struct rtw89_fw_macid_pause_grp h2c = {{0}};
|
||||
u8 len = sizeof(struct rtw89_fw_macid_pause_grp);
|
||||
struct sk_buff *skb;
|
||||
int ret;
|
||||
|
||||
skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, H2C_JOIN_INFO_LEN);
|
||||
if (!skb) {
|
||||
|
@ -1356,7 +1382,8 @@ int rtw89_fw_h2c_macid_pause(struct rtw89_dev *rtwdev, u8 sh, u8 grp,
|
|||
H2C_FUNC_MAC_MACID_PAUSE, 1, 0,
|
||||
len);
|
||||
|
||||
if (rtw89_h2c_tx(rtwdev, skb, false)) {
|
||||
ret = rtw89_h2c_tx(rtwdev, skb, false);
|
||||
if (ret) {
|
||||
rtw89_err(rtwdev, "failed to send h2c\n");
|
||||
goto fail;
|
||||
}
|
||||
|
@ -1365,7 +1392,7 @@ int rtw89_fw_h2c_macid_pause(struct rtw89_dev *rtwdev, u8 sh, u8 grp,
|
|||
fail:
|
||||
dev_kfree_skb_any(skb);
|
||||
|
||||
return -EBUSY;
|
||||
return ret;
|
||||
}
|
||||
|
||||
#define H2C_EDCA_LEN 12
|
||||
|
@ -1373,6 +1400,7 @@ int rtw89_fw_h2c_set_edca(struct rtw89_dev *rtwdev, struct rtw89_vif *rtwvif,
|
|||
u8 ac, u32 val)
|
||||
{
|
||||
struct sk_buff *skb;
|
||||
int ret;
|
||||
|
||||
skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, H2C_EDCA_LEN);
|
||||
if (!skb) {
|
||||
|
@ -1391,7 +1419,8 @@ int rtw89_fw_h2c_set_edca(struct rtw89_dev *rtwdev, struct rtw89_vif *rtwvif,
|
|||
H2C_FUNC_USR_EDCA, 0, 1,
|
||||
H2C_EDCA_LEN);
|
||||
|
||||
if (rtw89_h2c_tx(rtwdev, skb, false)) {
|
||||
ret = rtw89_h2c_tx(rtwdev, skb, false);
|
||||
if (ret) {
|
||||
rtw89_err(rtwdev, "failed to send h2c\n");
|
||||
goto fail;
|
||||
}
|
||||
|
@ -1400,7 +1429,7 @@ int rtw89_fw_h2c_set_edca(struct rtw89_dev *rtwdev, struct rtw89_vif *rtwvif,
|
|||
fail:
|
||||
dev_kfree_skb_any(skb);
|
||||
|
||||
return -EBUSY;
|
||||
return ret;
|
||||
}
|
||||
|
||||
#define H2C_OFLD_CFG_LEN 8
|
||||
|
@ -1408,6 +1437,7 @@ int rtw89_fw_h2c_set_ofld_cfg(struct rtw89_dev *rtwdev)
|
|||
{
|
||||
static const u8 cfg[] = {0x09, 0x00, 0x00, 0x00, 0x5e, 0x00, 0x00, 0x00};
|
||||
struct sk_buff *skb;
|
||||
int ret;
|
||||
|
||||
skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, H2C_OFLD_CFG_LEN);
|
||||
if (!skb) {
|
||||
|
@ -1421,7 +1451,8 @@ int rtw89_fw_h2c_set_ofld_cfg(struct rtw89_dev *rtwdev)
|
|||
H2C_FUNC_OFLD_CFG, 0, 1,
|
||||
H2C_OFLD_CFG_LEN);
|
||||
|
||||
if (rtw89_h2c_tx(rtwdev, skb, false)) {
|
||||
ret = rtw89_h2c_tx(rtwdev, skb, false);
|
||||
if (ret) {
|
||||
rtw89_err(rtwdev, "failed to send h2c\n");
|
||||
goto fail;
|
||||
}
|
||||
|
@ -1430,7 +1461,7 @@ int rtw89_fw_h2c_set_ofld_cfg(struct rtw89_dev *rtwdev)
|
|||
fail:
|
||||
dev_kfree_skb_any(skb);
|
||||
|
||||
return -EBUSY;
|
||||
return ret;
|
||||
}
|
||||
|
||||
#define H2C_RA_LEN 16
|
||||
|
@ -1438,6 +1469,7 @@ int rtw89_fw_h2c_ra(struct rtw89_dev *rtwdev, struct rtw89_ra_info *ra, bool csi
|
|||
{
|
||||
struct sk_buff *skb;
|
||||
u8 *cmd;
|
||||
int ret;
|
||||
|
||||
skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, H2C_RA_LEN);
|
||||
if (!skb) {
|
||||
|
@ -1488,7 +1520,8 @@ int rtw89_fw_h2c_ra(struct rtw89_dev *rtwdev, struct rtw89_ra_info *ra, bool csi
|
|||
H2C_FUNC_OUTSRC_RA_MACIDCFG, 0, 0,
|
||||
H2C_RA_LEN);
|
||||
|
||||
if (rtw89_h2c_tx(rtwdev, skb, false)) {
|
||||
ret = rtw89_h2c_tx(rtwdev, skb, false);
|
||||
if (ret) {
|
||||
rtw89_err(rtwdev, "failed to send h2c\n");
|
||||
goto fail;
|
||||
}
|
||||
|
@ -1497,7 +1530,7 @@ int rtw89_fw_h2c_ra(struct rtw89_dev *rtwdev, struct rtw89_ra_info *ra, bool csi
|
|||
fail:
|
||||
dev_kfree_skb_any(skb);
|
||||
|
||||
return -EBUSY;
|
||||
return ret;
|
||||
}
|
||||
|
||||
#define H2C_LEN_CXDRVHDR 2
|
||||
|
@ -1511,6 +1544,7 @@ int rtw89_fw_h2c_cxdrv_init(struct rtw89_dev *rtwdev)
|
|||
struct rtw89_btc_ant_info *ant = &module->ant;
|
||||
struct sk_buff *skb;
|
||||
u8 *cmd;
|
||||
int ret;
|
||||
|
||||
skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, H2C_LEN_CXDRVINFO_INIT);
|
||||
if (!skb) {
|
||||
|
@ -1547,7 +1581,8 @@ int rtw89_fw_h2c_cxdrv_init(struct rtw89_dev *rtwdev)
|
|||
SET_DRV_INFO, 0, 0,
|
||||
H2C_LEN_CXDRVINFO_INIT);
|
||||
|
||||
if (rtw89_h2c_tx(rtwdev, skb, false)) {
|
||||
ret = rtw89_h2c_tx(rtwdev, skb, false);
|
||||
if (ret) {
|
||||
rtw89_err(rtwdev, "failed to send h2c\n");
|
||||
goto fail;
|
||||
}
|
||||
|
@ -1556,7 +1591,7 @@ int rtw89_fw_h2c_cxdrv_init(struct rtw89_dev *rtwdev)
|
|||
fail:
|
||||
dev_kfree_skb_any(skb);
|
||||
|
||||
return -EBUSY;
|
||||
return ret;
|
||||
}
|
||||
|
||||
#define PORT_DATA_OFFSET 4
|
||||
|
@ -1575,6 +1610,7 @@ int rtw89_fw_h2c_cxdrv_role(struct rtw89_dev *rtwdev)
|
|||
struct sk_buff *skb;
|
||||
u8 offset = 0;
|
||||
u8 *cmd;
|
||||
int ret;
|
||||
int i;
|
||||
|
||||
skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, H2C_LEN_CXDRVINFO_ROLE);
|
||||
|
@ -1625,7 +1661,8 @@ int rtw89_fw_h2c_cxdrv_role(struct rtw89_dev *rtwdev)
|
|||
SET_DRV_INFO, 0, 0,
|
||||
H2C_LEN_CXDRVINFO_ROLE);
|
||||
|
||||
if (rtw89_h2c_tx(rtwdev, skb, false)) {
|
||||
ret = rtw89_h2c_tx(rtwdev, skb, false);
|
||||
if (ret) {
|
||||
rtw89_err(rtwdev, "failed to send h2c\n");
|
||||
goto fail;
|
||||
}
|
||||
|
@ -1634,7 +1671,7 @@ int rtw89_fw_h2c_cxdrv_role(struct rtw89_dev *rtwdev)
|
|||
fail:
|
||||
dev_kfree_skb_any(skb);
|
||||
|
||||
return -EBUSY;
|
||||
return ret;
|
||||
}
|
||||
|
||||
int rtw89_fw_h2c_cxdrv_role_v1(struct rtw89_dev *rtwdev)
|
||||
|
@ -1646,6 +1683,7 @@ int rtw89_fw_h2c_cxdrv_role_v1(struct rtw89_dev *rtwdev)
|
|||
struct rtw89_btc_wl_active_role_v1 *active = role_info->active_role_v1;
|
||||
struct sk_buff *skb;
|
||||
u8 *cmd, offset;
|
||||
int ret;
|
||||
int i;
|
||||
|
||||
skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, H2C_LEN_CXDRVINFO_ROLE_V1);
|
||||
|
@ -1706,7 +1744,8 @@ int rtw89_fw_h2c_cxdrv_role_v1(struct rtw89_dev *rtwdev)
|
|||
SET_DRV_INFO, 0, 0,
|
||||
H2C_LEN_CXDRVINFO_ROLE_V1);
|
||||
|
||||
if (rtw89_h2c_tx(rtwdev, skb, false)) {
|
||||
ret = rtw89_h2c_tx(rtwdev, skb, false);
|
||||
if (ret) {
|
||||
rtw89_err(rtwdev, "failed to send h2c\n");
|
||||
goto fail;
|
||||
}
|
||||
|
@ -1715,7 +1754,7 @@ int rtw89_fw_h2c_cxdrv_role_v1(struct rtw89_dev *rtwdev)
|
|||
fail:
|
||||
dev_kfree_skb_any(skb);
|
||||
|
||||
return -EBUSY;
|
||||
return ret;
|
||||
}
|
||||
|
||||
#define H2C_LEN_CXDRVINFO_CTRL (4 + H2C_LEN_CXDRVHDR)
|
||||
|
@ -1726,6 +1765,7 @@ int rtw89_fw_h2c_cxdrv_ctrl(struct rtw89_dev *rtwdev)
|
|||
struct rtw89_btc_ctrl *ctrl = &btc->ctrl;
|
||||
struct sk_buff *skb;
|
||||
u8 *cmd;
|
||||
int ret;
|
||||
|
||||
skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, H2C_LEN_CXDRVINFO_CTRL);
|
||||
if (!skb) {
|
||||
|
@ -1749,7 +1789,8 @@ int rtw89_fw_h2c_cxdrv_ctrl(struct rtw89_dev *rtwdev)
|
|||
SET_DRV_INFO, 0, 0,
|
||||
H2C_LEN_CXDRVINFO_CTRL);
|
||||
|
||||
if (rtw89_h2c_tx(rtwdev, skb, false)) {
|
||||
ret = rtw89_h2c_tx(rtwdev, skb, false);
|
||||
if (ret) {
|
||||
rtw89_err(rtwdev, "failed to send h2c\n");
|
||||
goto fail;
|
||||
}
|
||||
|
@ -1758,7 +1799,7 @@ int rtw89_fw_h2c_cxdrv_ctrl(struct rtw89_dev *rtwdev)
|
|||
fail:
|
||||
dev_kfree_skb_any(skb);
|
||||
|
||||
return -EBUSY;
|
||||
return ret;
|
||||
}
|
||||
|
||||
#define H2C_LEN_CXDRVINFO_RFK (4 + H2C_LEN_CXDRVHDR)
|
||||
|
@ -1769,6 +1810,7 @@ int rtw89_fw_h2c_cxdrv_rfk(struct rtw89_dev *rtwdev)
|
|||
struct rtw89_btc_wl_rfk_info *rfk_info = &wl->rfk_info;
|
||||
struct sk_buff *skb;
|
||||
u8 *cmd;
|
||||
int ret;
|
||||
|
||||
skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, H2C_LEN_CXDRVINFO_RFK);
|
||||
if (!skb) {
|
||||
|
@ -1792,7 +1834,8 @@ int rtw89_fw_h2c_cxdrv_rfk(struct rtw89_dev *rtwdev)
|
|||
SET_DRV_INFO, 0, 0,
|
||||
H2C_LEN_CXDRVINFO_RFK);
|
||||
|
||||
if (rtw89_h2c_tx(rtwdev, skb, false)) {
|
||||
ret = rtw89_h2c_tx(rtwdev, skb, false);
|
||||
if (ret) {
|
||||
rtw89_err(rtwdev, "failed to send h2c\n");
|
||||
goto fail;
|
||||
}
|
||||
|
@ -1801,7 +1844,7 @@ int rtw89_fw_h2c_cxdrv_rfk(struct rtw89_dev *rtwdev)
|
|||
fail:
|
||||
dev_kfree_skb_any(skb);
|
||||
|
||||
return -EBUSY;
|
||||
return ret;
|
||||
}
|
||||
|
||||
#define H2C_LEN_PKT_OFLD 4
|
||||
|
@ -1809,6 +1852,7 @@ int rtw89_fw_h2c_del_pkt_offload(struct rtw89_dev *rtwdev, u8 id)
|
|||
{
|
||||
struct sk_buff *skb;
|
||||
u8 *cmd;
|
||||
int ret;
|
||||
|
||||
skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, H2C_LEN_PKT_OFLD);
|
||||
if (!skb) {
|
||||
|
@ -1826,7 +1870,8 @@ int rtw89_fw_h2c_del_pkt_offload(struct rtw89_dev *rtwdev, u8 id)
|
|||
H2C_FUNC_PACKET_OFLD, 1, 1,
|
||||
H2C_LEN_PKT_OFLD);
|
||||
|
||||
if (rtw89_h2c_tx(rtwdev, skb, false)) {
|
||||
ret = rtw89_h2c_tx(rtwdev, skb, false);
|
||||
if (ret) {
|
||||
rtw89_err(rtwdev, "failed to send h2c\n");
|
||||
goto fail;
|
||||
}
|
||||
|
@ -1835,7 +1880,7 @@ int rtw89_fw_h2c_del_pkt_offload(struct rtw89_dev *rtwdev, u8 id)
|
|||
fail:
|
||||
dev_kfree_skb_any(skb);
|
||||
|
||||
return -EBUSY;
|
||||
return ret;
|
||||
}
|
||||
|
||||
int rtw89_fw_h2c_add_pkt_offload(struct rtw89_dev *rtwdev, u8 *id,
|
||||
|
@ -1844,6 +1889,7 @@ int rtw89_fw_h2c_add_pkt_offload(struct rtw89_dev *rtwdev, u8 *id,
|
|||
struct sk_buff *skb;
|
||||
u8 *cmd;
|
||||
u8 alloc_id;
|
||||
int ret;
|
||||
|
||||
alloc_id = rtw89_core_acquire_bit_map(rtwdev->pkt_offload,
|
||||
RTW89_MAX_PKT_OFLD_NUM);
|
||||
|
@ -1870,7 +1916,8 @@ int rtw89_fw_h2c_add_pkt_offload(struct rtw89_dev *rtwdev, u8 *id,
|
|||
H2C_FUNC_PACKET_OFLD, 1, 1,
|
||||
H2C_LEN_PKT_OFLD + skb_ofld->len);
|
||||
|
||||
if (rtw89_h2c_tx(rtwdev, skb, false)) {
|
||||
ret = rtw89_h2c_tx(rtwdev, skb, false);
|
||||
if (ret) {
|
||||
rtw89_err(rtwdev, "failed to send h2c\n");
|
||||
goto fail;
|
||||
}
|
||||
|
@ -1879,7 +1926,7 @@ int rtw89_fw_h2c_add_pkt_offload(struct rtw89_dev *rtwdev, u8 *id,
|
|||
fail:
|
||||
dev_kfree_skb_any(skb);
|
||||
|
||||
return -EBUSY;
|
||||
return ret;
|
||||
}
|
||||
|
||||
#define H2C_LEN_SCAN_LIST_OFFLOAD 4
|
||||
|
@ -1890,6 +1937,7 @@ int rtw89_fw_h2c_scan_list_offload(struct rtw89_dev *rtwdev, int len,
|
|||
struct sk_buff *skb;
|
||||
int skb_len = H2C_LEN_SCAN_LIST_OFFLOAD + len * RTW89_MAC_CHINFO_SIZE;
|
||||
u8 *cmd;
|
||||
int ret;
|
||||
|
||||
skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, skb_len);
|
||||
if (!skb) {
|
||||
|
@ -1934,7 +1982,8 @@ int rtw89_fw_h2c_scan_list_offload(struct rtw89_dev *rtwdev, int len,
|
|||
H2C_CAT_MAC, H2C_CL_MAC_FW_OFLD,
|
||||
H2C_FUNC_ADD_SCANOFLD_CH, 1, 1, skb_len);
|
||||
|
||||
if (rtw89_h2c_tx(rtwdev, skb, false)) {
|
||||
ret = rtw89_h2c_tx(rtwdev, skb, false);
|
||||
if (ret) {
|
||||
rtw89_err(rtwdev, "failed to send h2c\n");
|
||||
goto fail;
|
||||
}
|
||||
|
@ -1943,7 +1992,7 @@ int rtw89_fw_h2c_scan_list_offload(struct rtw89_dev *rtwdev, int len,
|
|||
fail:
|
||||
dev_kfree_skb_any(skb);
|
||||
|
||||
return -EBUSY;
|
||||
return ret;
|
||||
}
|
||||
|
||||
#define H2C_LEN_SCAN_OFFLOAD 28
|
||||
|
@ -1954,6 +2003,7 @@ int rtw89_fw_h2c_scan_offload(struct rtw89_dev *rtwdev,
|
|||
struct rtw89_hw_scan_info *scan_info = &rtwdev->scan_info;
|
||||
struct sk_buff *skb;
|
||||
u8 *cmd;
|
||||
int ret;
|
||||
|
||||
skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, H2C_LEN_SCAN_OFFLOAD);
|
||||
if (!skb) {
|
||||
|
@ -1986,7 +2036,8 @@ int rtw89_fw_h2c_scan_offload(struct rtw89_dev *rtwdev,
|
|||
H2C_FUNC_SCANOFLD, 1, 1,
|
||||
H2C_LEN_SCAN_OFFLOAD);
|
||||
|
||||
if (rtw89_h2c_tx(rtwdev, skb, false)) {
|
||||
ret = rtw89_h2c_tx(rtwdev, skb, false);
|
||||
if (ret) {
|
||||
rtw89_err(rtwdev, "failed to send h2c\n");
|
||||
goto fail;
|
||||
}
|
||||
|
@ -1995,7 +2046,7 @@ int rtw89_fw_h2c_scan_offload(struct rtw89_dev *rtwdev,
|
|||
fail:
|
||||
dev_kfree_skb_any(skb);
|
||||
|
||||
return -EBUSY;
|
||||
return ret;
|
||||
}
|
||||
|
||||
int rtw89_fw_h2c_rf_reg(struct rtw89_dev *rtwdev,
|
||||
|
@ -2005,6 +2056,7 @@ int rtw89_fw_h2c_rf_reg(struct rtw89_dev *rtwdev,
|
|||
struct sk_buff *skb;
|
||||
u8 class = info->rf_path == RF_PATH_A ?
|
||||
H2C_CL_OUTSRC_RF_REG_A : H2C_CL_OUTSRC_RF_REG_B;
|
||||
int ret;
|
||||
|
||||
skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, len);
|
||||
if (!skb) {
|
||||
|
@ -2017,7 +2069,8 @@ int rtw89_fw_h2c_rf_reg(struct rtw89_dev *rtwdev,
|
|||
H2C_CAT_OUTSRC, class, page, 0, 0,
|
||||
len);
|
||||
|
||||
if (rtw89_h2c_tx(rtwdev, skb, false)) {
|
||||
ret = rtw89_h2c_tx(rtwdev, skb, false);
|
||||
if (ret) {
|
||||
rtw89_err(rtwdev, "failed to send h2c\n");
|
||||
goto fail;
|
||||
}
|
||||
|
@ -2026,7 +2079,7 @@ int rtw89_fw_h2c_rf_reg(struct rtw89_dev *rtwdev,
|
|||
fail:
|
||||
dev_kfree_skb_any(skb);
|
||||
|
||||
return -EBUSY;
|
||||
return ret;
|
||||
}
|
||||
|
||||
int rtw89_fw_h2c_rf_ntfy_mcc(struct rtw89_dev *rtwdev)
|
||||
|
@ -2035,6 +2088,7 @@ int rtw89_fw_h2c_rf_ntfy_mcc(struct rtw89_dev *rtwdev)
|
|||
struct rtw89_mcc_info *mcc_info = &rtwdev->mcc;
|
||||
struct rtw89_fw_h2c_rf_get_mccch *mccch;
|
||||
struct sk_buff *skb;
|
||||
int ret;
|
||||
|
||||
skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, sizeof(*mccch));
|
||||
if (!skb) {
|
||||
|
@ -2056,7 +2110,8 @@ int rtw89_fw_h2c_rf_ntfy_mcc(struct rtw89_dev *rtwdev)
|
|||
H2C_FUNC_OUTSRC_RF_GET_MCCCH, 0, 0,
|
||||
sizeof(*mccch));
|
||||
|
||||
if (rtw89_h2c_tx(rtwdev, skb, false)) {
|
||||
ret = rtw89_h2c_tx(rtwdev, skb, false);
|
||||
if (ret) {
|
||||
rtw89_err(rtwdev, "failed to send h2c\n");
|
||||
goto fail;
|
||||
}
|
||||
|
@ -2065,7 +2120,7 @@ int rtw89_fw_h2c_rf_ntfy_mcc(struct rtw89_dev *rtwdev)
|
|||
fail:
|
||||
dev_kfree_skb_any(skb);
|
||||
|
||||
return -EBUSY;
|
||||
return ret;
|
||||
}
|
||||
EXPORT_SYMBOL(rtw89_fw_h2c_rf_ntfy_mcc);
|
||||
|
||||
|
@ -2074,6 +2129,7 @@ int rtw89_fw_h2c_raw_with_hdr(struct rtw89_dev *rtwdev,
|
|||
bool rack, bool dack)
|
||||
{
|
||||
struct sk_buff *skb;
|
||||
int ret;
|
||||
|
||||
skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, len);
|
||||
if (!skb) {
|
||||
|
@ -2086,7 +2142,8 @@ int rtw89_fw_h2c_raw_with_hdr(struct rtw89_dev *rtwdev,
|
|||
H2C_CAT_OUTSRC, h2c_class, h2c_func, rack, dack,
|
||||
len);
|
||||
|
||||
if (rtw89_h2c_tx(rtwdev, skb, false)) {
|
||||
ret = rtw89_h2c_tx(rtwdev, skb, false);
|
||||
if (ret) {
|
||||
rtw89_err(rtwdev, "failed to send h2c\n");
|
||||
goto fail;
|
||||
}
|
||||
|
@ -2095,12 +2152,13 @@ int rtw89_fw_h2c_raw_with_hdr(struct rtw89_dev *rtwdev,
|
|||
fail:
|
||||
dev_kfree_skb_any(skb);
|
||||
|
||||
return -EBUSY;
|
||||
return ret;
|
||||
}
|
||||
|
||||
int rtw89_fw_h2c_raw(struct rtw89_dev *rtwdev, const u8 *buf, u16 len)
|
||||
{
|
||||
struct sk_buff *skb;
|
||||
int ret;
|
||||
|
||||
skb = rtw89_fw_h2c_alloc_skb_no_hdr(rtwdev, len);
|
||||
if (!skb) {
|
||||
|
@ -2109,7 +2167,8 @@ int rtw89_fw_h2c_raw(struct rtw89_dev *rtwdev, const u8 *buf, u16 len)
|
|||
}
|
||||
skb_put_data(skb, buf, len);
|
||||
|
||||
if (rtw89_h2c_tx(rtwdev, skb, false)) {
|
||||
ret = rtw89_h2c_tx(rtwdev, skb, false);
|
||||
if (ret) {
|
||||
rtw89_err(rtwdev, "failed to send h2c\n");
|
||||
goto fail;
|
||||
}
|
||||
|
@ -2118,7 +2177,7 @@ int rtw89_fw_h2c_raw(struct rtw89_dev *rtwdev, const u8 *buf, u16 len)
|
|||
fail:
|
||||
dev_kfree_skb_any(skb);
|
||||
|
||||
return -EBUSY;
|
||||
return ret;
|
||||
}
|
||||
|
||||
void rtw89_fw_send_all_early_h2c(struct rtw89_dev *rtwdev)
|
||||
|
@ -2647,6 +2706,7 @@ void rtw89_store_op_chan(struct rtw89_dev *rtwdev, bool backup)
|
|||
int rtw89_fw_h2c_trigger_cpu_exception(struct rtw89_dev *rtwdev)
|
||||
{
|
||||
struct sk_buff *skb;
|
||||
int ret;
|
||||
|
||||
skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, H2C_FW_CPU_EXCEPTION_LEN);
|
||||
if (!skb) {
|
||||
|
@ -2665,7 +2725,8 @@ int rtw89_fw_h2c_trigger_cpu_exception(struct rtw89_dev *rtwdev)
|
|||
H2C_FUNC_CPU_EXCEPTION, 0, 0,
|
||||
H2C_FW_CPU_EXCEPTION_LEN);
|
||||
|
||||
if (rtw89_h2c_tx(rtwdev, skb, false)) {
|
||||
ret = rtw89_h2c_tx(rtwdev, skb, false);
|
||||
if (ret) {
|
||||
rtw89_err(rtwdev, "failed to send h2c\n");
|
||||
goto fail;
|
||||
}
|
||||
|
@ -2674,5 +2735,5 @@ int rtw89_fw_h2c_trigger_cpu_exception(struct rtw89_dev *rtwdev)
|
|||
|
||||
fail:
|
||||
dev_kfree_skb_any(skb);
|
||||
return -EBUSY;
|
||||
return ret;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue