-----Original Message----- From: Mark Brown [mailto:broonie@kernel.org] Sent: Sunday, July 28, 2013 1:35 AM To: Lars-Peter Clausen Cc: Stephen Warren; Bard Liao; Linux-ALSA Subject: Re: [alsa-devel] Broken headphone and speaker amplifier supplies forthe rt5640 driver
On Fri, Jul 26, 2013 at 05:06:12PM +0200, Lars-Peter Clausen wrote:
I guess for the heaphone amplifier the right fix is to set the shift to RT5640_PWR_HA_BIT. For the speaker amplifier I'd assume that the right bit is RT5640_PWR_CLS_D_BIT. But the speaker amplifier widget also as an event callback in which it already seems to set/clear the bit. I think the right fix is to remove the register change from the event callback and set the shift to RT5640_PWR_CLS_D_BIT. But I neither have the hardware nor the datasheet, so this is all just an educated
guess.
Or set the register to SND_SOC_NOPM allowing the manual sequencing which is (I presume) needed? If we're going to need an event to do the sequencing we may as well have it do both writes.
We do need a sequence for headphone depop. Another question about it. Can I do mute/unmute in the widget event? The mute/unmute control is written in rt5640_snd_controls[] now. It allows user to unmute speaker or headphone before dapm power on the related power. And it will bring a pop noise. So I prefer to do the unmute/mute step in the widget event. Is that ok?
------Please consider the environment before printing this e-mail.