Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 4 Apr 2007 19:34:58 +0800
From:      "Xiaofan Chen" <xiaofanc@gmail.com>
To:        "Hans Petter Selasky" <hselasky@c2i.net>
Cc:        freebsd-usb@freebsd.org
Subject:   Re: libusb usb_interrupt_read hangs under FreeBSD
Message-ID:  <a276da400704040434y6451900eg95e3cd2f35cae593@mail.gmail.com>
In-Reply-To: <200704040937.02219.hselasky@c2i.net>
References:  <a276da400704030427g6fcfdc37u43bdf0fd1cd69ea8@mail.gmail.com> <200704031642.26519.hselasky@c2i.net> <a276da400704031655j8e0f1dcy30cfebfd4eadcdb6@mail.gmail.com> <200704040937.02219.hselasky@c2i.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On 4/4/07, Hans Petter Selasky <hselasky@c2i.net> wrote:
> On Wednesday 04 April 2007 01:55, Xiaofan Chen wrote:
> > On 4/3/07, Hans Petter Selasky <hselasky@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
...



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?a276da400704040434y6451900eg95e3cd2f35cae593>