Search Linux Wireless

RE: wifi: rtw88: questions about adding support for RTL8723DS/RTL8723BS

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Martin,

> -----Original Message-----
> From: Martin Blumenstingl <martin.blumenstingl@xxxxxxxxxxxxxx>
> Sent: Wednesday, May 17, 2023 12:40 AM
> To: Ping-Ke Shih <pkshih@xxxxxxxxxxx>; linux-wireless@xxxxxxxxxxxxxxx
> Cc: Larry Finger <Larry.Finger@xxxxxxxxxxxx>; tony0620emma@xxxxxxxxx; jernej.skrabec@xxxxxxxxx
> Subject: wifi: rtw88: questions about adding support for RTL8723DS/RTL8723BS
> 
> Hello Ping-Ke,
> 
> as a next step I want to add support for RTW_WCPU_11N SDIO cards to
> the rtw88 driver.
> Currently only one RTW_WCPU_11N chip is supported: RTL8723D by the
> rtw88 (PCIe and USB HCIs).

Originally, we intended to add 8723D to rtlwifi, because it is a 802.11n chip
and very similar to 8723BE. However, its PCIe HCI is changed to use circular
ring instead of own bit, like other chips implemented in rtw88.

> 
> My first question is very hopefully a simple one:
> It seems that RTL8723DS has two SDIO IDs: 0xd723 and 0xd724.
> Do these have the same name or is there some kind of "revision" (like
> rev 2, revision B, ...) internally?

0xd723 is dual antenna, and 0xd724 is single antenna. Since 8723D is a
1x1 WiFi BT combo chip, 0xd723 can have a dedicated antenna for BT.
The main difference will be BT-coex code.

> 
> My second question is more abstract:
> Based on my understanding of the vendor drivers for RTL8723BS and
> RTL8723DS both seem very close in terms of registers. initialization
> sequence, ...
> So I am hoping that it's possible to add RTL8723BS support to the rtw88 driver.
> There's two main differences that I found so far:
> - rtw_dump_hw_feature() doesn't work because REG_C2HEVT has an
> incorrect value (C2H_HW_FEATURE_REPORT is expected but it still
> contains C2H_HW_FEATURE_DUMP). It seems that this is a firmware issue.

Not an issue. At that moment of developing 8723B, applications are simple, so
we don't read feature from firmware, so just ignore this for 8723B.

> - The whole ltecoex support (my understanding is: this is part of the
> Bluetooth 4.2 spec but RTL8723BS was originally developed for the
> Bluetooth 4.0 spec) seems missing in terms of all required registers.
> I'm not sure if this is a hardware or firmware topic.

Seeing BT-coex of rtlwifi or vendor driver, you can find each chip has
its own BT-coex files of 1/2 antenna. When developing rtw88, we try to
integrate them together. So, you might take time to compare BT-coex code
of vendor driver between 8723B and 8723D, and then implement their
difference. I suggest you can pending this work as the last step.

> 
> Have you considered adding RTW8723B support to the rtw88 driver?
> Do you have some initial suggestions on what would be needed to do so
> (is my list from above complete, what do do about these points, ...)?

As my comment above, 8723BE use different PCIe design, and rtlwifi
has been supported it, so I don't have plan to support 8723BE in rtw88.
But, to add 8723BS to rtw88 seems workable. 

To add 8723B, you can make a copy from 8723D and change settings along
with vendor driver. The main things you need to review are:
1. PCI probe when plugging wifi card
2. hardware initialization when interface up
3. RF calibration when starting connection (you may put this work later)
4. connection setting after connected
5. BT-coex you have mentioned 


To make rtlwifi support SDIO is another way. It seems like add a HCI is
easier than an new chip, and we can have a simple support list of rtlwifi
and rtw88 eventually, like

        rtlwifi       rtw88
8723BE    o
8723BS    o?
8723DE                  o
8723DS                  o

> 
> There's a huge number of boards with RTL8723BS out there and I think
> they could benefit from the rtw88 driver (and so we can finally get
> rid of drivers/staging/rtl8723bs/).

Agree. That will be helpful for Linux users.

Ping-Ke





[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Wireless Regulations]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux