]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
wifi: rtw89: usb: Prepare rtw89_usb_ops_mac_post_init() for RTL8852CU
authorBitterblue Smith <rtl8821cerfe2@gmail.com>
Sat, 1 Nov 2025 19:23:33 +0000 (21:23 +0200)
committerPing-Ke Shih <pkshih@realtek.com>
Tue, 4 Nov 2025 01:34:30 +0000 (09:34 +0800)
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
drivers/net/wireless/realtek/rtw89/rtw8851bu.c
drivers/net/wireless/realtek/rtw89/rtw8852bu.c
drivers/net/wireless/realtek/rtw89/usb.c
drivers/net/wireless/realtek/rtw89/usb.h

index 9cc682872d24504b5b3e6da9ca1b060530f6dd16..b8799a37add32aca7fe46ce9c8527615f4dd1058 100644 (file)
@@ -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,
index b913cae95e3b51ac8147a3e5dc0af8d040ccff91..c8a64440334158f079f45734435df9d7fdc09e7b 100644 (file)
@@ -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,
index ea1d8726ec3fd66fd07c0842da4685153f5aeb33..4c47071b30fdfb1973f9f9c5d744bd8a7ca2fca6 100644 (file)
@@ -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;
index be3a9fbe42c0bca66c8c7c0168bcc6f59973b2c7..32cdbf5128e45629ac33021720484650bd50d233 100644 (file)
@@ -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];
 };