Adding Sarah to CC, I just noticed she was the one who added this code. > -----Original Message----- > From: Paul Zimmerman > Sent: Friday, September 09, 2011 1:16 PM > To: alan stern > Cc: 'linux-usb@xxxxxxxxxxxxxxx' > Subject: EHCI isoc scheduling > > Hi Alan, > > Can you give me a clue about this code in ehci-sched.c/iso_stream_schedule()? > > /* For high speed devices, allow scheduling within the > * isochronous scheduling threshold. For full speed devices > * and Intel PCI-based controllers, don't (work around for > * Intel ICH9 bug). > */ > if (!stream->highspeed && ehci->fs_i_thresh) > next = now + ehci->i_thresh; > else > next = now; > > Why does the driver allow scheduling within the threshold? I though the whole > point of the threshold value in the HCCPARAMS register was to tell the driver > the earliest time when it is safe to do scheduling. > > Plus, the code doesn't seem to be doing what the comment says for the ICH9 > workaround case (ehci->fs_i_thresh = 1). It seems the && should be an || > instead. > > The driver seems to be violating the EHCI spec here. Or am I misunderstanding > what the code is doing? > > Thanks. > > -- > Paul ��.n��������+%������w��{.n�����{���)��jg��������ݢj����G�������j:+v���w�m������w�������h�����٥