On Wed, Oct 14, 2009 at 03:56:50PM +0300, Peter Ujfalusi wrote:
It'd be nice to do the full power down in BIAS_OFF for future use.
The full power off is taken when the dac33_soc_suspend is called (the hard_power is restored in the dac33_soc_resume function). I can move it here, than add dac33_hard_power(codec, 1) to _PREPARE, if the previous state was _OFF.
_STANDBY but yes.
Than I can remove the dac33_soc_suspend and dac33_soc_resume?
No, the core won't take you down to BIAS_OFF automatically except during shutdown (or suspend to disk but ARM doesn't do that). Which is fun but it's entertaining to change since it touches all the drivers. It's where we should go, though - I've been trying to do this when I write new drivers.
I'd also expect to see something that either acknowledges the interrupt to deassert it or
The interrupt is self cleaning on dac33 side (in the mode, which we are using it, there is a mode, where additional write is needed to clear the interrupt status).
That should be OK, someone can always add level triggering in future if they want to.
Than on trigger STOP, I set the state to FLUSH and schedule the work, if an interrupt comes, it is ignored, since the work has been scheduled.
Actually, you should just be able to queue the work since the state check will be done again in the workqueue and duplicate insertions don't hurt. That'd also avoid the need to mask IRQs while fiddling with the state (which you're not doing at the minute but probably need to).