otus: conformance test limits implementation for MKK and ETSI
Hi,
I've read [1] about the ctl groups, looked into otus' hal/hpmain.c (lines 3700 ff.) and dumped the ctl index and data in the eeprom of my WNDA3100
It seems like the otus driver skips ctl (and heavy clip) application for the groups CTL_MKK and CTL_ETSI. On the other hand I've found ctl data for these groups in the eeprom (see attachment). Is this intended behaviour or a bug in the otus driver?
[1] http://linuxwireless.org/en/users/Drivers/ath
WNDA3100
========
ar9170_calc_ctl: ctl_grp 0x10 freq 2412
ar9170_calc_ctl: eeprom ctl_index: 0x10
chain 0: 76(0x1a) 80(0x5a) 104(0x1e) 140(0x62) 160(0x62) 180(0x62) 189(0x62) 205(0x22) chain 1: 76(0x1a) 80(0x5a) 104(0x1e) 140(0x62) 160(0x62) 180(0x62) 189(0x62) 205(0x22)
ar9170_calc_ctl: eeprom ctl_index: 0x16
chain 0: 76(0x19) 80(0x5a) 104(0x1e) 140(0x62) 160(0x62) 180(0x62) 189(0x62) 205(0x22) chain 1: 76(0x19) 80(0x5a) 104(0x1e) 140(0x62) 160(0x62) 180(0x62) 189(0x62) 205(0x22)
ar9170_calc_ctl: eeprom ctl_index: 0x18
chain 0: 78(0x18) 86(0x59) 102(0x1e) 142(0x62) 158(0x62) 178(0x22) 191(0x62) 199(0x62) chain 1: 78(0x18) 86(0x59) 102(0x1e) 142(0x62) 158(0x62) 178(0x22) 191(0x62) 199(0x62)
ar9170_calc_ctl: eeprom ctl_index: 0x11
chain 0: 112(0x26) 117(0x66) 162(0x26) 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00) chain 1: 112(0x26) 117(0x66) 162(0x26) 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00)
ar9170_calc_ctl: eeprom ctl_index: 0x12
chain 0: 112(0x24) 117(0x64) 162(0x22) 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00) chain 1: 112(0x24) 117(0x64) 162(0x22) 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00)
ar9170_calc_ctl: eeprom ctl_index: 0x15
chain 0: 112(0x23) 117(0x64) 162(0x21) 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00) chain 1: 112(0x23) 117(0x64) 162(0x21) 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00)
ar9170_calc_ctl: eeprom ctl_index: 0x17
chain 0: 122(0x1d) 127(0x64) 147(0x64) 152(0x1b) 0(0x00) 0(0x00) 0(0x00) 0(0x00) chain 1: 122(0x1d) 127(0x64) 147(0x64) 152(0x1b) 0(0x00) 0(0x00) 0(0x00) 0(0x00)
ar9170_calc_ctl: eeprom ctl_index: 0x40
chain 0: 74(0x62) 80(0x62) 92(0x62) 104(0x62) 0(0x00) 0(0x00) 0(0x00) 0(0x00) chain 1: 74(0x62) 80(0x62) 92(0x62) 104(0x62) 0(0x00) 0(0x00) 0(0x00) 0(0x00)
ar9170_calc_ctl: eeprom ctl_index: 0x46
chain 0: 74(0x62) 80(0x62) 92(0x62) 104(0x62) 0(0x00) 0(0x00) 0(0x00) 0(0x00) chain 1: 74(0x62) 80(0x62) 92(0x62) 104(0x62) 0(0x00) 0(0x00) 0(0x00) 0(0x00)
ar9170_calc_ctl: eeprom ctl_index: 0x41
chain 0: 112(0x24) 117(0x64) 172(0x24) 184(0x24) 0(0x00) 0(0x00) 0(0x00) 0(0x00) chain 1: 112(0x24) 117(0x64) 172(0x24) 184(0x24) 0(0x00) 0(0x00) 0(0x00) 0(0x00)
ar9170_calc_ctl: eeprom ctl_index: 0x42
chain 0: 112(0x24) 117(0x64) 172(0x24) 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00) chain 1: 112(0x24) 117(0x64) 172(0x24) 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00)
ar9170_calc_ctl: eeprom ctl_index: 0x45
chain 0: 112(0x22) 117(0x62) 152(0x22) 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00) chain 1: 112(0x22) 117(0x62) 152(0x22) 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00)
ar9170_calc_ctl: eeprom ctl_index: 0x30
chain 0: 76(0x22) 92(0x62) 104(0x22) 140(0x62) 160(0x62) 180(0x62) 189(0x62) 205(0x22) chain 1: 76(0x22) 92(0x62) 104(0x22) 140(0x62) 160(0x62) 180(0x62) 189(0x62) 205(0x22)
ar9170_calc_ctl: eeprom ctl_index: 0x36
chain 0: 76(0x22) 80(0x62) 104(0x22) 140(0x62) 160(0x62) 180(0x62) 189(0x62) 205(0x22) chain 1: 76(0x22) 80(0x62) 104(0x22) 140(0x62) 160(0x62) 180(0x62) 189(0x62) 205(0x22)
ar9170_calc_ctl: eeprom ctl_index: 0x38
chain 0: 78(0x22) 86(0x62) 102(0x22) 142(0x62) 158(0x62) 174(0x22) 0(0x00) 0(0x00) chain 1: 78(0x22) 86(0x62) 102(0x22) 142(0x62) 158(0x62) 174(0x22) 0(0x00) 0(0x00)
ar9170_calc_ctl: eeprom ctl_index: 0x31
chain 0: 112(0x26) 117(0x66) 172(0x26) 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00) chain 1: 112(0x26) 117(0x66) 172(0x26) 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00)
ar9170_calc_ctl: eeprom ctl_index: 0x32
chain 0: 112(0x24) 117(0x64) 172(0x24) 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00) chain 1: 112(0x24) 117(0x64) 172(0x24) 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00)
ar9170_calc_ctl: eeprom ctl_index: 0x35
chain 0: 112(0x24) 117(0x64) 172(0x24) 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00) chain 1: 112(0x24) 117(0x64) 172(0x24) 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00)
ar9170_calc_ctl: eeprom ctl_index: 0x37
chain 0: 122(0x23) 127(0x63) 147(0x63) 152(0x23) 0(0x00) 0(0x00) 0(0x00) 0(0x00) chain 1: 122(0x23) 127(0x63) 147(0x63) 152(0x23) 0(0x00) 0(0x00) 0(0x00) 0(0x00)
ar9170_calc_ctl: eeprom ctl_index: 0x00
chain 0: 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00) chain 1: 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00)
ar9170_calc_ctl: eeprom ctl_index: 0x00
chain 0: 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00) chain 1: 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00)
ar9170_calc_ctl: eeprom ctl_index: 0x00
chain 0: 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00) chain 1: 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00)
ar9170_calc_ctl: eeprom ctl_index: 0x00
chain 0: 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00) chain 1: 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00)
ar9170_calc_ctl: eeprom ctl_index: 0x00
chain 0: 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00) chain 1: 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00)
ar9170_get_max_edge_power: freq 2412 max_edge_power 38
ar9170_get_max_edge_power: freq 2412 max_edge_power 36
ar9170_get_max_edge_power: freq 2412 max_edge_power 35
ar9170_calc_ctl: ctl_mode 5 pwr_cal[0] 24 -> 23
ar9170_get_max_edge_power: freq 2422 max_edge_power 29
ar9170_calc_ctl: ctl_mode 7 pwr_cal[0] 23 -> 1d
ar9170_calc_ctl: ctl_mode 7 pwr_cal[1] 22 -> 1d
ar9170_calc_ctl: ctl_mode 7 pwr_cal[2] 22 -> 1d
ar9170_calc_ctl: ctl_mode 7 pwr_cal[3] 22 -> 1d
ar9170_calc_ctl: ctl_mode 7 pwr_cal[4] 22 -> 1d
ar9170_calc_ctl: ctl_mode 7 pwr_cal[5] 22 -> 1d
ar9170_calc_ctl: ctl_mode 7 pwr_cal[6] 20 -> 1d
Quoted 8 lines · Joerg Albert
Hi,
I've read [1] about the ctl groups, looked into otus'
hal/hpmain.c(lines 3700 ff.) and dumped the ctl index and data in the eeprom of my WNDA3100It seems like the otus driver skips ctl (and heavy clip) application for the groups
CTL_MKKandCTL_ETSI. On the other hand I've found ctl data for these groups in the eeprom (see attachment). Is this intended behaviour or a bug in the otus driver?
Not too sure but most likely a mistake on the driver, the CTLs should always be read and used.
Luis
Quoted 93 lines
[1] http://linuxwireless.org/en/users/Drivers/ath
WNDA3100
========ar9170_calc_ctl:
ctl_grp0x10freq 2412
ar9170_calc_ctl: eepromctl_index:0x10
chain 0: 76(0x1a) 80(0x5a) 104(0x1e) 140(0x62) 160(0x62) 180(0x62) 189(0x62) 205(0x22) chain 1: 76(0x1a) 80(0x5a) 104(0x1e) 140(0x62) 160(0x62) 180(0x62) 189(0x62) 205(0x22)
ar9170_calc_ctl: eepromctl_index:0x16
chain 0: 76(0x19) 80(0x5a) 104(0x1e) 140(0x62) 160(0x62) 180(0x62) 189(0x62) 205(0x22) chain 1: 76(0x19) 80(0x5a) 104(0x1e) 140(0x62) 160(0x62) 180(0x62) 189(0x62) 205(0x22)
ar9170_calc_ctl: eepromctl_index:0x18
chain 0: 78(0x18) 86(0x59) 102(0x1e) 142(0x62) 158(0x62) 178(0x22) 191(0x62) 199(0x62) chain 1: 78(0x18) 86(0x59) 102(0x1e) 142(0x62) 158(0x62) 178(0x22) 191(0x62) 199(0x62)
ar9170_calc_ctl: eepromctl_index:0x11
chain 0: 112(0x26) 117(0x66) 162(0x26) 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00) chain 1: 112(0x26) 117(0x66) 162(0x26) 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00)
ar9170_calc_ctl: eepromctl_index:0x12
chain 0: 112(0x24) 117(0x64) 162(0x22) 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00) chain 1: 112(0x24) 117(0x64) 162(0x22) 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00)
ar9170_calc_ctl: eepromctl_index:0x15
chain 0: 112(0x23) 117(0x64) 162(0x21) 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00) chain 1: 112(0x23) 117(0x64) 162(0x21) 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00)
ar9170_calc_ctl: eepromctl_index:0x17
chain 0: 122(0x1d) 127(0x64) 147(0x64) 152(0x1b) 0(0x00) 0(0x00) 0(0x00) 0(0x00) chain 1: 122(0x1d) 127(0x64) 147(0x64) 152(0x1b) 0(0x00) 0(0x00) 0(0x00) 0(0x00)
ar9170_calc_ctl: eepromctl_index:0x40
chain 0: 74(0x62) 80(0x62) 92(0x62) 104(0x62) 0(0x00) 0(0x00) 0(0x00) 0(0x00) chain 1: 74(0x62) 80(0x62) 92(0x62) 104(0x62) 0(0x00) 0(0x00) 0(0x00) 0(0x00)
ar9170_calc_ctl: eepromctl_index:0x46
chain 0: 74(0x62) 80(0x62) 92(0x62) 104(0x62) 0(0x00) 0(0x00) 0(0x00) 0(0x00) chain 1: 74(0x62) 80(0x62) 92(0x62) 104(0x62) 0(0x00) 0(0x00) 0(0x00) 0(0x00)
ar9170_calc_ctl: eepromctl_index:0x41
chain 0: 112(0x24) 117(0x64) 172(0x24) 184(0x24) 0(0x00) 0(0x00) 0(0x00) 0(0x00) chain 1: 112(0x24) 117(0x64) 172(0x24) 184(0x24) 0(0x00) 0(0x00) 0(0x00) 0(0x00)
ar9170_calc_ctl: eepromctl_index:0x42
chain 0: 112(0x24) 117(0x64) 172(0x24) 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00) chain 1: 112(0x24) 117(0x64) 172(0x24) 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00)
ar9170_calc_ctl: eepromctl_index:0x45
chain 0: 112(0x22) 117(0x62) 152(0x22) 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00) chain 1: 112(0x22) 117(0x62) 152(0x22) 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00)
ar9170_calc_ctl: eepromctl_index:0x30
chain 0: 76(0x22) 92(0x62) 104(0x22) 140(0x62) 160(0x62) 180(0x62) 189(0x62) 205(0x22) chain 1: 76(0x22) 92(0x62) 104(0x22) 140(0x62) 160(0x62) 180(0x62) 189(0x62) 205(0x22)
ar9170_calc_ctl: eepromctl_index:0x36
chain 0: 76(0x22) 80(0x62) 104(0x22) 140(0x62) 160(0x62) 180(0x62) 189(0x62) 205(0x22) chain 1: 76(0x22) 80(0x62) 104(0x22) 140(0x62) 160(0x62) 180(0x62) 189(0x62) 205(0x22)
ar9170_calc_ctl: eepromctl_index:0x38
chain 0: 78(0x22) 86(0x62) 102(0x22) 142(0x62) 158(0x62) 174(0x22) 0(0x00) 0(0x00) chain 1: 78(0x22) 86(0x62) 102(0x22) 142(0x62) 158(0x62) 174(0x22) 0(0x00) 0(0x00)
ar9170_calc_ctl: eepromctl_index:0x31
chain 0: 112(0x26) 117(0x66) 172(0x26) 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00) chain 1: 112(0x26) 117(0x66) 172(0x26) 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00)
ar9170_calc_ctl: eepromctl_index:0x32
chain 0: 112(0x24) 117(0x64) 172(0x24) 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00) chain 1: 112(0x24) 117(0x64) 172(0x24) 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00)
ar9170_calc_ctl: eepromctl_index:0x35
chain 0: 112(0x24) 117(0x64) 172(0x24) 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00) chain 1: 112(0x24) 117(0x64) 172(0x24) 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00)
ar9170_calc_ctl: eepromctl_index:0x37
chain 0: 122(0x23) 127(0x63) 147(0x63) 152(0x23) 0(0x00) 0(0x00) 0(0x00) 0(0x00) chain 1: 122(0x23) 127(0x63) 147(0x63) 152(0x23) 0(0x00) 0(0x00) 0(0x00) 0(0x00)
ar9170_calc_ctl: eepromctl_index:0x00
chain 0: 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00) chain 1: 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00)
ar9170_calc_ctl: eepromctl_index:0x00
chain 0: 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00) chain 1: 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00)
ar9170_calc_ctl: eepromctl_index:0x00
chain 0: 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00) chain 1: 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00)
ar9170_calc_ctl: eepromctl_index:0x00
chain 0: 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00) chain 1: 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00)
ar9170_calc_ctl: eepromctl_index:0x00
chain 0: 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00) chain 1: 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00) 0(0x00)
ar9170_get_max_edge_power: freq 2412max_edge_power38
ar9170_get_max_edge_power: freq 2412max_edge_power36
ar9170_get_max_edge_power: freq 2412max_edge_power35
ar9170_calc_ctl:ctl_mode5 pwr_cal[0] 24 -> 23
ar9170_get_max_edge_power: freq 2422max_edge_power29
ar9170_calc_ctl:ctl_mode7 pwr_cal[0] 23 -> 1d
ar9170_calc_ctl:ctl_mode7 pwr_cal[1] 22 -> 1d
ar9170_calc_ctl:ctl_mode7 pwr_cal[2] 22 -> 1d
ar9170_calc_ctl:ctl_mode7 pwr_cal[3] 22 -> 1d
ar9170_calc_ctl:ctl_mode7 pwr_cal[4] 22 -> 1d
ar9170_calc_ctl:ctl_mode7 pwr_cal[5] 22 -> 1d
ar9170_calc_ctl:ctl_mode7 pwr_cal[6] 20 -> 1d