On Tuesday 07 December 2010 00:40:08 ext Mark Brown wrote:
On Fri, Dec 03, 2010 at 03:31:10PM +0200, Peter Ujfalusi wrote:
Quite some time ago I have faced similar issue with the sequence of the DAPM register writes [1] For that issue, I used a workaround within the twl4030 codec driver. Now I have again issue with the register write sequence.
Sorry I've not got back to you yet - I want to implement the thing I was talking about with inserting the register update into the DAPM sequence. I think that is going to be easier and more generally useful, and it doesn't rely on drivers knowing what's going on with the DAPM sequncing code which is much cleaner from an abstraction point of view.
Fair enough. I did taken a look at the possibility to do the register update between DAPM power down and up, but I thought it is a bit big change (the place, where the DAPM power down and up happens is quite deep, and I was not sure how to inject things between those).
I'm no longer sure, when the register update should happen. It might be worth doing the update at around the power enable for the widget. IN that way at least we are going to filter the power updates before the switch: DAC -> PGA1 -> widget -> switch -> PGA2 -> out
If we update the register for the switch before the DAPM power up, than we can expose the switching from DAC, PGA1, widget. If we do the update at the same time (or around), when the power for the switch would have been enabled, than we are filtering the switching for the DAPM widgets before the switch.