Add new hw_params flag to explicitly tell driver that rewinds will never be used. This can be used by low-level driver to optimize DMA operations and reduce power consumption. Use this flag only when data written in ring buffer will never be invalidated, e.g. any update of appl_ptr is final.
Caveat: there is currently no way to query capabilities without opening a pcm stream, so applications might need to serially open all exposed devices, check what they support by looking at hw_params->info and close them (this is what PulseAudio does so might not be an issue)
The forward should also fail with such hardware, no?
The way I understand the forward is just an update of the application pointer without writing/reading new data, so that works. The hardware will just use whatever is in the ring buffer. It's weird but it would work.