[LUCID SRU] Bug#539794 [PATCH] rt2x00: Fix failed SLEEP->AWAKE and AWAKE->SLEEP transitions.

manoj.iyer at canonical.com manoj.iyer at canonical.com
Thu Jul 1 21:58:43 UTC 2010


Ok, this is the 1st time(and last) I am having to do this, I am 
withdrawing this SRU request. Please do not process this request any 
further. Looks like the 2 patches I picked from upstream only fixes the 
issue partially, I came to this conclusion after I pinged the originator 
of the bug for more clarification before I submitted them to stable.

I am back to square one.


Cheers
--- manjo

On Thu, 1 Jul 2010, Stefan Bader wrote:

> On 07/01/2010 05:22 PM, manoj.iyer at canonical.com wrote:
>>
>> My bad... The patch is in stable.
>> git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-2.6-stable.git
>> commit b1cdc4670b9508fcd47a15fbd12f70d269880b37
>> Merge: ce7d022 f925b13
>>
>
> Unfortunately that proves nothing. The tree you reference is some mangling tree
> which has the branches auto-follow the real stable trees but also contains some
> upstream only object.
>
> Have you actually _asked_ anybody on the s-o-b list about sending it upstream
> stable. Like John Linville?
>
> -Stefan
>>
>> Cheers
>> --- manjo
>>
>> On Thu, 1 Jul 2010, Stefan Bader wrote:
>>
>>> On 07/01/2010 07:51 AM, Leann Ogasawara wrote:
>>>> On Wed, 2010-06-30 at 18:34 -0500, manoj.iyer at canonical.com wrote:
>>>>>
>>>>>
>>>>>>>>> Date: Thu, 13 May 2010 21:16:03 +0200
>>>>>>>>> Subject: [PATCH] rt2x00: Fix failed SLEEP->AWAKE and AWAKE->SLEEP transitions.
>>>>>>>>>
>>>>>>>>> (Based on a patch created by Ondrej Zary)
>>>>>>>>>
>>>>>>>>> In some circumstances the Ralink devices do not properly go to sleep
>>>>>>>>> or wake up, with timeouts occurring.
>>>>>>>>> Fix this by retrying telling the device that it has to wake up or
>>>>>>>>> sleep.
>>>>>>>>>
>>>>>>>>> Signed-off-by: Gertjan van Wingerde<gwingerde at gmail.com>
>>>>>>>>> Acked-by: Ivo van Doorn<IvDoorn at gmail.com>
>>>>>>>>> Signed-off-by: John W. Linville<linville at tuxdriver.com>
>>>>>>>>> (cherry picked from commit 9655a6ec19ca656af246fb80817aa337892aefbf)
>>>>>>>>>
>>>>>
>>>>> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>>>>
>>>>> Please read the SRU request submission carefully
>>>>
>>>> Maybe I'm missing something, but I still don't see any mention if this
>>>> has been submitted to upstream stable or not....
>>>>
>>>> Leann
>>>>
>>>
>>> Neither do I. Linus tree is not upstream stable and the patch itself will not
>>> automatically get picked up. Some maintainers do this manually. So when doing
>>> SRUs we want to ask.
>>>
>>> Basically every SRU request should either say: "has been submitted to upstream
>>> stable" or say it has been rejected there because ...
>>>
>>> Stefan
>>>
>>>>> from 2.6 linus tree...
>>>>>
>>>>> commit 9655a6ec19ca656af246fb80817aa337892aefbf
>>>>> Author: Gertjan van Wingerde <gwingerde at gmail.com>
>>>>> Date:   Thu May 13 21:16:03 2010 +0200
>>>>>
>>>>>      rt2x00: Fix failed SLEEP->AWAKE and AWAKE->SLEEP transitions.
>>>>>
>>>>>      (Based on a patch created by Ondrej Zary)
>>>>>
>>>>>      In some circumstances the Ralink devices do not properly go to sleep
>>>>>      or wake up, with timeouts occurring.
>>>>>      Fix this by retrying telling the device that it has to wake up or
>>>>>      sleep.
>>>>>
>>>>>      Signed-off-by: Gertjan van Wingerde <gwingerde at gmail.com>
>>>>>      Acked-by: Ivo van Doorn <IvDoorn at gmail.com>
>>>>>      Signed-off-by: John W. Linville <linville at tuxdriver.com>
>>>>>
>>>>>
>>>>>>>>> Signed-off-by: Manoj Iyer<manoj.iyer at canonical.com>
>>>>>>>>>
>>>>>>>>> BugLink: http://launchpad.net/bugs/539794
>>>>>>>>> ---
>>>>>>>>> drivers/net/wireless/rt2x00/rt2400pci.c | 9 +++++----
>>>>>>>>> drivers/net/wireless/rt2x00/rt2500pci.c | 9 +++++----
>>>>>>>>> drivers/net/wireless/rt2x00/rt61pci.c | 7 ++++---
>>>>>>>>> drivers/net/wireless/rt2x00/rt73usb.c | 7 ++++---
>>>>>>>>> 4 files changed, 18 insertions(+), 14 deletions(-)
>>>>>>>>>
>>>>>>>>> diff --git a/drivers/net/wireless/rt2x00/rt2400pci.c b/drivers/net/wireless/rt2x00/rt2400pci.c
>>>>>>>>> index 4020bad..37475e8 100644
>>>>>>>>> --- a/drivers/net/wireless/rt2x00/rt2400pci.c
>>>>>>>>> +++ b/drivers/net/wireless/rt2x00/rt2400pci.c
>>>>>>>>> @@ -925,7 +925,7 @@ static void rt2400pci_disable_radio(struct rt2x00_dev *rt2x00dev)
>>>>>>>>> static int rt2400pci_set_state(struct rt2x00_dev *rt2x00dev,
>>>>>>>>> enum dev_state state)
>>>>>>>>> {
>>>>>>>>> - u32 reg;
>>>>>>>>> + u32 reg, reg2;
>>>>>>>>> unsigned int i;
>>>>>>>>> char put_to_sleep;
>>>>>>>>> char bbp_state;
>>>>>>>>> @@ -946,11 +946,12 @@ static int rt2400pci_set_state(struct rt2x00_dev *rt2x00dev,
>>>>>>>>> * device has entered the correct state.
>>>>>>>>> */
>>>>>>>>> for (i = 0; i< REGISTER_BUSY_COUNT; i++) {
>>>>>>>>> - rt2x00pci_register_read(rt2x00dev, PWRCSR1,&reg);
>>>>>>>>> - bbp_state = rt2x00_get_field32(reg, PWRCSR1_BBP_CURR_STATE);
>>>>>>>>> - rf_state = rt2x00_get_field32(reg, PWRCSR1_RF_CURR_STATE);
>>>>>>>>> + rt2x00pci_register_read(rt2x00dev, PWRCSR1,&reg2);
>>>>>>>>> + bbp_state = rt2x00_get_field32(reg2, PWRCSR1_BBP_CURR_STATE);
>>>>>>>>> + rf_state = rt2x00_get_field32(reg2, PWRCSR1_RF_CURR_STATE);
>>>>>>>>> if (bbp_state == state&& rf_state == state)
>>>>>>>>> return 0;
>>>>>>>>> + rt2x00pci_register_write(rt2x00dev, PWRCSR1, reg);
>>>>>>>>> msleep(10);
>>>>>>>>> }
>>>>>>>>>
>>>>>>>>> diff --git a/drivers/net/wireless/rt2x00/rt2500pci.c b/drivers/net/wireless/rt2x00/rt2500pci.c
>>>>>>>>> index 8f15e41..30526f0 100644
>>>>>>>>> --- a/drivers/net/wireless/rt2x00/rt2500pci.c
>>>>>>>>> +++ b/drivers/net/wireless/rt2x00/rt2500pci.c
>>>>>>>>> @@ -1084,7 +1084,7 @@ static void rt2500pci_disable_radio(struct rt2x00_dev *rt2x00dev)
>>>>>>>>> static int rt2500pci_set_state(struct rt2x00_dev *rt2x00dev,
>>>>>>>>> enum dev_state state)
>>>>>>>>> {
>>>>>>>>> - u32 reg;
>>>>>>>>> + u32 reg, reg2;
>>>>>>>>> unsigned int i;
>>>>>>>>> char put_to_sleep;
>>>>>>>>> char bbp_state;
>>>>>>>>> @@ -1105,11 +1105,12 @@ static int rt2500pci_set_state(struct rt2x00_dev *rt2x00dev,
>>>>>>>>> * device has entered the correct state.
>>>>>>>>> */
>>>>>>>>> for (i = 0; i< REGISTER_BUSY_COUNT; i++) {
>>>>>>>>> - rt2x00pci_register_read(rt2x00dev, PWRCSR1,&reg);
>>>>>>>>> - bbp_state = rt2x00_get_field32(reg, PWRCSR1_BBP_CURR_STATE);
>>>>>>>>> - rf_state = rt2x00_get_field32(reg, PWRCSR1_RF_CURR_STATE);
>>>>>>>>> + rt2x00pci_register_read(rt2x00dev, PWRCSR1,&reg2);
>>>>>>>>> + bbp_state = rt2x00_get_field32(reg2, PWRCSR1_BBP_CURR_STATE);
>>>>>>>>> + rf_state = rt2x00_get_field32(reg2, PWRCSR1_RF_CURR_STATE);
>>>>>>>>> if (bbp_state == state&& rf_state == state)
>>>>>>>>> return 0;
>>>>>>>>> + rt2x00pci_register_write(rt2x00dev, PWRCSR1, reg);
>>>>>>>>> msleep(10);
>>>>>>>>> }
>>>>>>>>>
>>>>>>>>> diff --git a/drivers/net/wireless/rt2x00/rt61pci.c b/drivers/net/wireless/rt2x00/rt61pci.c
>>>>>>>>> index 9a6ceb4..68317d7 100644
>>>>>>>>> --- a/drivers/net/wireless/rt2x00/rt61pci.c
>>>>>>>>> +++ b/drivers/net/wireless/rt2x00/rt61pci.c
>>>>>>>>> @@ -1690,7 +1690,7 @@ static void rt61pci_disable_radio(struct rt2x00_dev *rt2x00dev)
>>>>>>>>>
>>>>>>>>> static int rt61pci_set_state(struct rt2x00_dev *rt2x00dev, enum dev_state state)
>>>>>>>>> {
>>>>>>>>> - u32 reg;
>>>>>>>>> + u32 reg, reg2;
>>>>>>>>> unsigned int i;
>>>>>>>>> char put_to_sleep;
>>>>>>>>>
>>>>>>>>> @@ -1707,10 +1707,11 @@ static int rt61pci_set_state(struct rt2x00_dev *rt2x00dev, enum dev_state state)
>>>>>>>>> * device has entered the correct state.
>>>>>>>>> */
>>>>>>>>> for (i = 0; i< REGISTER_BUSY_COUNT; i++) {
>>>>>>>>> - rt2x00pci_register_read(rt2x00dev, MAC_CSR12,&reg);
>>>>>>>>> - state = rt2x00_get_field32(reg, MAC_CSR12_BBP_CURRENT_STATE);
>>>>>>>>> + rt2x00pci_register_read(rt2x00dev, MAC_CSR12,&reg2);
>>>>>>>>> + state = rt2x00_get_field32(reg2, MAC_CSR12_BBP_CURRENT_STATE);
>>>>>>>>> if (state == !put_to_sleep)
>>>>>>>>> return 0;
>>>>>>>>> + rt2x00pci_register_write(rt2x00dev, MAC_CSR12, reg);
>>>>>>>>> msleep(10);
>>>>>>>>> }
>>>>>>>>>
>>>>>>>>> diff --git a/drivers/net/wireless/rt2x00/rt73usb.c b/drivers/net/wireless/rt2x00/rt73usb.c
>>>>>>>>> index 0a0c095..dbf650a 100644
>>>>>>>>> --- a/drivers/net/wireless/rt2x00/rt73usb.c
>>>>>>>>> +++ b/drivers/net/wireless/rt2x00/rt73usb.c
>>>>>>>>> @@ -1369,7 +1369,7 @@ static void rt73usb_disable_radio(struct rt2x00_dev *rt2x00dev)
>>>>>>>>>
>>>>>>>>> static int rt73usb_set_state(struct rt2x00_dev *rt2x00dev, enum dev_state state)
>>>>>>>>> {
>>>>>>>>> - u32 reg;
>>>>>>>>> + u32 reg, reg2;
>>>>>>>>> unsigned int i;
>>>>>>>>> char put_to_sleep;
>>>>>>>>>
>>>>>>>>> @@ -1386,10 +1386,11 @@ static int rt73usb_set_state(struct rt2x00_dev *rt2x00dev, enum dev_state state)
>>>>>>>>> * device has entered the correct state.
>>>>>>>>> */
>>>>>>>>> for (i = 0; i< REGISTER_BUSY_COUNT; i++) {
>>>>>>>>> - rt2x00usb_register_read(rt2x00dev, MAC_CSR12,&reg);
>>>>>>>>> - state = rt2x00_get_field32(reg, MAC_CSR12_BBP_CURRENT_STATE);
>>>>>>>>> + rt2x00usb_register_read(rt2x00dev, MAC_CSR12,&reg2);
>>>>>>>>> + state = rt2x00_get_field32(reg2, MAC_CSR12_BBP_CURRENT_STATE);
>>>>>>>>> if (state == !put_to_sleep)
>>>>>>>>> return 0;
>>>>>>>>> + rt2x00usb_register_write(rt2x00dev, MAC_CSR12, reg);
>>>>>>>>> msleep(10);
>>>>>>>>> }
>>>>>>>>>
>>>>>>>>
>>>>>>>> Has this patch been submitted to upstream stable? As I understand it,
>>>>>>>> this is a cherrypick of a patch to Linus's tree. Is that correct?
>>>>>>>>
>>>>>>>> Brad
>>>>>>>> --
>>>>>>>> Brad Figg brad.figg at canonical.com http://www.canonical.com
>>>>>>>>
>>>>>>>> --
>>>>>>>> kernel-team mailing list
>>>>>>>> kernel-team at lists.ubuntu.com
>>>>>>>> https://lists.ubuntu.com/mailman/listinfo/kernel-team
>>>>>>>>
>>>>>>
>>>>>> That still doesn't answer if it has been submitted to upstream stable. As you
>>>>>> are aware we prefer to take SRU patches from stable releases. If the patch
>>>>>> is not part of a stable release we like it if the patches have at least been
>>>>>> submitted to stable for inclusion and hopefully accepted for a future stable
>>>>>> release.
>>>>>>
>>>>>> I went up to LKML and saw that this patch was part of a bulk patch for networking
>>>>>> changes that came from David Miller. There is no indication any of these
>>>>>> patches have been submitted to stable.
>>>>>>
>>>>>> Do you plan to submit this patch to upstream stable?
>>>>>>
>>>>>> Brad
>>>>>> --
>>>>>> Brad Figg brad.figg at canonical.com http://www.canonical.com
>>>>>>
>>>>>> --
>>>>>> kernel-team mailing list
>>>>>> kernel-team at lists.ubuntu.com
>>>>>> https://lists.ubuntu.com/mailman/listinfo/kernel-team
>>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>> --
>>> kernel-team mailing list
>>> kernel-team at lists.ubuntu.com
>>> https://lists.ubuntu.com/mailman/listinfo/kernel-team
>>>
>>
>
>




More information about the kernel-team mailing list