Content originally posted in LPCWare by Tsuneo on Wed Sep 25 07:14:19 MST 2013
In the design policy of OHCI, Host Controller (HC) makes up current Done queue (HcDoneHead) while it runs list processing of endpoint/transfer descriptors (ED/TD), to put transactions to the bus. Just while HC sends SOF to the bus, HC pauses list processing, it writes current HcDoneHead to HccaDoneHead register, and HC generates WritebackDoneHead interrupt. And then, HC restarts listprocessing immediately, using new Done queue. Host driver may process old Done queue on HccaDoneHead without disturbing HC's list processing.
In this way, you can't get WritebackDoneHead interrupt until next SOF timing.
Tsuneo