linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/2] rt2x00: reduce tx power to nominal level on RT6352
@ 2018-12-27 14:05 Tomislav Požega
  2018-12-27 14:05 ` [PATCH 2/2] rt2x00: define RF5592 in init_eeprom routine Tomislav Požega
  2019-02-01 12:05 ` [PATCH 1/2] rt2x00: reduce tx power to nominal level on RT6352 Kalle Valo
  0 siblings, 2 replies; 5+ messages in thread
From: Tomislav Požega @ 2018-12-27 14:05 UTC (permalink / raw)
  To: linux-wireless; +Cc: kvalo, hauke, nbd, john, sgruszka, daniel

Current implementation of RT6352 support provides too high tx power
at least on iPA/eLNA devices. Reduce amplification of variable gain
amplifier by 6dB to match board target power of 17dBm.
Transmited signal strength with this patch is similar to that of
stock firmware or pandorabox firmware. Throughput measured with iperf
improves. Device tested: Xiaomi Miwifi Mini.

Signed-off-by: Tomislav Požega <pozega.tomislav@gmail.com>
---
 drivers/net/wireless/ralink/rt2x00/rt2800lib.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
index 0e95555..7f813f6 100644
--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
@@ -5477,7 +5477,7 @@ static int rt2800_init_registers(struct rt2x00_dev *rt2x00dev)
 		rt2800_register_write(rt2x00dev, TX_SW_CFG2, 0x00000000);
 		rt2800_register_write(rt2x00dev, MIMO_PS_CFG, 0x00000002);
 		rt2800_register_write(rt2x00dev, TX_PIN_CFG, 0x00150F0F);
-		rt2800_register_write(rt2x00dev, TX_ALC_VGA3, 0x06060606);
+		rt2800_register_write(rt2x00dev, TX_ALC_VGA3, 0x00000000);
 		rt2800_register_write(rt2x00dev, TX0_BB_GAIN_ATTEN, 0x0);
 		rt2800_register_write(rt2x00dev, TX1_BB_GAIN_ATTEN, 0x0);
 		rt2800_register_write(rt2x00dev, TX0_RF_GAIN_ATTEN, 0x6C6C666C);
-- 
1.7.0.4


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH 2/2] rt2x00: define RF5592 in init_eeprom routine
  2018-12-27 14:05 [PATCH 1/2] rt2x00: reduce tx power to nominal level on RT6352 Tomislav Požega
@ 2018-12-27 14:05 ` Tomislav Požega
  2019-01-02  8:37   ` Stanislaw Gruszka
  2019-02-01 12:05 ` [PATCH 1/2] rt2x00: reduce tx power to nominal level on RT6352 Kalle Valo
  1 sibling, 1 reply; 5+ messages in thread
From: Tomislav Požega @ 2018-12-27 14:05 UTC (permalink / raw)
  To: linux-wireless; +Cc: kvalo, hauke, nbd, john, sgruszka, daniel

This patch fixes following crash on Linksys EA2750 during 5GHz wifi
init:

[    7.955153] rt2800pci 0000:01:00.0: card - bus=0x1, slot = 0x0 irq=4
[    7.962259] rt2800pci 0000:01:00.0: loaded eeprom from mtd device "Factory"
[    7.969435] ieee80211 phy0: rt2x00_set_rt: Info - RT chipset 5592, rev 0222 detected
[    7.977348] ieee80211 phy0: rt2800_init_eeprom: Error - Invalid RF chipset 0x0000 detected
[    7.985793] ieee80211 phy0: rt2x00lib_probe_dev: Error - Failed to allocate device
[    7.993569] CPU 0 Unable to handle kernel paging request at virtual address 00000024, epc == 800c8f54, ra == 80249ff8
[    8.004408] Oops[#1]:

Signed-off-by: Tomislav Požega <pozega.tomislav@gmail.com>
---
 drivers/net/wireless/ralink/rt2x00/rt2800lib.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
index 7f813f6..86770e8 100644
--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
@@ -8839,6 +8839,8 @@ static int rt2800_init_eeprom(struct rt2x00_dev *rt2x00dev)
 		rf = RF3322;
 	else if (rt2x00_rt(rt2x00dev, RT5350))
 		rf = RF5350;
+	else if (rt2x00_rt(rt2x00dev, RT5592))
+		rf = RF5592;
 	else
 		rf = rt2x00_get_field16(eeprom, EEPROM_NIC_CONF0_RF_TYPE);
 
-- 
1.7.0.4


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH 2/2] rt2x00: define RF5592 in init_eeprom routine
  2018-12-27 14:05 ` [PATCH 2/2] rt2x00: define RF5592 in init_eeprom routine Tomislav Požega
