Agreed.

Btw, I have found some output from such a DWA-140 with compat-wireless
with debugging enabled. This prints a much better chip info:

http://rt2x00.serialmonkey.com/phpBB/viewtopic.php?f=5&t=6061
> Bus 003 Device 007: ID 07d1:3c0a D-Link System DWA-140 RangeBooster N USB 
> Adapter(rev.B2)
..
> phy1 -> rt2x00_set_chip: Info - Chipset detected - rt: 3071, rf: 0008, rev: 
> 0213.

So it looks like it is a 3071 chipset. And from the code snippet below
it can be seen that for that chipset the rt2800usb wants to load the
second image in a firmware of size 8KiB.

http://git.kernel.org/?p=linux/kernel/git/stable/linux-2.6.38.y.git;a=blob;f=drivers/net/wireless/rt2x00/rt2800usb.c;h=197a36c05fdaf18a294000b9eae8b5dad2073eea;hb=HEAD
116         /*
117          * Check which section of the firmware we need.
118          */
119         if (rt2x00_rt(rt2x00dev, RT2860) ||
120             rt2x00_rt(rt2x00dev, RT2872) ||
121             rt2x00_rt(rt2x00dev, RT3070)) {
122                 offset = 0;
123                 length = 4096;
124         } else {
125                 offset = 4096;
126                 length = 4096;
127         }

For these chips the rt2800usb needs to load the concatenated second
firmware image from an 8KiB firmware, but natty still comes with the
4KiB rt2870.bin. In 1.53 2870.bin doubles in size to exactly 8KiB. Two
4KiB drivers are concatenated.


In preparation for a SRU we should look if anything formerly working
potentially breaks with the new firmware. Ralink says it is backward
compatible, so older drivers that load the new firmware should be
fine:

http://rt2x00.serialmonkey.com/pipermail/users_rt2x00.serialmonkey.com/2011-March/003380.html
Ralink's Shiang Tu says:
We always suggest to use latest firmware, because it's backward
compatible and also has some enhancement, bug fix, or support of new
chip
For rt5390 or newer chips, it shall upgrade the firmware to this
version, or it may malfunction.


The USB drivers in staging have been modified (vs. the drivers from
the Ralink website) to load 4KiB firmware. From looking at the code
they should just take the first half of an 8KiB firmware and ignore
the rest. Nevertheless I would prefer to have a regression test with
RT2860, RT2872 or RT3070 based hardware with a USB driver from staging
and the oneiric 8KiB rt2870.bin. Maybe we can find someone who can do
this. If testing that it might be good to move the other Ralink
firmware files out of /lib/firmware temporarily (or disable them by
renaming) to prove that it loads the 8KiB rt2870.bin (md5:
36c944c3138125605d28c0a3a1338be9) from linux-firmware 1.53.


What follows is just a bunch of stuff I have looked up that might come
in handy for reference:

older kernels have more staging drivers:
lucid: 2.6.32
rt2860sta
rt2870sta <-- usb
rt3070sta <-- usb
rt3090sta

maverick: 2.6.35
rt2860sta
rt2870sta <-- usb
rt3070sta <-- usb

natty: 2.6.38
rt2860sta
rt2870sta <-- usb

Changelog
linux-firmware (1.53) oneiric
has 3 patches about rt2* :
rt2870sta: Use latest firmware for RT3070 and RT3071
rt2860sta: Use latest firmware for RT3090
linux-firmware: rt2800pci: rt2800usb: Firmware update <--

The file we want to replace is the same from lucid to natty:
/lib/firmware/rt2870.bin
md5:e4b60f5bb4980a26cbac32be690451d6

current natty release linux-firmware 1.52
md5sum rt{2,3}*
99bce75086ea635a2f8288d9b835f787  rt2561.bin
2878d5eaa4ff907d4df36a834915aa53  rt2561s.bin
9998485bc152cf0f39dd61a33b92ad9b  rt2661.bin
7f55011396eff4983f26bb7dd7339fb3  rt2860.bin
e4b60f5bb4980a26cbac32be690451d6  rt2870.bin <--
7c540794d71ad684c1e97e80a59d8edf  rt3070.bin
faf3eb6379501e4282464bd68de9a7fe  rt3071.bin
0efb51d2d3f4be99cb491bca0dc025fb  rt3090.bin

current Maverick proposed linux-firmware 1.38.8
md5sum rt{2,3}*
99bce75086ea635a2f8288d9b835f787  rt2561.bin
2878d5eaa4ff907d4df36a834915aa53  rt2561s.bin
9998485bc152cf0f39dd61a33b92ad9b  rt2661.bin
7f55011396eff4983f26bb7dd7339fb3  rt2860.bin
e4b60f5bb4980a26cbac32be690451d6  rt2870.bin <--
7c540794d71ad684c1e97e80a59d8edf  rt3070.bin
faf3eb6379501e4282464bd68de9a7fe  rt3071.bin
0efb51d2d3f4be99cb491bca0dc025fb  rt3090.bin

current Lucid proposed linux-firmware 1.34.10
md5sum rt{2,3}*
99bce75086ea635a2f8288d9b835f787  rt2561.bin
2878d5eaa4ff907d4df36a834915aa53  rt2561s.bin
9998485bc152cf0f39dd61a33b92ad9b  rt2661.bin
7f55011396eff4983f26bb7dd7339fb3  rt2860.bin
e4b60f5bb4980a26cbac32be690451d6  rt2870.bin <--
7c540794d71ad684c1e97e80a59d8edf  rt3070.bin
faf3eb6379501e4282464bd68de9a7fe  rt3071.bin

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/762987

Title:
  RT2870 WLAN Stick (D-Link DWA 140) not working. firmware does not
  support detected chipset

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to