aboutsummaryrefslogtreecommitdiff
path: root/sys/contrib/dev/rtw89/ser.c
diff options
context:
space:
mode:
authorBjoern A. Zeeb <bz@FreeBSD.org>2026-04-18 20:48:44 +0000
committerBjoern A. Zeeb <bz@FreeBSD.org>2026-04-22 20:57:12 +0000
commit7ffebcdb702d212afab3ed6adb5ac0e69ef1269c (patch)
tree5ba5a6500db1c25a7c29d39e1f866d18660d2aed /sys/contrib/dev/rtw89/ser.c
parentf08c02995e658076f23b221ddfacba9956428183 (diff)
rtw89: update Realtek's rtw89 driver
This version is based on git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 028ef9c96e96197026887c0f092424679298aae8 ( tag: v7.0 ). Sponsored by: The FreeBSD Foundation (cherry picked from commit 422e9c5d878e14ec16bb89ef6df65d964d5ce2f1)
Diffstat (limited to 'sys/contrib/dev/rtw89/ser.c')
-rw-r--r--sys/contrib/dev/rtw89/ser.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/sys/contrib/dev/rtw89/ser.c b/sys/contrib/dev/rtw89/ser.c
index f99e179f7ff9..f91e66133b30 100644
--- a/sys/contrib/dev/rtw89/ser.c
+++ b/sys/contrib/dev/rtw89/ser.c
@@ -210,7 +210,7 @@ static int ser_send_msg(struct rtw89_ser *ser, u8 event)
if (test_bit(RTW89_SER_DRV_STOP_RUN, ser->flags))
return -EIO;
- msg = kmalloc(sizeof(*msg), GFP_ATOMIC);
+ msg = kmalloc_obj(*msg, GFP_ATOMIC);
if (!msg)
return -ENOMEM;
@@ -431,6 +431,14 @@ static void hal_send_m4_event(struct rtw89_ser *ser)
rtw89_mac_set_err_status(rtwdev, MAC_AX_ERR_L1_RCVY_EN);
}
+static void hal_enable_err_imr(struct rtw89_ser *ser)
+{
+ struct rtw89_dev *rtwdev = container_of(ser, struct rtw89_dev, ser);
+ const struct rtw89_mac_gen_def *mac = rtwdev->chip->mac_def;
+
+ mac->err_imr_ctrl(rtwdev, true);
+}
+
/* state handler */
static void ser_idle_st_hdl(struct rtw89_ser *ser, u8 evt)
{
@@ -552,6 +560,8 @@ static void ser_do_hci_st_hdl(struct rtw89_ser *ser, u8 evt)
break;
case SER_EV_MAC_RESET_DONE:
+ hal_enable_err_imr(ser);
+
ser_state_goto(ser, SER_IDLE_ST);
break;