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/layla20_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/layla20_dsp.c')
-rw-r--r-- | sound/pci/echoaudio/layla20_dsp.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/sound/pci/echoaudio/layla20_dsp.c b/sound/pci/echoaudio/layla20_dsp.c index 07f32454757e..53ce94605044 100644 --- a/sound/pci/echoaudio/layla20_dsp.c +++ b/sound/pci/echoaudio/layla20_dsp.c | |||
@@ -64,17 +64,20 @@ static int init_hw(struct echoaudio *chip, u16 device_id, u16 subdevice_id) | |||
64 | return err; | 64 | return err; |
65 | chip->bad_board = FALSE; | 65 | chip->bad_board = FALSE; |
66 | 66 | ||
67 | if ((err = init_line_levels(chip)) < 0) | ||
68 | return err; | ||
69 | |||
70 | err = set_professional_spdif(chip, TRUE); | ||
71 | |||
72 | DE_INIT(("init_hw done\n")); | 67 | DE_INIT(("init_hw done\n")); |
73 | return err; | 68 | return err; |
74 | } | 69 | } |
75 | 70 | ||
76 | 71 | ||
77 | 72 | ||
73 | static int set_mixer_defaults(struct echoaudio *chip) | ||
74 | { | ||
75 | chip->professional_spdif = FALSE; | ||
76 | return init_line_levels(chip); | ||
77 | } | ||
78 | |||
79 | |||
80 | |||
78 | static u32 detect_input_clocks(const struct echoaudio *chip) | 81 | static u32 detect_input_clocks(const struct echoaudio *chip) |
79 | { | 82 | { |
80 | u32 clocks_from_dsp, clock_bits; | 83 | u32 clocks_from_dsp, clock_bits; |