Re: Oops in CDC ACM after an Openmoko phone (neo1973) changes its usb interface from ACM to Ethernet

From: Oliver Neukum
Date: Mon Aug 03 2009 - 09:03:51 EST


Am Montag, 3. August 2009 11:17:05 schrieb Alex Riesen:
> 466ÂÂÂÂÂÂÂÂÂÂÂÂÂep = (usb_pipein(acm->rx_endpoint) ? acm->dev->ep_in :
> acm->dev->ep_out)
> 467ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ[usb_pipeendpoint(acm->rx_endpoint)];
> 468ÂÂÂÂÂÂÂÂÂÂÂÂÂif (usb_endpoint_xfer_int(&ep->desc))
>
> So it looks like ep is NULL (usb_endpoint_xfer_int accesses
> desc.bmAttributes, which is 3 bytes off the beginning of struct
> usb_host_endpoint (desc being the first field in usb_host_endpoint).

This tells you that the device has been disconnected. The question
is not why this function fails, but why it is called even though the
device has been disconnected.

Regards
Oliver

N‹§²æìr¸›yúèšØb²X¬¶ÇvØ^–)Þ{.nÇ+‰·¥Š{±‘êçzX§¶›¡Ü}©ž²ÆzÚ&j:+v‰¨¾«‘êçzZ+€Ê+zf£¢·hšˆ§~†­†Ûiÿûàz¹®w¥¢¸?™¨è­Ú&¢)ßf”ù^jÇy§m…á@A«a¶Úÿ 0¶ìh®å’i