Wait, is it even possible to do an atomic volatile modify of a MMIO register? Sure, x86 has LOCK prefix but would it work with memory-mapped stuff?
Atomicity is sort of a different thing. You might need things like critical sections (disable interrupts) or memory fencing for the read-modify-write cycle.