On Fri, 11 Sep 2009, Julie Zhu wrote: > Hi, all, > > We are testing the USB Host controller from Xilinx using a PowerPC > platform. This test is FS isochronous OUT, with the maxp 1023 and > interval 1ms. We noticed that with direct connection between the host > controller and the FS iso OUT device, the s-mask is 0x3f. And the test > finished fine. > > However, if the device is connected through a FS hub, then the sitd > s-mask becomes 0x1f8, this makes the 6th packet crosses the frame > boundary. From EHCI spec page 104, section 4.12.3.1, it says under Case > 2a: > > Software must never schedule full-speed isochronous OUTs across > an H-Frame boundary. > > The test therefore failed, because the host controller never put the 6th > packet out. > > The kernel version is 2.6.30. > > The function sitd_slot_ok() shifts the s-mask by the starting frame > number. It does check for crossing frame boundary for IN case, but never > does anything for OUT. I wonder whether it is a bug? Or, it is intended? It is a bug. The code in ehci-sched.c for dealing with split transactions needs a lot of work. For example, it doesn't support FSTNs. In the case you noticed, the code checks for CSPLITs crossing a frame boundary but not for SSPLITs. Alan Stern -- 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