diff mbox

[1/2] snd-ice1712: restore AK4xxx volumes on resume

Message ID 1396559378-23980-1-git-send-email-linux@rainbow-software.org (mailing list archive)
State Accepted
Headers show

Commit Message

Ondrej Zary April 3, 2014, 9:09 p.m. UTC
Also restore AK4xxx mixer volumes on resume for M-Audio ICE1712-based cards.
This fixes incorrect (sound working) zero mixer volumes after resume.

Signed-off-by: Ondrej Zary <linux@rainbow-software.org>
---
 sound/pci/ice1712/delta.c |    9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

Comments

Takashi Iwai April 4, 2014, 2:24 p.m. UTC | #1
At Thu,  3 Apr 2014 23:09:37 +0200,
Ondrej Zary wrote:
> 
> Also restore AK4xxx mixer volumes on resume for M-Audio ICE1712-based cards.
> This fixes incorrect (sound working) zero mixer volumes after resume.
> 
> Signed-off-by: Ondrej Zary <linux@rainbow-software.org>

Applied, thanks.
But at the next time, put maintainers to Cc.


Takashi

> ---
>  sound/pci/ice1712/delta.c |    9 ++++++---
>  1 file changed, 6 insertions(+), 3 deletions(-)
> 
> diff --git a/sound/pci/ice1712/delta.c b/sound/pci/ice1712/delta.c
> index 3764a27..bb34608 100644
> --- a/sound/pci/ice1712/delta.c
> +++ b/sound/pci/ice1712/delta.c
> @@ -578,7 +578,8 @@ static struct snd_ak4xxx_private akm_vx442_priv = {
>  #ifdef CONFIG_PM_SLEEP
>  static int snd_ice1712_delta_resume(struct snd_ice1712 *ice)
>  {
> -	unsigned char akm_backup[AK4XXX_IMAGE_SIZE];
> +	unsigned char akm_img_bak[AK4XXX_IMAGE_SIZE];
> +	unsigned char akm_vol_bak[AK4XXX_IMAGE_SIZE];
>  
>  	/* init spdif */
>  	switch (ice->eeprom.subvendor) {
> @@ -603,9 +604,11 @@ static int snd_ice1712_delta_resume(struct snd_ice1712 *ice)
>  
>  	/* init codec and restore registers */
>  	if (ice->akm_codecs) {
> -		memcpy(akm_backup, ice->akm->images, sizeof(akm_backup));
> +		memcpy(akm_img_bak, ice->akm->images, sizeof(akm_img_bak));
> +		memcpy(akm_vol_bak, ice->akm->volumes, sizeof(akm_vol_bak));
>  		snd_akm4xxx_init(ice->akm);
> -		memcpy(ice->akm->images, akm_backup, sizeof(akm_backup));
> +		memcpy(ice->akm->images, akm_img_bak, sizeof(akm_img_bak));
> +		memcpy(ice->akm->volumes, akm_vol_bak, sizeof(akm_vol_bak));
>  		snd_akm4xxx_reset(ice->akm, 0);
>  	}
>  
> -- 
> Ondrej Zary
> 
> _______________________________________________
> Alsa-devel mailing list
> Alsa-devel@alsa-project.org
> http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
>
diff mbox

Patch

diff --git a/sound/pci/ice1712/delta.c b/sound/pci/ice1712/delta.c
index 3764a27..bb34608 100644
--- a/sound/pci/ice1712/delta.c
+++ b/sound/pci/ice1712/delta.c
@@ -578,7 +578,8 @@  static struct snd_ak4xxx_private akm_vx442_priv = {
 #ifdef CONFIG_PM_SLEEP
 static int snd_ice1712_delta_resume(struct snd_ice1712 *ice)
 {
-	unsigned char akm_backup[AK4XXX_IMAGE_SIZE];
+	unsigned char akm_img_bak[AK4XXX_IMAGE_SIZE];
+	unsigned char akm_vol_bak[AK4XXX_IMAGE_SIZE];
 
 	/* init spdif */
 	switch (ice->eeprom.subvendor) {
@@ -603,9 +604,11 @@  static int snd_ice1712_delta_resume(struct snd_ice1712 *ice)
 
 	/* init codec and restore registers */
 	if (ice->akm_codecs) {
-		memcpy(akm_backup, ice->akm->images, sizeof(akm_backup));
+		memcpy(akm_img_bak, ice->akm->images, sizeof(akm_img_bak));
+		memcpy(akm_vol_bak, ice->akm->volumes, sizeof(akm_vol_bak));
 		snd_akm4xxx_init(ice->akm);
-		memcpy(ice->akm->images, akm_backup, sizeof(akm_backup));
+		memcpy(ice->akm->images, akm_img_bak, sizeof(akm_img_bak));
+		memcpy(ice->akm->volumes, akm_vol_bak, sizeof(akm_vol_bak));
 		snd_akm4xxx_reset(ice->akm, 0);
 	}