I felt that I had to reply, because I couldn't find a solution anywhere on the net and there must be someone that still have this problem.
This is how I got the Huawei E220 to work at full speed (3.6 / 7.2 Mbit/s). No patches are needed, just configuration.
I flashed the wl-500gP with
http://koppel.cz/cdmawifi/download/166/
* In Connection Mode (USB Connection) I choose Dial-Up and entered the vendor=0x12d1 product=0x1003 and to dial *99#.
It now works but max out at 20kb/s.
* Now change the connection mode to User Defined.
* Telnet to the wl-500gP.
* Copy the files from /tmp/ppp/dialup to /usr/local/dial.
* Alter the file /usr/local/dial/update, replace "/tmp/ppp/dialup/" with "/usr/local/dial/"
* Alter the file /usr/local/dial/dial at row 6 to
"insmod usbserial vendor=$(nvram get dialup_vid) product=$(nvram get dialup_pid) maxpacketsize=4096"
(I think this is the trick, the maxpacketsize)
* Alter the file /usr/local/dial/dialup. Replace "115200" with "921600". (dunno if this is important)
That's it.
To save it all.
flashfs save
flashfs commit
flashfs enable
and
reboot
Now in the system log:
Jan 1 00:00:44 kernel: usbserial.c: Generic converter detected
Jan 1 00:00:44 kernel: usbserial.c: Buffer size for bulk_in is 4096 modem reports 64
Jan 1 00:00:44 kernel: usbserial.c: Buffer size for bulk_out is 4096 modem reports 64
Jan 1 00:00:44 kernel: usbserial.c: Generic converter now attached to /dev/usb/tts/0
I now max out at 650kb/s. Much more pleasant
/David.