atom feed22 messages in org.freebsd.freebsd-usblibusb usb_interrupt_read hangs under...
FromSent OnAttachments
Xiaofan ChenApr 3, 2007 11:54 am 
Hans Petter SelaskyApr 3, 2007 12:26 pm 
Xiaofan ChenApr 3, 2007 1:34 pm 
Hans Petter SelaskyApr 3, 2007 2:42 pm 
Xiaofan ChenApr 3, 2007 11:55 pm 
Hans Petter SelaskyApr 4, 2007 7:37 am 
Xiaofan ChenApr 4, 2007 11:34 am 
Xiaofan ChenJul 4, 2007 5:32 pm 
Hans Petter SelaskyJul 5, 2007 3:24 pm 
Xiaofan ChenJul 8, 2007 12:25 am 
M. Warner LoshJul 8, 2007 5:11 am 
Xiaofan ChenJul 8, 2007 1:16 pm 
Xiaofan ChenJul 8, 2007 4:31 pm 
M. Warner LoshJul 8, 2007 8:00 pm 
Hans Petter SelaskyJul 9, 2007 4:35 pm 
Xiaofan ChenJul 10, 2007 1:27 am 
Xiaofan ChenJul 13, 2007 10:32 pm 
Hans Petter SelaskyJul 15, 2007 9:18 am 
Xiaofan ChenJul 16, 2007 3:44 pm 
Hans Petter SelaskyJul 17, 2007 5:55 am 
Xiaofan ChenAug 11, 2007 4:45 am 
Xiaofan ChenSep 22, 2007 3:47 am 
Subject:libusb usb_interrupt_read hangs under FreeBSD
From:Xiaofan Chen (xiao@gmail.com)
Date:Apr 4, 2007 11:34:42 am
List:org.freebsd.freebsd-usb

On 4/4/07, Hans Petter Selasky <hsel@c2i.net> wrote:

On Wednesday 04 April 2007 01:55, Xiaofan Chen wrote:

On 4/3/07, Hans Petter Selasky <hsel@c2i.net> wrote:

Hi,

I think that your device is broken, and goes bad when it receives a clear-stall request for the interrupt pipe. That is not very uncommon.

Could you be more clearer? I'd like to communicate this problem to the firmware developer of PICKit 2 inside Microchip. Thanks.

The chip does not handle a clear-stall request on the control pipe to clear-stall on the interrupt pipe. The result is that the interrupt pipe stops, or at least all buffers are cleared.

I could be more detailed, but I think the developers will understand what I mean.

Thanks. I will talk to the Micrpchip PICKit 2 developers. Hopefully they will be able to fix the firmware.

From the dmesg output, I can see the portion that shows what you say.

ugenioctl: cmd=80045572 ugenioctl: cmd=80045571 ugenread: usbd_get_pipe: udev=0xc3168800 iface_index=0 address=0x1 type=0x3 dir=0x80 index=0 usbd_get_pipe: udev=0xc3168800 iface_index=0 address=0x0 type=0x0 dir=0xff index=0 usbd_mem_alloc_sub: 0xe6aa0000, 4096 bytes, phys=0x3e850000 usbd_get_pipe: udev=0xc3168800 iface_index=0 address=0x1 type=0x3 dir=0x80 index=0 usbd_get_pipe: udev=0xc3168800 iface_index=0 address=0x0 type=0x0 dir=0xff index=0 usbd_start_hardware: xfer=0xc3085420, pipe=0xc3168894 len=64 dir=in usbd_dump_pipe: pipe=0xc3168894 edesc=0xc31746db isoc_next=0 toggle_next=0 bEndpointAddress=0x81 usbd_dump_queue: pipe=0xc3168894 usbd_start_hardware: xfer=0xc3085528, pipe=0xc3168800 len=8 dir=out usbd_dump_pipe: pipe=0xc3168800 edesc=0xc3168a3d isoc_next=0 toggle_next=0 bEndpointAddress=0x00 usbd_dump_queue: pipe=0xc3168800 ugen_open_pipe_read: interrupt open done usbd_transfer_done: xfer=0xc3085528 pipe=0xc3168800 status=0 actlen=8 usbd_clearstall_callback: xfer=0xc3085528 usbd_start_hardware: xfer=0xc3085420, pipe=0xc3168894 len=64 dir=in usbd_dump_pipe: pipe=0xc3168894 edesc=0xc31746db isoc_next=0 toggle_next=0 bEndpointAddress=0x81 usbd_dump_queue: pipe=0xc3168894 usb_event_thread: woke up usb_discover: usbd_transfer_done: xfer=0xc3085420 pipe=0xc3168894 status=20 actlen=0 usbd_start_hardware: xfer=0xc3085420, pipe=0xc3168894 len=64 dir=in usbd_dump_pipe: pipe=0xc3168894 edesc=0xc31746db isoc_next=0 toggle_next=0 bEndpointAddress=0x81 usbd_dump_queue: pipe=0xc3168894 usbd_start_hardware: xfer=0xc3085528, pipe=0xc3168800 len=8 dir=out usbd_dump_pipe: pipe=0xc3168800 edesc=0xc3168a3d isoc_next=0 toggle_next=0 bEndpointAddress=0x00 usbd_dump_queue: pipe=0xc3168800 usbd_transfer_done: xfer=0xc3085528 pipe=0xc3168800 status=0 actlen=8 usbd_clearstall_callback: xfer=0xc3085528 usbd_start_hardware: xfer=0xc3085420, pipe=0xc3168894 len=64 dir=in usbd_dump_pipe: pipe=0xc3168894 edesc=0xc31746db isoc_next=0 toggle_next=0 bEndpointAddress=0x81 usbd_dump_queue: pipe=0xc3168894 usb_event_thread: woke up ...