Skip to content

Commit

Permalink
wifi: rtw89: mac: use regular int as return type of DLE buffer request
Browse files Browse the repository at this point in the history
The function to request DLE (data link engine) buffer uses 'u16' as return
value that mixes error code, so change it to 'int' as regular error code.
Also, treat invalid register value (0xfff) as an error.

Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Signed-off-by: Kalle Valo <kvalo@kernel.org>
Link: https://lore.kernel.org/r/20230414082228.30766-1-pkshih@realtek.com
  • Loading branch information
Ping-Ke Shih authored and lwfinger committed Apr 21, 2023
1 parent 8bddc73 commit 6169c9b
Show file tree
Hide file tree
Showing 4 changed files with 19 additions and 19 deletions.
13 changes: 4 additions & 9 deletions debug.c
Original file line number Diff line number Diff line change
Expand Up @@ -3073,18 +3073,13 @@ static int rtw89_dbg_trigger_ctrl_error(struct rtw89_dev *rtwdev)
{
struct rtw89_cpuio_ctrl ctrl_para = {0};
u16 pkt_id;
int ret;

rtw89_leave_ps_mode(rtwdev);

pkt_id = rtw89_mac_dle_buf_req(rtwdev, 0x20, true);
switch (pkt_id) {
case 0xffff:
return -ETIMEDOUT;
case 0xfff:
return -ENOMEM;
default:
break;
}
ret = rtw89_mac_dle_buf_req(rtwdev, 0x20, true, &pkt_id);
if (ret)
return ret;

/* intentionally, enqueue two pkt, but has only one pkt id */
ctrl_para.cmd_type = CPUIO_OP_CMD_ENQ_TO_HEAD;
Expand Down
22 changes: 13 additions & 9 deletions mac.c
Original file line number Diff line number Diff line change
Expand Up @@ -2813,7 +2813,7 @@ int rtw89_mac_resume_sch_tx_v1(struct rtw89_dev *rtwdev, u8 mac_idx, u32 tx_en)
}
EXPORT_SYMBOL(rtw89_mac_resume_sch_tx_v1);

u16 rtw89_mac_dle_buf_req(struct rtw89_dev *rtwdev, u16 buf_len, bool wd)
int rtw89_mac_dle_buf_req(struct rtw89_dev *rtwdev, u16 buf_len, bool wd, u16 *pkt_id)
{
u32 val, reg;
int ret;
Expand All @@ -2828,9 +2828,13 @@ u16 rtw89_mac_dle_buf_req(struct rtw89_dev *rtwdev, u16 buf_len, bool wd)
ret = read_poll_timeout(rtw89_read32, val, val & B_AX_WD_BUF_STAT_DONE,
1, 2000, false, rtwdev, reg);
if (ret)
return 0xffff;
return ret;

*pkt_id = FIELD_GET(B_AX_WD_BUF_STAT_PKTID_MASK, val);
if (*pkt_id == S_WD_BUF_STAT_PKTID_INVALID)
return -ENOENT;

return FIELD_GET(B_AX_WD_BUF_STAT_PKTID_MASK, val);
return 0;
}

int rtw89_mac_set_cpuio(struct rtw89_dev *rtwdev,
Expand Down Expand Up @@ -2907,10 +2911,10 @@ static int dle_quota_change(struct rtw89_dev *rtwdev, enum rtw89_qta_mode mode)

dle_quota_cfg(rtwdev, cfg, INVALID_QT_WCPU);

pkt_id = rtw89_mac_dle_buf_req(rtwdev, 0x20, true);
if (pkt_id == 0xffff) {
ret = rtw89_mac_dle_buf_req(rtwdev, 0x20, true, &pkt_id);
if (ret) {
rtw89_err(rtwdev, "[ERR]WDE DLE buf req\n");
return -ENOMEM;
return ret;
}

ctrl_para.cmd_type = CPUIO_OP_CMD_ENQ_TO_HEAD;
Expand All @@ -2925,10 +2929,10 @@ static int dle_quota_change(struct rtw89_dev *rtwdev, enum rtw89_qta_mode mode)
return -EFAULT;
}

pkt_id = rtw89_mac_dle_buf_req(rtwdev, 0x20, false);
if (pkt_id == 0xffff) {
ret = rtw89_mac_dle_buf_req(rtwdev, 0x20, false, &pkt_id);
if (ret) {
rtw89_err(rtwdev, "[ERR]PLE DLE buf req\n");
return -ENOMEM;
return ret;
}

ctrl_para.cmd_type = CPUIO_OP_CMD_ENQ_TO_HEAD;
Expand Down
2 changes: 1 addition & 1 deletion mac.h
Original file line number Diff line number Diff line change
Expand Up @@ -1149,7 +1149,7 @@ enum rtw89_mac_xtal_si_offset {
int rtw89_mac_write_xtal_si(struct rtw89_dev *rtwdev, u8 offset, u8 val, u8 mask);
int rtw89_mac_read_xtal_si(struct rtw89_dev *rtwdev, u8 offset, u8 *val);
void rtw89_mac_pkt_drop_vif(struct rtw89_dev *rtwdev, struct rtw89_vif *rtwvif);
u16 rtw89_mac_dle_buf_req(struct rtw89_dev *rtwdev, u16 buf_len, bool wd);
int rtw89_mac_dle_buf_req(struct rtw89_dev *rtwdev, u16 buf_len, bool wd, u16 *pkt_id);
int rtw89_mac_set_cpuio(struct rtw89_dev *rtwdev,
struct rtw89_cpuio_ctrl *ctrl_para, bool wd);
int rtw89_mac_typ_fltr_opt(struct rtw89_dev *rtwdev,
Expand Down
1 change: 1 addition & 0 deletions reg.h
Original file line number Diff line number Diff line change
Expand Up @@ -1588,6 +1588,7 @@
#define R_AX_PL_BUF_STATUS 0x9824
#define B_AX_WD_BUF_STAT_DONE BIT(31)
#define B_AX_WD_BUF_STAT_PKTID_MASK GENMASK(11, 0)
#define S_WD_BUF_STAT_PKTID_INVALID GENMASK(11, 0)

#define R_AX_WD_CPUQ_OP_0 0x9810
#define R_AX_PL_CPUQ_OP_0 0x9830
Expand Down

0 comments on commit 6169c9b

Please sign in to comment.