@ 2019-01-02  8:37   ` Stanislaw Gruszka
  2020-07-06 11:14     ` Sebastian Gottschall
  0 siblings, 1 reply; 5+ messages in thread
From: Stanislaw Gruszka @ 2019-01-02  8:37 UTC (permalink / raw)
  To: Tomislav Požega
  Cc: linux-wireless, kvalo, hauke, nbd, john, daniel, John Crispin

On Thu, Dec 27, 2018 at 03:05:26PM +0100, Tomislav Požega wrote:
> This patch fixes following crash on Linksys EA2750 during 5GHz wifi
> init:
> 
> [    7.955153] rt2800pci 0000:01:00.0: card - bus=0x1, slot = 0x0 irq=4
> [    7.962259] rt2800pci 0000:01:00.0: loaded eeprom from mtd device "Factory"
> [    7.969435] ieee80211 phy0: rt2x00_set_rt: Info - RT chipset 5592, rev 0222 detected
> [    7.977348] ieee80211 phy0: rt2800_init_eeprom: Error - Invalid RF chipset 0x0000 detected
> [    7.985793] ieee80211 phy0: rt2x00lib_probe_dev: Error - Failed to allocate device
> [    7.993569] CPU 0 Unable to handle kernel paging request at virtual address 00000024, epc == 800c8f54, ra == 80249ff8
> [    8.004408] Oops[#1]:
> 
> Signed-off-by: Tomislav Požega <pozega.tomislav@gmail.com>
> ---
>  drivers/net/wireless/ralink/rt2x00/rt2800lib.c |    2 ++
>  1 files changed, 2 insertions(+), 0 deletions(-)
> 
> diff --git a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
> index 7f813f6..86770e8 100644
> --- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
> +++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
> @@ -8839,6 +8839,8 @@ static int rt2800_init_eeprom(struct rt2x00_dev *rt2x00dev)
>  		rf = RF3322;
>  	else if (rt2x00_rt(rt2x00dev, RT5350))
>  		rf = RF5350;
> +	else if (rt2x00_rt(rt2x00dev, RT5592))
> +		rf = RF5592;

This looks like workaround for the crash and AFICT it is not needed
on upstream code. This most likely is a issue with below openwrt patch:

https://git.openwrt.org/?p=openwrt/openwrt.git;a=blob;f=package/kernel/mac80211/patches/rt2x00/604-rt2x00-load-eeprom-on-SoC-from-a-mtd-device-defines-.patch;h=a98b49c541f5f76e73751c2fd2e5b85559854b87;hb=HEAD

which for some unknown reason set:

rt2x00dev->eeprom_file = &mtd_fw;

which then crash on rt2x00lib_free_eeprom_file() -> release_firmware();

Regards
Stanislaw
 

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH 1/2] rt2x00: reduce tx power to nominal level on RT6352
  2018-12-27 14:05 [PATCH 1/2] rt2x00: reduce tx power to nominal level on RT6352 Tomislav Požega
  2018-12-27 14:05 ` [PATCH 2/2] rt2x00: define RF5592 in init_eeprom routine Tomislav Požega
@ 2019-02-01 12:05 ` Kalle Valo
  1 sibling, 0 replies; 5+ messages in thread
From: Kalle Valo @ 2019-02-01 12:05 UTC (permalink / raw)
  To: Tomislav Požega; +Cc: linux-wireless, hauke, nbd, john, sgruszka, daniel

Tomislav Požega wrote:

> Current implementation of RT6352 support provides too high tx power
> at least on iPA/eLNA devices. Reduce amplification of variable gain
> amplifier by 6dB to match board target power of 17dBm.
> Transmited signal strength with this patch is similar to that of
> stock firmware or pandorabox firmware. Throughput measured with iperf
> improves. Device tested: Xiaomi Miwifi Mini.
> 
> Signed-off-by: Tomislav Požega <pozega.tomislav@gmail.com>

Patch applied to wireless-drivers-next.git, thanks.

c2e28ef7711f rt2x00: reduce tx power to nominal level on RT6352

