[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#498828: rt61pci needs one more millisecond to initialize



Package: linux-image-2.6.26-1-686
Version: 2.6.26-5
Severity: important
Tags: patch

Hello,

It is known that the rt61pci module needs one more millisecond to
initialize after the wireless card's firmware has been uploaded.
This problem was fixed with the following commit in 2.6.27-rcX
series:

=== 8< ===
commit e6d3e902088ac5da77b074f513e3cb80422ff471
Author: Ivo van Doorn <ivdoorn@gmail.com>
Date:   Sun Jul 27 15:06:50 2008 +0200

    rt2x00: rt61pci needs another millisecond after firmware upload
=== >8 ===

If this patch is not applied, then rt61pci becomes unresponsive after
one brings the interface down and up.

The appended patch fixes this issue. It applies (with an offset)
to Debian's kernel sources (2.6.26-5).

Regards,

M. Vefa Bicakci

Note: I am attaching the patch as well, in case my e-mail
client messes up the patch.

=== 8< ===
commit e6d3e902088ac5da77b074f513e3cb80422ff471
Author: Ivo van Doorn <ivdoorn@gmail.com>
Date:   Sun Jul 27 15:06:50 2008 +0200

    rt2x00: rt61pci needs another millisecond after firmware upload

    After the hardware has indicated the firmware upload has completed
    and the device is ready, we should wait another millisecond to
    make sure the device is really ready to continue.

    Without this timout, bringing the interface down and up again will
    fail due to incorrect register initialization.

    Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com>
    Signed-off-by: John W. Linville <linville@tuxdriver.com>

diff --git a/drivers/net/wireless/rt2x00/rt61pci.c
b/drivers/net/wireless/rt2x00/rt61pci.c
index fbe2a65..087e90b 100644
--- a/drivers/net/wireless/rt2x00/rt61pci.c
+++ b/drivers/net/wireless/rt2x00/rt61pci.c
@@ -1004,6 +1004,11 @@ static int rt61pci_load_firmware(struct rt2x00_dev
*rt2x00dev, const void *data,
 	}

 	/*
+	 * Hardware needs another millisecond before it is ready.
+	 */
+	msleep(1);
+
+	/*
 	 * Reset MAC and BBP registers.
 	 */
 	reg = 0;

=== >8 ===

commit e6d3e902088ac5da77b074f513e3cb80422ff471
Author: Ivo van Doorn <ivdoorn@gmail.com>
Date:   Sun Jul 27 15:06:50 2008 +0200

    rt2x00: rt61pci needs another millisecond after firmware upload
    
    After the hardware has indicated the firmware upload has completed
    and the device is ready, we should wait another millisecond to
    make sure the device is really ready to continue.
    
    Without this timout, bringing the interface down and up again will
    fail due to incorrect register initialization.
    
    Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com>
    Signed-off-by: John W. Linville <linville@tuxdriver.com>

diff --git a/drivers/net/wireless/rt2x00/rt61pci.c b/drivers/net/wireless/rt2x00/rt61pci.c
index fbe2a65..087e90b 100644
--- a/drivers/net/wireless/rt2x00/rt61pci.c
+++ b/drivers/net/wireless/rt2x00/rt61pci.c
@@ -1004,6 +1004,11 @@ static int rt61pci_load_firmware(struct rt2x00_dev *rt2x00dev, const void *data,
 	}
 
 	/*
+	 * Hardware needs another millisecond before it is ready.
+	 */
+	msleep(1);
+
+	/*
 	 * Reset MAC and BBP registers.
 	 */
 	reg = 0;


Reply to: