2011-06-22 14:57:25

by Mohammed Shafi

[permalink] [raw]
Subject: Re: [ath9k-devel] Disabling the third antenna for AR9380 in ath9k

T24gV2VkLCBKdW4gMjIsIDIwMTEgYXQgNjoxMiBQTSwgRnJlZCBNYXR0aGV3cyA8ZnJlZG1tQGhv
dG1haWwuY28udWs+IHdyb3RlOgo+Cj4gSGksCj4KPiBJIHVzZWQgdGhhdCBjb21tYW5kIHRvIGRp
c2FibGUgdGhlIHRoaXJkIGFudGVubmEsIGFuZCBhcHBsaWVkIGl0IHRvIGJvdGggQVAKPiBhbmQg
U1RBIEFSOTM4MCBOSUNzLgo+IEkgdGhlbiBwZXJmb3JtZWQgYW4gSVBlcmYgdGVzdCBiZXR3ZWVu
IGJvdGggYW5kIHRoZW4gY2FwdHVyZWQgdGhlIHN0YXRpc3RpY3MKPiBmcm9tIHRoZSBzZW5kZXIs
IChiZWxvdykgLgo+IFlvdSBjYW4gc2VlIHRoYXQgaW4gcmNfc3RhdHMgKG1pbnN0cmVsKSwgdGhl
IHJhdGUgY29udHJvbCBhY3R1YWxseQo+ICJhdHRlbXB0cyIgc2VuZGluZyBvbiAzIHN0cmVhbSBN
Q1NzICgxNi0yMykgYXJvdW5kIDI1NiB0aW1lcyBlYWNoLgoKanVzdCBhIGd1ZXNzLiBhcyB3ZSBh
cmUgY2hhbmdpbmcgdGhlIGNoYWluIG1hc2sgdmlhIGRlYnVnZnMgYW5kIHRoZXJlCm1heSBiZSBh
IGNoYW5jZSB3ZSBtYXkgbm90IGhhdmUgaW5mb3JtZWQgdGhlIG1pbnN0cmVsIHJhdGUgY29udHJv
bAp3aGljaCBpcyBtYWludGFpbmVkIGluIHVwcGVyIGxheWVyKG1hYzgwMjExKSBhbmQgaXQgbWln
aHQgYmUgdGFraW5nCndoYXQgd2UgaGF2ZSBjb25maWd1cmVkIHRoZSBjaGFpbiBtYXNrcyB3aGls
ZSB3ZSBoYWQgaW5pdGlhbGl6ZWQgdGhlCmRldmljZSBhbmQgaSBoYXZlIHZlcnkgbGl0dGxlIGlk
ZWEgYWJvdXQgbWluaXN0cmVsIHJhdGUgY29udHJvbAoKPgo+IElzIHRoZXJlIGFueSB3YXkgdG8g
cHJldmVudCB0aGUgUkMgZnJvbSBldmVuIGF0dGVtcHRpbmcgdGhvc2UgcmF0ZXMsIGFzIGlmIEkK
PiB3aGVyZSB0byBmdWxseSBpbWl0YXRlIGFuIEFSOTI4MCwgaXQgc2hvdWxkbnQgYXR0ZW1wdCBh
dCB0aG9zZSBNQ1NzLgoKbWF5IGJlIHdlIGNhbiB0cnkgd2l0aCBhdGg5ayByYXRlIGNvbnRyb2ws
IGFuZCBzZWUgd2hhdCBoYXBwZW5zIHdoaWNoCmlzIHdpdGhpbiB0aGUgYXRoOWsgZHJpdmVyIGFu
ZCBhZmZlY3RzIHhtaXQuYyBhbmQgaXQgbWF5IGhhdmUgYmVlbgppbmZvcm1lZCBvZiB0aGUgY2hh
aW4gbWFzayBjaGFuZ2UuCgo+Cj4gQ2FuIFN1c2luZGVycyBjb21tZW50cyBhbHNvIGJlIGRldGFp
bGVkLgo+Cj4gVGhhbmtzIGluIGFkdmFuY2UKPgo+ICMgY2F0IC9zeXMva2VybmVsL2RlYnVnL2ll
ZWU4MDIxMS9waHkwL25ldGRldlw6d2xhbjAvc3RhdGlvbnMvMDBcTUFDLwo+Cj4gQVVUSAo+IEFT
U09DCj4gQVVUSE9SSVpFRAo+IFdNRQo+IGh0IHN1cHBvcnRlZAo+IGNhcDogMHgxMWNlCj4goKAg
oEhUMjAvSFQ0MAo+IKCgIKBTTSBQb3dlciBTYXZlIGRpc2FibGVkCj4goKAgoFJYIEhUNDAgU0dJ
Cj4goKAgoFRYIFNUQkMKPiCgoCCgUlggU1RCQyAxLXN0cmVhbQo+IKCgIKBNYXggQU1TRFUgbGVu
Z3RoOiA3OTM1IGJ5dGVzCj4goKAgoERTU1MvQ0NLIEhUNDAKPiBhbXBkdSBmYWN0b3IvZGVuc2l0
eTogMy82Cj4gTUNTIG1hc2s6IGZmIGZmIGZmIDAwIDAwIDAwIDAwIDAwIDAwIDAwCj4gTUNTIHR4
IHBhcmFtczogMQo+IDc5Mgo+IDE1MCBmZmZmIGZmZmYgZmZmZiBmZmZmIGZmZmYgNjAgZmZmZiBm
ZmZmIGZmZmYgZmZmZiBmZmZmIGZmZmYgZmZmZiBmZmZmIGZmZmYKPiBhNDAKPiAtNzcKPiAwCj4g
dHlwZSCgIKAgoHJhdGUgoCCgIHRocm91Z2hwdXQgoGV3bWEgcHJvYiCgIHRoaXMgcHJvYiCgdGhp
cyBzdWNjL2F0dGVtcHQKPiBzdWNjZXNzIKAgoGF0dGVtcHRzCj4gSFQyMC9MR0kgoCCgTUNTMCCg
IKAgoCCgNi42IKAgoCCgIDk5LjkgoCCgIKAxMDAuMCCgIKAgoCCgIKAwKCCgMCkgoCCgIKAgoDE2
Mwo+IKAgoCCgIKAgMjMwCj4gSFQyMC9MR0kgoCCgTUNTMSCgIKAgoCAxMy4xIKAgoCCgMTAwLjAg
oCCgIKAxMDAuMCCgIKAgoCCgIKAwKCCgMCkgoCCgIKAgoCA3NQo+IKAgoCCgIKAgoDc1Cj4gSFQy
MC9MR0kgoCCgTUNTMiCgIKAgoCAxOS4zIKAgoCCgMTAwLjAgoCCgIKAxMDAuMCCgIKAgoCCgIKAw
KCCgMCkgoCCgIKAgoDI1Mgo+IKAgoCCgIKAgMjUyCj4gSFQyMC9MR0kgoCCgTUNTMyCgIKAgoCAy
NS40IKAgoCCgMTAwLjAgoCCgIKAxMDAuMCCgIKAgoCCgIKAwKCCgMCkgoCCgIKAgoCA3NQo+IKAg
oCCgIKAgoDc1Cj4gSFQyMC9MR0kgoCCgTUNTNCCgIKAgoCAzNi4yIKAgoCCgIDk3LjUgoCCgIKAx
MDAuMCCgIKAgoCCgIKAwKCCgMCkgoCCgIKAgoDQxMwo+IKAgoCCgIKAgNDc0Cj4gSFQyMC9MR0kg
oCCgTUNTNSCgIKAgoCCgMC4wIKAgoCCgIKAwLjAgoCCgIKAgoDAuMCCgIKAgoCCgIKAwKCCgMCkg
oCCgIKAgoCCgMAo+IKAgoCCgIKAgoDc2Cj4gSFQyMC9MR0kgoCCgTUNTNiCgIKAgoCCgMC4wIKAg
oCCgIKAwLjAgoCCgIKAgoDAuMCCgIKAgoCCgIKAwKCCgMCkgoCCgIKAgoCCgMAo+IKAgoCCgIKAg
oDgwCj4gSFQyMC9MR0kgoCCgTUNTNyCgIKAgoCCgMC4wIKAgoCCgIKAwLjAgoCCgIKAgoDAuMCCg
IKAgoCCgIKAwKCCgMCkgoCCgIKAgoCCgMAo+IKAgoCCgIKAgMjU2Cj4gSFQyMC9MR0kgoCCgTUNT
OCCgIKAgoCAxMy4xIKAgoCCgMTAwLjAgoCCgIKAxMDAuMCCgIKAgoCCgIKAwKCCgMCkgoCCgIKAg
oCA3NQo+IKAgoCCgIKAgoDc1Cj4gSFQyMC9MR0kgoCCgTUNTOSCgIKAgoCAyNS40IKAgoCCgMTAw
LjAgoCCgIKAxMDAuMCCgIKAgoCCgIKAwKCCgMCkgoCCgIKAgoCA3MAo+IKAgoCCgIKAgoDcwCj4g
SFQyMC9MR0kgoCCgTUNTMTAgoCCgIKAzNC4yIKAgoCCgIDkyLjIgoCCgIKAxMDAuMCCgIKAgoCCg
IKAwKCCgMCkgoCCgIKAgoCA3OQo+IKAgoCCgIKAgoDgyCj4gSFQyMC9MR0kgoCCgTUNTMTEgoCCg
IKAgMC4wIKAgoCCgIKAwLjAgoCCgIKAgoDAuMCCgIKAgoCCgIKAwKCCgMCkgoCCgIKAgoCCgMAo+
IKAgoCCgIKAgoDc2Cj4gSFQyMC9MR0kgoCCgTUNTMTIgoCCgIKAgMC4wIKAgoCCgIKAwLjAgoCCg
IKAgoDAuMCCgIKAgoCCgIKAwKCCgMCkgoCCgIKAgoCCgMAo+IKAgoCCgIKAgMjU2Cj4gSFQyMC9M
R0kgoCCgTUNTMTMgoCCgIKAgMC4wIKAgoCCgIKAwLjAgoCCgIKAgoDAuMCCgIKAgoCCgIKAwKCCg
MCkgoCCgIKAgoCCgMAo+IKAgoCCgIKAgMjU2Cj4gSFQyMC9MR0kgoCCgTUNTMTQgoCCgIKAgMC4w
IKAgoCCgIKAwLjAgoCCgIKAgoDAuMCCgIKAgoCCgIKAwKCCgMCkgoCCgIKAgoCCgMAo+IKAgoCCg
IKAgMjU2Cj4gSFQyMC9MR0kgoCCgTUNTMTUgoCCgIKAgMC4wIKAgoCCgIKAwLjAgoCCgIKAgoDAu
MCCgIKAgoCCgIKAwKCCgMCkgoCCgIKAgoCCgMAo+IKAgoCCgIKAgMjU2Cj4gSFQyMC9MR0kgoCCg
TUNTMTYgoCCgIKAgMC4wIKAgoCCgIKAwLjAgoCCgIKAgoDAuMCCgIKAgoCCgIKAwKCCgMCkgoCCg
IKAgoCCgMAo+IKAgoCCgIKAgoDc1Cj4gSFQyMC9MR0kgoCCgTUNTMTcgoCCgIKAgMC4wIKAgoCCg
IKAwLjAgoCCgIKAgoDAuMCCgIKAgoCCgIKAwKCCgMCkgoCCgIKAgoCCgMAo+IKAgoCCgIKAgoDY4
Cj4gSFQyMC9MR0kgoCCgTUNTMTggoCCgIKAgMC4wIKAgoCCgIKAwLjAgoCCgIKAgoDAuMCCgIKAg
oCCgIKAwKCCgMCkgoCCgIKAgoCCgMAo+IKAgoCCgIKAgoDg1Cj4gSFQyMC9MR0kgoCCgTUNTMTkg
oCCgIKAgMC4wIKAgoCCgIKAwLjAgoCCgIKAgoDAuMCCgIKAgoCCgIKAwKCCgMCkgoCCgIKAgoCCg
MAo+IKAgoCCgIKAgMjU3Cj4gSFQyMC9MR0kgoCCgTUNTMjAgoCCgIKAgMC4wIKAgoCCgIKAwLjAg
oCCgIKAgoDAuMCCgIKAgoCCgIKAwKCCgMCkgoCCgIKAgoCCgMAo+IKAgoCCgIKAgMjU2Cj4gSFQy
MC9MR0kgoCCgTUNTMjEgoCCgIKAgMC4wIKAgoCCgIKAwLjAgoCCgIKAgoDAuMCCgIKAgoCCgIKAw
KCCgMCkgoCCgIKAgoCCgMAo+IKAgoCCgIKAgMjU2Cj4gSFQyMC9MR0kgoCCgTUNTMjIgoCCgIKAg
MC4wIKAgoCCgIKAwLjAgoCCgIKAgoDAuMCCgIKAgoCCgIKAwKCCgMCkgoCCgIKAgoCCgMAo+IKAg
oCCgIKAgMjU2Cj4gSFQyMC9MR0kgoCCgTUNTMjMgoCCgIKAgMC4wIKAgoCCgIKAwLjAgoCCgIKAg
oDAuMCCgIKAgoCCgIKAwKCCgMCkgoCCgIKAgoCCgMAo+IKAgoCCgIKAgMjU2Cj4gSFQ0MC9MR0kg
oCCgTUNTMCCgIKAgoCAxMy42IKAgoCCgMTAwLjAgoCCgIKAxMDAuMCCgIKAgoCCgIKAwKCCgMCkg
oCCgIKAgoCA3NQo+IKAgoCCgIKAgoDc1Cj4gSFQ0MC9MR0kgoCCgTUNTMSCgIKAgoCAyNi41IKAg
oCCgMTAwLjAgoCCgIKAxMDAuMCCgIKAgoCCgIKAwKCCgMCkgoCCgIKAgoCA3Mgo+IKAgoCCgIKAg
oDcyCj4gSFQ0MC9MR0kgoCCgTUNTMiCgIKAgoCAzOC4zIKAgoCCgMTAwLjAgoCCgIKAxMDAuMCCg
IKAgoCCgIKAwKCCgMCkgoCCgIKAgoCA3Mwo+IKAgoCCgIKAgoDczCj4gSFQ0MC9MR0kgoCCgTUNT
MyCgIKAgoCA0OS43IKAgoCCgIDk5LjkgoCCgIKAxMDAuMCCgIKAgoCCgIKAwKCCgMCkgoCCgIKAg
oCA3MAo+IKAgoCCgIKAgoDczCj4gSFQ0MC9MR0kgoCCgTUNTNCCgIKAgoCCgMC4wIKAgoCCgIKAw
LjAgoCCgIKAgoDAuMCCgIKAgoCCgIKAwKCCgMCkgoCCgIKAgoCAxMAo+IKAgoCCgIKAxMjIwCj4g
SFQ0MC9MR0kgoCCgTUNTNSCgIKAgoCCgMC4wIKAgoCCgIKAwLjAgoCCgIKAgoDAuMCCgIKAgoCCg
IKAwKCCgMCkgoCCgIKAgoCCgMAo+IKAgoCCgIKAgMjU2Cj4gSFQ0MC9MR0kgoCCgTUNTNiCgIKAg
oCCgMC4wIKAgoCCgIKAwLjAgoCCgIKAgoDAuMCCgIKAgoCCgIKAwKCCgMCkgoCCgIKAgoCCgMAo+
IKAgoCCgIKAgMjU2Cj4gSFQ0MC9MR0kgoCCgTUNTNyCgIKAgoCCgMC4wIKAgoCCgIKAwLjAgoCCg
IKAgoDAuMCCgIKAgoCCgIKAwKCCgMCkgoCCgIKAgoCCgMAo+IKAgoCCgIKAgMjU2Cj4gSFQ0MC9M
R0kgoCCgTUNTOCCgIKAgoCAyNi4yIKAgoCCgIDk4LjkgoCCgIKAxMDAuMCCgIKAgoCCgIKAwKCCg
MCkgoCCgIKAgoCA3Mwo+IKAgoCCgIKAgoDc0Cj4gSFQ0MC9MR0kgoCCgTUNTOSCgIKAgoCA0OS4z
IKAgoCCgIDk5LjIgoCCgIKAxMDAuMCCgIKAgoCCgIKAwKCCgMCkgoCCgIKAgoCA2Nwo+IKAgoCCg
IKAgoDY5Cj4gSFQ0MC9MR0kgoCCgTUNTMTAgoCCgIKAyMC41IKAgoCCgIDI4LjkgoCCgIKAgoDAu
MCCgIKAgoCCgIKAwKCCgMCkgoCCgIKAgoCAxNAo+IKAgoCCgIKAgMjU1Cj4gSFQ0MC9MR0kgoCCg
TUNTMTEgoCCgIKAgMC4wIKAgoCCgIKAwLjAgoCCgIKAgoDAuMCCgIKAgoCCgIKAwKCCgMCkgoCCg
IKAgoCCgMAo+IKAgoCCgIKAgMjU3Cj4gSFQ0MC9MR0kgoCCgTUNTMTIgoCCgIKAgMC4wIKAgoCCg
IKAwLjAgoCCgIKAgoDAuMCCgIKAgoCCgIKAwKCCgMCkgoCCgIKAgoCCgMAo+IKAgoCCgIKAgMjU2
Cj4gSFQ0MC9MR0kgoCCgTUNTMTMgoCCgIKAgMC4wIKAgoCCgIKAwLjAgoCCgIKAgoDAuMCCgIKAg
oCCgIKAwKCCgMCkgoCCgIKAgoCCgMAo+IKAgoCCgIKAgMjU2Cj4gSFQ0MC9MR0kgoCCgTUNTMTQg
oCCgIKAgMC4wIKAgoCCgIKAwLjAgoCCgIKAgoDAuMCCgIKAgoCCgIKAwKCCgMCkgoCCgIKAgoCCg
MAo+IKAgoCCgIKAgMjU2Cj4gSFQ0MC9MR0kgoCCgTUNTMTUgoCCgIKAgMC4wIKAgoCCgIKAwLjAg
oCCgIKAgoDAuMCCgIKAgoCCgIKAwKCCgMCkgoCCgIKAgoCCgMAo+IKAgoCCgIKAgMjU2Cj4gSFQ0
MC9MR0kgoCCgTUNTMTYgoCCgIKAgMC4wIKAgoCCgIKAwLjAgoCCgIKAgoDAuMCCgIKAgoCCgIKAw
KCCgMCkgoCCgIKAgoCCgMAo+IKAgoCCgIKAgoDc0Cj4gSFQ0MC9MR0kgoCCgTUNTMTcgoCCgIKAg
MC4wIKAgoCCgIKAwLjAgoCCgIKAgoDAuMCCgIKAgoCCgIKAwKCCgMCkgoCCgIKAgoCCgMAo+IKAg
oCCgIKAgMjU2Cj4gSFQ0MC9MR0kgoCCgTUNTMTggoCCgIKAgMC4wIKAgoCCgIKAwLjAgoCCgIKAg
oDAuMCCgIKAgoCCgIKAwKCCgMCkgoCCgIKAgoCCgMAo+IKAgoCCgIKAgMjU1Cj4gSFQ0MC9MR0kg
oCCgTUNTMTkgoCCgIKAgMC4wIKAgoCCgIKAwLjAgoCCgIKAgoDAuMCCgIKAgoCCgIKAwKCCgMCkg
oCCgIKAgoCCgMAo+IKAgoCCgIKAgMjU2Cj4gSFQ0MC9MR0kgoCCgTUNTMjAgoCCgIKAgMC4wIKAg
oCCgIKAwLjAgoCCgIKAgoDAuMCCgIKAgoCCgIKAwKCCgMCkgoCCgIKAgoCCgMAo+IKAgoCCgIKAg
MjU2Cj4gSFQ0MC9MR0kgoCCgTUNTMjEgoCCgIKAgMC4wIKAgoCCgIKAwLjAgoCCgIKAgoDAuMCCg
IKAgoCCgIKAwKCCgMCkgoCCgIKAgoCCgMAo+IKAgoCCgIKAgMjU2Cj4gSFQ0MC9MR0kgoCCgTUNT
MjIgoCCgIKAgMC4wIKAgoCCgIKAwLjAgoCCgIKAgoDAuMCCgIKAgoCCgIKAwKCCgMCkgoCCgIKAg
oCCgMAo+IKAgoCCgIKAgMjU2Cj4gSFQ0MC9MR0kgoCCgTUNTMjMgoCCgIKAgMC4wIKAgoCCgIKAw
LjAgoCCgIKAgoDAuMCCgIKAgoCCgIKAwKCCgMCkgoCCgIKAgoCCgMAo+IKAgoCCgIKAgMjU2Cj4g
SFQ0MC9TR0kgoCCgTUNTMCCgIKAgoCAxNS4xIKAgoCCgMTAwLjAgoCCgIKAxMDAuMCCgIKAgoCCg
IKAwKCCgMCkgoCCgIKAgoCA3MAo+IKAgoCCgIKAgoDcwCj4gSFQ0MC9TR0kgoCCgTUNTMSCgIKAg
oCAyOS4yIKAgoCCgMTAwLjAgoCCgIKAxMDAuMCCgIKAgoCCgIKAwKCCgMCkgoCCgIKAgoCA3Mgo+
IKAgoCCgIKAgoDcyCj4gSFQ0MC9TR0kgoHQgTUNTMiCgIKAgoCAzOC41IKAgoCCgIDkxLjMgoCCg
IKAxMDAuMCCgIKAgoCCgIKAwKCCgMCkgoCCgIKAgoCA4MQo+IKAgoCCgIKAgoDgzCj4gSFQ0MC9T
R0kgoCBQTUNTMyCgIKAgoCA1NC4zIKAgoCCgIDk5LjUgoCCgIKAxMDAuMCCgIKAgoCCgIKAwKCCg
MCkgoCCgIKA2NjUzNgo+IKAgoCCgIDY3ODAzCj4gSFQ0MC9TR0kgoCCgTUNTNCCgIKAgoCCgMC4w
IKAgoCCgIKAwLjAgoCCgIKAgoDAuMCCgIKAgoCCgIKAwKCCgMCkgoCCgIKAgoCCgMAo+IKAgoCCg
IKAgMjU2Cj4gSFQ0MC9TR0kgoCCgTUNTNSCgIKAgoCCgMC4wIKAgoCCgIKAwLjAgoCCgIKAgoDAu
MCCgIKAgoCCgIKAwKCCgMCkgoCCgIKAgoCCgMAo+IKAgoCCgIKAgMjU2Cj4gSFQ0MC9TR0kgoCCg
TUNTNiCgIKAgoCCgMC4wIKAgoCCgIKAwLjAgoCCgIKAgoDAuMCCgIKAgoCCgIKAwKCCgMCkgoCCg
IKAgoCCgMAo+IKAgoCCgIKAgMjU2Cj4gSFQ0MC9TR0kgoCCgTUNTNyCgIKAgoCCgMC4wIKAgoCCg
IKAwLjAgoCCgIKAgoDAuMCCgIKAgoCCgIKAwKCCgMCkgoCCgIKAgoCCgMAo+IKAgoCCgIKAgMjU2
Cj4gSFQ0MC9TR0kgoCCgTUNTOCCgIKAgoCAyOS4yIKAgoCCgMTAwLjAgoCCgIKAxMDAuMCCgIKAg
oCCgIKAwKCCgMCkgoCCgIKAgoCA2Nwo+IKAgoCCgIKAgoDY3Cj4gSFQ0MC9TR0kgVCCgTUNTOSCg
IKAgoCA1NC42IKAgoCCgIDk5LjkgoCCgIKAxMDAuMCCgIKAgoCCgIKAwKCCgMCkgoCCgIDMxMDIy
Nwo+IKAgoCCgMzEyMzM5Cj4gSFQ0MC9TR0kgoCCgTUNTMTAgoCCgIKAyMi43IKAgoCCgIDI5LjMg
oCCgIKAxMDAuMCCgIKAgoCCgIKAwKCCgMCkgoCCgIKAgoCAxNAo+IKAgoCA0Ni44IE1iaXRzL3Nl
YyCgIKAyNTUKPiBIVDQwL1NHSSCgIKBNQ1MxMSCgIKAgoCAwLjAgoCCgIKAgoDAuMCCgIKAgoCCg
MC4wIKAgoCCgIKAgoDAoIKAwKSCgIKAgoCCgIKAwCj4goCCgIKAgoCAyNTYKPiBIVDQwL1NHSSCg
IKBNQ1MxMiCgIKAgoCAwLjAgoCCgIKAgoDAuMCCgIKAgoCCgMC4wIKAgoCCgIKAgoDAoIKAwKSCg
IKAgoCCgIKAwCj4goCCgIKAgoCAyNTUKPiBIVDQwL1NHSSCgIKBNQ1MxMyCgIKAgoCAwLjAgoCCg
IKAgoDAuMCCgIKAgoCCgMC4wIKAgoCCgIKAgoDAoIKAwKSCgIKAgoCCgIKAwCj4goCCgIKAgoCAy
NTYKPiBIVDQwL1NHSSCgIKBNQ1MxNCCgIKAgoCAwLjAgoCCgIKAgoDAuMCCgIKAgoCCgMC4wIKAg
oCCgIKAgoDAoIKAwKSCgIKAgoCCgIKAwCj4goCCgIKAgoCAyNTYKPiBIVDQwL1NHSSCgIKBNQ1Mx
NSCgIKAgoCAwLjAgoCCgIKAgoDAuMCCgIKAgoCCgMC4wIKAgoCCgIKAgoDAoIKAwKSCgIKAgoCCg
IKAwCj4goCCgIKAgoCAyNTYKPiBIVDQwL1NHSSCgIKBNQ1MxNiCgIKAgoCAwLjAgoCCgIKAgoDAu
MCCgIKAgoCCgMC4wIKAgoCCgIKAgoDAoIKAwKSCgIKAgoCCgIKAwCj4goCCgIKAgoCCgNjgKPiBI
VDQwL1NHSSCgIKBNQ1MxNyCgIKAgoCAwLjAgoCCgIKAgoDAuMCCgIKAgoCCgMC4wIKAgoCCgIKAg
oDAoIKAwKSCgIKAgoCCgIKAwCj4goCCgIKAgoCAyNTYKPiBIVDQwL1NHSSCgIKBNQ1MxOCCgIKAg
oCAwLjAgoCCgIKAgoDAuMCCgIKAgoCCgMC4wIKAgoCCgIKAgoDAoIKAwKSCgIKAgoCCgIKAwCj4g
oCCgIKAgoCAyNTUKPiBIVDQwL1NHSSCgIKBNQ1MxOSCgIKAgoCAwLjAgoCCgIKAgoDAuMCCgIKAg
oCCgMC4wIKAgoCCgIKAgoDAoIKAwKSCgIKAgoCCgIKAwCj4goCCgIKAgoCAyNTYKPiBIVDQwL1NH
SSCgIKBNQ1MyMCCgIKAgoCAwLjAgoCCgIKAgoDAuMCCgIKAgoCCgMC4wIKAgoCCgIKAgoDAoIKAw
KSCgIKAgoCCgIKAwCj4goCCgIKAgoCAyNTYKPiBIVDQwL1NHSSCgIKBNQ1MyMSCgIKAgoCAwLjAg
oCCgIKAgoDAuMCCgIKAgoCCgMC4wIKAgoCCgIKAgoDAoIKAwKSCgIKAgoCCgIKAwCj4goCCgIKAg
oCAyNTYKPiBIVDQwL1NHSSCgIKBNQ1MyMiCgIKAgoCAwLjAgoCCgIKAgoDAuMCCgIKAgoCCgMC4w
IKAgoCCgIKAgoDAoIKAwKSCgIKAgoCCgIKAwCj4goCCgIKAgoCAyNTYKPiBIVDQwL1NHSSCgIKBN
Q1MyMyCgIKAgoCAwLjAgoCCgIKAgoDAuMCCgIKAgoCCgMC4wIKAgoCCgIKAgoDAoIKAwKSCgIKAg
oCCgIKAwCj4goCCgIKAgoCAyNTYKPgo+IFRvdGFsIHBhY2tldCBjb3VudDo6IKAgoGlkZWFsIDM2
NTA1NiCgIKAgoGxvb2thcm91bmQgMTM3MDIKPiBBdmVyYWdlIEEtTVBEVSBsZW5ndGg6IDUuNAo+
Cj4+IERhdGU6IFR1ZSwgMjEgSnVuIDIwMTEgMTQ6MjU6MzYgKzA1MzAKPj4gU3ViamVjdDogUmU6
IFthdGg5ay1kZXZlbF0gRGlzYWJsaW5nIHRoZSB0aGlyZCBhbnRlbm5hIGZvciBBUjkzODAgaW4g
YXRoOWsKPj4gRnJvbTogc2hhZmkud2lyZWxlc3NAZ21haWwuY29tCj4+IFRvOiBmcmVkbW1AaG90
bWFpbC5jby51awo+PiBDQzogbGludXgta2VybmVsQHZnZXIua2VybmVsLm9yZzsgbGludXgtd2ly
ZWxlc3NAdmdlci5rZXJuZWwub3JnOwo+PiBhdGg5ay1kZXZlbEB2ZW5lbWEuaDRja3IubmV0OyBh
dGg5ay1kZXZlbEBsaXN0cy5hdGg5ay5vcmc7Cj4+IHN1c2luZGVyQHFjYS5xdWFsY29tbS5jb20K
Pj4KPj4gT24gVHVlLCBKdW4gMjEsIDIwMTEgYXQgMjowNyBBTSwgRnJlZCBNYXR0aGV3cyA8ZnJl
ZG1tQGhvdG1haWwuY28udWs+Cj4+IHdyb3RlOgo+PiA+IEhpIGFsbCwKPj4gPiBJIGFtIGluc3Rh
bGxpbmcgdGhlIEFSOTM4MCBOSUMgb24gbGFwdG9wcywgYnV0IHNvbWUgb25seSBoYXZlIHR3byBV
RkwKPj4gPiBjb25uZWN0b3JzLCBhbmQgdGh1cyBJIHdhcyB3b25kZXJpbmcgaWYgdXNpbmcgb25s
eSB0d28gb2YgdGhlIFVGTAo+PiA+IGFudGVubmEKPj4gPiBwb3J0cyB3aWxsIGhhdmUgYW55IG5l
Z2F0aXZlIGVmZmVjdCBvciBkaWZmZXJlbmNlIHRoYW4gaW5zdGFsbGluZyBhIDJ4Mgo+PiA+IE5J
Qwo+PiA+IChBUjkyODAgZm9yIGV4YW1wbGUgd2hpY2ggaGFzIG9ubHkgMiBwb3J0cyBhbnl3YXkp
LiBQbGVhc2Uga2luZGx5Cj4+ID4gZXhwbGFpbgo+PiA+IHdpdGggcmVmZXJlbmNlcyBpZiBwb3Nz
aWJsZS4KPj4gPiBBbHNvIGZvciBleGFtcGxloGlzIHRoZXJlIGFueXdheSB0byBkaXNhYmxlIHRy
YW5zbWlzc2lvbiBvbiB0aGUgdGhpcmQKPj4gPiBVRkwKPj4gPiBwb3J0IChhbnRlbm5hKSBmcm9t
IGF0aDlrIG9yIG90aGVyd2lzZS4KPj4gPiBUaGFuayB5b3UgYWxsIHZlcnkgbXVjaAo+Pgo+PiB5
b3UgY2FuIGNoYW5nZSB0aGUgdHgvcnggY2hhaW5tYXNrIGZvciAzeDMgQVI5MzgwIHRvIGRpc2Fi
bGUKPj4gdHJhbnNtaXNzaW9uIG9uIHRoZSB0aGlyZCBhbnRlbm5hCj4+IGNkIC9zeXMva2VybmVs
L2RlYnVnL2llZWU4MDIxMS9waHkwL2F0aDlrIyBlY2hvIDB4MyA+IHR4X2NoYWlubWFzawo+PiBj
ZCAvc3lzL2tlcm5lbC9kZWJ1Zy9pZWVlODAyMTEvcGh5MC9hdGg5ayMgZWNobyAweDMgPiByeF9j
aGFpbm1hc2sKPj4KPj4gYWZ0ZXIgdGhpcywgaWRlYWxseSBpdCBzaG91bGQgb3BlcmF0ZSBhcyAy
eDIgZGV2aWNlIGFzIHBlciBTdXNpbmRlcnMKPj4gY29tbWVudHMuIGJ1dCBpZiB5b3UgZ290IEFS
OTI4MCBwbGVhc2UgdHJ5IHRvIHVzZSB0aGF0IGlmIDIgYW50ZW5uYSBpcwo+PiB0aGUgY29uc3Ry
YWludC4KPj4KPj4KPj4gPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fXwo+PiA+IGF0aDlrLWRldmVsIG1haWxpbmcgbGlzdAo+PiA+IGF0aDlrLWRldmVsQGxp
c3RzLmF0aDlrLm9yZwo+PiA+IGh0dHBzOi8vbGlzdHMuYXRoOWsub3JnL21haWxtYW4vbGlzdGlu
Zm8vYXRoOWstZGV2ZWwKPj4gPgo+PiA+Cj4+Cj4+Cj4+Cj4+IC0tCj4+IHNoYWZpCj4KCgoKLS0g
CnNoYWZpCg==


