On Fri, Jan 29, 2010 at 12:08:36PM +0100, Daniel Mack wrote:
And as the next client will indirectly call hw_params() again, the code there will do the right thing with the invalidated cache.
Yeah, I know the code is actually reasonably safe - it just doesn't give me the warm and fuzzies to do the invalidation by programming a random value in there simply on the off chance that at some point in the future that winds up being a valid value and so the same problem recurs.
Restoring the register values from priv->dai_fmt would imply adding code to do everything what the other bit-fiddling functions do in a reverse manner. Which is something I'd like to avoid :)
Oh, right. I'd forgotten that that was what it was actually storing.
Another idea is to unconditionally save and restore the register set, and deal with possible side-effects. Not sure what's really better.
I think that'd be the the most robust solution with the way things are structured in the driver.