Notes: Transmit power reduction with rt73usb driver

Implementation in rt73usb driver

The hardware transmit power value is calculated by this piece of code: (found in linux source tree at /drivers/net/wireless/rt2x00/rt73usb.c in at least version 2.6.28 and 2.6.31)

\begin{cite}
#define MIN_TXPOWER 0
#define MAX_TXPOWER 31

r94 = 6;
if (txpower > MAX_TXPOWER && txpower <= (MAX_TXPOWER + r94))
r94 += txpower - MAX_TXPOWER;
else if (txpower < MIN_TXPOWER && txpower >= (MIN_TXPOWER - r94))
r94 += txpower;
rt73usb_bbp_write(rt2x00dev, 94, r94);
\end{cite}

This leads to this iwconfig txpower value to actual transmit power mapping:

Setting

With Linux kernel version 2.6.28 and 2.6.29 the negative txpower values can be set directly - in version 2.6.31 negative values can not be set any more.

During a short test at 4 different nodes setting the txpower to -6 (lowest possible value) lead to halve the node rank than with the default value.