* [PATCH 07/11] ath9k_htc: Use USB reboot
@ 2010-04-23 4:58 Sujith
2010-04-23 20:18 ` Gábor Stefanik
2010-04-29 16:14 ` Kalle Valo
0 siblings, 2 replies; 6+ messages in thread
From: Sujith @ 2010-04-23 4:58 UTC (permalink / raw)
To: linville; +Cc: linux-wireless
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@atheros.com>
---
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
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH 07/11] ath9k_htc: Use USB reboot
2010-04-23 4:58 [PATCH 07/11] ath9k_htc: Use USB reboot Sujith
@ 2010-04-23 20:18 ` Gábor Stefanik
2010-04-24 0:47 ` Sujith
2010-04-29 16:14 ` Kalle Valo
1 sibling, 1 reply; 6+ messages in thread
From: Gábor Stefanik @ 2010-04-23 20:18 UTC (permalink / raw)
To: Sujith; +Cc: linville, linux-wireless
On Fri, Apr 23, 2010 at 6:58 AM, Sujith <Sujith.Manoharan@atheros.com> 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@atheros.com>
> ---
> 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@vger.kernel.org
> 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. :-)
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 07/11] ath9k_htc: Use USB reboot
2010-04-23 20:18 ` Gábor Stefanik
@ 2010-04-24 0:47 ` Sujith
2010-04-24 1:38 ` Gábor Stefanik
0 siblings, 1 reply; 6+ messages in thread
From: Sujith @ 2010-04-24 0:47 UTC (permalink / raw)
To: G bor Stefanik; +Cc: linville, linux-wireless
G bor Stefanik wrote:
> This patch seems to be the wrong way around... or is it supposed to be
> applied using "patch -R"?
What's wrong ?
Sujith
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 07/11] ath9k_htc: Use USB reboot
2010-04-24 0:47 ` Sujith
@ 2010-04-24 1:38 ` Gábor Stefanik
0 siblings, 0 replies; 6+ messages in thread
From: Gábor Stefanik @ 2010-04-24 1:38 UTC (permalink / raw)
To: Sujith; +Cc: linville, linux-wireless
2010/4/24 Sujith <Sujith.Manoharan@atheros.com>:
> G bor Stefanik wrote:
>> This patch seems to be the wrong way around... or is it supposed to be
>> applied using "patch -R"?
>
> What's wrong ?
>
> Sujith
>
Sorry... I apparently thought you were trying to *remove* USB reboot
support, rather than add it.
--
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 07/11] ath9k_htc: Use USB reboot
2010-04-23 4:58 [PATCH 07/11] ath9k_htc: Use USB reboot Sujith
2010-04-23 20:18 ` Gábor Stefanik
@ 2010-04-29 16:14 ` Kalle Valo
2010-05-06 9:12 ` Sujith
1 sibling, 1 reply; 6+ messages in thread
From: Kalle Valo @ 2010-04-29 16:14 UTC (permalink / raw)
To: Sujith; +Cc: linville, linux-wireless
Sujith <Sujith.Manoharan@atheros.com> writes:
> 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.
[...]
> +static void ath9k_hif_usb_reboot(struct usb_device *udev)
> +{
> + u32 reboot_cmd = 0xffffffff;
A define for the actual command value would be nice here.
--
Kalle Valo
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 07/11] ath9k_htc: Use USB reboot
2010-04-29 16:14 ` Kalle Valo
@ 2010-05-06 9:12 ` Sujith
0 siblings, 0 replies; 6+ messages in thread
From: Sujith @ 2010-05-06 9:12 UTC (permalink / raw)
To: Kalle Valo; +Cc: linville, linux-wireless
Kalle Valo wrote:
> Sujith <Sujith.Manoharan@atheros.com> writes:
>
> > 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.
>
> [...]
>
> > +static void ath9k_hif_usb_reboot(struct usb_device *udev)
> > +{
> > + u32 reboot_cmd = 0xffffffff;
>
> A define for the actual command value would be nice here.
Sorry, I was out and John has merged this patch.
Will do this later, thanks for the review.
Sujith
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2010-05-06 9:11 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-04-23 4:58 [PATCH 07/11] ath9k_htc: Use USB reboot Sujith
2010-04-23 20:18 ` Gábor Stefanik
2010-04-24 0:47 ` Sujith
2010-04-24 1:38 ` Gábor Stefanik
2010-04-29 16:14 ` Kalle Valo
2010-05-06 9:12 ` Sujith
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).