Re: PROBLEM: USB ACM device does not work

From: Oliver Neukum
Date: Wed Jul 01 2009 - 06:56:48 EST


Am Mittwoch, 1. Juli 2009 11:01:06 schrieb Arseniy Lartsev:
> On Wednesday 01 July 2009 01:01:00 Alan Stern wrote:
> > This looks like your problem. Low-speed devices are not allowed to
> > have bulk endpoints. Linux internally changes them to interrupt
> > endpoints with interval = 1 and maxpacket size no larger than 8.
>
> Maybe this device is a little "buggy". But Linux should support buggy
> devices as well.

Yes, it should. We just needed to understand why it failed.


> + ep = (usb_pipein(acm->rx_endpoint) ? acm->dev->ep_in : acm->dev->ep_out)
> + [usb_pipeendpoint(acm->rx_endpoint)];
> + if (usb_endpoint_xfer_int(&ep->desc))
> + usb_fill_int_urb(rcv->urb, acm->dev,
> + acm->rx_endpoint,
> + buf->base,
> + acm->readsize,
> + acm_read_bulk, rcv, 0xff);

The patch is good except for this.
We should make sure this interval matches usbcore's value.
Would you care to redo it with that change?

Regards
Oliver

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/