Thread (1 message) 1 message, 1 author, 2021-09-15

[Question] rtw88: 8822c: RFE type3 support?

From: Peter Fink <hidden>
Date: 2021-09-15 08:59:24

Hi all,

I would like to have driver support for a RTL8822CU device which uses 
RFE type 3.

I know that the usb devices are not supported by rtw88 drivers right 
now, but there are repositories out there like 
https://github.com/ulli-kroll/rtw88-usb 
<https://github.com/ulli-kroll/rtw88-usb> which could take care of that 
until the usb devices are also supported upstream.

1) What are the RFE types basically about and what does it stand for? 
What are the differences apart from values in tables?

2) Is it worth trying to simply use/convert the corresponding tables 
from the Realtek driver (doesn't compile) I got from the manufacturer at 
https://drive.google.com/uc?id=18sNSSjY6rHwPI2MYtXUsnMNDB_ir3Hpy&export=download 
<https://drive.google.com/uc?id=18sNSSjY6rHwPI2MYtXUsnMNDB_ir3Hpy&export=download>and 
put them in rtw8822c_table.c? Or would I be wasting my time without 
access to proper documentation?

-> I saw that e.g. rtw8822c_agc is not exactly the same in this driver 
and the kernel code. I can't tell - is this relevant?

-> rtw8822c_bb seems to match array_mp_8822c_phy_reg, but has 
differences as well.

-> rtw8822c_array_mp_cal_init is different, too.

-> rtw8822c_bb_pg_type0 is exactly the same as array_mp_8822c_phy_reg_pg

-> rtw8822c_dpk_* I didn't check in detail, because it's partly 
conditional in the Realtek driver

-> And I guess array_mp_8822c_txpwr_lmt has to be translated to 
rtw8822c_txpwr_lmt_type3:

Realtek driver: #ifdef CONFIG_8822C const char 
*array_mp_8822c_txpwr_lmt[] = {
"FCC", "2.4G", "20M", "CCK", "1T", "01", "72",
"ETSI", "2.4G", "20M", "CCK", "1T", "01", "60",
"MKK", "2.4G", "20M", "CCK", "1T", "01", "68",
"IC", "2.4G", "20M", "CCK", "1T", "01", "72",
"KCC", "2.4G", "20M", "CCK", "1T", "01", "76",
"ACMA", "2.4G", "20M", "CCK", "1T", "01", "60",
"CHILE", "2.4G", "20M", "CCK", "1T", "01", "72",
"UKRAINE", "2.4G", "20M", "CCK", "1T", "01", "60",
"MEXICO", "2.4G", "20M", "CCK", "1T", "01", "72",
"CN", "2.4G", "20M", "CCK", "1T", "01", "60","FCC", "2.4G", "20M", "CCK", "1T", "02", "72", ... versus 
rtw88/rtw8822c_table.c: static const struct rtw_txpwr_lmt_cfg_pair rtw8822c_txpwr_lmt_type0[] = {
	{ 0, 0, 0, 0, 1, 72, },
	{ 2, 0, 0, 0, 1, 60, },
	{ 1, 0, 0, 0, 1, 68, },
	{ 3, 0, 0, 0, 1, 72, },
...


1: Regulatory_domain (0=FCC,...)
2: Band (0=2.4G, 1=5G)
3: Band width (0=20MHz,...)
4: Rate section (0=CCK, OFDM,...)
5: Channel index (I guess 1=01,...)
6: Power limit (obvious...)

My guess is the 1T refer to "antenna 1/transmit".
In the Realtek driver there is also a "2T", so likely a second antenna/rf output path. How is this accounted for in the rtw88 driver?
If you are not telling me to stop wasting my time and somebody could 
hint me in the right direction how to to handle the 1T/2T part of the 
table, then I'm willing to try my luck...

Thanks in advance & best regards, Peter
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help