Message ID | 594d5987-5e6d-405c-b482-d101b43cb65c@gmail.com |
---|---|
State | New |
Headers | show |
Series | wifi: rtw89: Add support for USB devices | expand |
Bitterblue Smith <rtl8821cerfe2@gmail.com> wrote: > Don't access dle_mem in get_dle_mem_cfg() directly. USB 2, USB 3, and > SDIO will need different sets of values. > > Rename dle_mem in struct rtw89_chip_info to dle_mem_pcie and get it > via rtw89_hci_dle_mem() and rtw89_pci_ops_dle_mem(). > > Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com> Acked-by: Ping-Ke Shih <pkshih@realtek.com>
Bitterblue Smith <rtl8821cerfe2@gmail.com> wrote: > Don't access dle_mem in get_dle_mem_cfg() directly. USB 2, USB 3, and > SDIO will need different sets of values. > > Rename dle_mem in struct rtw89_chip_info to dle_mem_pcie and get it > via rtw89_hci_dle_mem() and rtw89_pci_ops_dle_mem(). > > Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com> > --- > drivers/net/wireless/realtek/rtw89/core.h | 10 +++++++++- > drivers/net/wireless/realtek/rtw89/mac.c | 2 +- > drivers/net/wireless/realtek/rtw89/pci.c | 8 ++++++++ > drivers/net/wireless/realtek/rtw89/rtw8851b.c | 2 +- > drivers/net/wireless/realtek/rtw89/rtw8852a.c | 2 +- > drivers/net/wireless/realtek/rtw89/rtw8852b.c | 2 +- > drivers/net/wireless/realtek/rtw89/rtw8852bt.c | 2 +- > drivers/net/wireless/realtek/rtw89/rtw8852c.c | 2 +- > drivers/net/wireless/realtek/rtw89/rtw8922a.c | 2 +- > 9 files changed, 24 insertions(+), 8 deletions(-) > > diff --git a/drivers/net/wireless/realtek/rtw89/core.h b/drivers/net/wireless/realtek/rtw89/core.h > index be1259cfa712..afcf0353a625 100644 > --- a/drivers/net/wireless/realtek/rtw89/core.h > +++ b/drivers/net/wireless/realtek/rtw89/core.h > @@ -3579,6 +3579,8 @@ struct rtw89_hci_ops { > void (*disable_intr)(struct rtw89_dev *rtwdev); > void (*enable_intr)(struct rtw89_dev *rtwdev); > int (*rst_bdram)(struct rtw89_dev *rtwdev); an empty line > + const struct rtw89_dle_mem *(*dle_mem)(struct rtw89_dev *rtwdev, > + u8 qta_mode); > }; > > struct rtw89_hci_info { > @@ -4271,7 +4273,7 @@ struct rtw89_chip_info { > bool dis_2g_40m_ul_ofdma; > u32 rsvd_ple_ofst; > const struct rtw89_hfc_param_ini *hfc_param_ini; > - const struct rtw89_dle_mem *dle_mem; > + const struct rtw89_dle_mem *dle_mem_pcie; I reconsider if this can be an array with a new enum = {PCIE, USB2, USB3, SDIO} stored in hal->hci_dle_mem_type. Then, consumers can just access it via chip->dle_mem[hal->hci_dle_mem_type][quota]. But, I'm not sure if USB subsystem can notify driver when USB speed is changed. This is a thought to simply the struct definition. > u8 wde_qempty_acq_grpnum; > u8 wde_qempty_mgq_grpsel; > u32 rf_base_addr[2]; > @@ -6146,6 +6148,12 @@ static inline void rtw89_hci_clear(struct rtw89_dev *rtwdev, struct pci_dev *pde > rtwdev->hci.ops->clear(rtwdev, pdev); > } > > +static inline const > +struct rtw89_dle_mem *rtw89_hci_dle_mem(struct rtw89_dev *rtwdev, u8 qta_mode) > +{ > + return rtwdev->hci.ops->dle_mem(rtwdev, qta_mode); > +} > + > static inline > struct rtw89_tx_skb_data *RTW89_TX_SKB_CB(struct sk_buff *skb) > { > diff --git a/drivers/net/wireless/realtek/rtw89/mac.c b/drivers/net/wireless/realtek/rtw89/mac.c > index 592fbb6d2728..77d35db3e133 100644 > --- a/drivers/net/wireless/realtek/rtw89/mac.c > +++ b/drivers/net/wireless/realtek/rtw89/mac.c > @@ -1719,7 +1719,7 @@ static const struct rtw89_dle_mem *get_dle_mem_cfg(struct rtw89_dev *rtwdev, > struct rtw89_mac_info *mac = &rtwdev->mac; > const struct rtw89_dle_mem *cfg; > > - cfg = &rtwdev->chip->dle_mem[mode]; > + cfg = rtw89_hci_dle_mem(rtwdev, mode); > if (!cfg) > return NULL; > > diff --git a/drivers/net/wireless/realtek/rtw89/pci.c b/drivers/net/wireless/realtek/rtw89/pci.c > index c2fe5a898dc7..1dec603012ba 100644 > --- a/drivers/net/wireless/realtek/rtw89/pci.c > +++ b/drivers/net/wireless/realtek/rtw89/pci.c > @@ -4341,6 +4341,13 @@ static int __maybe_unused rtw89_pci_resume(struct device *dev) > SIMPLE_DEV_PM_OPS(rtw89_pm_ops, rtw89_pci_suspend, rtw89_pci_resume); > EXPORT_SYMBOL(rtw89_pm_ops); > > +static const > +struct rtw89_dle_mem *rtw89_pci_ops_dle_mem(struct rtw89_dev *rtwdev, > + u8 qta_mode) > +{ > + return &rtwdev->chip->dle_mem_pcie[qta_mode]; > +} > + > const struct rtw89_pci_gen_def rtw89_pci_gen_ax = { > .isr_rdu = B_AX_RDU_INT, > .isr_halt_c2h = B_AX_HALT_C2H_INT_EN, > @@ -4413,6 +4420,7 @@ static const struct rtw89_hci_ops rtw89_pci_ops = { > .disable_intr = rtw89_pci_disable_intr_lock, > .enable_intr = rtw89_pci_enable_intr_lock, > .rst_bdram = rtw89_pci_reset_bdram, an empty line > + .dle_mem = rtw89_pci_ops_dle_mem, > }; > [...]
On 14/05/2025 03:56, Ping-Ke Shih wrote: > Bitterblue Smith <rtl8821cerfe2@gmail.com> wrote: >> Don't access dle_mem in get_dle_mem_cfg() directly. USB 2, USB 3, and >> SDIO will need different sets of values. >> >> Rename dle_mem in struct rtw89_chip_info to dle_mem_pcie and get it >> via rtw89_hci_dle_mem() and rtw89_pci_ops_dle_mem(). >> >> Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com> >> --- >> drivers/net/wireless/realtek/rtw89/core.h | 10 +++++++++- >> drivers/net/wireless/realtek/rtw89/mac.c | 2 +- >> drivers/net/wireless/realtek/rtw89/pci.c | 8 ++++++++ >> drivers/net/wireless/realtek/rtw89/rtw8851b.c | 2 +- >> drivers/net/wireless/realtek/rtw89/rtw8852a.c | 2 +- >> drivers/net/wireless/realtek/rtw89/rtw8852b.c | 2 +- >> drivers/net/wireless/realtek/rtw89/rtw8852bt.c | 2 +- >> drivers/net/wireless/realtek/rtw89/rtw8852c.c | 2 +- >> drivers/net/wireless/realtek/rtw89/rtw8922a.c | 2 +- >> 9 files changed, 24 insertions(+), 8 deletions(-) >> >> diff --git a/drivers/net/wireless/realtek/rtw89/core.h b/drivers/net/wireless/realtek/rtw89/core.h >> index be1259cfa712..afcf0353a625 100644 >> --- a/drivers/net/wireless/realtek/rtw89/core.h >> +++ b/drivers/net/wireless/realtek/rtw89/core.h >> @@ -3579,6 +3579,8 @@ struct rtw89_hci_ops { >> void (*disable_intr)(struct rtw89_dev *rtwdev); >> void (*enable_intr)(struct rtw89_dev *rtwdev); >> int (*rst_bdram)(struct rtw89_dev *rtwdev); > > an empty line > >> + const struct rtw89_dle_mem *(*dle_mem)(struct rtw89_dev *rtwdev, >> + u8 qta_mode); >> }; >> >> struct rtw89_hci_info { >> @@ -4271,7 +4273,7 @@ struct rtw89_chip_info { >> bool dis_2g_40m_ul_ofdma; >> u32 rsvd_ple_ofst; >> const struct rtw89_hfc_param_ini *hfc_param_ini; >> - const struct rtw89_dle_mem *dle_mem; >> + const struct rtw89_dle_mem *dle_mem_pcie; > > I reconsider if this can be an array with a new enum = {PCIE, USB2, USB3, SDIO} > stored in hal->hci_dle_mem_type. Then, consumers can just access it via > chip->dle_mem[hal->hci_dle_mem_type][quota]. But, I'm not sure if USB > subsystem can notify driver when USB speed is changed. > > This is a thought to simply the struct definition. > The hard part is naming the new enum. It's basically rtw89_hci_type but more detailed. I don't expect the USB speed to change during the lifetime of struct rtw89_dev. When the device switches from USB 2 to USB 3 it disconnects and reappears as a new device: Apr 21 22:02:22 ideapad2 kernel: usb 1-4: new high-speed USB device number 17 using xhci_hcd Apr 21 22:02:22 ideapad2 kernel: usb 1-4: New USB device found, idVendor=0bda, idProduct=c832, bcdDevice= 0.00 Apr 21 22:02:22 ideapad2 kernel: usb 1-4: New USB device strings: Mfr=1, Product=2, SerialNumber=3 Apr 21 22:02:22 ideapad2 kernel: usb 1-4: Product: 802.11ax WLAN Adapter Apr 21 22:02:22 ideapad2 kernel: usb 1-4: Manufacturer: Realtek Apr 21 22:02:22 ideapad2 kernel: usb 1-4: SerialNumber: 00e04c000001 Apr 21 22:02:24 ideapad2 kernel: eric-tx CALL alloc_txring !!!! Apr 21 22:02:24 ideapad2 kernel: usb 1-4: USB disconnect, device number 17 Apr 21 22:02:24 ideapad2 kernel: rtl8852cu 1-4:1.0: Runtime PM usage count underflow! Apr 21 22:02:27 ideapad2 kernel: usb 2-4: new SuperSpeed USB device number 2 using xhci_hcd Apr 21 22:02:27 ideapad2 kernel: usb 2-4: New USB device found, idVendor=0bda, idProduct=c832, bcdDevice= 0.00 Apr 21 22:02:28 ideapad2 kernel: usb 2-4: New USB device strings: Mfr=1, Product=2, SerialNumber=3 Apr 21 22:02:28 ideapad2 kernel: usb 2-4: Product: 802.11ax WLAN Adapter Apr 21 22:02:28 ideapad2 kernel: usb 2-4: Manufacturer: Realtek Apr 21 22:02:28 ideapad2 kernel: usb 2-4: SerialNumber: 00e04c000001 Apr 21 22:02:28 ideapad2 kernel: eric-tx CALL alloc_txring !!!! Apr 21 22:02:28 ideapad2 kernel: rtl8852cu 2-4:1.0 wlp3s0f3u4: renamed from wlan0 >> u8 wde_qempty_acq_grpnum; >> u8 wde_qempty_mgq_grpsel; >> u32 rf_base_addr[2]; >> @@ -6146,6 +6148,12 @@ static inline void rtw89_hci_clear(struct rtw89_dev *rtwdev, struct pci_dev *pde >> rtwdev->hci.ops->clear(rtwdev, pdev); >> } >> >> +static inline const >> +struct rtw89_dle_mem *rtw89_hci_dle_mem(struct rtw89_dev *rtwdev, u8 qta_mode) >> +{ >> + return rtwdev->hci.ops->dle_mem(rtwdev, qta_mode); >> +} >> + >> static inline >> struct rtw89_tx_skb_data *RTW89_TX_SKB_CB(struct sk_buff *skb) >> { >> diff --git a/drivers/net/wireless/realtek/rtw89/mac.c b/drivers/net/wireless/realtek/rtw89/mac.c >> index 592fbb6d2728..77d35db3e133 100644 >> --- a/drivers/net/wireless/realtek/rtw89/mac.c >> +++ b/drivers/net/wireless/realtek/rtw89/mac.c >> @@ -1719,7 +1719,7 @@ static const struct rtw89_dle_mem *get_dle_mem_cfg(struct rtw89_dev *rtwdev, >> struct rtw89_mac_info *mac = &rtwdev->mac; >> const struct rtw89_dle_mem *cfg; >> >> - cfg = &rtwdev->chip->dle_mem[mode]; >> + cfg = rtw89_hci_dle_mem(rtwdev, mode); >> if (!cfg) >> return NULL; >> >> diff --git a/drivers/net/wireless/realtek/rtw89/pci.c b/drivers/net/wireless/realtek/rtw89/pci.c >> index c2fe5a898dc7..1dec603012ba 100644 >> --- a/drivers/net/wireless/realtek/rtw89/pci.c >> +++ b/drivers/net/wireless/realtek/rtw89/pci.c >> @@ -4341,6 +4341,13 @@ static int __maybe_unused rtw89_pci_resume(struct device *dev) >> SIMPLE_DEV_PM_OPS(rtw89_pm_ops, rtw89_pci_suspend, rtw89_pci_resume); >> EXPORT_SYMBOL(rtw89_pm_ops); >> >> +static const >> +struct rtw89_dle_mem *rtw89_pci_ops_dle_mem(struct rtw89_dev *rtwdev, >> + u8 qta_mode) >> +{ >> + return &rtwdev->chip->dle_mem_pcie[qta_mode]; >> +} >> + >> const struct rtw89_pci_gen_def rtw89_pci_gen_ax = { >> .isr_rdu = B_AX_RDU_INT, >> .isr_halt_c2h = B_AX_HALT_C2H_INT_EN, >> @@ -4413,6 +4420,7 @@ static const struct rtw89_hci_ops rtw89_pci_ops = { >> .disable_intr = rtw89_pci_disable_intr_lock, >> .enable_intr = rtw89_pci_enable_intr_lock, >> .rst_bdram = rtw89_pci_reset_bdram, > > an empty line > >> + .dle_mem = rtw89_pci_ops_dle_mem, >> }; >> > > [...] > >
Bitterblue Smith <rtl8821cerfe2@gmail.com> wrote: > On 14/05/2025 03:56, Ping-Ke Shih wrote: > > Bitterblue Smith <rtl8821cerfe2@gmail.com> wrote: > >> Don't access dle_mem in get_dle_mem_cfg() directly. USB 2, USB 3, and > >> SDIO will need different sets of values. > >> > >> Rename dle_mem in struct rtw89_chip_info to dle_mem_pcie and get it > >> via rtw89_hci_dle_mem() and rtw89_pci_ops_dle_mem(). > >> > >> Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com> > >> --- > >> drivers/net/wireless/realtek/rtw89/core.h | 10 +++++++++- > >> drivers/net/wireless/realtek/rtw89/mac.c | 2 +- > >> drivers/net/wireless/realtek/rtw89/pci.c | 8 ++++++++ > >> drivers/net/wireless/realtek/rtw89/rtw8851b.c | 2 +- > >> drivers/net/wireless/realtek/rtw89/rtw8852a.c | 2 +- > >> drivers/net/wireless/realtek/rtw89/rtw8852b.c | 2 +- > >> drivers/net/wireless/realtek/rtw89/rtw8852bt.c | 2 +- > >> drivers/net/wireless/realtek/rtw89/rtw8852c.c | 2 +- > >> drivers/net/wireless/realtek/rtw89/rtw8922a.c | 2 +- > >> 9 files changed, 24 insertions(+), 8 deletions(-) > >> > >> diff --git a/drivers/net/wireless/realtek/rtw89/core.h b/drivers/net/wireless/realtek/rtw89/core.h > >> index be1259cfa712..afcf0353a625 100644 > >> --- a/drivers/net/wireless/realtek/rtw89/core.h > >> +++ b/drivers/net/wireless/realtek/rtw89/core.h > >> @@ -3579,6 +3579,8 @@ struct rtw89_hci_ops { > >> void (*disable_intr)(struct rtw89_dev *rtwdev); > >> void (*enable_intr)(struct rtw89_dev *rtwdev); > >> int (*rst_bdram)(struct rtw89_dev *rtwdev); > > > > an empty line > > > >> + const struct rtw89_dle_mem *(*dle_mem)(struct rtw89_dev *rtwdev, > >> + u8 qta_mode); > >> }; > >> > >> struct rtw89_hci_info { > >> @@ -4271,7 +4273,7 @@ struct rtw89_chip_info { > >> bool dis_2g_40m_ul_ofdma; > >> u32 rsvd_ple_ofst; > >> const struct rtw89_hfc_param_ini *hfc_param_ini; > >> - const struct rtw89_dle_mem *dle_mem; > >> + const struct rtw89_dle_mem *dle_mem_pcie; > > > > I reconsider if this can be an array with a new enum = {PCIE, USB2, USB3, SDIO} > > stored in hal->hci_dle_mem_type. Then, consumers can just access it via > > chip->dle_mem[hal->hci_dle_mem_type][quota]. But, I'm not sure if USB > > subsystem can notify driver when USB speed is changed. > > > > This is a thought to simply the struct definition. > > > > The hard part is naming the new enum. It's basically rtw89_hci_type > but more detailed. If it only used by DLE, maybe rtw89_hci_dle_type is fine? > > I don't expect the USB speed to change during the lifetime of struct > rtw89_dev. When the device switches from USB 2 to USB 3 it disconnects > and reappears as a new device: So seemingly it is workable to store the USB speed in a variable at USB probe. Please try if it looks good. > > Apr 21 22:02:22 ideapad2 kernel: usb 1-4: new high-speed USB device number 17 using xhci_hcd > Apr 21 22:02:22 ideapad2 kernel: usb 1-4: New USB device found, idVendor=0bda, idProduct=c832, bcdDevice= > 0.00 > Apr 21 22:02:22 ideapad2 kernel: usb 1-4: New USB device strings: Mfr=1, Product=2, SerialNumber=3 > Apr 21 22:02:22 ideapad2 kernel: usb 1-4: Product: 802.11ax WLAN Adapter > Apr 21 22:02:22 ideapad2 kernel: usb 1-4: Manufacturer: Realtek > Apr 21 22:02:22 ideapad2 kernel: usb 1-4: SerialNumber: 00e04c000001 > Apr 21 22:02:24 ideapad2 kernel: eric-tx CALL alloc_txring !!!! > Apr 21 22:02:24 ideapad2 kernel: usb 1-4: USB disconnect, device number 17 > Apr 21 22:02:24 ideapad2 kernel: rtl8852cu 1-4:1.0: Runtime PM usage count underflow! > > Apr 21 22:02:27 ideapad2 kernel: usb 2-4: new SuperSpeed USB device number 2 using xhci_hcd > Apr 21 22:02:27 ideapad2 kernel: usb 2-4: New USB device found, idVendor=0bda, idProduct=c832, bcdDevice= > 0.00 > Apr 21 22:02:28 ideapad2 kernel: usb 2-4: New USB device strings: Mfr=1, Product=2, SerialNumber=3 > Apr 21 22:02:28 ideapad2 kernel: usb 2-4: Product: 802.11ax WLAN Adapter > Apr 21 22:02:28 ideapad2 kernel: usb 2-4: Manufacturer: Realtek > Apr 21 22:02:28 ideapad2 kernel: usb 2-4: SerialNumber: 00e04c000001 > Apr 21 22:02:28 ideapad2 kernel: eric-tx CALL alloc_txring !!!! > Apr 21 22:02:28 ideapad2 kernel: rtl8852cu 2-4:1.0 wlp3s0f3u4: renamed from wlan0 >
diff --git a/drivers/net/wireless/realtek/rtw89/core.h b/drivers/net/wireless/realtek/rtw89/core.h index be1259cfa712..afcf0353a625 100644 --- a/drivers/net/wireless/realtek/rtw89/core.h +++ b/drivers/net/wireless/realtek/rtw89/core.h @@ -3579,6 +3579,8 @@ struct rtw89_hci_ops { void (*disable_intr)(struct rtw89_dev *rtwdev); void (*enable_intr)(struct rtw89_dev *rtwdev); int (*rst_bdram)(struct rtw89_dev *rtwdev); + const struct rtw89_dle_mem *(*dle_mem)(struct rtw89_dev *rtwdev, + u8 qta_mode); }; struct rtw89_hci_info { @@ -4271,7 +4273,7 @@ struct rtw89_chip_info { bool dis_2g_40m_ul_ofdma; u32 rsvd_ple_ofst; const struct rtw89_hfc_param_ini *hfc_param_ini; - const struct rtw89_dle_mem *dle_mem; + const struct rtw89_dle_mem *dle_mem_pcie; u8 wde_qempty_acq_grpnum; u8 wde_qempty_mgq_grpsel; u32 rf_base_addr[2]; @@ -6146,6 +6148,12 @@ static inline void rtw89_hci_clear(struct rtw89_dev *rtwdev, struct pci_dev *pde rtwdev->hci.ops->clear(rtwdev, pdev); } +static inline const +struct rtw89_dle_mem *rtw89_hci_dle_mem(struct rtw89_dev *rtwdev, u8 qta_mode) +{ + return rtwdev->hci.ops->dle_mem(rtwdev, qta_mode); +} + static inline struct rtw89_tx_skb_data *RTW89_TX_SKB_CB(struct sk_buff *skb) { diff --git a/drivers/net/wireless/realtek/rtw89/mac.c b/drivers/net/wireless/realtek/rtw89/mac.c index 592fbb6d2728..77d35db3e133 100644 --- a/drivers/net/wireless/realtek/rtw89/mac.c +++ b/drivers/net/wireless/realtek/rtw89/mac.c @@ -1719,7 +1719,7 @@ static const struct rtw89_dle_mem *get_dle_mem_cfg(struct rtw89_dev *rtwdev, struct rtw89_mac_info *mac = &rtwdev->mac; const struct rtw89_dle_mem *cfg; - cfg = &rtwdev->chip->dle_mem[mode]; + cfg = rtw89_hci_dle_mem(rtwdev, mode); if (!cfg) return NULL; diff --git a/drivers/net/wireless/realtek/rtw89/pci.c b/drivers/net/wireless/realtek/rtw89/pci.c index c2fe5a898dc7..1dec603012ba 100644 --- a/drivers/net/wireless/realtek/rtw89/pci.c +++ b/drivers/net/wireless/realtek/rtw89/pci.c @@ -4341,6 +4341,13 @@ static int __maybe_unused rtw89_pci_resume(struct device *dev) SIMPLE_DEV_PM_OPS(rtw89_pm_ops, rtw89_pci_suspend, rtw89_pci_resume); EXPORT_SYMBOL(rtw89_pm_ops); +static const +struct rtw89_dle_mem *rtw89_pci_ops_dle_mem(struct rtw89_dev *rtwdev, + u8 qta_mode) +{ + return &rtwdev->chip->dle_mem_pcie[qta_mode]; +} + const struct rtw89_pci_gen_def rtw89_pci_gen_ax = { .isr_rdu = B_AX_RDU_INT, .isr_halt_c2h = B_AX_HALT_C2H_INT_EN, @@ -4413,6 +4420,7 @@ static const struct rtw89_hci_ops rtw89_pci_ops = { .disable_intr = rtw89_pci_disable_intr_lock, .enable_intr = rtw89_pci_enable_intr_lock, .rst_bdram = rtw89_pci_reset_bdram, + .dle_mem = rtw89_pci_ops_dle_mem, }; int rtw89_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id) diff --git a/drivers/net/wireless/realtek/rtw89/rtw8851b.c b/drivers/net/wireless/realtek/rtw89/rtw8851b.c index 8d774bd75edb..1295718b8fdc 100644 --- a/drivers/net/wireless/realtek/rtw89/rtw8851b.c +++ b/drivers/net/wireless/realtek/rtw89/rtw8851b.c @@ -2465,7 +2465,7 @@ const struct rtw89_chip_info rtw8851b_chip_info = { .dis_2g_40m_ul_ofdma = true, .rsvd_ple_ofst = 0x2f800, .hfc_param_ini = rtw8851b_hfc_param_ini_pcie, - .dle_mem = rtw8851b_dle_mem_pcie, + .dle_mem_pcie = rtw8851b_dle_mem_pcie, .wde_qempty_acq_grpnum = 4, .wde_qempty_mgq_grpsel = 4, .rf_base_addr = {0xe000}, diff --git a/drivers/net/wireless/realtek/rtw89/rtw8852a.c b/drivers/net/wireless/realtek/rtw89/rtw8852a.c index 408c2f7b3eec..5e9e2fc09458 100644 --- a/drivers/net/wireless/realtek/rtw89/rtw8852a.c +++ b/drivers/net/wireless/realtek/rtw89/rtw8852a.c @@ -2184,7 +2184,7 @@ const struct rtw89_chip_info rtw8852a_chip_info = { .dis_2g_40m_ul_ofdma = true, .rsvd_ple_ofst = 0x6f800, .hfc_param_ini = rtw8852a_hfc_param_ini_pcie, - .dle_mem = rtw8852a_dle_mem_pcie, + .dle_mem_pcie = rtw8852a_dle_mem_pcie, .wde_qempty_acq_grpnum = 16, .wde_qempty_mgq_grpsel = 16, .rf_base_addr = {0xc000, 0xd000}, diff --git a/drivers/net/wireless/realtek/rtw89/rtw8852b.c b/drivers/net/wireless/realtek/rtw89/rtw8852b.c index dec736a07c54..badaea9d4cb8 100644 --- a/drivers/net/wireless/realtek/rtw89/rtw8852b.c +++ b/drivers/net/wireless/realtek/rtw89/rtw8852b.c @@ -820,7 +820,7 @@ const struct rtw89_chip_info rtw8852b_chip_info = { .dis_2g_40m_ul_ofdma = true, .rsvd_ple_ofst = 0x2f800, .hfc_param_ini = rtw8852b_hfc_param_ini_pcie, - .dle_mem = rtw8852b_dle_mem_pcie, + .dle_mem_pcie = rtw8852b_dle_mem_pcie, .wde_qempty_acq_grpnum = 4, .wde_qempty_mgq_grpsel = 4, .rf_base_addr = {0xe000, 0xf000}, diff --git a/drivers/net/wireless/realtek/rtw89/rtw8852bt.c b/drivers/net/wireless/realtek/rtw89/rtw8852bt.c index 3aaf70e32652..74619361e29b 100644 --- a/drivers/net/wireless/realtek/rtw89/rtw8852bt.c +++ b/drivers/net/wireless/realtek/rtw89/rtw8852bt.c @@ -754,7 +754,7 @@ const struct rtw89_chip_info rtw8852bt_chip_info = { .dis_2g_40m_ul_ofdma = true, .rsvd_ple_ofst = 0x6f800, .hfc_param_ini = rtw8852bt_hfc_param_ini_pcie, - .dle_mem = rtw8852bt_dle_mem_pcie, + .dle_mem_pcie = rtw8852bt_dle_mem_pcie, .wde_qempty_acq_grpnum = 4, .wde_qempty_mgq_grpsel = 4, .rf_base_addr = {0xe000, 0xf000}, diff --git a/drivers/net/wireless/realtek/rtw89/rtw8852c.c b/drivers/net/wireless/realtek/rtw89/rtw8852c.c index 9a2235f28e24..8b049c3ace93 100644 --- a/drivers/net/wireless/realtek/rtw89/rtw8852c.c +++ b/drivers/net/wireless/realtek/rtw89/rtw8852c.c @@ -3004,7 +3004,7 @@ const struct rtw89_chip_info rtw8852c_chip_info = { .dis_2g_40m_ul_ofdma = false, .rsvd_ple_ofst = 0x6f800, .hfc_param_ini = rtw8852c_hfc_param_ini_pcie, - .dle_mem = rtw8852c_dle_mem_pcie, + .dle_mem_pcie = rtw8852c_dle_mem_pcie, .wde_qempty_acq_grpnum = 16, .wde_qempty_mgq_grpsel = 16, .rf_base_addr = {0xe000, 0xf000}, diff --git a/drivers/net/wireless/realtek/rtw89/rtw8922a.c b/drivers/net/wireless/realtek/rtw89/rtw8922a.c index cc595cae53f5..505f45595dc8 100644 --- a/drivers/net/wireless/realtek/rtw89/rtw8922a.c +++ b/drivers/net/wireless/realtek/rtw89/rtw8922a.c @@ -2816,7 +2816,7 @@ const struct rtw89_chip_info rtw8922a_chip_info = { .dis_2g_40m_ul_ofdma = false, .rsvd_ple_ofst = 0x8f800, .hfc_param_ini = rtw8922a_hfc_param_ini_pcie, - .dle_mem = rtw8922a_dle_mem_pcie, + .dle_mem_pcie = rtw8922a_dle_mem_pcie, .wde_qempty_acq_grpnum = 4, .wde_qempty_mgq_grpsel = 4, .rf_base_addr = {0xe000, 0xf000},
Don't access dle_mem in get_dle_mem_cfg() directly. USB 2, USB 3, and SDIO will need different sets of values. Rename dle_mem in struct rtw89_chip_info to dle_mem_pcie and get it via rtw89_hci_dle_mem() and rtw89_pci_ops_dle_mem(). Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com> --- drivers/net/wireless/realtek/rtw89/core.h | 10 +++++++++- drivers/net/wireless/realtek/rtw89/mac.c | 2 +- drivers/net/wireless/realtek/rtw89/pci.c | 8 ++++++++ drivers/net/wireless/realtek/rtw89/rtw8851b.c | 2 +- drivers/net/wireless/realtek/rtw89/rtw8852a.c | 2 +- drivers/net/wireless/realtek/rtw89/rtw8852b.c | 2 +- drivers/net/wireless/realtek/rtw89/rtw8852bt.c | 2 +- drivers/net/wireless/realtek/rtw89/rtw8852c.c | 2 +- drivers/net/wireless/realtek/rtw89/rtw8922a.c | 2 +- 9 files changed, 24 insertions(+), 8 deletions(-)