Search Linux Wireless

Re: [PATCH] carl9170: fix sending URBs with wrong type when using full-speed

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 07.08.2014 12:51, Christian Lamparter wrote:
my comments:
  - Patch needs a "signed-off-by: <Your Name> <Your Mail> tag"
    (see Section 12 - Sign your work [0]) for details.

  - Do you see any improvement on a fullspeed port now?
    (If so, this should be a stable- patch)

Yes, it actually works now. Before this change you could crash the system because of the constant logging of the warnings it was almost dead. My embedded device just rebooted after a while (maybe the watchdog triggered).

@@ -1050,6 +1056,21 @@ static int carl9170_usb_probe(struct usb_interface *intf,
        ar->intf = intf;
        ar->features = id->driver_info;

+       /* We need to remember the type of endpoint 4 because it differs
+        * between high- and full-speed configuration. The high-speed
+        * configuration specifies it as interrupt and the full-speed
+        * configuration as bulk endpoint. This information is required
+        * later when sending urbs to that endpoint.
+        */
+       for (i = 0; i < intf->cur_altsetting->desc.bNumEndpoints; ++i) {
+               ep = &intf->cur_altsetting->endpoint[i].desc;
+
+               if (usb_endpoint_dir_out(ep) &&
+                   usb_endpoint_num(ep) == AR9170_USB_EP_CMD)
+                       ar->usb_ep_cmd_is_bulk =
+                               usb_endpoint_type(ep) == USB_ENDPOINT_XFER_BULK;
What about this:

                if (usb_endpoint_num(ep) == AR9170_USB_EP_CMD &&
                    usb_endpoint_is_bulk_out(ep))
                        ar->usb_ep_cmd_is_bulk = true;
(the driver context "ar" is zero'd out - It is not necessary to set
usb_ep_cmd_is_bulk to false.)

This is what my first patch has done but we need to check the endpoint type if its bulk or not. Otherwise it will fail in the high-speed case.
Or did you mean:

		if (usb_endpoint_num(ep) == AR9170_USB_EP_CMD &&
		    usb_endpoint_is_bulk_out(ep) &&
		    usb_endpoint_type(ep) == USB_ENDPOINT_XFER_BULK)
			ar->usb_ep_cmd_is_bulk = true;
?

BTW: I'll make a patch to carl9170 firmware too.

great!

I will fix the remaining things you mentioned.

thx,
ron

--
Ronald Wahl - ronald.wahl@xxxxxxxxxxx - Phone +49 375271349-0 Fax -99
Raritan Deutschland GmbH, Kornmarkt 7, 08056 Zwickau, Germany
USt-IdNr. DE813094160, Steuer-Nr. 227/117/01749
Amtsgericht Chemnitz HRB 23605
Geschäftsführung: Stuart Hopper, Ralf Ploenes
--
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




[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux