summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorBitterblue Smith <rtl8821cerfe2@gmail.com>2025-11-01 22:23:33 +0300
committerPing-Ke Shih <pkshih@realtek.com>2025-11-04 04:34:30 +0300
commit199afd3af12c81f663734d8fe290197288618ada (patch)
tree821041072ef33bb6ad25dee9e0cd3d21c3e9b980 /drivers
parent7697701d6c0356cecda03be516023cb527ddb007 (diff)
downloadlinux-199afd3af12c81f663734d8fe290197288618ada.tar.xz
wifi: rtw89: usb: Prepare rtw89_usb_ops_mac_post_init() for RTL8852CU
The registers used in rtw89_usb_ops_mac_post_init() are located at different offsets in RTL8852CU, so move them to struct rtw89_usb_info, which is filled in each chip's driver. Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com> Acked-by: Ping-Ke Shih <pkshih@realtek.com> Signed-off-by: Ping-Ke Shih <pkshih@realtek.com> Link: https://patch.msgid.link/c12b621a-037c-4870-ac12-9795ddde6b53@gmail.com
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/wireless/realtek/rtw89/rtw8851bu.c3
-rw-r--r--drivers/net/wireless/realtek/rtw89/rtw8852bu.c3
-rw-r--r--drivers/net/wireless/realtek/rtw89/usb.c7
-rw-r--r--drivers/net/wireless/realtek/rtw89/usb.h3
4 files changed, 13 insertions, 3 deletions
diff --git a/drivers/net/wireless/realtek/rtw89/rtw8851bu.c b/drivers/net/wireless/realtek/rtw89/rtw8851bu.c
index 9cc682872d24..b8799a37add3 100644
--- a/drivers/net/wireless/realtek/rtw89/rtw8851bu.c
+++ b/drivers/net/wireless/realtek/rtw89/rtw8851bu.c
@@ -12,6 +12,9 @@ static const struct rtw89_usb_info rtw8851b_usb_info = {
.usb_host_request_2 = R_AX_USB_HOST_REQUEST_2,
.usb_wlan0_1 = R_AX_USB_WLAN0_1,
.hci_func_en = R_AX_HCI_FUNC_EN,
+ .usb3_mac_npi_config_intf_0 = R_AX_USB3_MAC_NPI_CONFIG_INTF_0,
+ .usb_endpoint_0 = R_AX_USB_ENDPOINT_0,
+ .usb_endpoint_2 = R_AX_USB_ENDPOINT_2,
.bulkout_id = {
[RTW89_DMA_ACH0] = 3,
[RTW89_DMA_ACH1] = 4,
diff --git a/drivers/net/wireless/realtek/rtw89/rtw8852bu.c b/drivers/net/wireless/realtek/rtw89/rtw8852bu.c
index b913cae95e3b..c8a644403341 100644
--- a/drivers/net/wireless/realtek/rtw89/rtw8852bu.c
+++ b/drivers/net/wireless/realtek/rtw89/rtw8852bu.c
@@ -12,6 +12,9 @@ static const struct rtw89_usb_info rtw8852b_usb_info = {
.usb_host_request_2 = R_AX_USB_HOST_REQUEST_2,
.usb_wlan0_1 = R_AX_USB_WLAN0_1,
.hci_func_en = R_AX_HCI_FUNC_EN,
+ .usb3_mac_npi_config_intf_0 = R_AX_USB3_MAC_NPI_CONFIG_INTF_0,
+ .usb_endpoint_0 = R_AX_USB_ENDPOINT_0,
+ .usb_endpoint_2 = R_AX_USB_ENDPOINT_2,
.bulkout_id = {
[RTW89_DMA_ACH0] = 3,
[RTW89_DMA_ACH1] = 4,
diff --git a/drivers/net/wireless/realtek/rtw89/usb.c b/drivers/net/wireless/realtek/rtw89/usb.c
index ea1d8726ec3f..4c47071b30fd 100644
--- a/drivers/net/wireless/realtek/rtw89/usb.c
+++ b/drivers/net/wireless/realtek/rtw89/usb.c
@@ -708,10 +708,11 @@ static int rtw89_usb_ops_mac_pre_deinit(struct rtw89_dev *rtwdev)
static int rtw89_usb_ops_mac_post_init(struct rtw89_dev *rtwdev)
{
struct rtw89_usb *rtwusb = rtw89_usb_priv(rtwdev);
+ const struct rtw89_usb_info *info = rtwusb->info;
enum usb_device_speed speed;
u32 ep;
- rtw89_write32_clr(rtwdev, R_AX_USB3_MAC_NPI_CONFIG_INTF_0,
+ rtw89_write32_clr(rtwdev, info->usb3_mac_npi_config_intf_0,
B_AX_SSPHY_LFPS_FILTER);
speed = rtwusb->udev->speed;
@@ -727,9 +728,9 @@ static int rtw89_usb_ops_mac_post_init(struct rtw89_dev *rtwdev)
if (ep == 8)
continue;
- rtw89_write8_mask(rtwdev, R_AX_USB_ENDPOINT_0,
+ rtw89_write8_mask(rtwdev, info->usb_endpoint_0,
B_AX_EP_IDX, ep);
- rtw89_write8(rtwdev, R_AX_USB_ENDPOINT_2 + 1, NUMP);
+ rtw89_write8(rtwdev, info->usb_endpoint_2 + 1, NUMP);
}
return 0;
diff --git a/drivers/net/wireless/realtek/rtw89/usb.h b/drivers/net/wireless/realtek/rtw89/usb.h
index be3a9fbe42c0..32cdbf5128e4 100644
--- a/drivers/net/wireless/realtek/rtw89/usb.h
+++ b/drivers/net/wireless/realtek/rtw89/usb.h
@@ -24,6 +24,9 @@ struct rtw89_usb_info {
u32 usb_host_request_2;
u32 usb_wlan0_1;
u32 hci_func_en;
+ u32 usb3_mac_npi_config_intf_0;
+ u32 usb_endpoint_0;
+ u32 usb_endpoint_2;
u8 bulkout_id[RTW89_DMA_CH_NUM];
};