2011-06-23 13:56:26

by Adrian Chadd

[permalink] [raw]
Subject: Re: [ath9k-devel] Disabling the third antenna for AR9380 in ath9k

Ah, thanks for digging. You likely need both.. the chainmask may be
used somewhere else that I'm not familiar with.

But it should be limited by the max_streams, as the AR5416/AR9160 is a
3-chain device with two streams, and:

/* set up supported mcs set */
memset(&ht_info->mcs, 0, sizeof(ht_info->mcs));
tx_streams = ath9k_cmn_count_streams(common->tx_chainmask, max_streams);
rx_streams = ath9k_cmn_count_streams(common->rx_chainmask, max_streams);

.. so for the AR5416/AR9160 case, the chainmask is 0x7, max_streams
will be 2, and all the various rate control and MCS negotiation seems
to cope. I think it should be enough to set the TX/RX chainmask and
the max_streams value.


Adrian

On 23 June 2011 21:40, Mohammed Shafi <[email protected]> wrote:
> On Thu, Jun 23, 2011 at 5:52 PM, Adrian Chadd <[email protected]> wrote:
>> As I said, there's a value in the ath9k code that gets set based on
>> the chipset type.
>>
>> static void setup_ht_cap(struct ath_softc *sc,
>> ? ? ? ? ? ? ? ? ? ? ? ? struct ieee80211_sta_ht_cap *ht_info)
>>
>> in init.c
>>
>> That should be all you need to do to communicate to the higher layers
>> that you only support 2 streams.
>
> rather than changing the chain mask via debugfs, the best way is to
> hard code them when we read the chain mask from EEPROM(with inputs
> from Susinder)
>
> diff --git a/drivers/net/wireless/ath/ath9k/hw.c
> b/drivers/net/wireless/ath/ath9k/hw.c
> index 07827b5..b96e380 100644
> --- a/drivers/net/wireless/ath/ath9k/hw.c
> +++ b/drivers/net/wireless/ath/ath9k/hw.c
> @@ -1990,6 +1990,9 @@ int ath9k_hw_fill_cap_info(struct ath_hw *ah)
> ? ? ? ? ? ? ? ?/* Use rx_chainmask from EEPROM. */
> ? ? ? ? ? ? ? ?pCap->rx_chainmask = ah->eep_ops->get_eeprom(ah, EEP_RX_MASK);
>
> + ? ? ? pCap->tx_chainmask = 0x3;
> + ? ? ? pCap->rx_chainmask = 0x3;
> +
> ? ? ? ?ah->misc_mode |= AR_PCU_MIC_NEW_LOC_ENA;
>
> ? ? ? ?/* enable key search for every frame in an aggregate */
>
>
>>
>> You're checking the wrong place. You're seeing _TX_ errors, but what
>> you're not seeing (likely because you don't have a 3 stream peer) is
>> that you're still advertising supporting MCS0->24, so peers may send
>> you MCS16->24 even though you can't receive it.
>>
>> The correct way is to patch the driver to only enable 2 streams in the
>> HT capability setup, so mac80211 and the rate control code only
>> advertises MCS0-15 and TX'es MCS0-15 respectively.
>>
>> (You have to do this as well as disabling the third chain btw.)
>>
>>
>>
>> Adrian
>>
>> On 23 June 2011 20:16, Mohammed Shafi <[email protected]> wrote:
>>> On Thu, Jun 23, 2011 at 5:26 PM, Fred Matthews <[email protected]> wrote:
>>>>
>>>>
>>>> Hi,
>>>>
>>>> Regarding streams used in Minstrel RC, I found that in "net/mac80211/rc80211_minstrel_ht.h", at line 16, there is "#define MINSTREL_MAX_STREAMS ?3", that sets the number of streams for minstrel RC.
>>>>
>>>> Now can someone help to pass this onto debugfs, so that we can change from 3 streams to 2 streams at runtime like the rx_chainmask. I tried creating a u8 stream_number and struct dentry *dbg_stream_number in the header file, then a debugfs_create_u8 in the c file. Then used it to redefine MINSTREL_MAX_STREAMS, but when I tested this I got errors, therefore, can anyone kindly share a patch to do this correctly.
>>>
>>> hi,
>>>
>>> i am not familiar with the minstrel rate control, but as you had asked
>>> I grep'd for MINSTREL_MAX_STREAMS to see if we can quickly add a debug
>>> entry to change it. but usage like this below suggests we can quickly
>>> hack the macro to 2 rather than adding a debug entry
>>>
>>> const struct mcs_group minstrel_mcs_groups[] = {
>>> ? ? ? ?MCS_GROUP(1, 0, 0),
>>> ? ? ? ?MCS_GROUP(2, 0, 0),
>>> #if MINSTREL_MAX_STREAMS >= 3
>>> ? ? ? ?MCS_GROUP(3, 0, 0),
>>> #endif
>>>
>>>
>>>>
>>>> Thanks in advance
>>>>
>>>>
>>>>
>>>> On Wed, Jun 22, 2011 at 3:57 PM, Mohammed Shafi wrote:
>>>>> On Wed, Jun 22, 2011 at 6:12 PM, Fred Matthews wrote:
>>>>>>
>>>>>> Hi,
>>>>>>
>>>>>> I used that command to disable the third antenna, and applied it to both AP
>>>>>> and STA AR9380 NICs.
>>>>>> I then performed an IPerf test between both and then captured the statistics
>>>>>> from the sender, (below) .
>>>>>> You can see that in rc_stats (minstrel), the rate control actually
>>>>>> "attempts" sending on 3 stream MCSs (16-23) around 256 times each.
>>>>>
>>>>> just a guess. as we are changing the chain mask via debugfs and there
>>>>> may be a chance we may not have informed the minstrel rate control
>>>>> which is maintained in upper layer(mac80211) and it might be taking
>>>>> what we have configured the chain masks while we had initialized the
>>>>> device and i have very little idea about ministrel rate control
>>>>>
>>>>>>
>>>>>> Is there any way to prevent the RC from even attempting those rates, as if I
>>>>>> where to fully imitate an AR9280, it shouldnt attempt at those MCSs.
>>>>>
>>>>> may be we can try with ath9k rate control, and see what happens which
>>>>> is within the ath9k driver and affects xmit.c and it may have been
>>>>> informed of the chain mask change.
>>>>>
>>>>>>
>>>>>> Can Susinders comments also be detailed.
>>>>>>
>>>>>> Thanks in advance
>>>>>>
>>>>>> # cat /sys/kernel/debug/ieee80211/phy0/netdev\:wlan0/stations/00\MAC/
>>>>>>
>>>>>> AUTH
>>>>>> ASSOC
>>>>>> AUTHORIZED
>>>>>> WME
>>>>>> ht supported
>>>>>> cap: 0x11ce
>>>>>> ? ? HT20/HT40
>>>>>> ? ? SM Power Save disabled
>>>>>> ? ? RX HT40 SGI
>>>>>> ? ? TX STBC
>>>>>> ? ? RX STBC 1-stream
>>>>>> ? ? Max AMSDU length: 7935 bytes
>>>>>> ? ? DSSS/CCK HT40
>>>>>> ampdu factor/density: 3/6
>>>>>> MCS mask: ff ff ff 00 00 00 00 00 00 00
>>>>>> MCS tx params: 1
>>>>>> 792
>>>>>> 150 ffff ffff ffff ffff ffff 60 ffff ffff ffff ffff ffff ffff ffff ffff ffff
>>>>>> a40
>>>>>> -77
>>>>>> 0
>>>>>> type ? ? ?rate ? ? throughput ?ewma prob ? this prob ?this succ/attempt
>>>>>> success ? ?attempts
>>>>>> HT20/LGI ? ?MCS0 ? ? ? ?6.6 ? ? ? 99.9 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ? ?163
>>>>>> ? ? ? ? 230
>>>>>> HT20/LGI ? ?MCS1 ? ? ? 13.1 ? ? ?100.0 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ? ? 75
>>>>>> ? ? ? ? ?75
>>>>>> HT20/LGI ? ?MCS2 ? ? ? 19.3 ? ? ?100.0 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ? ?252
>>>>>> ? ? ? ? 252
>>>>>> HT20/LGI ? ?MCS3 ? ? ? 25.4 ? ? ?100.0 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ? ? 75
>>>>>> ? ? ? ? ?75
>>>>>> HT20/LGI ? ?MCS4 ? ? ? 36.2 ? ? ? 97.5 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ? ?413
>>>>>> ? ? ? ? 474
>>>>>> HT20/LGI ? ?MCS5 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>>> ? ? ? ? ?76
>>>>>> HT20/LGI ? ?MCS6 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>>> ? ? ? ? ?80
>>>>>> HT20/LGI ? ?MCS7 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>>> ? ? ? ? 256
>>>>>> HT20/LGI ? ?MCS8 ? ? ? 13.1 ? ? ?100.0 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ? ? 75
>>>>>> ? ? ? ? ?75
>>>>>> HT20/LGI ? ?MCS9 ? ? ? 25.4 ? ? ?100.0 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ? ? 70
>>>>>> ? ? ? ? ?70
>>>>>> HT20/LGI ? ?MCS10 ? ? ?34.2 ? ? ? 92.2 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ? ? 79
>>>>>> ? ? ? ? ?82
>>>>>> HT20/LGI ? ?MCS11 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>>> ? ? ? ? ?76
>>>>>> HT20/LGI ? ?MCS12 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>>> ? ? ? ? 256
>>>>>> HT20/LGI ? ?MCS13 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>>> ? ? ? ? 256
>>>>>> HT20/LGI ? ?MCS14 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>>> ? ? ? ? 256
>>>>>> HT20/LGI ? ?MCS15 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>>> ? ? ? ? 256
>>>>>> HT20/LGI ? ?MCS16 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>>> ? ? ? ? ?75
>>>>>> HT20/LGI ? ?MCS17 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>>> ? ? ? ? ?68
>>>>>> HT20/LGI ? ?MCS18 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>>> ? ? ? ? ?85
>>>>>> HT20/LGI ? ?MCS19 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>>> ? ? ? ? 257
>>>>>> HT20/LGI ? ?MCS20 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>>> ? ? ? ? 256
>>>>>> HT20/LGI ? ?MCS21 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>>> ? ? ? ? 256
>>>>>> HT20/LGI ? ?MCS22 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>>> ? ? ? ? 256
>>>>>> HT20/LGI ? ?MCS23 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>>> ? ? ? ? 256
>>>>>> HT40/LGI ? ?MCS0 ? ? ? 13.6 ? ? ?100.0 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ? ? 75
>>>>>> ? ? ? ? ?75
>>>>>> HT40/LGI ? ?MCS1 ? ? ? 26.5 ? ? ?100.0 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ? ? 72
>>>>>> ? ? ? ? ?72
>>>>>> HT40/LGI ? ?MCS2 ? ? ? 38.3 ? ? ?100.0 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ? ? 73
>>>>>> ? ? ? ? ?73
>>>>>> HT40/LGI ? ?MCS3 ? ? ? 49.7 ? ? ? 99.9 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ? ? 70
>>>>>> ? ? ? ? ?73
>>>>>> HT40/LGI ? ?MCS4 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? 10
>>>>>> ? ? ? ?1220
>>>>>> HT40/LGI ? ?MCS5 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>>> ? ? ? ? 256
>>>>>> HT40/LGI ? ?MCS6 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>>> ? ? ? ? 256
>>>>>> HT40/LGI ? ?MCS7 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>>> ? ? ? ? 256
>>>>>> HT40/LGI ? ?MCS8 ? ? ? 26.2 ? ? ? 98.9 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ? ? 73
>>>>>> ? ? ? ? ?74
>>>>>> HT40/LGI ? ?MCS9 ? ? ? 49.3 ? ? ? 99.2 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ? ? 67
>>>>>> ? ? ? ? ?69
>>>>>> HT40/LGI ? ?MCS10 ? ? ?20.5 ? ? ? 28.9 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? 14
>>>>>> ? ? ? ? 255
>>>>>> HT40/LGI ? ?MCS11 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>>> ? ? ? ? 257
>>>>>> HT40/LGI ? ?MCS12 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>>> ? ? ? ? 256
>>>>>> HT40/LGI ? ?MCS13 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>>> ? ? ? ? 256
>>>>>> HT40/LGI ? ?MCS14 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>>> ? ? ? ? 256
>>>>>> HT40/LGI ? ?MCS15 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>>> ? ? ? ? 256
>>>>>> HT40/LGI ? ?MCS16 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>>> ? ? ? ? ?74
>>>>>> HT40/LGI ? ?MCS17 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>>> ? ? ? ? 256
>>>>>> HT40/LGI ? ?MCS18 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>>> ? ? ? ? 255
>>>>>> HT40/LGI ? ?MCS19 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>>> ? ? ? ? 256
>>>>>> HT40/LGI ? ?MCS20 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>>> ? ? ? ? 256
>>>>>> HT40/LGI ? ?MCS21 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>>> ? ? ? ? 256
>>>>>> HT40/LGI ? ?MCS22 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>>> ? ? ? ? 256
>>>>>> HT40/LGI ? ?MCS23 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>>> ? ? ? ? 256
>>>>>> HT40/SGI ? ?MCS0 ? ? ? 15.1 ? ? ?100.0 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ? ? 70
>>>>>> ? ? ? ? ?70
>>>>>> HT40/SGI ? ?MCS1 ? ? ? 29.2 ? ? ?100.0 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ? ? 72
>>>>>> ? ? ? ? ?72
>>>>>> HT40/SGI ?t MCS2 ? ? ? 38.5 ? ? ? 91.3 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ? ? 81
>>>>>> ? ? ? ? ?83
>>>>>> HT40/SGI ? PMCS3 ? ? ? 54.3 ? ? ? 99.5 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ?66536
>>>>>> ? ? ? 67803
>>>>>> HT40/SGI ? ?MCS4 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>>> ? ? ? ? 256
>>>>>> HT40/SGI ? ?MCS5 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>>> ? ? ? ? 256
>>>>>> HT40/SGI ? ?MCS6 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>>> ? ? ? ? 256
>>>>>> HT40/SGI ? ?MCS7 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>>> ? ? ? ? 256
>>>>>> HT40/SGI ? ?MCS8 ? ? ? 29.2 ? ? ?100.0 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ? ? 67
>>>>>> ? ? ? ? ?67
>>>>>> HT40/SGI T ?MCS9 ? ? ? 54.6 ? ? ? 99.9 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? 310227
>>>>>> ? ? ?312339
>>>>>> HT40/SGI ? ?MCS10 ? ? ?22.7 ? ? ? 29.3 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ? ? 14
>>>>>> ? ? 46.8 Mbits/sec ? ?255
>>>>>> HT40/SGI ? ?MCS11 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>>> ? ? ? ? 256
>>>>>> HT40/SGI ? ?MCS12 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>>> ? ? ? ? 255
>>>>>> HT40/SGI ? ?MCS13 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>>> ? ? ? ? 256
>>>>>> HT40/SGI ? ?MCS14 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>>> ? ? ? ? 256
>>>>>> HT40/SGI ? ?MCS15 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>>> ? ? ? ? 256
>>>>>> HT40/SGI ? ?MCS16 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>>> ? ? ? ? ?68
>>>>>> HT40/SGI ? ?MCS17 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>>> ? ? ? ? 256
>>>>>> HT40/SGI ? ?MCS18 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>>> ? ? ? ? 255
>>>>>> HT40/SGI ? ?MCS19 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>>> ? ? ? ? 256
>>>>>> HT40/SGI ? ?MCS20 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>>> ? ? ? ? 256
>>>>>> HT40/SGI ? ?MCS21 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>>> ? ? ? ? 256
>>>>>> HT40/SGI ? ?MCS22 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>>> ? ? ? ? 256
>>>>>> HT40/SGI ? ?MCS23 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>>> ? ? ? ? 256
>>>>>>
>>>>>> Total packet count:: ? ?ideal 365056 ? ? ?lookaround 13702
>>>>>> Average A-MPDU length: 5.4
>>>>>>
>>>>>>> Date: Tue, 21 Jun 2011 14:25:36 +0530
>>>>>>> Subject: Re: [ath9k-devel] Disabling the third antenna for AR9380 in ath9k
>>>>>>> From: [email protected]
>>>>>>> To: [email protected]
>>>>>>> CC: [email protected]; [email protected];
>>>>>>> [email protected]; [email protected];
>>>>>>> [email protected]
>>>>>>>
>>>>>>> On Tue, Jun 21, 2011 at 2:07 AM, Fred Matthews
>>>>>>> wrote:
>>>>>>> > Hi all,
>>>>>>> > I am installing the AR9380 NIC on laptops, but some only have two UFL
>>>>>>> > connectors, and thus I was wondering if using only two of the UFL
>>>>>>> > antenna
>>>>>>> > ports will have any negative effect or difference than installing a 2x2
>>>>>>> > NIC
>>>>>>> > (AR9280 for example which has only 2 ports anyway). Please kindly
>>>>>>> > explain
>>>>>>> > with references if possible.
>>>>>>> > Also for example is there anyway to disable transmission on the third
>>>>>>> > UFL
>>>>>>> > port (antenna) from ath9k or otherwise.
>>>>>>> > Thank you all very much
>>>>>>>
>>>>>>> you can change the tx/rx chainmask for 3x3 AR9380 to disable
>>>>>>> transmission on the third antenna
>>>>>>> cd /sys/kernel/debug/ieee80211/phy0/ath9k# echo 0x3 > tx_chainmask
>>>>>>> cd /sys/kernel/debug/ieee80211/phy0/ath9k# echo 0x3 > rx_chainmask
>>>>>>>
>>>>>>> after this, ideally it should operate as 2x2 device as per Susinders
>>>>>>> comments. but if you got AR9280 please try to use that if 2 antenna is
>>>>>>> the constraint.
>>>>>>>
>>>>>>>
>>>>>>> > _______________________________________________
>>>>>>> > ath9k-devel mailing list
>>>>>>> > [email protected]
>>>>>>> > https://lists.ath9k.org/mailman/listinfo/ath9k-devel
>>>>>>> >
>>>>>>> >
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?--
>>>> To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
>>>> the body of a message to [email protected]
>>>> More majordomo info at ?http://vger.kernel.org/majordomo-info.html
>>>>
>>>
>>>
>>>
>>> --
>>> shafi
>>>
>>
>
>
>
> --
> shafi
>

2011-06-23 13:40:48

by Mohammed Shafi

[permalink] [raw]
Subject: Re: [ath9k-devel] Disabling the third antenna for AR9380 in ath9k

On Thu, Jun 23, 2011 at 5:52 PM, Adrian Chadd <[email protected]> wrote:
> As I said, there's a value in the ath9k code that gets set based on
> the chipset type.
>
> static void setup_ht_cap(struct ath_softc *sc,
> ? ? ? ? ? ? ? ? ? ? ? ? struct ieee80211_sta_ht_cap *ht_info)
>
> in init.c
>
> That should be all you need to do to communicate to the higher layers
> that you only support 2 streams.

rather than changing the chain mask via debugfs, the best way is to
hard code them when we read the chain mask from EEPROM(with inputs
from Susinder)

diff --git a/drivers/net/wireless/ath/ath9k/hw.c
b/drivers/net/wireless/ath/ath9k/hw.c
index 07827b5..b96e380 100644
--- a/drivers/net/wireless/ath/ath9k/hw.c
+++ b/drivers/net/wireless/ath/ath9k/hw.c
@@ -1990,6 +1990,9 @@ int ath9k_hw_fill_cap_info(struct ath_hw *ah)
/* Use rx_chainmask from EEPROM. */
pCap->rx_chainmask = ah->eep_ops->get_eeprom(ah, EEP_RX_MASK);

+ pCap->tx_chainmask = 0x3;
+ pCap->rx_chainmask = 0x3;
+
ah->misc_mode |= AR_PCU_MIC_NEW_LOC_ENA;

/* enable key search for every frame in an aggregate */


>
> You're checking the wrong place. You're seeing _TX_ errors, but what
> you're not seeing (likely because you don't have a 3 stream peer) is
> that you're still advertising supporting MCS0->24, so peers may send
> you MCS16->24 even though you can't receive it.
>
> The correct way is to patch the driver to only enable 2 streams in the
> HT capability setup, so mac80211 and the rate control code only
> advertises MCS0-15 and TX'es MCS0-15 respectively.
>
> (You have to do this as well as disabling the third chain btw.)
>
>
>
> Adrian
>
> On 23 June 2011 20:16, Mohammed Shafi <[email protected]> wrote:
>> On Thu, Jun 23, 2011 at 5:26 PM, Fred Matthews <[email protected]> wrote:
>>>
>>>
>>> Hi,
>>>
>>> Regarding streams used in Minstrel RC, I found that in "net/mac80211/rc80211_minstrel_ht.h", at line 16, there is "#define MINSTREL_MAX_STREAMS ?3", that sets the number of streams for minstrel RC.
>>>
>>> Now can someone help to pass this onto debugfs, so that we can change from 3 streams to 2 streams at runtime like the rx_chainmask. I tried creating a u8 stream_number and struct dentry *dbg_stream_number in the header file, then a debugfs_create_u8 in the c file. Then used it to redefine MINSTREL_MAX_STREAMS, but when I tested this I got errors, therefore, can anyone kindly share a patch to do this correctly.
>>
>> hi,
>>
>> i am not familiar with the minstrel rate control, but as you had asked
>> I grep'd for MINSTREL_MAX_STREAMS to see if we can quickly add a debug
>> entry to change it. but usage like this below suggests we can quickly
>> hack the macro to 2 rather than adding a debug entry
>>
>> const struct mcs_group minstrel_mcs_groups[] = {
>> ? ? ? ?MCS_GROUP(1, 0, 0),
>> ? ? ? ?MCS_GROUP(2, 0, 0),
>> #if MINSTREL_MAX_STREAMS >= 3
>> ? ? ? ?MCS_GROUP(3, 0, 0),
>> #endif
>>
>>
>>>
>>> Thanks in advance
>>>
>>>
>>>
>>> On Wed, Jun 22, 2011 at 3:57 PM, Mohammed Shafi wrote:
>>>> On Wed, Jun 22, 2011 at 6:12 PM, Fred Matthews wrote:
>>>>>
>>>>> Hi,
>>>>>
>>>>> I used that command to disable the third antenna, and applied it to both AP
>>>>> and STA AR9380 NICs.
>>>>> I then performed an IPerf test between both and then captured the statistics
>>>>> from the sender, (below) .
>>>>> You can see that in rc_stats (minstrel), the rate control actually
>>>>> "attempts" sending on 3 stream MCSs (16-23) around 256 times each.
>>>>
>>>> just a guess. as we are changing the chain mask via debugfs and there
>>>> may be a chance we may not have informed the minstrel rate control
>>>> which is maintained in upper layer(mac80211) and it might be taking
>>>> what we have configured the chain masks while we had initialized the
>>>> device and i have very little idea about ministrel rate control
>>>>
>>>>>
>>>>> Is there any way to prevent the RC from even attempting those rates, as if I
>>>>> where to fully imitate an AR9280, it shouldnt attempt at those MCSs.
>>>>
>>>> may be we can try with ath9k rate control, and see what happens which
>>>> is within the ath9k driver and affects xmit.c and it may have been
>>>> informed of the chain mask change.
>>>>
>>>>>
>>>>> Can Susinders comments also be detailed.
>>>>>
>>>>> Thanks in advance
>>>>>
>>>>> # cat /sys/kernel/debug/ieee80211/phy0/netdev\:wlan0/stations/00\MAC/
>>>>>
>>>>> AUTH
>>>>> ASSOC
>>>>> AUTHORIZED
>>>>> WME
>>>>> ht supported
>>>>> cap: 0x11ce
>>>>> ? ? HT20/HT40
>>>>> ? ? SM Power Save disabled
>>>>> ? ? RX HT40 SGI
>>>>> ? ? TX STBC
>>>>> ? ? RX STBC 1-stream
>>>>> ? ? Max AMSDU length: 7935 bytes
>>>>> ? ? DSSS/CCK HT40
>>>>> ampdu factor/density: 3/6
>>>>> MCS mask: ff ff ff 00 00 00 00 00 00 00
>>>>> MCS tx params: 1
>>>>> 792
>>>>> 150 ffff ffff ffff ffff ffff 60 ffff ffff ffff ffff ffff ffff ffff ffff ffff
>>>>> a40
>>>>> -77
>>>>> 0
>>>>> type ? ? ?rate ? ? throughput ?ewma prob ? this prob ?this succ/attempt
>>>>> success ? ?attempts
>>>>> HT20/LGI ? ?MCS0 ? ? ? ?6.6 ? ? ? 99.9 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ? ?163
>>>>> ? ? ? ? 230
>>>>> HT20/LGI ? ?MCS1 ? ? ? 13.1 ? ? ?100.0 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ? ? 75
>>>>> ? ? ? ? ?75
>>>>> HT20/LGI ? ?MCS2 ? ? ? 19.3 ? ? ?100.0 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ? ?252
>>>>> ? ? ? ? 252
>>>>> HT20/LGI ? ?MCS3 ? ? ? 25.4 ? ? ?100.0 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ? ? 75
>>>>> ? ? ? ? ?75
>>>>> HT20/LGI ? ?MCS4 ? ? ? 36.2 ? ? ? 97.5 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ? ?413
>>>>> ? ? ? ? 474
>>>>> HT20/LGI ? ?MCS5 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? ?76
>>>>> HT20/LGI ? ?MCS6 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? ?80
>>>>> HT20/LGI ? ?MCS7 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? 256
>>>>> HT20/LGI ? ?MCS8 ? ? ? 13.1 ? ? ?100.0 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ? ? 75
>>>>> ? ? ? ? ?75
>>>>> HT20/LGI ? ?MCS9 ? ? ? 25.4 ? ? ?100.0 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ? ? 70
>>>>> ? ? ? ? ?70
>>>>> HT20/LGI ? ?MCS10 ? ? ?34.2 ? ? ? 92.2 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ? ? 79
>>>>> ? ? ? ? ?82
>>>>> HT20/LGI ? ?MCS11 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? ?76
>>>>> HT20/LGI ? ?MCS12 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? 256
>>>>> HT20/LGI ? ?MCS13 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? 256
>>>>> HT20/LGI ? ?MCS14 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? 256
>>>>> HT20/LGI ? ?MCS15 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? 256
>>>>> HT20/LGI ? ?MCS16 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? ?75
>>>>> HT20/LGI ? ?MCS17 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? ?68
>>>>> HT20/LGI ? ?MCS18 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? ?85
>>>>> HT20/LGI ? ?MCS19 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? 257
>>>>> HT20/LGI ? ?MCS20 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? 256
>>>>> HT20/LGI ? ?MCS21 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? 256
>>>>> HT20/LGI ? ?MCS22 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? 256
>>>>> HT20/LGI ? ?MCS23 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? 256
>>>>> HT40/LGI ? ?MCS0 ? ? ? 13.6 ? ? ?100.0 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ? ? 75
>>>>> ? ? ? ? ?75
>>>>> HT40/LGI ? ?MCS1 ? ? ? 26.5 ? ? ?100.0 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ? ? 72
>>>>> ? ? ? ? ?72
>>>>> HT40/LGI ? ?MCS2 ? ? ? 38.3 ? ? ?100.0 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ? ? 73
>>>>> ? ? ? ? ?73
>>>>> HT40/LGI ? ?MCS3 ? ? ? 49.7 ? ? ? 99.9 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ? ? 70
>>>>> ? ? ? ? ?73
>>>>> HT40/LGI ? ?MCS4 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? 10
>>>>> ? ? ? ?1220
>>>>> HT40/LGI ? ?MCS5 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? 256
>>>>> HT40/LGI ? ?MCS6 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? 256
>>>>> HT40/LGI ? ?MCS7 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? 256
>>>>> HT40/LGI ? ?MCS8 ? ? ? 26.2 ? ? ? 98.9 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ? ? 73
>>>>> ? ? ? ? ?74
>>>>> HT40/LGI ? ?MCS9 ? ? ? 49.3 ? ? ? 99.2 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ? ? 67
>>>>> ? ? ? ? ?69
>>>>> HT40/LGI ? ?MCS10 ? ? ?20.5 ? ? ? 28.9 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? 14
>>>>> ? ? ? ? 255
>>>>> HT40/LGI ? ?MCS11 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? 257
>>>>> HT40/LGI ? ?MCS12 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? 256
>>>>> HT40/LGI ? ?MCS13 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? 256
>>>>> HT40/LGI ? ?MCS14 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? 256
>>>>> HT40/LGI ? ?MCS15 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? 256
>>>>> HT40/LGI ? ?MCS16 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? ?74
>>>>> HT40/LGI ? ?MCS17 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? 256
>>>>> HT40/LGI ? ?MCS18 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? 255
>>>>> HT40/LGI ? ?MCS19 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? 256
>>>>> HT40/LGI ? ?MCS20 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? 256
>>>>> HT40/LGI ? ?MCS21 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? 256
>>>>> HT40/LGI ? ?MCS22 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? 256
>>>>> HT40/LGI ? ?MCS23 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? 256
>>>>> HT40/SGI ? ?MCS0 ? ? ? 15.1 ? ? ?100.0 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ? ? 70
>>>>> ? ? ? ? ?70
>>>>> HT40/SGI ? ?MCS1 ? ? ? 29.2 ? ? ?100.0 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ? ? 72
>>>>> ? ? ? ? ?72
>>>>> HT40/SGI ?t MCS2 ? ? ? 38.5 ? ? ? 91.3 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ? ? 81
>>>>> ? ? ? ? ?83
>>>>> HT40/SGI ? PMCS3 ? ? ? 54.3 ? ? ? 99.5 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ?66536
>>>>> ? ? ? 67803
>>>>> HT40/SGI ? ?MCS4 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? 256
>>>>> HT40/SGI ? ?MCS5 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? 256
>>>>> HT40/SGI ? ?MCS6 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? 256
>>>>> HT40/SGI ? ?MCS7 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? 256
>>>>> HT40/SGI ? ?MCS8 ? ? ? 29.2 ? ? ?100.0 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ? ? 67
>>>>> ? ? ? ? ?67
>>>>> HT40/SGI T ?MCS9 ? ? ? 54.6 ? ? ? 99.9 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? 310227
>>>>> ? ? ?312339
>>>>> HT40/SGI ? ?MCS10 ? ? ?22.7 ? ? ? 29.3 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ? ? 14
>>>>> ? ? 46.8 Mbits/sec ? ?255
>>>>> HT40/SGI ? ?MCS11 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? 256
>>>>> HT40/SGI ? ?MCS12 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? 255
>>>>> HT40/SGI ? ?MCS13 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? 256
>>>>> HT40/SGI ? ?MCS14 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? 256
>>>>> HT40/SGI ? ?MCS15 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? 256
>>>>> HT40/SGI ? ?MCS16 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? ?68
>>>>> HT40/SGI ? ?MCS17 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? 256
>>>>> HT40/SGI ? ?MCS18 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? 255
>>>>> HT40/SGI ? ?MCS19 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? 256
>>>>> HT40/SGI ? ?MCS20 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? 256
>>>>> HT40/SGI ? ?MCS21 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? 256
>>>>> HT40/SGI ? ?MCS22 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? 256
>>>>> HT40/SGI ? ?MCS23 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? 256
>>>>>
>>>>> Total packet count:: ? ?ideal 365056 ? ? ?lookaround 13702
>>>>> Average A-MPDU length: 5.4
>>>>>
>>>>>> Date: Tue, 21 Jun 2011 14:25:36 +0530
>>>>>> Subject: Re: [ath9k-devel] Disabling the third antenna for AR9380 in ath9k
>>>>>> From: [email protected]
>>>>>> To: [email protected]
>>>>>> CC: [email protected]; [email protected];
>>>>>> [email protected]; [email protected];
>>>>>> [email protected]
>>>>>>
>>>>>> On Tue, Jun 21, 2011 at 2:07 AM, Fred Matthews
>>>>>> wrote:
>>>>>> > Hi all,
>>>>>> > I am installing the AR9380 NIC on laptops, but some only have two UFL
>>>>>> > connectors, and thus I was wondering if using only two of the UFL
>>>>>> > antenna
>>>>>> > ports will have any negative effect or difference than installing a 2x2
>>>>>> > NIC
>>>>>> > (AR9280 for example which has only 2 ports anyway). Please kindly
>>>>>> > explain
>>>>>> > with references if possible.
>>>>>> > Also for example is there anyway to disable transmission on the third
>>>>>> > UFL
>>>>>> > port (antenna) from ath9k or otherwise.
>>>>>> > Thank you all very much
>>>>>>
>>>>>> you can change the tx/rx chainmask for 3x3 AR9380 to disable
>>>>>> transmission on the third antenna
>>>>>> cd /sys/kernel/debug/ieee80211/phy0/ath9k# echo 0x3 > tx_chainmask
>>>>>> cd /sys/kernel/debug/ieee80211/phy0/ath9k# echo 0x3 > rx_chainmask
>>>>>>
>>>>>> after this, ideally it should operate as 2x2 device as per Susinders
>>>>>> comments. but if you got AR9280 please try to use that if 2 antenna is
>>>>>> the constraint.
>>>>>>
>>>>>>
>>>>>> > _______________________________________________
>>>>>> > ath9k-devel mailing list
>>>>>> > [email protected]
>>>>>> > https://lists.ath9k.org/mailman/listinfo/ath9k-devel
>>>>>> >
>>>>>> >
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?--
>>> To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
>>> the body of a message to [email protected]
>>> More majordomo info at ?http://vger.kernel.org/majordomo-info.html
>>>
>>
>>
>>
>> --
>> shafi
>>
>



--
shafi

2011-06-23 12:16:31

by Mohammed Shafi

[permalink] [raw]
Subject: Re: [ath9k-devel] Disabling the third antenna for AR9380 in ath9k

On Thu, Jun 23, 2011 at 5:26 PM, Fred Matthews <[email protected]> wrote:
>
>
> Hi,
>
> Regarding streams used in Minstrel RC, I found that in "net/mac80211/rc80211_minstrel_ht.h", at line 16, there is "#define MINSTREL_MAX_STREAMS ?3", that sets the number of streams for minstrel RC.
>
> Now can someone help to pass this onto debugfs, so that we can change from 3 streams to 2 streams at runtime like the rx_chainmask. I tried creating a u8 stream_number and struct dentry *dbg_stream_number in the header file, then a debugfs_create_u8 in the c file. Then used it to redefine MINSTREL_MAX_STREAMS, but when I tested this I got errors, therefore, can anyone kindly share a patch to do this correctly.

hi,

i am not familiar with the minstrel rate control, but as you had asked
I grep'd for MINSTREL_MAX_STREAMS to see if we can quickly add a debug
entry to change it. but usage like this below suggests we can quickly
hack the macro to 2 rather than adding a debug entry

const struct mcs_group minstrel_mcs_groups[] = {
MCS_GROUP(1, 0, 0),
MCS_GROUP(2, 0, 0),
#if MINSTREL_MAX_STREAMS >= 3
MCS_GROUP(3, 0, 0),
#endif


>
> Thanks in advance
>
>
>
> On Wed, Jun 22, 2011 at 3:57 PM, Mohammed Shafi wrote:
>> On Wed, Jun 22, 2011 at 6:12 PM, Fred Matthews wrote:
>>>
>>> Hi,
>>>
>>> I used that command to disable the third antenna, and applied it to both AP
>>> and STA AR9380 NICs.
>>> I then performed an IPerf test between both and then captured the statistics
>>> from the sender, (below) .
>>> You can see that in rc_stats (minstrel), the rate control actually
>>> "attempts" sending on 3 stream MCSs (16-23) around 256 times each.
>>
>> just a guess. as we are changing the chain mask via debugfs and there
>> may be a chance we may not have informed the minstrel rate control
>> which is maintained in upper layer(mac80211) and it might be taking
>> what we have configured the chain masks while we had initialized the
>> device and i have very little idea about ministrel rate control
>>
>>>
>>> Is there any way to prevent the RC from even attempting those rates, as if I
>>> where to fully imitate an AR9280, it shouldnt attempt at those MCSs.
>>
>> may be we can try with ath9k rate control, and see what happens which
>> is within the ath9k driver and affects xmit.c and it may have been
>> informed of the chain mask change.
>>
>>>
>>> Can Susinders comments also be detailed.
>>>
>>> Thanks in advance
>>>
>>> # cat /sys/kernel/debug/ieee80211/phy0/netdev\:wlan0/stations/00\MAC/
>>>
>>> AUTH
>>> ASSOC
>>> AUTHORIZED
>>> WME
>>> ht supported
>>> cap: 0x11ce
>>> ? ? HT20/HT40
>>> ? ? SM Power Save disabled
>>> ? ? RX HT40 SGI
>>> ? ? TX STBC
>>> ? ? RX STBC 1-stream
>>> ? ? Max AMSDU length: 7935 bytes
>>> ? ? DSSS/CCK HT40
>>> ampdu factor/density: 3/6
>>> MCS mask: ff ff ff 00 00 00 00 00 00 00
>>> MCS tx params: 1
>>> 792
>>> 150 ffff ffff ffff ffff ffff 60 ffff ffff ffff ffff ffff ffff ffff ffff ffff
>>> a40
>>> -77
>>> 0
>>> type ? ? ?rate ? ? throughput ?ewma prob ? this prob ?this succ/attempt
>>> success ? ?attempts
>>> HT20/LGI ? ?MCS0 ? ? ? ?6.6 ? ? ? 99.9 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ? ?163
>>> ? ? ? ? 230
>>> HT20/LGI ? ?MCS1 ? ? ? 13.1 ? ? ?100.0 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ? ? 75
>>> ? ? ? ? ?75
>>> HT20/LGI ? ?MCS2 ? ? ? 19.3 ? ? ?100.0 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ? ?252
>>> ? ? ? ? 252
>>> HT20/LGI ? ?MCS3 ? ? ? 25.4 ? ? ?100.0 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ? ? 75
>>> ? ? ? ? ?75
>>> HT20/LGI ? ?MCS4 ? ? ? 36.2 ? ? ? 97.5 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ? ?413
>>> ? ? ? ? 474
>>> HT20/LGI ? ?MCS5 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>> ? ? ? ? ?76
>>> HT20/LGI ? ?MCS6 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>> ? ? ? ? ?80
>>> HT20/LGI ? ?MCS7 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>> ? ? ? ? 256
>>> HT20/LGI ? ?MCS8 ? ? ? 13.1 ? ? ?100.0 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ? ? 75
>>> ? ? ? ? ?75
>>> HT20/LGI ? ?MCS9 ? ? ? 25.4 ? ? ?100.0 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ? ? 70
>>> ? ? ? ? ?70
>>> HT20/LGI ? ?MCS10 ? ? ?34.2 ? ? ? 92.2 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ? ? 79
>>> ? ? ? ? ?82
>>> HT20/LGI ? ?MCS11 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>> ? ? ? ? ?76
>>> HT20/LGI ? ?MCS12 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>> ? ? ? ? 256
>>> HT20/LGI ? ?MCS13 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>> ? ? ? ? 256
>>> HT20/LGI ? ?MCS14 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>> ? ? ? ? 256
>>> HT20/LGI ? ?MCS15 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>> ? ? ? ? 256
>>> HT20/LGI ? ?MCS16 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>> ? ? ? ? ?75
>>> HT20/LGI ? ?MCS17 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>> ? ? ? ? ?68
>>> HT20/LGI ? ?MCS18 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>> ? ? ? ? ?85
>>> HT20/LGI ? ?MCS19 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>> ? ? ? ? 257
>>> HT20/LGI ? ?MCS20 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>> ? ? ? ? 256
>>> HT20/LGI ? ?MCS21 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>> ? ? ? ? 256
>>> HT20/LGI ? ?MCS22 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>> ? ? ? ? 256
>>> HT20/LGI ? ?MCS23 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>> ? ? ? ? 256
>>> HT40/LGI ? ?MCS0 ? ? ? 13.6 ? ? ?100.0 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ? ? 75
>>> ? ? ? ? ?75
>>> HT40/LGI ? ?MCS1 ? ? ? 26.5 ? ? ?100.0 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ? ? 72
>>> ? ? ? ? ?72
>>> HT40/LGI ? ?MCS2 ? ? ? 38.3 ? ? ?100.0 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ? ? 73
>>> ? ? ? ? ?73
>>> HT40/LGI ? ?MCS3 ? ? ? 49.7 ? ? ? 99.9 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ? ? 70
>>> ? ? ? ? ?73
>>> HT40/LGI ? ?MCS4 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? 10
>>> ? ? ? ?1220
>>> HT40/LGI ? ?MCS5 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>> ? ? ? ? 256
>>> HT40/LGI ? ?MCS6 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>> ? ? ? ? 256
>>> HT40/LGI ? ?MCS7 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>> ? ? ? ? 256
>>> HT40/LGI ? ?MCS8 ? ? ? 26.2 ? ? ? 98.9 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ? ? 73
>>> ? ? ? ? ?74
>>> HT40/LGI ? ?MCS9 ? ? ? 49.3 ? ? ? 99.2 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ? ? 67
>>> ? ? ? ? ?69
>>> HT40/LGI ? ?MCS10 ? ? ?20.5 ? ? ? 28.9 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? 14
>>> ? ? ? ? 255
>>> HT40/LGI ? ?MCS11 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>> ? ? ? ? 257
>>> HT40/LGI ? ?MCS12 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>> ? ? ? ? 256
>>> HT40/LGI ? ?MCS13 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>> ? ? ? ? 256
>>> HT40/LGI ? ?MCS14 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>> ? ? ? ? 256
>>> HT40/LGI ? ?MCS15 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>> ? ? ? ? 256
>>> HT40/LGI ? ?MCS16 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>> ? ? ? ? ?74
>>> HT40/LGI ? ?MCS17 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>> ? ? ? ? 256
>>> HT40/LGI ? ?MCS18 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>> ? ? ? ? 255
>>> HT40/LGI ? ?MCS19 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>> ? ? ? ? 256
>>> HT40/LGI ? ?MCS20 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>> ? ? ? ? 256
>>> HT40/LGI ? ?MCS21 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>> ? ? ? ? 256
>>> HT40/LGI ? ?MCS22 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>> ? ? ? ? 256
>>> HT40/LGI ? ?MCS23 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>> ? ? ? ? 256
>>> HT40/SGI ? ?MCS0 ? ? ? 15.1 ? ? ?100.0 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ? ? 70
>>> ? ? ? ? ?70
>>> HT40/SGI ? ?MCS1 ? ? ? 29.2 ? ? ?100.0 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ? ? 72
>>> ? ? ? ? ?72
>>> HT40/SGI ?t MCS2 ? ? ? 38.5 ? ? ? 91.3 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ? ? 81
>>> ? ? ? ? ?83
>>> HT40/SGI ? PMCS3 ? ? ? 54.3 ? ? ? 99.5 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ?66536
>>> ? ? ? 67803
>>> HT40/SGI ? ?MCS4 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>> ? ? ? ? 256
>>> HT40/SGI ? ?MCS5 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>> ? ? ? ? 256
>>> HT40/SGI ? ?MCS6 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>> ? ? ? ? 256
>>> HT40/SGI ? ?MCS7 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>> ? ? ? ? 256
>>> HT40/SGI ? ?MCS8 ? ? ? 29.2 ? ? ?100.0 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ? ? 67
>>> ? ? ? ? ?67
>>> HT40/SGI T ?MCS9 ? ? ? 54.6 ? ? ? 99.9 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? 310227
>>> ? ? ?312339
>>> HT40/SGI ? ?MCS10 ? ? ?22.7 ? ? ? 29.3 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ? ? 14
>>> ? ? 46.8 Mbits/sec ? ?255
>>> HT40/SGI ? ?MCS11 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>> ? ? ? ? 256
>>> HT40/SGI ? ?MCS12 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>> ? ? ? ? 255
>>> HT40/SGI ? ?MCS13 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>> ? ? ? ? 256
>>> HT40/SGI ? ?MCS14 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>> ? ? ? ? 256
>>> HT40/SGI ? ?MCS15 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>> ? ? ? ? 256
>>> HT40/SGI ? ?MCS16 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>> ? ? ? ? ?68
>>> HT40/SGI ? ?MCS17 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>> ? ? ? ? 256
>>> HT40/SGI ? ?MCS18 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>> ? ? ? ? 255
>>> HT40/SGI ? ?MCS19 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>> ? ? ? ? 256
>>> HT40/SGI ? ?MCS20 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>> ? ? ? ? 256
>>> HT40/SGI ? ?MCS21 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>> ? ? ? ? 256
>>> HT40/SGI ? ?MCS22 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>> ? ? ? ? 256
>>> HT40/SGI ? ?MCS23 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>> ? ? ? ? 256
>>>
>>> Total packet count:: ? ?ideal 365056 ? ? ?lookaround 13702
>>> Average A-MPDU length: 5.4
>>>
>>>> Date: Tue, 21 Jun 2011 14:25:36 +0530
>>>> Subject: Re: [ath9k-devel] Disabling the third antenna for AR9380 in ath9k
>>>> From: [email protected]
>>>> To: [email protected]
>>>> CC: [email protected]; [email protected];
>>>> [email protected]; [email protected];
>>>> [email protected]
>>>>
>>>> On Tue, Jun 21, 2011 at 2:07 AM, Fred Matthews
>>>> wrote:
>>>> > Hi all,
>>>> > I am installing the AR9380 NIC on laptops, but some only have two UFL
>>>> > connectors, and thus I was wondering if using only two of the UFL
>>>> > antenna
>>>> > ports will have any negative effect or difference than installing a 2x2
>>>> > NIC
>>>> > (AR9280 for example which has only 2 ports anyway). Please kindly
>>>> > explain
>>>> > with references if possible.
>>>> > Also for example is there anyway to disable transmission on the third
>>>> > UFL
>>>> > port (antenna) from ath9k or otherwise.
>>>> > Thank you all very much
>>>>
>>>> you can change the tx/rx chainmask for 3x3 AR9380 to disable
>>>> transmission on the third antenna
>>>> cd /sys/kernel/debug/ieee80211/phy0/ath9k# echo 0x3 > tx_chainmask
>>>> cd /sys/kernel/debug/ieee80211/phy0/ath9k# echo 0x3 > rx_chainmask
>>>>
>>>> after this, ideally it should operate as 2x2 device as per Susinders
>>>> comments. but if you got AR9280 please try to use that if 2 antenna is
>>>> the constraint.
>>>>
>>>>
>>>> > _______________________________________________
>>>> > ath9k-devel mailing list
>>>> > [email protected]
>>>> > https://lists.ath9k.org/mailman/listinfo/ath9k-devel
>>>> >
>>>> >
>>>>
>>>>
>>>>
>>>> --
> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?--
> To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
> the body of a message to [email protected]
> More majordomo info at ?http://vger.kernel.org/majordomo-info.html
>



--
shafi

2011-06-23 12:22:03

by Adrian Chadd

[permalink] [raw]
Subject: Re: [ath9k-devel] Disabling the third antenna for AR9380 in ath9k

As I said, there's a value in the ath9k code that gets set based on
the chipset type.

static void setup_ht_cap(struct ath_softc *sc,
struct ieee80211_sta_ht_cap *ht_info)

in init.c

That should be all you need to do to communicate to the higher layers
that you only support 2 streams.

You're checking the wrong place. You're seeing _TX_ errors, but what
you're not seeing (likely because you don't have a 3 stream peer) is
that you're still advertising supporting MCS0->24, so peers may send
you MCS16->24 even though you can't receive it.

The correct way is to patch the driver to only enable 2 streams in the
HT capability setup, so mac80211 and the rate control code only
advertises MCS0-15 and TX'es MCS0-15 respectively.

(You have to do this as well as disabling the third chain btw.)



Adrian

On 23 June 2011 20:16, Mohammed Shafi <[email protected]> wrote:
> On Thu, Jun 23, 2011 at 5:26 PM, Fred Matthews <[email protected]> wrote:
>>
>>
>> Hi,
>>
>> Regarding streams used in Minstrel RC, I found that in "net/mac80211/rc80211_minstrel_ht.h", at line 16, there is "#define MINSTREL_MAX_STREAMS ?3", that sets the number of streams for minstrel RC.
>>
>> Now can someone help to pass this onto debugfs, so that we can change from 3 streams to 2 streams at runtime like the rx_chainmask. I tried creating a u8 stream_number and struct dentry *dbg_stream_number in the header file, then a debugfs_create_u8 in the c file. Then used it to redefine MINSTREL_MAX_STREAMS, but when I tested this I got errors, therefore, can anyone kindly share a patch to do this correctly.
>
> hi,
>
> i am not familiar with the minstrel rate control, but as you had asked
> I grep'd for MINSTREL_MAX_STREAMS to see if we can quickly add a debug
> entry to change it. but usage like this below suggests we can quickly
> hack the macro to 2 rather than adding a debug entry
>
> const struct mcs_group minstrel_mcs_groups[] = {
> ? ? ? ?MCS_GROUP(1, 0, 0),
> ? ? ? ?MCS_GROUP(2, 0, 0),
> #if MINSTREL_MAX_STREAMS >= 3
> ? ? ? ?MCS_GROUP(3, 0, 0),
> #endif
>
>
>>
>> Thanks in advance
>>
>>
>>
>> On Wed, Jun 22, 2011 at 3:57 PM, Mohammed Shafi wrote:
>>> On Wed, Jun 22, 2011 at 6:12 PM, Fred Matthews wrote:
>>>>
>>>> Hi,
>>>>
>>>> I used that command to disable the third antenna, and applied it to both AP
>>>> and STA AR9380 NICs.
>>>> I then performed an IPerf test between both and then captured the statistics
>>>> from the sender, (below) .
>>>> You can see that in rc_stats (minstrel), the rate control actually
>>>> "attempts" sending on 3 stream MCSs (16-23) around 256 times each.
>>>
>>> just a guess. as we are changing the chain mask via debugfs and there
>>> may be a chance we may not have informed the minstrel rate control
>>> which is maintained in upper layer(mac80211) and it might be taking
>>> what we have configured the chain masks while we had initialized the
>>> device and i have very little idea about ministrel rate control
>>>
>>>>
>>>> Is there any way to prevent the RC from even attempting those rates, as if I
>>>> where to fully imitate an AR9280, it shouldnt attempt at those MCSs.
>>>
>>> may be we can try with ath9k rate control, and see what happens which
>>> is within the ath9k driver and affects xmit.c and it may have been
>>> informed of the chain mask change.
>>>
>>>>
>>>> Can Susinders comments also be detailed.
>>>>
>>>> Thanks in advance
>>>>
>>>> # cat /sys/kernel/debug/ieee80211/phy0/netdev\:wlan0/stations/00\MAC/
>>>>
>>>> AUTH
>>>> ASSOC
>>>> AUTHORIZED
>>>> WME
>>>> ht supported
>>>> cap: 0x11ce
>>>> ? ? HT20/HT40
>>>> ? ? SM Power Save disabled
>>>> ? ? RX HT40 SGI
>>>> ? ? TX STBC
>>>> ? ? RX STBC 1-stream
>>>> ? ? Max AMSDU length: 7935 bytes
>>>> ? ? DSSS/CCK HT40
>>>> ampdu factor/density: 3/6
>>>> MCS mask: ff ff ff 00 00 00 00 00 00 00
>>>> MCS tx params: 1
>>>> 792
>>>> 150 ffff ffff ffff ffff ffff 60 ffff ffff ffff ffff ffff ffff ffff ffff ffff
>>>> a40
>>>> -77
>>>> 0
>>>> type ? ? ?rate ? ? throughput ?ewma prob ? this prob ?this succ/attempt
>>>> success ? ?attempts
>>>> HT20/LGI ? ?MCS0 ? ? ? ?6.6 ? ? ? 99.9 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ? ?163
>>>> ? ? ? ? 230
>>>> HT20/LGI ? ?MCS1 ? ? ? 13.1 ? ? ?100.0 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ? ? 75
>>>> ? ? ? ? ?75
>>>> HT20/LGI ? ?MCS2 ? ? ? 19.3 ? ? ?100.0 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ? ?252
>>>> ? ? ? ? 252
>>>> HT20/LGI ? ?MCS3 ? ? ? 25.4 ? ? ?100.0 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ? ? 75
>>>> ? ? ? ? ?75
>>>> HT20/LGI ? ?MCS4 ? ? ? 36.2 ? ? ? 97.5 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ? ?413
>>>> ? ? ? ? 474
>>>> HT20/LGI ? ?MCS5 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>> ? ? ? ? ?76
>>>> HT20/LGI ? ?MCS6 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>> ? ? ? ? ?80
>>>> HT20/LGI ? ?MCS7 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>> ? ? ? ? 256
>>>> HT20/LGI ? ?MCS8 ? ? ? 13.1 ? ? ?100.0 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ? ? 75
>>>> ? ? ? ? ?75
>>>> HT20/LGI ? ?MCS9 ? ? ? 25.4 ? ? ?100.0 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ? ? 70
>>>> ? ? ? ? ?70
>>>> HT20/LGI ? ?MCS10 ? ? ?34.2 ? ? ? 92.2 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ? ? 79
>>>> ? ? ? ? ?82
>>>> HT20/LGI ? ?MCS11 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>> ? ? ? ? ?76
>>>> HT20/LGI ? ?MCS12 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>> ? ? ? ? 256
>>>> HT20/LGI ? ?MCS13 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>> ? ? ? ? 256
>>>> HT20/LGI ? ?MCS14 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>> ? ? ? ? 256
>>>> HT20/LGI ? ?MCS15 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>> ? ? ? ? 256
>>>> HT20/LGI ? ?MCS16 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>> ? ? ? ? ?75
>>>> HT20/LGI ? ?MCS17 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>> ? ? ? ? ?68
>>>> HT20/LGI ? ?MCS18 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>> ? ? ? ? ?85
>>>> HT20/LGI ? ?MCS19 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>> ? ? ? ? 257
>>>> HT20/LGI ? ?MCS20 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>> ? ? ? ? 256
>>>> HT20/LGI ? ?MCS21 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>> ? ? ? ? 256
>>>> HT20/LGI ? ?MCS22 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>> ? ? ? ? 256
>>>> HT20/LGI ? ?MCS23 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>> ? ? ? ? 256
>>>> HT40/LGI ? ?MCS0 ? ? ? 13.6 ? ? ?100.0 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ? ? 75
>>>> ? ? ? ? ?75
>>>> HT40/LGI ? ?MCS1 ? ? ? 26.5 ? ? ?100.0 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ? ? 72
>>>> ? ? ? ? ?72
>>>> HT40/LGI ? ?MCS2 ? ? ? 38.3 ? ? ?100.0 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ? ? 73
>>>> ? ? ? ? ?73
>>>> HT40/LGI ? ?MCS3 ? ? ? 49.7 ? ? ? 99.9 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ? ? 70
>>>> ? ? ? ? ?73
>>>> HT40/LGI ? ?MCS4 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? 10
>>>> ? ? ? ?1220
>>>> HT40/LGI ? ?MCS5 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>> ? ? ? ? 256
>>>> HT40/LGI ? ?MCS6 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>> ? ? ? ? 256
>>>> HT40/LGI ? ?MCS7 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>> ? ? ? ? 256
>>>> HT40/LGI ? ?MCS8 ? ? ? 26.2 ? ? ? 98.9 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ? ? 73
>>>> ? ? ? ? ?74
>>>> HT40/LGI ? ?MCS9 ? ? ? 49.3 ? ? ? 99.2 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ? ? 67
>>>> ? ? ? ? ?69
>>>> HT40/LGI ? ?MCS10 ? ? ?20.5 ? ? ? 28.9 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? 14
>>>> ? ? ? ? 255
>>>> HT40/LGI ? ?MCS11 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>> ? ? ? ? 257
>>>> HT40/LGI ? ?MCS12 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>> ? ? ? ? 256
>>>> HT40/LGI ? ?MCS13 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>> ? ? ? ? 256
>>>> HT40/LGI ? ?MCS14 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>> ? ? ? ? 256
>>>> HT40/LGI ? ?MCS15 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>> ? ? ? ? 256
>>>> HT40/LGI ? ?MCS16 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>> ? ? ? ? ?74
>>>> HT40/LGI ? ?MCS17 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>> ? ? ? ? 256
>>>> HT40/LGI ? ?MCS18 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>> ? ? ? ? 255
>>>> HT40/LGI ? ?MCS19 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>> ? ? ? ? 256
>>>> HT40/LGI ? ?MCS20 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>> ? ? ? ? 256
>>>> HT40/LGI ? ?MCS21 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>> ? ? ? ? 256
>>>> HT40/LGI ? ?MCS22 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>> ? ? ? ? 256
>>>> HT40/LGI ? ?MCS23 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>> ? ? ? ? 256
>>>> HT40/SGI ? ?MCS0 ? ? ? 15.1 ? ? ?100.0 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ? ? 70
>>>> ? ? ? ? ?70
>>>> HT40/SGI ? ?MCS1 ? ? ? 29.2 ? ? ?100.0 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ? ? 72
>>>> ? ? ? ? ?72
>>>> HT40/SGI ?t MCS2 ? ? ? 38.5 ? ? ? 91.3 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ? ? 81
>>>> ? ? ? ? ?83
>>>> HT40/SGI ? PMCS3 ? ? ? 54.3 ? ? ? 99.5 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ?66536
>>>> ? ? ? 67803
>>>> HT40/SGI ? ?MCS4 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>> ? ? ? ? 256
>>>> HT40/SGI ? ?MCS5 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>> ? ? ? ? 256
>>>> HT40/SGI ? ?MCS6 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>> ? ? ? ? 256
>>>> HT40/SGI ? ?MCS7 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>> ? ? ? ? 256
>>>> HT40/SGI ? ?MCS8 ? ? ? 29.2 ? ? ?100.0 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ? ? 67
>>>> ? ? ? ? ?67
>>>> HT40/SGI T ?MCS9 ? ? ? 54.6 ? ? ? 99.9 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? 310227
>>>> ? ? ?312339
>>>> HT40/SGI ? ?MCS10 ? ? ?22.7 ? ? ? 29.3 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ? ? 14
>>>> ? ? 46.8 Mbits/sec ? ?255
>>>> HT40/SGI ? ?MCS11 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>> ? ? ? ? 256
>>>> HT40/SGI ? ?MCS12 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>> ? ? ? ? 255
>>>> HT40/SGI ? ?MCS13 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>> ? ? ? ? 256
>>>> HT40/SGI ? ?MCS14 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>> ? ? ? ? 256
>>>> HT40/SGI ? ?MCS15 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>> ? ? ? ? 256
>>>> HT40/SGI ? ?MCS16 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>> ? ? ? ? ?68
>>>> HT40/SGI ? ?MCS17 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>> ? ? ? ? 256
>>>> HT40/SGI ? ?MCS18 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>> ? ? ? ? 255
>>>> HT40/SGI ? ?MCS19 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>> ? ? ? ? 256
>>>> HT40/SGI ? ?MCS20 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>> ? ? ? ? 256
>>>> HT40/SGI ? ?MCS21 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>> ? ? ? ? 256
>>>> HT40/SGI ? ?MCS22 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>> ? ? ? ? 256
>>>> HT40/SGI ? ?MCS23 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>> ? ? ? ? 256
>>>>
>>>> Total packet count:: ? ?ideal 365056 ? ? ?lookaround 13702
>>>> Average A-MPDU length: 5.4
>>>>
>>>>> Date: Tue, 21 Jun 2011 14:25:36 +0530
>>>>> Subject: Re: [ath9k-devel] Disabling the third antenna for AR9380 in ath9k
>>>>> From: [email protected]
>>>>> To: [email protected]
>>>>> CC: [email protected]; [email protected];
>>>>> [email protected]; [email protected];
>>>>> [email protected]
>>>>>
>>>>> On Tue, Jun 21, 2011 at 2:07 AM, Fred Matthews
>>>>> wrote:
>>>>> > Hi all,
>>>>> > I am installing the AR9380 NIC on laptops, but some only have two UFL
>>>>> > connectors, and thus I was wondering if using only two of the UFL
>>>>> > antenna
>>>>> > ports will have any negative effect or difference than installing a 2x2
>>>>> > NIC
>>>>> > (AR9280 for example which has only 2 ports anyway). Please kindly
>>>>> > explain
>>>>> > with references if possible.
>>>>> > Also for example is there anyway to disable transmission on the third
>>>>> > UFL
>>>>> > port (antenna) from ath9k or otherwise.
>>>>> > Thank you all very much
>>>>>
>>>>> you can change the tx/rx chainmask for 3x3 AR9380 to disable
>>>>> transmission on the third antenna
>>>>> cd /sys/kernel/debug/ieee80211/phy0/ath9k# echo 0x3 > tx_chainmask
>>>>> cd /sys/kernel/debug/ieee80211/phy0/ath9k# echo 0x3 > rx_chainmask
>>>>>
>>>>> after this, ideally it should operate as 2x2 device as per Susinders
>>>>> comments. but if you got AR9280 please try to use that if 2 antenna is
>>>>> the constraint.
>>>>>
>>>>>
>>>>> > _______________________________________________
>>>>> > ath9k-devel mailing list
>>>>> > [email protected]
>>>>> > https://lists.ath9k.org/mailman/listinfo/ath9k-devel
>>>>> >
>>>>> >
>>>>>
>>>>>
>>>>>
>>>>> --
>> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?--
>> To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
>> the body of a message to [email protected]
>> More majordomo info at ?http://vger.kernel.org/majordomo-info.html
>>
>
>
>
> --
> shafi
>

2011-06-23 12:43:00

by Mohammed Shafi

[permalink] [raw]
Subject: Re: [ath9k-devel] Disabling the third antenna for AR9380 in ath9k

On Thu, Jun 23, 2011 at 5:52 PM, Adrian Chadd <[email protected]> wrote:
> As I said, there's a value in the ath9k code that gets set based on
> the chipset type.
>
> static void setup_ht_cap(struct ath_softc *sc,
> ? ? ? ? ? ? ? ? ? ? ? ? struct ieee80211_sta_ht_cap *ht_info)
>
> in init.c
>
> That should be all you need to do to communicate to the higher layers
> that you only support 2 streams.

Adrian thanks a lot for the pointer, should this be sufficient? or are
we still missing communicating something to the upper layer, all i can
see is this affects rx_mask sent to the upper layer

diff --git a/drivers/net/wireless/ath/ath9k/init.c
b/drivers/net/wireless/ath/ath9k/init.c
index 50103b2..079359e 100644
--- a/drivers/net/wireless/ath/ath9k/init.c
+++ b/drivers/net/wireless/ath/ath9k/init.c
@@ -251,6 +251,10 @@ static void setup_ht_cap(struct ath_softc *sc,
max_streams = 3;
else
max_streams = 2;
+ /*
+ * hard code max_streams
+ */
+ max_streams = 2;

if (AR_SREV_9280_20_OR_LATER(ah)) {
if (max_streams >= 2)


>
> You're checking the wrong place. You're seeing _TX_ errors, but what
> you're not seeing (likely because you don't have a 3 stream peer) is
> that you're still advertising supporting MCS0->24, so peers may send
> you MCS16->24 even though you can't receive it.
>
> The correct way is to patch the driver to only enable 2 streams in the
> HT capability setup, so mac80211 and the rate control code only
> advertises MCS0-15 and TX'es MCS0-15 respectively.
>
> (You have to do this as well as disabling the third chain btw.)
>
>
>
> Adrian
>
> On 23 June 2011 20:16, Mohammed Shafi <[email protected]> wrote:
>> On Thu, Jun 23, 2011 at 5:26 PM, Fred Matthews <[email protected]> wrote:
>>>
>>>
>>> Hi,
>>>
>>> Regarding streams used in Minstrel RC, I found that in "net/mac80211/rc80211_minstrel_ht.h", at line 16, there is "#define MINSTREL_MAX_STREAMS ?3", that sets the number of streams for minstrel RC.
>>>
>>> Now can someone help to pass this onto debugfs, so that we can change from 3 streams to 2 streams at runtime like the rx_chainmask. I tried creating a u8 stream_number and struct dentry *dbg_stream_number in the header file, then a debugfs_create_u8 in the c file. Then used it to redefine MINSTREL_MAX_STREAMS, but when I tested this I got errors, therefore, can anyone kindly share a patch to do this correctly.
>>
>> hi,
>>
>> i am not familiar with the minstrel rate control, but as you had asked
>> I grep'd for MINSTREL_MAX_STREAMS to see if we can quickly add a debug
>> entry to change it. but usage like this below suggests we can quickly
>> hack the macro to 2 rather than adding a debug entry
>>
>> const struct mcs_group minstrel_mcs_groups[] = {
>> ? ? ? ?MCS_GROUP(1, 0, 0),
>> ? ? ? ?MCS_GROUP(2, 0, 0),
>> #if MINSTREL_MAX_STREAMS >= 3
>> ? ? ? ?MCS_GROUP(3, 0, 0),
>> #endif
>>
>>
>>>
>>> Thanks in advance
>>>
>>>
>>>
>>> On Wed, Jun 22, 2011 at 3:57 PM, Mohammed Shafi wrote:
>>>> On Wed, Jun 22, 2011 at 6:12 PM, Fred Matthews wrote:
>>>>>
>>>>> Hi,
>>>>>
>>>>> I used that command to disable the third antenna, and applied it to both AP
>>>>> and STA AR9380 NICs.
>>>>> I then performed an IPerf test between both and then captured the statistics
>>>>> from the sender, (below) .
>>>>> You can see that in rc_stats (minstrel), the rate control actually
>>>>> "attempts" sending on 3 stream MCSs (16-23) around 256 times each.
>>>>
>>>> just a guess. as we are changing the chain mask via debugfs and there
>>>> may be a chance we may not have informed the minstrel rate control
>>>> which is maintained in upper layer(mac80211) and it might be taking
>>>> what we have configured the chain masks while we had initialized the
>>>> device and i have very little idea about ministrel rate control
>>>>
>>>>>
>>>>> Is there any way to prevent the RC from even attempting those rates, as if I
>>>>> where to fully imitate an AR9280, it shouldnt attempt at those MCSs.
>>>>
>>>> may be we can try with ath9k rate control, and see what happens which
>>>> is within the ath9k driver and affects xmit.c and it may have been
>>>> informed of the chain mask change.
>>>>
>>>>>
>>>>> Can Susinders comments also be detailed.
>>>>>
>>>>> Thanks in advance
>>>>>
>>>>> # cat /sys/kernel/debug/ieee80211/phy0/netdev\:wlan0/stations/00\MAC/
>>>>>
>>>>> AUTH
>>>>> ASSOC
>>>>> AUTHORIZED
>>>>> WME
>>>>> ht supported
>>>>> cap: 0x11ce
>>>>> ? ? HT20/HT40
>>>>> ? ? SM Power Save disabled
>>>>> ? ? RX HT40 SGI
>>>>> ? ? TX STBC
>>>>> ? ? RX STBC 1-stream
>>>>> ? ? Max AMSDU length: 7935 bytes
>>>>> ? ? DSSS/CCK HT40
>>>>> ampdu factor/density: 3/6
>>>>> MCS mask: ff ff ff 00 00 00 00 00 00 00
>>>>> MCS tx params: 1
>>>>> 792
>>>>> 150 ffff ffff ffff ffff ffff 60 ffff ffff ffff ffff ffff ffff ffff ffff ffff
>>>>> a40
>>>>> -77
>>>>> 0
>>>>> type ? ? ?rate ? ? throughput ?ewma prob ? this prob ?this succ/attempt
>>>>> success ? ?attempts
>>>>> HT20/LGI ? ?MCS0 ? ? ? ?6.6 ? ? ? 99.9 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ? ?163
>>>>> ? ? ? ? 230
>>>>> HT20/LGI ? ?MCS1 ? ? ? 13.1 ? ? ?100.0 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ? ? 75
>>>>> ? ? ? ? ?75
>>>>> HT20/LGI ? ?MCS2 ? ? ? 19.3 ? ? ?100.0 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ? ?252
>>>>> ? ? ? ? 252
>>>>> HT20/LGI ? ?MCS3 ? ? ? 25.4 ? ? ?100.0 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ? ? 75
>>>>> ? ? ? ? ?75
>>>>> HT20/LGI ? ?MCS4 ? ? ? 36.2 ? ? ? 97.5 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ? ?413
>>>>> ? ? ? ? 474
>>>>> HT20/LGI ? ?MCS5 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? ?76
>>>>> HT20/LGI ? ?MCS6 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? ?80
>>>>> HT20/LGI ? ?MCS7 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? 256
>>>>> HT20/LGI ? ?MCS8 ? ? ? 13.1 ? ? ?100.0 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ? ? 75
>>>>> ? ? ? ? ?75
>>>>> HT20/LGI ? ?MCS9 ? ? ? 25.4 ? ? ?100.0 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ? ? 70
>>>>> ? ? ? ? ?70
>>>>> HT20/LGI ? ?MCS10 ? ? ?34.2 ? ? ? 92.2 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ? ? 79
>>>>> ? ? ? ? ?82
>>>>> HT20/LGI ? ?MCS11 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? ?76
>>>>> HT20/LGI ? ?MCS12 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? 256
>>>>> HT20/LGI ? ?MCS13 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? 256
>>>>> HT20/LGI ? ?MCS14 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? 256
>>>>> HT20/LGI ? ?MCS15 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? 256
>>>>> HT20/LGI ? ?MCS16 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? ?75
>>>>> HT20/LGI ? ?MCS17 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? ?68
>>>>> HT20/LGI ? ?MCS18 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? ?85
>>>>> HT20/LGI ? ?MCS19 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? 257
>>>>> HT20/LGI ? ?MCS20 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? 256
>>>>> HT20/LGI ? ?MCS21 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? 256
>>>>> HT20/LGI ? ?MCS22 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? 256
>>>>> HT20/LGI ? ?MCS23 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? 256
>>>>> HT40/LGI ? ?MCS0 ? ? ? 13.6 ? ? ?100.0 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ? ? 75
>>>>> ? ? ? ? ?75
>>>>> HT40/LGI ? ?MCS1 ? ? ? 26.5 ? ? ?100.0 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ? ? 72
>>>>> ? ? ? ? ?72
>>>>> HT40/LGI ? ?MCS2 ? ? ? 38.3 ? ? ?100.0 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ? ? 73
>>>>> ? ? ? ? ?73
>>>>> HT40/LGI ? ?MCS3 ? ? ? 49.7 ? ? ? 99.9 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ? ? 70
>>>>> ? ? ? ? ?73
>>>>> HT40/LGI ? ?MCS4 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? 10
>>>>> ? ? ? ?1220
>>>>> HT40/LGI ? ?MCS5 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? 256
>>>>> HT40/LGI ? ?MCS6 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? 256
>>>>> HT40/LGI ? ?MCS7 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? 256
>>>>> HT40/LGI ? ?MCS8 ? ? ? 26.2 ? ? ? 98.9 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ? ? 73
>>>>> ? ? ? ? ?74
>>>>> HT40/LGI ? ?MCS9 ? ? ? 49.3 ? ? ? 99.2 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ? ? 67
>>>>> ? ? ? ? ?69
>>>>> HT40/LGI ? ?MCS10 ? ? ?20.5 ? ? ? 28.9 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? 14
>>>>> ? ? ? ? 255
>>>>> HT40/LGI ? ?MCS11 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? 257
>>>>> HT40/LGI ? ?MCS12 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? 256
>>>>> HT40/LGI ? ?MCS13 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? 256
>>>>> HT40/LGI ? ?MCS14 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? 256
>>>>> HT40/LGI ? ?MCS15 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? 256
>>>>> HT40/LGI ? ?MCS16 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? ?74
>>>>> HT40/LGI ? ?MCS17 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? 256
>>>>> HT40/LGI ? ?MCS18 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? 255
>>>>> HT40/LGI ? ?MCS19 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? 256
>>>>> HT40/LGI ? ?MCS20 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? 256
>>>>> HT40/LGI ? ?MCS21 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? 256
>>>>> HT40/LGI ? ?MCS22 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? 256
>>>>> HT40/LGI ? ?MCS23 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? 256
>>>>> HT40/SGI ? ?MCS0 ? ? ? 15.1 ? ? ?100.0 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ? ? 70
>>>>> ? ? ? ? ?70
>>>>> HT40/SGI ? ?MCS1 ? ? ? 29.2 ? ? ?100.0 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ? ? 72
>>>>> ? ? ? ? ?72
>>>>> HT40/SGI ?t MCS2 ? ? ? 38.5 ? ? ? 91.3 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ? ? 81
>>>>> ? ? ? ? ?83
>>>>> HT40/SGI ? PMCS3 ? ? ? 54.3 ? ? ? 99.5 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ?66536
>>>>> ? ? ? 67803
>>>>> HT40/SGI ? ?MCS4 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? 256
>>>>> HT40/SGI ? ?MCS5 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? 256
>>>>> HT40/SGI ? ?MCS6 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? 256
>>>>> HT40/SGI ? ?MCS7 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? 256
>>>>> HT40/SGI ? ?MCS8 ? ? ? 29.2 ? ? ?100.0 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ? ? 67
>>>>> ? ? ? ? ?67
>>>>> HT40/SGI T ?MCS9 ? ? ? 54.6 ? ? ? 99.9 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? 310227
>>>>> ? ? ?312339
>>>>> HT40/SGI ? ?MCS10 ? ? ?22.7 ? ? ? 29.3 ? ? ?100.0 ? ? ? ? ?0( ?0) ? ? ? ? 14
>>>>> ? ? 46.8 Mbits/sec ? ?255
>>>>> HT40/SGI ? ?MCS11 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? 256
>>>>> HT40/SGI ? ?MCS12 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? 255
>>>>> HT40/SGI ? ?MCS13 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? 256
>>>>> HT40/SGI ? ?MCS14 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? 256
>>>>> HT40/SGI ? ?MCS15 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? 256
>>>>> HT40/SGI ? ?MCS16 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? ?68
>>>>> HT40/SGI ? ?MCS17 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? 256
>>>>> HT40/SGI ? ?MCS18 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? 255
>>>>> HT40/SGI ? ?MCS19 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? 256
>>>>> HT40/SGI ? ?MCS20 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? 256
>>>>> HT40/SGI ? ?MCS21 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? 256
>>>>> HT40/SGI ? ?MCS22 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? 256
>>>>> HT40/SGI ? ?MCS23 ? ? ? 0.0 ? ? ? ?0.0 ? ? ? ?0.0 ? ? ? ? ?0( ?0) ? ? ? ? ?0
>>>>> ? ? ? ? 256
>>>>>
>>>>> Total packet count:: ? ?ideal 365056 ? ? ?lookaround 13702
>>>>> Average A-MPDU length: 5.4
>>>>>
>>>>>> Date: Tue, 21 Jun 2011 14:25:36 +0530
>>>>>> Subject: Re: [ath9k-devel] Disabling the third antenna for AR9380 in ath9k
>>>>>> From: [email protected]
>>>>>> To: [email protected]
>>>>>> CC: [email protected]; [email protected];
>>>>>> [email protected]; [email protected];
>>>>>> [email protected]
>>>>>>
>>>>>> On Tue, Jun 21, 2011 at 2:07 AM, Fred Matthews
>>>>>> wrote:
>>>>>> > Hi all,
>>>>>> > I am installing the AR9380 NIC on laptops, but some only have two UFL
>>>>>> > connectors, and thus I was wondering if using only two of the UFL
>>>>>> > antenna
>>>>>> > ports will have any negative effect or difference than installing a 2x2
>>>>>> > NIC
>>>>>> > (AR9280 for example which has only 2 ports anyway). Please kindly
>>>>>> > explain
>>>>>> > with references if possible.
>>>>>> > Also for example is there anyway to disable transmission on the third
>>>>>> > UFL
>>>>>> > port (antenna) from ath9k or otherwise.
>>>>>> > Thank you all very much
>>>>>>
>>>>>> you can change the tx/rx chainmask for 3x3 AR9380 to disable
>>>>>> transmission on the third antenna
>>>>>> cd /sys/kernel/debug/ieee80211/phy0/ath9k# echo 0x3 > tx_chainmask
>>>>>> cd /sys/kernel/debug/ieee80211/phy0/ath9k# echo 0x3 > rx_chainmask
>>>>>>
>>>>>> after this, ideally it should operate as 2x2 device as per Susinders
>>>>>> comments. but if you got AR9280 please try to use that if 2 antenna is
>>>>>> the constraint.
>>>>>>
>>>>>>
>>>>>> > _______________________________________________
>>>>>> > ath9k-devel mailing list
>>>>>> > [email protected]
>>>>>> > https://lists.ath9k.org/mailman/listinfo/ath9k-devel
>>>>>> >
>>>>>> >
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?--
>>> To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
>>> the body of a message to [email protected]
>>> More majordomo info at ?http://vger.kernel.org/majordomo-info.html
>>>
>>
>>
>>
>> --
>> shafi
>>
>



--
shafi

2011-06-23 11:56:37

by Fred Matthews

[permalink] [raw]
Subject: RE: [ath9k-devel] Disabling the third antenna for AR9380 in ath9k



Hi,

Regarding streams used in Minstrel RC, I found that in "net/mac80211/rc80211_minstrel_ht.h", at line 16, there is "#define MINSTREL_MAX_STREAMS 3", that sets the number of streams for minstrel RC.

Now can someone help to pass this onto debugfs, so that we can change from 3 streams to 2 streams at runtime like the rx_chainmask. I tried creating a u8 stream_number and struct dentry *dbg_stream_number in the header file, then a debugfs_create_u8 in the c file. Then used it to redefine MINSTREL_MAX_STREAMS, but when I tested this I got errors, therefore, can anyone kindly share a patch to do this correctly.

Thanks in advance



On Wed, Jun 22, 2011 at 3:57 PM, Mohammed Shafi wrote:
> On Wed, Jun 22, 2011 at 6:12 PM, Fred Matthews wrote:
>>
>> Hi,
>>
>> I used that command to disable the third antenna, and applied it to both AP
>> and STA AR9380 NICs.
>> I then performed an IPerf test between both and then captured the statistics
>> from the sender, (below) .
>> You can see that in rc_stats (minstrel), the rate control actually
>> "attempts" sending on 3 stream MCSs (16-23) around 256 times each.
>
> just a guess. as we are changing the chain mask via debugfs and there
> may be a chance we may not have informed the minstrel rate control
> which is maintained in upper layer(mac80211) and it might be taking
> what we have configured the chain masks while we had initialized the
> device and i have very little idea about ministrel rate control
>
>>
>> Is there any way to prevent the RC from even attempting those rates, as if I
>> where to fully imitate an AR9280, it shouldnt attempt at those MCSs.
>
> may be we can try with ath9k rate control, and see what happens which
> is within the ath9k driver and affects xmit.c and it may have been
> informed of the chain mask change.
>
>>
>> Can Susinders comments also be detailed.
>>
>> Thanks in advance
>>
>> # cat /sys/kernel/debug/ieee80211/phy0/netdev\:wlan0/stations/00\MAC/
>>
>> AUTH
>> ASSOC
>> AUTHORIZED
>> WME
>> ht supported
>> cap: 0x11ce
>> HT20/HT40
>> SM Power Save disabled
>> RX HT40 SGI
>> TX STBC
>> RX STBC 1-stream
>> Max AMSDU length: 7935 bytes
>> DSSS/CCK HT40
>> ampdu factor/density: 3/6
>> MCS mask: ff ff ff 00 00 00 00 00 00 00
>> MCS tx params: 1
>> 792
>> 150 ffff ffff ffff ffff ffff 60 ffff ffff ffff ffff ffff ffff ffff ffff ffff
>> a40
>> -77
>> 0
>> type rate throughput ewma prob this prob this succ/attempt
>> success attempts
>> HT20/LGI MCS0 6.6 99.9 100.0 0( 0) 163
>> 230
>> HT20/LGI MCS1 13.1 100.0 100.0 0( 0) 75
>> 75
>> HT20/LGI MCS2 19.3 100.0 100.0 0( 0) 252
>> 252
>> HT20/LGI MCS3 25.4 100.0 100.0 0( 0) 75
>> 75
>> HT20/LGI MCS4 36.2 97.5 100.0 0( 0) 413
>> 474
>> HT20/LGI MCS5 0.0 0.0 0.0 0( 0) 0
>> 76
>> HT20/LGI MCS6 0.0 0.0 0.0 0( 0) 0
>> 80
>> HT20/LGI MCS7 0.0 0.0 0.0 0( 0) 0
>> 256
>> HT20/LGI MCS8 13.1 100.0 100.0 0( 0) 75
>> 75
>> HT20/LGI MCS9 25.4 100.0 100.0 0( 0) 70
>> 70
>> HT20/LGI MCS10 34.2 92.2 100.0 0( 0) 79
>> 82
>> HT20/LGI MCS11 0.0 0.0 0.0 0( 0) 0
>> 76
>> HT20/LGI MCS12 0.0 0.0 0.0 0( 0) 0
>> 256
>> HT20/LGI MCS13 0.0 0.0 0.0 0( 0) 0
>> 256
>> HT20/LGI MCS14 0.0 0.0 0.0 0( 0) 0
>> 256
>> HT20/LGI MCS15 0.0 0.0 0.0 0( 0) 0
>> 256
>> HT20/LGI MCS16 0.0 0.0 0.0 0( 0) 0
>> 75
>> HT20/LGI MCS17 0.0 0.0 0.0 0( 0) 0
>> 68
>> HT20/LGI MCS18 0.0 0.0 0.0 0( 0) 0
>> 85
>> HT20/LGI MCS19 0.0 0.0 0.0 0( 0) 0
>> 257
>> HT20/LGI MCS20 0.0 0.0 0.0 0( 0) 0
>> 256
>> HT20/LGI MCS21 0.0 0.0 0.0 0( 0) 0
>> 256
>> HT20/LGI MCS22 0.0 0.0 0.0 0( 0) 0
>> 256
>> HT20/LGI MCS23 0.0 0.0 0.0 0( 0) 0
>> 256
>> HT40/LGI MCS0 13.6 100.0 100.0 0( 0) 75
>> 75
>> HT40/LGI MCS1 26.5 100.0 100.0 0( 0) 72
>> 72
>> HT40/LGI MCS2 38.3 100.0 100.0 0( 0) 73
>> 73
>> HT40/LGI MCS3 49.7 99.9 100.0 0( 0) 70
>> 73
>> HT40/LGI MCS4 0.0 0.0 0.0 0( 0) 10
>> 1220
>> HT40/LGI MCS5 0.0 0.0 0.0 0( 0) 0
>> 256
>> HT40/LGI MCS6 0.0 0.0 0.0 0( 0) 0
>> 256
>> HT40/LGI MCS7 0.0 0.0 0.0 0( 0) 0
>> 256
>> HT40/LGI MCS8 26.2 98.9 100.0 0( 0) 73
>> 74
>> HT40/LGI MCS9 49.3 99.2 100.0 0( 0) 67
>> 69
>> HT40/LGI MCS10 20.5 28.9 0.0 0( 0) 14
>> 255
>> HT40/LGI MCS11 0.0 0.0 0.0 0( 0) 0
>> 257
>> HT40/LGI MCS12 0.0 0.0 0.0 0( 0) 0
>> 256
>> HT40/LGI MCS13 0.0 0.0 0.0 0( 0) 0
>> 256
>> HT40/LGI MCS14 0.0 0.0 0.0 0( 0) 0
>> 256
>> HT40/LGI MCS15 0.0 0.0 0.0 0( 0) 0
>> 256
>> HT40/LGI MCS16 0.0 0.0 0.0 0( 0) 0
>> 74
>> HT40/LGI MCS17 0.0 0.0 0.0 0( 0) 0
>> 256
>> HT40/LGI MCS18 0.0 0.0 0.0 0( 0) 0
>> 255
>> HT40/LGI MCS19 0.0 0.0 0.0 0( 0) 0
>> 256
>> HT40/LGI MCS20 0.0 0.0 0.0 0( 0) 0
>> 256
>> HT40/LGI MCS21 0.0 0.0 0.0 0( 0) 0
>> 256
>> HT40/LGI MCS22 0.0 0.0 0.0 0( 0) 0
>> 256
>> HT40/LGI MCS23 0.0 0.0 0.0 0( 0) 0
>> 256
>> HT40/SGI MCS0 15.1 100.0 100.0 0( 0) 70
>> 70
>> HT40/SGI MCS1 29.2 100.0 100.0 0( 0) 72
>> 72
>> HT40/SGI t MCS2 38.5 91.3 100.0 0( 0) 81
>> 83
>> HT40/SGI PMCS3 54.3 99.5 100.0 0( 0) 66536
>> 67803
>> HT40/SGI MCS4 0.0 0.0 0.0 0( 0) 0
>> 256
>> HT40/SGI MCS5 0.0 0.0 0.0 0( 0) 0
>> 256
>> HT40/SGI MCS6 0.0 0.0 0.0 0( 0) 0
>> 256
>> HT40/SGI MCS7 0.0 0.0 0.0 0( 0) 0
>> 256
>> HT40/SGI MCS8 29.2 100.0 100.0 0( 0) 67
>> 67
>> HT40/SGI T MCS9 54.6 99.9 100.0 0( 0) 310227
>> 312339
>> HT40/SGI MCS10 22.7 29.3 100.0 0( 0) 14
>> 46.8 Mbits/sec 255
>> HT40/SGI MCS11 0.0 0.0 0.0 0( 0) 0
>> 256
>> HT40/SGI MCS12 0.0 0.0 0.0 0( 0) 0
>> 255
>> HT40/SGI MCS13 0.0 0.0 0.0 0( 0) 0
>> 256
>> HT40/SGI MCS14 0.0 0.0 0.0 0( 0) 0
>> 256
>> HT40/SGI MCS15 0.0 0.0 0.0 0( 0) 0
>> 256
>> HT40/SGI MCS16 0.0 0.0 0.0 0( 0) 0
>> 68
>> HT40/SGI MCS17 0.0 0.0 0.0 0( 0) 0
>> 256
>> HT40/SGI MCS18 0.0 0.0 0.0 0( 0) 0
>> 255
>> HT40/SGI MCS19 0.0 0.0 0.0 0( 0) 0
>> 256
>> HT40/SGI MCS20 0.0 0.0 0.0 0( 0) 0
>> 256
>> HT40/SGI MCS21 0.0 0.0 0.0 0( 0) 0
>> 256
>> HT40/SGI MCS22 0.0 0.0 0.0 0( 0) 0
>> 256
>> HT40/SGI MCS23 0.0 0.0 0.0 0( 0) 0
>> 256
>>
>> Total packet count:: ideal 365056 lookaround 13702
>> Average A-MPDU length: 5.4
>>
>>> Date: Tue, 21 Jun 2011 14:25:36 +0530
>>> Subject: Re: [ath9k-devel] Disabling the third antenna for AR9380 in ath9k
>>> From: [email protected]
>>> To: [email protected]
>>> CC: [email protected]; [email protected];
>>> [email protected]; [email protected];
>>> [email protected]
>>>
>>> On Tue, Jun 21, 2011 at 2:07 AM, Fred Matthews
>>> wrote:
>>> > Hi all,
>>> > I am installing the AR9380 NIC on laptops, but some only have two UFL
>>> > connectors, and thus I was wondering if using only two of the UFL
>>> > antenna
>>> > ports will have any negative effect or difference than installing a 2x2
>>> > NIC
>>> > (AR9280 for example which has only 2 ports anyway). Please kindly
>>> > explain
>>> > with references if possible.
>>> > Also for example is there anyway to disable transmission on the third
>>> > UFL
>>> > port (antenna) from ath9k or otherwise.
>>> > Thank you all very much
>>>
>>> you can change the tx/rx chainmask for 3x3 AR9380 to disable
>>> transmission on the third antenna
>>> cd /sys/kernel/debug/ieee80211/phy0/ath9k# echo 0x3 > tx_chainmask
>>> cd /sys/kernel/debug/ieee80211/phy0/ath9k# echo 0x3 > rx_chainmask
>>>
>>> after this, ideally it should operate as 2x2 device as per Susinders
>>> comments. but if you got AR9280 please try to use that if 2 antenna is
>>> the constraint.
>>>
>>>
>>> > _______________________________________________
>>> > ath9k-devel mailing list
>>> > [email protected]
>>> > https://lists.ath9k.org/mailman/listinfo/ath9k-devel
>>> >
>>> >
>>>
>>>
>>>
>>> --