Otherwise, reading will sometimes fail on the Raspberry Pi. This is mostly a hack, the spec has some info about how the correct divisor should be calculated and how we can recover from timeouts.