Hi all: At present,I used am1808 usb-host-controler to link usb-to-serial device(using to chips all 8 serial console.) But I only used three console, the fourth console blocked. I reviewed the code and found the reason which urb bloked. I readed the datasheet which supporting NAKTIMEOUT for bulk transport. But the function : musb_urb_enqueue() >>case USB_ENDPOINT_XFER_ISOC: /* ISO always uses logarithmic encoding */ interval = min_t(u8, epd->bInterval, 16); break; default: /* REVISIT we actually want to use NAK limits, hinting to the * transfer scheduling logic to try some other qh, e.g. try * for 2 msec first: * * interval = (USB_SPEED_HIGH == urb->dev->speed) ? 16 : 2; * * The downside of disabling this is that transfer scheduling * gets VERY unfair for nonperiodic transfers; a misbehaving * peripheral could make that hurt. That's perfectly normal * for reads from network or serial adapters ... so we have * partial NAKlimit support for bulk RX. * * The upside of disabling it is simpler transfer scheduling. */ >> interval = 0; >>} >>qh->intv_reg = interval; For bulk tran,set interval is 0,so no NAKtimeout interrupt can hanppen? Is it? But I readed the NAKLIMINT handle: musb_h_ep0_irq() : >>} else if (csr & MUSB_CSR0_H_NAKTIMEOUT) { dev_dbg(musb->controller, "control NAK timeout\n"); /* NOTE: this code path would be a good place to PAUSE a * control transfer, if another one is queued, so that * ep0 is more likely to stay busy. That's already done * for bulk RX transfers. * * if (qh->ring.next != &musb->control), then * we have a candidate... NAKing is *NOT* an error */ >> musb_writew(epio, MUSB_CSR0, 0); >> retval = IRQ_HANDLED; } But did not do anything. Is it the code error or I? Thanks for ! -------------- majianpeng 2012-05-18 -- 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