On Fri, Apr 23, 2010 at 6:58 AM, Sujith <Sujith.Manoharan@xxxxxxxxxxx> wrote: > So, apparently there is a USB reboot command > that the target accepts. Using this instead of > usb_reset_device() fixes the issue of "descriptor read error" > that pops up on repeated load/unload. > > Signed-off-by: Sujith <Sujith.Manoharan@xxxxxxxxxxx> > --- > drivers/net/wireless/ath/ath9k/hif_usb.c | 22 +++++++++++++++++++++- > 1 files changed, 21 insertions(+), 1 deletions(-) > > diff --git a/drivers/net/wireless/ath/ath9k/hif_usb.c b/drivers/net/wireless/ath/ath9k/hif_usb.c > index cee5feb..31665c5 100644 > --- a/drivers/net/wireless/ath/ath9k/hif_usb.c > +++ b/drivers/net/wireless/ath/ath9k/hif_usb.c > @@ -889,6 +889,26 @@ err_alloc: > return ret; > } > > +static void ath9k_hif_usb_reboot(struct usb_device *udev) > +{ > + u32 reboot_cmd = 0xffffffff; > + void *buf; > + int ret; > + > + buf = kmalloc(4, GFP_KERNEL); > + if (!buf) > + return; > + > + memcpy(buf, &reboot_cmd, 4); > + > + ret = usb_bulk_msg(udev, usb_sndbulkpipe(udev, USB_REG_OUT_PIPE), > + buf, 4, NULL, HZ); > + if (ret) > + dev_err(&udev->dev, "ath9k_htc: USB reboot failed\n"); > + > + kfree(buf); > +} > + > static void ath9k_hif_usb_disconnect(struct usb_interface *interface) > { > struct usb_device *udev = interface_to_usbdev(interface); > @@ -903,7 +923,7 @@ static void ath9k_hif_usb_disconnect(struct usb_interface *interface) > } > > if (hif_dev->flags & HIF_USB_START) > - usb_reset_device(udev); > + ath9k_hif_usb_reboot(udev); > > kfree(hif_dev); > dev_info(&udev->dev, "ath9k_htc: USB layer deinitialized\n"); > -- > 1.7.0.5 > > -- > To unsubscribe from this list: send the line "unsubscribe linux-wireless" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html > This patch seems to be the wrong way around... or is it supposed to be applied using "patch -R"? -- Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-) -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html