From: cinap_lenrek Date: Sat, 16 Feb 2013 03:42:42 +0000 (+0100) Subject: etheriwl: use first available antenna from eeprom txantmask instead of hardcode to... X-Git-Url: https://git.lizzy.rs/?a=commitdiff_plain;h=f6290afb148261aa382d0db1d9c1a3d3f52a09f4;p=plan9front.git etheriwl: use first available antenna from eeprom txantmask instead of hardcode to antenna A --- diff --git a/sys/src/9/pc/etheriwl.c b/sys/src/9/pc/etheriwl.c index e80014deb..4d49450c6 100644 --- a/sys/src/9/pc/etheriwl.c +++ b/sys/src/9/pc/etheriwl.c @@ -1725,7 +1725,7 @@ enum { static void transmit(Wifi *wifi, Wnode *wn, Block *b) { - int flags, nodeid, rate; + int flags, nodeid, rate, ant; uchar c[Tcmdsize], *p; Ether *edev; Ctlr *ctlr; @@ -1773,6 +1773,11 @@ transmit(Wifi *wifi, Wnode *wn, Block *b) } qunlock(ctlr); + /* select first available antenna */ + ant = ctlr->rfcfg.txantmask & 7; + ant |= (ant == 0); + ant = ((ant - 1) & ant) ^ ant; + memset(p = c, 0, sizeof(c)); put16(p, BLEN(b)); p += 2; @@ -1783,7 +1788,7 @@ transmit(Wifi *wifi, Wnode *wn, Block *b) p += 4; /* scratch */ *p++ = ratetab[rate].plcp; - *p++ = ratetab[rate].flags | (1<<6); + *p++ = ratetab[rate].flags | (ant<<6); p += 2; /* xflags */ *p++ = nodeid;