diff options
Diffstat (limited to 'sound/pci/echoaudio/echo3g_dsp.c')
-rw-r--r-- | sound/pci/echoaudio/echo3g_dsp.c | 28 |
1 files changed, 13 insertions, 15 deletions
diff --git a/sound/pci/echoaudio/echo3g_dsp.c b/sound/pci/echoaudio/echo3g_dsp.c index 57967e580571..3cdc2ee2d1dd 100644 --- a/sound/pci/echoaudio/echo3g_dsp.c +++ b/sound/pci/echoaudio/echo3g_dsp.c | |||
@@ -61,7 +61,7 @@ static int init_hw(struct echoaudio *chip, u16 device_id, u16 subdevice_id) | |||
61 | chip->subdevice_id = subdevice_id; | 61 | chip->subdevice_id = subdevice_id; |
62 | chip->bad_board = TRUE; | 62 | chip->bad_board = TRUE; |
63 | chip->has_midi = TRUE; | 63 | chip->has_midi = TRUE; |
64 | chip->dsp_code_to_load = &card_fw[FW_ECHO3G_DSP]; | 64 | chip->dsp_code_to_load = FW_ECHO3G_DSP; |
65 | 65 | ||
66 | /* Load the DSP code and the ASIC on the PCI card and get | 66 | /* Load the DSP code and the ASIC on the PCI card and get |
67 | what type of external box is attached */ | 67 | what type of external box is attached */ |
@@ -97,20 +97,6 @@ static int init_hw(struct echoaudio *chip, u16 device_id, u16 subdevice_id) | |||
97 | chip->digital_modes = ECHOCAPS_HAS_DIGITAL_MODE_SPDIF_RCA | | 97 | chip->digital_modes = ECHOCAPS_HAS_DIGITAL_MODE_SPDIF_RCA | |
98 | ECHOCAPS_HAS_DIGITAL_MODE_SPDIF_OPTICAL | | 98 | ECHOCAPS_HAS_DIGITAL_MODE_SPDIF_OPTICAL | |
99 | ECHOCAPS_HAS_DIGITAL_MODE_ADAT; | 99 | ECHOCAPS_HAS_DIGITAL_MODE_ADAT; |
100 | chip->digital_mode = DIGITAL_MODE_SPDIF_RCA; | ||
101 | chip->professional_spdif = FALSE; | ||
102 | chip->non_audio_spdif = FALSE; | ||
103 | chip->bad_board = FALSE; | ||
104 | |||
105 | if ((err = init_line_levels(chip)) < 0) | ||
106 | return err; | ||
107 | err = set_digital_mode(chip, DIGITAL_MODE_SPDIF_RCA); | ||
108 | if (err < 0) | ||
109 | return err; | ||
110 | err = set_phantom_power(chip, 0); | ||
111 | if (err < 0) | ||
112 | return err; | ||
113 | err = set_professional_spdif(chip, TRUE); | ||
114 | 100 | ||
115 | DE_INIT(("init_hw done\n")); | 101 | DE_INIT(("init_hw done\n")); |
116 | return err; | 102 | return err; |
@@ -118,6 +104,18 @@ static int init_hw(struct echoaudio *chip, u16 device_id, u16 subdevice_id) | |||
118 | 104 | ||
119 | 105 | ||
120 | 106 | ||
107 | static int set_mixer_defaults(struct echoaudio *chip) | ||
108 | { | ||
109 | chip->digital_mode = DIGITAL_MODE_SPDIF_RCA; | ||
110 | chip->professional_spdif = FALSE; | ||
111 | chip->non_audio_spdif = FALSE; | ||
112 | chip->bad_board = FALSE; | ||
113 | chip->phantom_power = FALSE; | ||
114 | return init_line_levels(chip); | ||
115 | } | ||
116 | |||
117 | |||
118 | |||
121 | static int set_phantom_power(struct echoaudio *chip, char on) | 119 | static int set_phantom_power(struct echoaudio *chip, char on) |
122 | { | 120 | { |
123 | u32 control_reg = le32_to_cpu(chip->comm_page->control_register); | 121 | u32 control_reg = le32_to_cpu(chip->comm_page->control_register); |