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 <pnaveenkos@xxxxxxxxx> 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" > > ffff8800aaedb780 3159611663 C Ii:1:072:1 -32:1 0 > > ffff880131449cc0 3360277718 C Ii:1:068:1 -32:1 0 > > ffff8800aaedb9c0 3360278570 C Ii:1:069:1 -32:1 0 > > ffff880131f52000 3360291656 C Ii:1:067:1 -32:1 0 > > ffff8800aae88600 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 Tue, Sep 30, 2014 at 11:59 AM, Naveen Kumar Parna > <pnaveenkos@xxxxxxxxx> 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" >> >> ffff8800aaedb780 3159611663 C Ii:1:072:1 -32:1 0 >> >> ffff880131449cc0 3360277718 C Ii:1:068:1 -32:1 0 >> >> ffff8800aaedb9c0 3360278570 C Ii:1:069:1 -32:1 0 >> >> ffff880131f52000 3360291656 C Ii:1:067:1 -32:1 0 >> >> ffff8800aae88600 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 <stern@xxxxxxxxxxxxxxxxxxx> 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 majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html