Not sure I agree here - or I am misunderstanding the code. Maybe you can step through with your DualMiner. If you look at icarus_set_timing() which is always called, the DEFAULT branch for that resets read_count.  Basically there is no code path (that I see) where I can set the info->read_count, then call icarus_detect_custom() and have the info->read_count come out the same on the other end.

The AntMiner driver does the same thing.