On Tue, Oct 14, 2014 at 06:41:29PM +0200, Dirk Hohndel wrote:
Hi Jef,
as discussed earlier today, here are patches that implement aligned multipage reads and mixed blocksize reads ONLY for dive computers that support 256 byte page reads. So far that appears to be only the A300CS but my guess is that we'll see more such dive computers in the future.
This way we should get performant downloads from the A300CS without risking to break older dive computers.
BTW: if you'd prefer we could add another field (something like "mixed_pagesize_support") to oceanic_atom2_device_t and then could enable this for those dive computers with 128 byte pages where we can test and verify that this works. That would make it less of a special case for the A300CS. I wasn't sure which version you'd prefer, so I implemented the A300CS specific one (or actually, the 256 byte page specific one), but I'm happy to go the other direction if you think that's better.
Actually, the more I think about it, maybe that's the better way in case Oceanic / Aeris come out with a 256 byte page read model that doesn't support mixed paged sizes...
So attached are three patches as an alternative to the two im my last email that implement things this way (and enable it on the A300CS).
This has been tested with Linus' A300CS and it's fast and works reliably with the dives I can still download from the dive computer.
/D