On Wed, Sep 21, 2011 at 12:22:26PM +0300, Péter Ujfalusi wrote:
The implementation in twl6040 looks similar to the one in the wm8350 in regards to the ramp code, and caching of the user configured gains.
Yes, it was copied from there.
If you take a look at the wm8350 driver it is also changing the L/R OUT 1/2 registers at probe time. I don't see any difference in the two.
The key problem here is that you sent a change saying "change the default volume" with no other context in either the changelog or the code. If you've got code that's actively managing the volume register while presenting a nice view to the application layer so that the register value isn't directly seen in the way it is for standard ASoC controls that's a very different thing to standard code. I'm not going to remember the details of everything in every CODEC driver.
We do have other scenarios covered, but this initialization was missing. This resulted that the _first_ playback has pop noise, but all subsequent playbacks were fine, since we had the runtime fix for this.
So what you're doing here is really a bug fix for the ramping code.