diff options
author | David Vrabel <david.vrabel@csr.com> | 2008-10-27 20:12:33 +0300 |
---|---|---|
committer | David Vrabel <david.vrabel@csr.com> | 2008-10-28 15:10:25 +0300 |
commit | 4656d5de9555e263c5b4c0462b5af7e7bded1b42 (patch) | |
tree | c8406b562bd8f7796da869ce152c7d75480e2dda /drivers/usb/wusbcore/wusbhc.h | |
parent | 1cde7f68ced8d10a20dd2370e9d1d22ab3c1ea5c (diff) | |
download | linux-4656d5de9555e263c5b4c0462b5af7e7bded1b42.tar.xz |
wusb: reset WUSB devices with SetAddress(0)
Using a Reset Device IE to reset a WUSB device is too heavyweight as it
causes the devcie to disconnect (which the USB stack does not expect and
cannot handle). Instead, do a SetAddress(0); SetAddress(AuthAddr) for
authenticated devices.
Unauthenticated devices will not be reset and the stack will have to rely
on the device timing out after TrustTimeout and disconnecting.
Signed-off-by: David Vrabel <david.vrabel@csr.com>
Diffstat (limited to 'drivers/usb/wusbcore/wusbhc.h')
-rw-r--r-- | drivers/usb/wusbcore/wusbhc.h | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/drivers/usb/wusbcore/wusbhc.h b/drivers/usb/wusbcore/wusbhc.h index b9bdf5a5f11b..8fef934ad2f3 100644 --- a/drivers/usb/wusbcore/wusbhc.h +++ b/drivers/usb/wusbcore/wusbhc.h @@ -154,7 +154,6 @@ struct wusb_port { u16 status; u16 change; struct wusb_dev *wusb_dev; /* connected device's info */ - unsigned reset_count; u32 ptk_tkid; }; @@ -387,10 +386,8 @@ extern void wusbhc_devconnect_destroy(struct wusbhc *); extern int wusbhc_devconnect_start(struct wusbhc *wusbhc, const struct wusb_ckhdid *chid); extern void wusbhc_devconnect_stop(struct wusbhc *wusbhc); -extern int wusbhc_devconnect_auth(struct wusbhc *, u8); extern void wusbhc_handle_dn(struct wusbhc *, u8 srcaddr, struct wusb_dn_hdr *dn_hdr, size_t size); -extern int wusbhc_dev_reset(struct wusbhc *wusbhc, u8 port); extern void __wusbhc_dev_disable(struct wusbhc *wusbhc, u8 port); extern int wusb_usb_ncb(struct notifier_block *nb, unsigned long val, void *priv); @@ -436,6 +433,7 @@ extern void wusb_dev_sec_rm(struct wusb_dev *) ; extern int wusb_dev_4way_handshake(struct wusbhc *, struct wusb_dev *, struct wusb_ckhdid *ck); void wusbhc_gtk_rekey(struct wusbhc *wusbhc); +int wusb_dev_update_address(struct wusbhc *wusbhc, struct wusb_dev *wusb_dev); /* WUSB Cluster ID handling */ |