linux/drivers/net/wireless
Jussi Kivilinna 59342f6a6b zd1211rw: fix to work on OHCI
zd1211 devices register 'EP 4 OUT' endpoint as Interrupt type on USB 2.0:

      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x04  EP 4 OUT
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               1

However on USB 1.1 endpoint becomes Bulk:

      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x04  EP 4 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0

Commit 37939810b9 assumed that endpoint is
always interrupt type and changed usb_bulk_msg() calls to usb_interrupt_msg().

Problem here is that usb_bulk_msg() on interrupt endpoint selfcorrects the
call and changes requested pipe to interrupt type (see usb_bulk_msg).
However with usb_interrupt_msg() on bulk endpoint does not correct the
pipe type to bulk, but instead URB is submitted with interrupt type pipe.

So pre-2.6.39 used usb_bulk_msg() and therefore worked with both endpoint
types, however in 2.6.39 usb_interrupt_msg() with bulk endpoint causes
ohci_hcd to fail submitted URB instantly with -ENOSPC and preventing zd1211rw
from working with OHCI.

Fix this by detecting endpoint type and using correct endpoint/pipe types
for URB. Also fix asynchronous zd_usb_iowrite16v_async() to use right
URB type on 'EP 4 OUT'.

Cc: stable@kernel.org
Signed-off-by: Jussi Kivilinna <jussi.kivilinna@mbnet.fi>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2011-05-31 14:47:26 -04:00
..
ath Merge git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 into for-davem 2011-05-27 15:18:35 -04:00
b43 Merge git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 into for-davem 2011-05-27 15:18:35 -04:00
b43legacy Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 into for-davem 2011-05-16 19:32:19 -04:00
hostap net: call dev_alloc_name from register_netdevice 2011-05-05 10:57:45 -07:00
ipw2x00 treewide: fix a few typos in comments 2011-05-10 10:16:21 +02:00
iwlegacy Merge git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 into for-davem 2011-05-27 15:18:35 -04:00
iwlwifi Merge branch 'for-davem' of ssh://master.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 2011-05-25 13:28:55 -04:00
iwmc3200wifi Merge ssh://master.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 into for-davem 2011-05-24 16:47:54 -04:00
libertas libertas: Set command sequence number later to ensure consistency 2011-05-31 14:47:23 -04:00
libertas_tf
mwifiex Merge git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 into for-davem 2011-05-27 15:18:35 -04:00
orinoco Fix common misspellings 2011-03-31 11:26:23 -03:00
p54 Merge ssh://master.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 into for-davem 2011-05-24 16:47:54 -04:00
prism54 Fix common misspellings 2011-03-31 11:26:23 -03:00
rt2x00 Merge git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 into for-davem 2011-05-27 15:18:35 -04:00
rtl818x
rtlwifi Merge git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 into for-davem 2011-05-27 15:18:35 -04:00
wl12xx wl12xx: fix oops in sched_scan when forcing a passive scan 2011-05-31 14:47:26 -04:00
wl1251 Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 into for-davem 2011-04-12 16:18:44 -04:00
zd1211rw zd1211rw: fix to work on OHCI 2011-05-31 14:47:26 -04:00
adm8211.c
adm8211.h
airo_cs.c
airo.c Merge branch 'for-davem' of ssh://master.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 2011-05-25 13:28:55 -04:00
airo.h
at76c50x-usb.c
at76c50x-usb.h
atmel_cs.c Fix common misspellings 2011-03-31 11:26:23 -03:00
atmel_pci.c
atmel.c Fix common misspellings 2011-03-31 11:26:23 -03:00
atmel.h
Kconfig wireless: mwifiex: initial commit for Marvell mwifiex driver 2011-03-30 14:15:17 -04:00
mac80211_hwsim.c net: call dev_alloc_name from register_netdevice 2011-05-05 10:57:45 -07:00
Makefile wireless: mwifiex: initial commit for Marvell mwifiex driver 2011-03-30 14:15:17 -04:00
mwl8k.c mwl8k: Do not ask mac80211 to generate IV for crypto keys 2011-05-05 14:59:24 -04:00
ray_cs.c
ray_cs.h
rayctl.h Fix common misspellings 2011-03-31 11:26:23 -03:00
rndis_wlan.c cfg80211: Use consistent BSS matching between scan and sme 2011-05-19 10:37:18 -04:00
wl3501_cs.c Fix common misspellings 2011-03-31 11:26:23 -03:00
wl3501.h
zd1201.c
zd1201.h