2022-09-16 23:16:53

by Daniel Golle

[permalink] [raw]
Subject: [PATCH RESEND 01/15] rt2x00: define RF5592 in init_eeprom routine

From: Tomislav Požega <[email protected]>

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 <[email protected]>
---
drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
index 18102fbe36d6cc..cc9c5554fdc9ca 100644
--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
@@ -9435,6 +9435,8 @@ static int rt2800_init_eeprom(struct rt2x00_dev *rt2x00dev)
rf = RF3853;
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);

--
2.37.3


2022-09-17 13:16:35

by Stanislaw Gruszka

[permalink] [raw]
Subject: Re: [PATCH RESEND 01/15] rt2x00: define RF5592 in init_eeprom routine

On Sat, Sep 17, 2022 at 12:04:21AM +0100, Daniel Golle wrote:
> From: Tomislav Požega <[email protected]>
>
> 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 <[email protected]>

Please add your's signed-off-by and fix the changelog. Patch
fixes incorrect rf value encoded in eeprom, not a crash. IIRC
crash itself was caused by incorrect rt2x00->eeprom_file pointer,
happend when rt2800_init_eeprom() returned error. And should
be alredy fixed in openwrt tree.

2022-09-17 13:27:32

by Stanislaw Gruszka

[permalink] [raw]
Subject: Re: [PATCH RESEND 01/15] rt2x00: define RF5592 in init_eeprom routine

On Sat, Sep 17, 2022 at 03:10:53PM +0200, Stanislaw Gruszka wrote:
> On Sat, Sep 17, 2022 at 12:04:21AM +0100, Daniel Golle wrote:
> > From: Tomislav Požega <[email protected]>
> >
> > 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 <[email protected]>
>
> Please add your's signed-off-by and fix the changelog. Patch
> fixes incorrect rf value encoded in eeprom, not a crash. IIRC
> crash itself was caused by incorrect rt2x00->eeprom_file pointer,
> happend when rt2800_init_eeprom() returned error. And should
> be alredy fixed in openwrt tree.

The crash was fixed by:
https://patchwork.ozlabs.org/project/openwrt/patch/[email protected]/

2022-09-17 13:56:43

by Daniel Golle

[permalink] [raw]
Subject: Re: [PATCH RESEND 01/15] rt2x00: define RF5592 in init_eeprom routine

On Sat, Sep 17, 2022 at 03:21:34PM +0200, Stanislaw Gruszka wrote:
> On Sat, Sep 17, 2022 at 03:10:53PM +0200, Stanislaw Gruszka wrote:
> > On Sat, Sep 17, 2022 at 12:04:21AM +0100, Daniel Golle wrote:
> > > From: Tomislav Požega <[email protected]>
> > >
> > > 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 <[email protected]>
> >
> > Please add your's signed-off-by and fix the changelog. Patch
> > fixes incorrect rf value encoded in eeprom, not a crash. IIRC
> > crash itself was caused by incorrect rt2x00->eeprom_file pointer,
> > happend when rt2800_init_eeprom() returned error. And should
> > be alredy fixed in openwrt tree.
>
> The crash was fixed by:
> https://patchwork.ozlabs.org/project/openwrt/patch/[email protected]/

Yes, the itself has been fixed. For working wifi it's just the RF
value in EEPROM which needs overriding with RT5592 PCIe radio (a single
chip with built-in RF frontend), which is also what the vendor driver
does afair. I will update the commit message in v2.