Re: Urb completion handler returns -32
Hi Alan, The device replied with a STALL. The device runs at low speed or full speed and is connected through a USB-2 hub Yes, my device is full speed (12Mbps) device and connected to 2.0 root hub. So how to avoid getting the STALL? I attached the usbmon log and Ellisys USB analyser log. I connected the eight similar devices(USB Bluetooth Dongles) to host and captured the logs. My device numbers are here : Bus 001 Device Numbers (063\066\067\068\069\070\071\072) Usbmon log shows STALL packets for INT in URB completion handler $ tail -f /tmp/1.mon.out | grep C Ii 8800aaedb780 3159611663 C Ii:1:072:1 -32:1 0 880131449cc0 3360277718 C Ii:1:068:1 -32:1 0 8800aaedb9c0 3360278570 C Ii:1:069:1 -32:1 0 880131f52000 3360291656 C Ii:1:067:1 -32:1 0 8800aae88600 3360299542 C Ii:1:068:1 -32:1 0 On receiving the STALL response, work queue got scheduled in INT in URB completion handler for clearing halt condition(used usb_clear_halt() API in that work queue) I enabled “Drop Start of Frames and Keep Alives” “Drop NAK transactions” recording options before taking the Ellisys USB analyser log. I don’t see STALL packet in Ellisys USB analyser log, but only observed in usbmon log. Does it mean, device is not sending the STALL, but only Host controller driver is sending it to my USB device driver? On Mon, Sep 29, 2014 at 7:01 PM, Alan Stern st...@rowland.harvard.edu wrote: On Mon, 29 Sep 2014, Naveen Kumar Parna wrote: Hi All, I want to know the reason for getting INT urb completion status as -EPIPE ? The most common reasons are: The device replied with a STALL. The device runs at low speed or full speed and is connected through a USB-2 hub. Under those conditions, URBs complete with -EPIPE status when the device is disconnected. Alan Stern -- To unsubscribe from this list: send the line unsubscribe linux-usb in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: Urb completion handler returns -32
The device tree is here: root@naveen-OptiPlex-745:/home/naveen# lsusb -t 1-1.5.2:1.2: No such file or directory 1-1.5.3:1.2: No such file or directory 1-1.5.4:1.2: No such file or directory 1-1.5.5:1.2: No such file or directory 1-1.5.6:1.2: No such file or directory 1-1.5.7.1:1.2: No such file or directory 1-1.5.7.2:1.2: No such file or directory 1-1.5.7.3:1.2: No such file or directory /: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ehci_hcd/2p, 480M |__ Port 1: Dev 2, If 0, Class=hub, Driver=hub/6p, 480M |__ Port 1: Dev 3, If 0, Class=HID, Driver=usbhid, 12M |__ Port 1: Dev 3, If 1, Class=HID, Driver=usbhid, 12M /: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci_hcd/2p, 480M |__ Port 1: Dev 2, If 0, Class=hub, Driver=hub/6p, 480M |__ Port 3: Dev 3, If 0, Class=HID, Driver=usbhid, 480M |__ Port 3: Dev 3, If 1, Class=HID, Driver=usbhid, 480M |__ Port 3: Dev 3, If 2, Class=stor., Driver=usb-storage, 480M |__ Port 3: Dev 3, If 3, Class=stor., Driver=usb-storage, 480M |__ Port 5: Dev 4, If 0, Class=hub, Driver=hub/7p, 12M |__ Port 1: Dev 5, If 0, Class=hub, Driver=hub/7p, 12M |__ Port 1: Dev 12, If 0, Class=vend., Driver=babel, 12M |__ Port 2: Dev 13, If 0, Class=vend., Driver=babel, 12M |__ Port 3: Dev 14, If 0, Class=vend., Driver=babel, 12M |__ Port 4: Dev 15, If 0, Class=vend., Driver=babel, 12M |__ Port 5: Dev 16, If 0, Class=vend., Driver=babel, 12M |__ Port 6: Dev 17, If 0, Class=vend., Driver=babel, 12M |__ Port 7: Dev 18, If 0, Class=hub, Driver=hub/2p, 12M |__ Port 1: Dev 22, If 0, Class=vend., Driver=babel, 12M |__ Port 2: Dev 23, If 0, Class=vend., Driver=babel, 12M |__ Port 2: Dev 66, If 0, Class='bInterfaceClass 0xe0 not yet handled', Driver=mybtusb, 12M |__ Port 2: Dev 66, If 1, Class='bInterfaceClass 0xe0 not yet handled', Driver=mybtusb, 12M |__ Port 2: Dev 66, If 2, Class=app., Driver=, 12M |__ Port 4: Dev 63, If 0, Class='bInterfaceClass 0xe0 not yet handled', Driver=mybtusb, 12M |__ Port 4: Dev 63, If 1, Class='bInterfaceClass 0xe0 not yet handled', Driver=mybtusb, 12M |__ Port 4: Dev 63, If 2, Class=app., Driver=, 12M |__ Port 3: Dev 67, If 0, Class='bInterfaceClass 0xe0 not yet handled', Driver=mybtusb, 12M |__ Port 3: Dev 67, If 1, Class='bInterfaceClass 0xe0 not yet handled', Driver=mybtusb, 12M |__ Port 3: Dev 67, If 2, Class=app., Driver=, 12M |__ Port 5: Dev 68, If 0, Class='bInterfaceClass 0xe0 not yet handled', Driver=mybtusb, 12M |__ Port 5: Dev 68, If 1, Class='bInterfaceClass 0xe0 not yet handled', Driver=mybtusb, 12M |__ Port 5: Dev 68, If 2, Class=app., Driver=, 12M |__ Port 6: Dev 69, If 0, Class='bInterfaceClass 0xe0 not yet handled', Driver=mybtusb, 12M |__ Port 6: Dev 69, If 1, Class='bInterfaceClass 0xe0 not yet handled', Driver=mybtusb, 12M |__ Port 6: Dev 69, If 2, Class=app., Driver=, 12M |__ Port 7: Dev 11, If 0, Class=hub, Driver=hub/3p, 12M |__ Port 1: Dev 70, If 0, Class='bInterfaceClass 0xe0 not yet handled', Driver=mybtusb, 12M |__ Port 1: Dev 70, If 1, Class='bInterfaceClass 0xe0 not yet handled', Driver=mybtusb, 12M |__ Port 1: Dev 70, If 2, Class=app., Driver=, 12M |__ Port 2: Dev 71, If 0, Class='bInterfaceClass 0xe0 not yet handled', Driver=mybtusb, 12M |__ Port 2: Dev 71, If 1, Class='bInterfaceClass 0xe0 not yet handled', Driver=mybtusb, 12M |__ Port 2: Dev 71, If 2, Class=app., Driver=, 12M |__ Port 3: Dev 72, If 0, Class='bInterfaceClass 0xe0 not yet handled', Driver=mybtusb, 12M |__ Port 3: Dev 72, If 1, Class='bInterfaceClass 0xe0 not yet handled', Driver=mybtusb, 12M |__ Port 3: Dev 72, If 2, Class=app., Driver=, 12M On Tue, Sep 30, 2014 at 12:05 PM, Naveen Kumar Parna pnaveen...@gmail.com wrote: Hi Alan, The device replied with a STALL. The device runs at low speed or full speed and is connected through a USB-2 hub Yes, my device is full speed (12Mbps) device and connected to 2.0 root hub. So how to avoid getting the STALL? I attached the usbmon log and Ellisys USB analyser log. I connected the eight similar devices(USB Bluetooth Dongles) to host and captured the logs. My device numbers are here : Bus 001 Device Numbers (063\066\067\068\069\070\071\072) Usbmon log shows STALL packets for INT in URB completion handler $ tail -f /tmp/1.mon.out | grep C Ii 8800aaedb780 3159611663 C Ii:1:072:1 -32:1 0 880131449cc0 3360277718 C Ii:1:068:1 -32:1 0 8800aaedb9c0 3360278570 C Ii:1:069:1 -32:1 0
Re: Urb completion handler returns -32
On Tue, 30 Sep 2014, Naveen Kumar Parna wrote: Hi Alan, The device replied with a STALL. The device runs at low speed or full speed and is connected through a USB-2 hub Yes, my device is full speed (12Mbps) device and connected to 2.0 root hub. So how to avoid getting the STALL? I don't know. I attached the usbmon log and Ellisys USB analyser log. The Ellisys viewer program runs under Windows, but I'm using Linux so I'm unable to view the analyzer log. I connected the eight similar devices(USB Bluetooth Dongles) to host and captured the logs. My device numbers are here : Bus 001 Device Numbers (063\066\067\068\069\070\071\072) Usbmon log shows STALL packets for INT in URB completion handler $ tail -f /tmp/1.mon.out | grep C Ii 8800aaedb780 3159611663 C Ii:1:072:1 -32:1 0 880131449cc0 3360277718 C Ii:1:068:1 -32:1 0 8800aaedb9c0 3360278570 C Ii:1:069:1 -32:1 0 880131f52000 3360291656 C Ii:1:067:1 -32:1 0 8800aae88600 3360299542 C Ii:1:068:1 -32:1 0 On receiving the STALL response, work queue got scheduled in INT in URB completion handler for clearing halt condition(used usb_clear_halt() API in that work queue) I enabled “Drop Start of Frames and Keep Alives” “Drop NAK transactions” recording options before taking the Ellisys USB analyser log. I don’t see STALL packet in Ellisys USB analyser log, but only observed in usbmon log. Does it mean, device is not sending the STALL, but only Host controller driver is sending it to my USB device driver? It probably means that the device is not sending the STALL, but the hub it is plugged into is sending the STALL. Alan Stern -- To unsubscribe from this list: send the line unsubscribe linux-usb in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Urb completion handler returns -32
Hi All, I want to know the reason for getting INT urb completion status as -EPIPE ? Thanks, Pnav -- To unsubscribe from this list: send the line unsubscribe linux-usb in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: Urb completion handler returns -32
Hi All, Sorry I forgot to add this small detail: I am having a USB bluetooth dongle and it support Control \ Interrupt \ Bulk \ Isochronous Transfers. I am having a device driver for this, In driver probe function I am submitting an URB to INT endpoint. And in the completion handler again re-queue that URB. Most of the times I see urb-status as -32(EPIPE) in INT urb completion handler. Here I don’t know why I am getting this error. This error observed if I connect more than three devices to host via USB-Hub. Can anyone tell me what might be the reason for getting this error. Thanks, Pnav On Mon, Sep 29, 2014 at 5:49 PM, Naveen Kumar Parna pnaveen...@gmail.com wrote: Hi All, I want to know the reason for getting INT urb completion status as -EPIPE ? Thanks, Pnav -- To unsubscribe from this list: send the line unsubscribe linux-usb in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: Urb completion handler returns -32
On Mon, 29 Sep 2014, Naveen Kumar Parna wrote: Hi All, I want to know the reason for getting INT urb completion status as -EPIPE ? The most common reasons are: The device replied with a STALL. The device runs at low speed or full speed and is connected through a USB-2 hub. Under those conditions, URBs complete with -EPIPE status when the device is disconnected. Alan Stern -- To unsubscribe from this list: send the line unsubscribe linux-usb in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html