RESOURCE_SYNCH_ON_TIME and REQUEST_ISOCH_TALK

Hi all,

has anybody ever successfully used the RESOURCE_SYNCH_ON_TIME flag to
start talk on an isochronous 1394 channel?

We observed the following strange behavior:

We specify the RESOURCE_SYNCH_ON_TIME flag on the
REQUEST_ISOCH_ALLOCATE_RESOURCES call.
We use REQUEST_ISOCH_QUERY_CYCLE_TIME to obtain the current CYCLE_TIME.
We add 4 to the current cycle count, handling possible overflows into
SecondCount, of course.
We specify the resulting CYCLE_TIME in the REQUEST_ISOCH_TALK IRB as
StartTime.

Iso talk starts sometimes at the correct cycle time, but mostly two
seconds! too late. The start is always at the correct CycleCount value.
However, it is at the wrong SecondCount value.

Further analysis has shown that the OHCI driver seems not to program
correctly the DMA context register of the OHCI controller. It does
always set the high order bit of the two SecondCount bits to one,
regardless of what value is specified at REQUEST_ISOCH_TALK StartTime.
For that reason, talk starts 2 seconds too late.

Is this a known bug?
Is there a work-around?

Background: We want to use the RESOURCE_SYNCH_ON_TIME feature to start
several iso channels synchronously.

Udo Eberhardt
Thesycon GmbH