linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Ronald Wahl <ronald.wahl@raritan.com>
To: "John W. Linville" <linville@tuxdriver.com>,
	Stanislaw Gruszka <sgruszka@redhat.com>
Cc: Mike Romberg <mike-romberg@comcast.net>,
	<linux-wireless@vger.kernel.org>, <users@rt2x00.serialmonkey.com>
Subject: Re: [rt2x00-users] [PATCH] rt2800: fix RT5592 TX power settings regression
Date: Fri, 21 Nov 2014 10:39:39 +0100	[thread overview]
Message-ID: <546F085B.3060408@raritan.com> (raw)
In-Reply-To: <20141120210859.GE31881@tuxdriver.com>

For me the patch will work but there is a change for RT3290 and RT5390. 
On both chipsets BBP 1 was not written before but with this patch it is 
going to be written now and the value depends on the return of 
rt2800_get_txpower_bw_comp(). It should be checked that the function 
does the correct things for these chips.

- ron

On 20.11.2014 22:09, John W. Linville wrote:
> Any comments on this patch?  Ron, does it work for you?
>
> On Thu, Nov 06, 2014 at 11:27:53AM +0100, Stanislaw Gruszka wrote:
>> On Wed, Nov 05, 2014 at 06:03:30PM +0100, Ronald Wahl wrote:
>>> Commit cee2c7315f60beeff6137ee59e99acc77d636eeb (rt2800: fix RT5390 &
>>> RT3290 TX power settings regression) needs to be extended for the RT5592
>>> chipset as well. But at least for the RT5592 the existing regression fix is
>>> not right because the value returned from rt2800_get_gain_calibration_delta()
>>> is bogus as it is generated by an unappropriate algorithm. This can cause
>>> severe connection issues with sticks that have external ALC enabled like the
>>> Netis WF2150 because of too low TX power at least during the scan process.
>>>
>>> So the fix for now is not to call rt2800_get_gain_calibration_delta()
>>> for the RT5592 chipset. I do not touch the existing regression fix for
>>> RT5390 & RT3290 but I think they may need a rework as well.
>>
>> Thanks for the patch, but I prefer to call rt2800_get_gain_calibration_delta()
>> on chips that we know it is needed for them, something like in attached
>> patch
>>
>> Mike, since you are cee2c7315f reporter, could you test the attached patch
>> does not break driver functioning on your H/W.
>>
>> Thanks
>> Stanislaw
>>
>>
>
>> diff --git a/drivers/net/wireless/rt2x00/rt2800lib.c b/drivers/net/wireless/rt2x00/rt2800lib.c
>> index 9f57a2d..81ee481 100644
>> --- a/drivers/net/wireless/rt2x00/rt2800lib.c
>> +++ b/drivers/net/wireless/rt2x00/rt2800lib.c
>> @@ -4119,7 +4119,20 @@ static void rt2800_config_txpower_rt28xx(struct rt2x00_dev *rt2x00dev,
>>   	 * expected. We adjust it, based on TSSI reference and boundaries values
>>   	 * provided in EEPROM.
>>   	 */
>> -	delta += rt2800_get_gain_calibration_delta(rt2x00dev);
>> +	switch (rt2x00dev->chip.rt) {
>> +	case RT2860:
>> +	case RT2872:
>> +	case RT2883:
>> +	case RT3070:
>> +	case RT3071:
>> +	case RT3090:
>> +	case RT3572:
>> +		delta += rt2800_get_gain_calibration_delta(rt2x00dev);
>> +		break;
>> +	default:
>> +		/* TODO: temperature compensation code for other chips. */
>> +		break;
>> +	}
>>
>>   	/*
>>   	 * Decrease power according to user settings, on devices with unknown
>> @@ -4136,25 +4149,19 @@ static void rt2800_config_txpower_rt28xx(struct rt2x00_dev *rt2x00dev,
>>   	 * TODO: we do not use +6 dBm option to do not increase power beyond
>>   	 * regulatory limit, however this could be utilized for devices with
>>   	 * CAPABILITY_POWER_LIMIT.
>> -	 *
>> -	 * TODO: add different temperature compensation code for RT3290 & RT5390
>> -	 * to allow to use BBP_R1 for those chips.
>> -	 */
>> -	if (!rt2x00_rt(rt2x00dev, RT3290) &&
>> -	    !rt2x00_rt(rt2x00dev, RT5390)) {
>> -		rt2800_bbp_read(rt2x00dev, 1, &r1);
>> -		if (delta <= -12) {
>> -			power_ctrl = 2;
>> -			delta += 12;
>> -		} else if (delta <= -6) {
>> -			power_ctrl = 1;
>> -			delta += 6;
>> -		} else {
>> -			power_ctrl = 0;
>> -		}
>> -		rt2x00_set_field8(&r1, BBP1_TX_POWER_CTRL, power_ctrl);
>> -		rt2800_bbp_write(rt2x00dev, 1, r1);
>> +	 */
>> +	if (delta <= -12) {
>> +		power_ctrl = 2;
>> +		delta += 12;
>> +	} else if (delta <= -6) {
>> +		power_ctrl = 1;
>> +		delta += 6;
>> +	} else {
>> +		power_ctrl = 0;
>>   	}
>> +	rt2800_bbp_read(rt2x00dev, 1, &r1);
>> +	rt2x00_set_field8(&r1, BBP1_TX_POWER_CTRL, power_ctrl);
>> +	rt2800_bbp_write(rt2x00dev, 1, r1);
>>
>>   	offset = TX_PWR_CFG_0;
>>
>
>> _______________________________________________
>> users mailing list
>> users@rt2x00.serialmonkey.com
>> http://rt2x00.serialmonkey.com/mailman/listinfo/users_rt2x00.serialmonkey.com
>
>

-- 
Ronald Wahl - ronald.wahl@raritan.com - Phone +49 375271349-0 Fax -99
Raritan Deutschland GmbH, Kornmarkt 7, 08056 Zwickau, Germany
USt-IdNr. DE813094160, Steuer-Nr. 227/117/01749
Amtsgericht Chemnitz HRB 23605
Geschäftsführung: Stuart Hopper, Ralf Ploenes

  reply	other threads:[~2014-11-21  9:39 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-11-05 17:03 [PATCH] rt2800: fix RT5592 TX power settings regression Ronald Wahl
2014-11-06 10:27 ` Stanislaw Gruszka
2014-11-20 21:09   ` [rt2x00-users] " John W. Linville
2014-11-21  9:39     ` Ronald Wahl [this message]
2014-11-25 13:57       ` Stanislaw Gruszka
2014-11-25 14:17         ` [PATCH] rt2800: calculate tx power temperature compensation on selected chips Stanislaw Gruszka

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=546F085B.3060408@raritan.com \
    --to=ronald.wahl@raritan.com \
    --cc=linux-wireless@vger.kernel.org \
    --cc=linville@tuxdriver.com \
    --cc=mike-romberg@comcast.net \
    --cc=sgruszka@redhat.com \
    --cc=users@rt2x00.serialmonkey.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).