Return-path: Received: from mail-bk0-f46.google.com ([209.85.214.46]:42085 "EHLO mail-bk0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750964Ab2AKXlu (ORCPT ); Wed, 11 Jan 2012 18:41:50 -0500 Received: by bkvi17 with SMTP id i17so839580bkv.19 for ; Wed, 11 Jan 2012 15:41:48 -0800 (PST) From: Christian Lamparter To: Harshal Chhaya Subject: Re: carl9170: How to control transmit power? Date: Thu, 12 Jan 2012 00:41:35 +0100 Cc: "linux-wireless" References: In-Reply-To: MIME-Version: 1.0 Content-Type: Text/Plain; charset="iso-8859-1" Message-Id: <201201120041.35506.chunkeey@googlemail.com> (sfid-20120112_004153_786680_47A42D36) Sender: linux-wireless-owner@vger.kernel.org List-ID: On Thursday, January 12, 2012 12:07:54 AM Harshal Chhaya wrote: > Does the carl9170 driver/firmware allow real-time updates to the tx > power parameter? No. not yet. > On my AR9170-based AP, I can't set the tx power using either 'iw' or 'iwconfig'. > > 'iw' fails with an error message: > > root@OpenWrt:/etc/hostapd# iw wlan0 set txpower fixed 10 > command failed: Operation not supported (-95) iw uses mBm (millibels referenced to 1 milliwatt) rather than the more familiar dBm. try: iw wlan0 set txpower fixed 1000 > 'iwconfig' seems to update the information that's displayed but it > doesn't affect the actual tx power > > root@OpenWrt:/# iwconfig wlan0 > wlan0 IEEE 802.11bgn Mode:Master Frequency:2.412 GHz Tx-Power=7 dBm > RTS thr:off Fragment thr:off > Power Management:off > > root@OpenWrt:/# iwconfig wlan0 txpower 11 > > root@OpenWrt:/# iwconfig wlan0 > wlan0 IEEE 802.11bgn Mode:Master Frequency:2.412 GHz Tx-Power=11 dBm > RTS thr:off Fragment thr:off > Power Management:off > > Is there another way to set the tx power? I want to reduce the range > of my AP and am trying to lower the tx power. see attached patch. But I have to add that it won't change the txpower of frames which are generated by the MAC [like RTS/CTS and (B)ACKS]. Best Regards and good night. --- diff --git a/drivers/net/wireless/ath/carl9170/tx.c b/drivers/net/wireless/ath/carl9170/tx.c index d19a9ee..771e1a9 100644 --- a/drivers/net/wireless/ath/carl9170/tx.c +++ b/drivers/net/wireless/ath/carl9170/tx.c @@ -719,6 +719,8 @@ static void carl9170_tx_rate_tpc_chains(struct ar9170 *ar, else *chains = AR9170_TX_PHY_TXCHAIN_2; } + + *tpc = min_t(unsigned int, *tpc, ar->hw->conf.power_level * 2); } static __le32 carl9170_tx_physet(struct ar9170 *ar,