git.openpandora.org
/
pandora-kernel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'hwmon-for-linus' of git://jdelvare.pck.nerim.net/jdelvare-2.6
[pandora-kernel.git]
/
drivers
/
net
/
wireless
/
zd1211rw
/
zd_usb.c
diff --git
a/drivers/net/wireless/zd1211rw/zd_usb.c
b/drivers/net/wireless/zd1211rw/zd_usb.c
index
75ef556
..
aac8a1c
100644
(file)
--- a/
drivers/net/wireless/zd1211rw/zd_usb.c
+++ b/
drivers/net/wireless/zd1211rw/zd_usb.c
@@
-313,6
+313,12
@@
out:
static inline void handle_retry_failed_int(struct urb *urb)
{
static inline void handle_retry_failed_int(struct urb *urb)
{
+ struct zd_usb *usb = urb->context;
+ struct zd_mac *mac = zd_usb_to_mac(usb);
+ struct ieee80211_device *ieee = zd_mac_to_ieee80211(mac);
+
+ ieee->stats.tx_errors++;
+ ieee->ieee_stats.tx_retry_limit_exceeded++;
dev_dbg_f(urb_dev(urb), "retry failed interrupt\n");
}
dev_dbg_f(urb_dev(urb), "retry failed interrupt\n");
}
@@
-487,6
+493,9
@@
static void handle_rx_packet(struct zd_usb *usb, const u8 *buffer,
if (length < sizeof(struct rx_length_info)) {
/* It's not a complete packet anyhow. */
if (length < sizeof(struct rx_length_info)) {
/* It's not a complete packet anyhow. */
+ struct ieee80211_device *ieee = zd_mac_to_ieee80211(mac);
+ ieee->stats.rx_errors++;
+ ieee->stats.rx_length_errors++;
return;
}
length_info = (struct rx_length_info *)
return;
}
length_info = (struct rx_length_info *)
@@
-923,6
+932,8
@@
static int probe(struct usb_interface *intf, const struct usb_device_id *id)
goto error;
}
goto error;
}
+ usb_reset_device(interface_to_usbdev(intf));
+
netdev = zd_netdev_alloc(intf);
if (netdev == NULL) {
r = -ENOMEM;
netdev = zd_netdev_alloc(intf);
if (netdev == NULL) {
r = -ENOMEM;
@@
-1024,6
+1035,7
@@
static int __init usb_init(void)
r = usb_register(&driver);
if (r) {
r = usb_register(&driver);
if (r) {
+ destroy_workqueue(zd_workqueue);
printk(KERN_ERR "%s usb_register() failed. Error number %d\n",
driver.name, r);
return r;
printk(KERN_ERR "%s usb_register() failed. Error number %d\n",
driver.name, r);
return r;