diff options
author | Giuliano Pochini <pochini@shiny.it> | 2010-02-14 12:15:59 -0500 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2010-02-15 04:39:22 -0500 |
commit | ad3499f4668f684ef6e5d0222ae14d5e4ade1fdd (patch) | |
tree | 6c4599e78d3f29df5cd17b8d2006f69f006acea3 /sound/pci/echoaudio/gina20_dsp.c | |
parent | 4f8ada444cc7a7ea70cdc81f098b34c5f1f2df41 (diff) |
ALSA: Echoaudio - Add suspend support #1
Move the controls init code outside the init_hw() function because is must
not be called during resume.
This patch moves the code that initializes the card's controls with
default valued from the init_hw() function into a separated
set_mixer_defaults() function (one for each of the 16 supported
cards). This change is necessary because during resume we must
resurrect the hardware without losing the previous
settings. set_mixer_defaults() must be called only once when the
module is loaded.
Signed-off-by: Giuliano Pochini <pochini@shiny.it>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/pci/echoaudio/gina20_dsp.c')
-rw-r--r-- | sound/pci/echoaudio/gina20_dsp.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/sound/pci/echoaudio/gina20_dsp.c b/sound/pci/echoaudio/gina20_dsp.c index c5de88b6792d..d1615a0579d1 100644 --- a/sound/pci/echoaudio/gina20_dsp.c +++ b/sound/pci/echoaudio/gina20_dsp.c | |||
@@ -62,17 +62,20 @@ static int init_hw(struct echoaudio *chip, u16 device_id, u16 subdevice_id) | |||
62 | return err; | 62 | return err; |
63 | chip->bad_board = FALSE; | 63 | chip->bad_board = FALSE; |
64 | 64 | ||
65 | if ((err = init_line_levels(chip)) < 0) | ||
66 | return err; | ||
67 | |||
68 | err = set_professional_spdif(chip, TRUE); | ||
69 | |||
70 | DE_INIT(("init_hw done\n")); | 65 | DE_INIT(("init_hw done\n")); |
71 | return err; | 66 | return err; |
72 | } | 67 | } |
73 | 68 | ||
74 | 69 | ||
75 | 70 | ||
71 | static int set_mixer_defaults(struct echoaudio *chip) | ||
72 | { | ||
73 | chip->professional_spdif = FALSE; | ||
74 | return init_line_levels(chip); | ||
75 | } | ||
76 | |||
77 | |||
78 | |||
76 | static u32 detect_input_clocks(const struct echoaudio *chip) | 79 | static u32 detect_input_clocks(const struct echoaudio *chip) |
77 | { | 80 | { |
78 | u32 clocks_from_dsp, clock_bits; | 81 | u32 clocks_from_dsp, clock_bits; |