So, do you suggest not doing preallocation(or calling it with 0 size) for all driver with TYPE_SG? I am fine if this is the recommended method, I can try this on SOF I2S platform to see if it can work as we required for very large buffer size.
Keyon, for the rest of us to follow this patch, would you mind clarifying what drives the need for a 'very large buffer size', and what order of magnitude this very large size would be.
FWIW, we've measured consistently on different Windows/Linux platforms, maybe 10 years ago, that once you reach a buffer of 1s (384 kB) the benefits from increasing that buffer size further are marginal in terms of power consumption, and generate all kinds of issues with volume updates and deferred routing changes.
Thanks -Pierre