From: Ivo van Doorn <ivdoorn@gmail.com>
To: Chris Vine <chris@cvine.freeserve.co.uk>
Cc: Dan Williams <dcbw@redhat.com>,
linux-wireless@vger.kernel.org, linux-kernel@vger.kernel.org,
chris2553@googlemail.com, rt2400-devel@lists.sourceforge.net
Subject: Re: [Rt2400-devel] 2.6.25-rc2 regression in rt61pci wireless driver
Date: Wed, 20 Feb 2008 21:50:20 +0100 [thread overview]
Message-ID: <200802202150.20303.IvDoorn@gmail.com> (raw)
In-Reply-To: <1203539235.3189.4.camel@boulder.homenet>
On Wednesday 20 February 2008, Chris Vine wrote:
>
> On Wed, 2008-02-20 at 11:05 -0500, Dan Williams wrote:
> > On Tue, 2008-02-19 at 23:04 +0000, Chris Vine wrote:
> > > On Tue, 2008-02-19 at 20:46 +0100, Ivo van Doorn wrote:
> > > > Hi,
> > > >
> > > > [added rt2400-devel (rt2x00 development mailinglist) to the CC list.]
> > > >
> > > > > > > > I have a series of tests I would like to request from you,
> > > > > > > > you mentioned you already enabled debugfs, and that is just what we need. ;)
> > > > > > > > Please use attached script to create dumps of the hardware register contents.
> > > > > > > >
> > > > > > > > There are specific moments that should be dumped:
> > > > > > > > - kernel 2.6.24 (last known working version for you).
> > > > > > > > - kernel 2.6.25-rc2 (after ifup, before TX dies)
> > > > > > > > - kernel 2.6.25-rc2 (after ifup, after TX dies)
> > > > > > > >
> > > > > > >
> > > > > > > These diagnostics are attached, with obvious filenames.
> > > > > >
> > > > > > Thanks. I think I found something, please test below patch:
> > > > > >
> > > > >
> > > > > I've tried the patch but, unfortunately, my wireless LAN still dies after a few pings.
> > >
> > > rt2x00 2.0.14 is broken with my rt73 stick in the vanilla 2.6.25-rc2
> > > kernel (not wireless-2.6/rt2x00 git). The modules load when I plug the
> > > stick in but I then get a complete kernel lock up with two flashing
> > > leds. Nothing is recorded to system logs. The last logged messages are
> > > that usbcore has registered new interface driver rt73usb, and that the
> > > rate control algorithm has been selected on phy0. This happens whether
> > > the simple or pid mac80211 rate control algorithms have been chosen.
> > >
> > > This is a shame because 2.0.14 was working really well for me until the
> > > mac80211 changes 2 or 3 weeks ago broke it. (Shortly followed by the
> > > release of 2.1.*).
> >
> > Switch to a VT with Ctl+Alt+1, then plug the stick in, and take a
> > picture of the panic if one shows up. _Something_ should show up on the
> > VT.
>
> I did that yesterday and it just reported a kernel panic on the terminal
> with the message:
>
> Kernel panic - not syncing: Aiee, killing interrupt handler!
I have an idea, could you try below patch?
Note that while applying it will mention something about a line offset, but that can be ignored.
This could perhaps also fix the TX/RX issue mentioned earlier in the thread, but I am not
quite sure about that.
---
diff --git a/drivers/net/wireless/rt2x00/rt2400pci.c b/drivers/net/wireless/rt2x00/rt2400pci.c
index b63bc66..460ef2f 100644
--- a/drivers/net/wireless/rt2x00/rt2400pci.c
+++ b/drivers/net/wireless/rt2x00/rt2400pci.c
@@ -953,8 +953,12 @@ static int rt2400pci_set_device_state(struct rt2x00_dev *rt2x00dev,
rt2400pci_disable_radio(rt2x00dev);
break;
case STATE_RADIO_RX_ON:
+ case STATE_RADIO_RX_ON_LINK:
+ rt2400pci_toggle_rx(rt2x00dev, STATE_RADIO_RX_ON);
+ break;
case STATE_RADIO_RX_OFF:
- rt2400pci_toggle_rx(rt2x00dev, state);
+ case STATE_RADIO_RX_OFF_LINK:
+ rt2400pci_toggle_rx(rt2x00dev, STATE_RADIO_RX_OFF);
break;
case STATE_DEEP_SLEEP:
case STATE_SLEEP:
diff --git a/drivers/net/wireless/rt2x00/rt2500pci.c b/drivers/net/wireless/rt2x00/rt2500pci.c
index add8aff..ffcd996 100644
--- a/drivers/net/wireless/rt2x00/rt2500pci.c
+++ b/drivers/net/wireless/rt2x00/rt2500pci.c
@@ -1106,8 +1106,12 @@ static int rt2500pci_set_device_state(struct rt2x00_dev *rt2x00dev,
rt2500pci_disable_radio(rt2x00dev);
break;
case STATE_RADIO_RX_ON:
+ case STATE_RADIO_RX_ON_LINK:
+ rt2500pci_toggle_rx(rt2x00dev, STATE_RADIO_RX_ON);
+ break;
case STATE_RADIO_RX_OFF:
- rt2500pci_toggle_rx(rt2x00dev, state);
+ case STATE_RADIO_RX_OFF_LINK:
+ rt2500pci_toggle_rx(rt2x00dev, STATE_RADIO_RX_OFF);
break;
case STATE_DEEP_SLEEP:
case STATE_SLEEP:
diff --git a/drivers/net/wireless/rt2x00/rt2500usb.c b/drivers/net/wireless/rt2x00/rt2500usb.c
index d9643c5..9f59db9 100644
--- a/drivers/net/wireless/rt2x00/rt2500usb.c
+++ b/drivers/net/wireless/rt2x00/rt2500usb.c
@@ -996,8 +996,12 @@ static int rt2500usb_set_device_state(struct rt2x00_dev *rt2x00dev,
rt2500usb_disable_radio(rt2x00dev);
break;
case STATE_RADIO_RX_ON:
+ case STATE_RADIO_RX_ON_LINK:
+ rt2500usb_toggle_rx(rt2x00dev, STATE_RADIO_RX_ON);
+ break;
case STATE_RADIO_RX_OFF:
- rt2500usb_toggle_rx(rt2x00dev, state);
+ case STATE_RADIO_RX_OFF_LINK:
+ rt2500usb_toggle_rx(rt2x00dev, STATE_RADIO_RX_OFF);
break;
case STATE_DEEP_SLEEP:
case STATE_SLEEP:
diff --git a/drivers/net/wireless/rt2x00/rt2x00config.c b/drivers/net/wireless/rt2x00/rt2x00config.c
index 46888f9..a1d8e33 100644
--- a/drivers/net/wireless/rt2x00/rt2x00config.c
+++ b/drivers/net/wireless/rt2x00/rt2x00config.c
@@ -127,7 +127,7 @@ void rt2x00lib_config_antenna(struct rt2x00_dev *rt2x00dev,
* else the changes will be ignored by the device.
*/
if (test_bit(DEVICE_ENABLED_RADIO, &rt2x00dev->flags))
- rt2x00lib_toggle_rx(rt2x00dev, STATE_RADIO_RX_OFF);
+ rt2x00lib_toggle_rx(rt2x00dev, STATE_RADIO_RX_OFF_LINK);
/*
* Write new antenna setup to device and reset the link tuner.
@@ -141,7 +141,7 @@ void rt2x00lib_config_antenna(struct rt2x00_dev *rt2x00dev,
rt2x00dev->link.ant.active.tx = libconf.ant.tx;
if (test_bit(DEVICE_ENABLED_RADIO, &rt2x00dev->flags))
- rt2x00lib_toggle_rx(rt2x00dev, STATE_RADIO_RX_ON);
+ rt2x00lib_toggle_rx(rt2x00dev, STATE_RADIO_RX_ON_LINK);
}
void rt2x00lib_config(struct rt2x00_dev *rt2x00dev,
diff --git a/drivers/net/wireless/rt2x00/rt2x00reg.h b/drivers/net/wireless/rt2x00/rt2x00reg.h
index add1f09..0325bed 100644
--- a/drivers/net/wireless/rt2x00/rt2x00reg.h
+++ b/drivers/net/wireless/rt2x00/rt2x00reg.h
@@ -85,6 +85,8 @@ enum dev_state {
STATE_RADIO_OFF,
STATE_RADIO_RX_ON,
STATE_RADIO_RX_OFF,
+ STATE_RADIO_RX_ON_LINK,
+ STATE_RADIO_RX_OFF_LINK,
STATE_RADIO_IRQ_ON,
STATE_RADIO_IRQ_OFF,
};
diff --git a/drivers/net/wireless/rt2x00/rt61pci.c b/drivers/net/wireless/rt2x00/rt61pci.c
index ca83d94..091fe39 100644
--- a/drivers/net/wireless/rt2x00/rt61pci.c
+++ b/drivers/net/wireless/rt2x00/rt61pci.c
@@ -1458,8 +1458,12 @@ static int rt61pci_set_device_state(struct rt2x00_dev *rt2x00dev,
rt61pci_disable_radio(rt2x00dev);
break;
case STATE_RADIO_RX_ON:
+ case STATE_RADIO_RX_ON_LINK:
+ rt61pci_toggle_rx(rt2x00dev, STATE_RADIO_RX_ON);
+ break;
case STATE_RADIO_RX_OFF:
- rt61pci_toggle_rx(rt2x00dev, state);
+ case STATE_RADIO_RX_OFF_LINK:
+ rt61pci_toggle_rx(rt2x00dev, STATE_RADIO_RX_OFF);
break;
case STATE_DEEP_SLEEP:
case STATE_SLEEP:
diff --git a/drivers/net/wireless/rt2x00/rt73usb.c b/drivers/net/wireless/rt2x00/rt73usb.c
index 7d6ee97..6546b0d 100644
--- a/drivers/net/wireless/rt2x00/rt73usb.c
+++ b/drivers/net/wireless/rt2x00/rt73usb.c
@@ -1196,8 +1196,12 @@ static int rt73usb_set_device_state(struct rt2x00_dev *rt2x00dev,
rt73usb_disable_radio(rt2x00dev);
break;
case STATE_RADIO_RX_ON:
+ case STATE_RADIO_RX_ON_LINK:
+ rt73usb_toggle_rx(rt2x00dev, STATE_RADIO_RX_ON);
+ break;
case STATE_RADIO_RX_OFF:
- rt73usb_toggle_rx(rt2x00dev, state);
+ case STATE_RADIO_RX_OFF_LINK:
+ rt73usb_toggle_rx(rt2x00dev, STATE_RADIO_RX_OFF);
break;
case STATE_DEEP_SLEEP:
case STATE_SLEEP:
next prev parent reply other threads:[~2008-02-20 20:50 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-02-16 12:06 2.6.25-rc2 regression in rt61pci wireless driver Chris Clayton
2008-02-18 18:11 ` Ivo van Doorn
2008-02-18 18:16 ` Ivo van Doorn
2008-02-18 22:51 ` Chris Clayton
2008-02-19 9:26 ` Ivo van Doorn
2008-02-19 19:00 ` Chris Clayton
2008-02-19 19:46 ` Ivo van Doorn
2008-02-19 20:44 ` Chris Clayton
2008-02-19 21:03 ` Ivo van Doorn
2008-02-19 23:04 ` [Rt2400-devel] " Chris Vine
2008-02-20 16:05 ` Dan Williams
2008-02-20 20:27 ` Chris Vine
2008-02-20 20:50 ` Ivo van Doorn [this message]
2008-02-20 21:16 ` Chris Vine
2008-02-21 21:07 ` Chris Vine
2008-02-21 21:51 ` Ivo van Doorn
2008-02-21 22:46 ` Chris Vine
2008-02-21 22:51 ` Ivo van Doorn
2008-02-21 23:04 ` Chris Clayton
2008-02-21 23:20 ` Chris Vine
2008-02-22 7:39 ` Chris Clayton
2008-02-22 19:11 ` Ivo van Doorn
2008-02-22 20:33 ` Chris Vine
2008-02-20 22:13 ` Chris Clayton
2008-02-22 15:46 ` Chris Clayton
2008-02-22 19:47 ` Ivo van Doorn
2008-02-25 21:04 ` Chris Clayton
2008-02-25 22:09 ` Ivo Van Doorn
2008-02-26 19:11 ` Chris Clayton
2008-02-26 19:48 ` John W. Linville
2008-02-26 20:30 ` Ivo Van Doorn
2008-02-26 21:44 ` Stefano Brivio
2008-02-26 21:13 ` Chris Clayton
2008-02-26 21:38 ` Stefano Brivio
2008-02-26 22:36 ` Chris Clayton
2008-02-27 7:26 ` Stefano Brivio
2008-02-27 15:51 ` John W. Linville
2008-02-27 17:25 ` John W. Linville
2008-02-27 17:45 ` Chris Clayton
2008-03-02 10:33 ` Stefano Brivio
2008-03-02 15:11 ` Chris Clayton
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=200802202150.20303.IvDoorn@gmail.com \
--to=ivdoorn@gmail.com \
--cc=chris2553@googlemail.com \
--cc=chris@cvine.freeserve.co.uk \
--cc=dcbw@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-wireless@vger.kernel.org \
--cc=rt2400-devel@lists.sourceforge.net \
/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).