-- 
https://patchwork.kernel.org/patch/10743705/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH 2/2] rt2x00: define RF5592 in init_eeprom routine
  2019-01-02  8:37   ` Stanislaw Gruszka
@ 2020-07-06 11:14     ` Sebastian Gottschall
  0 siblings, 0 replies; 5+ messages in thread
From: Sebastian Gottschall @ 2020-07-06 11:14 UTC (permalink / raw)
  To: Stanislaw Gruszka, Tomislav Požega
  Cc: linux-wireless, kvalo, hauke, nbd, john, daniel, John Crispin

you are wrong. this is not a workaround for the crash (this is just a 
nice side effect). i had the same issue. the problem is that without 
that patch the device RF is not properly detected.
since the device eeprom contains a rev 0. the same issue is present on 
the Buffalo WHR-600D device

<6>rt2800pci 0000:01:00.0: loaded eeprom from mtd device "factory" 
offset 8000
<6>ieee80211 phy1: rt2x00_set_rt: Info - RT chipset 5592, rev 0222 detected
<3>ieee80211 phy1: rt2800_init_eeprom: Error - Invalid RF chipset 0x0000 
detected
<3>ieee80211 phy1: rt2x00lib_probe_dev: Error - Failed to allocate device


so this patch fixes the missdetection of the RF


Sebastian

Am 02.01.2019 um 09:37 schrieb Stanislaw Gruszka:
> On Thu, Dec 27, 2018 at 03:05:26PM +0100, Tomislav Požega wrote:
>> This patch fixes following crash on Linksys EA2750 during 5GHz wifi
>> init:
>>
>> [    7.955153] rt2800pci 0000:01:00.0: card - bus=0x1, slot = 0x0 irq=4
>> [    7.962259] rt2800pci 0000:01:00.0: loaded eeprom from mtd device "Factory"
>> [    7.969435] ieee80211 phy0: rt2x00_set_rt: Info - RT chipset 5592, rev 0222 detected
>> [    7.977348] ieee80211 phy0: rt2800_init_eeprom: Error - Invalid RF chipset 0x0000 detected
>> [    7.985793] ieee80211 phy0: rt2x00lib_probe_dev: Error - Failed to allocate device
>> [    7.993569] CPU 0 Unable to handle kernel paging request at virtual address 00000024, epc == 800c8f54, ra == 80249ff8
>> [    8.004408] Oops[#1]:
>>
>> Signed-off-by: Tomislav Požega <pozega.tomislav@gmail.com>
>> ---
>>   drivers/net/wireless/ralink/rt2x00/rt2800lib.c |    2 ++
>>   1 files changed, 2 insertions(+), 0 deletions(-)
>>
>> diff --git a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
>> index 7f813f6..86770e8 100644
>> --- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
>> +++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
>> @@ -8839,6 +8839,8 @@ static int rt2800_init_eeprom(struct rt2x00_dev *rt2x00dev)
>>   		rf = RF3322;
>>   	else if (rt2x00_rt(rt2x00dev, RT5350))
>>   		rf = RF5350;
>> +	else if (rt2x00_rt(rt2x00dev, RT5592))
>> +		rf = RF5592;
> This looks like workaround for the crash and AFICT it is not needed
> on upstream code. This most likely is a issue with below openwrt patch:
>
> https://git.openwrt.org/?p=openwrt/openwrt.git;a=blob;f=package/kernel/mac80211/patches/rt2x00/604-rt2x00-load-eeprom-on-SoC-from-a-mtd-device-defines-.patch;h=a98b49c541f5f76e73751c2fd2e5b85559854b87;hb=HEAD
>
> which for some unknown reason set:
>
> rt2x00dev->eeprom_file = &mtd_fw;
>
> which then crash on rt2x00lib_free_eeprom_file() -> release_firmware();
>
> Regards
> Stanislaw
>   
>

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2020-07-06 11:42 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-12-27 14:05 [PATCH 1/2] rt2x00: reduce tx power to nominal level on RT6352 Tomislav Požega
2018-12-27 14:05 ` [PATCH 2/2] rt2x00: define RF5592 in init_eeprom routine Tomislav Požega
2019-01-02  8:37   ` Stanislaw Gruszka
2020-07-06 11:14     ` Sebastian Gottschall
2019-02-01 12:05 ` [PATCH 1/2] rt2x00: reduce tx power to nominal level on RT6352 Kalle Valo

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).