- } else {
- /*
- * Some controllers exhibit one or more of the following bugs
- * when updating the iso cycle timer register:
- * - When the lowest six bits are wrapping around to zero,
- * a read that happens at the same time will return garbage
- * in the lowest ten bits.
- * - When the cycleOffset field wraps around to zero, the
- * cycleCount field is not incremented for about 60 ns.
- * - Occasionally, the entire register reads zero.
- *
- * To catch these, we read the register three times and ensure
- * that the difference between each two consecutive reads is
- * approximately the same, i.e., less than twice the other.
- * Furthermore, any negative difference indicates an error.
- * (A PCI read should take at least 20 ticks of the 24.576 MHz
- * timer to execute, so we have enough precision to compute the
- * ratio of the differences.)
- */