aboutsummaryrefslogtreecommitdiffstats
path: root/sound
diff options
context:
space:
mode:
Diffstat (limited to 'sound')
-rw-r--r--sound/pci/hda/patch_ca0132.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/sound/pci/hda/patch_ca0132.c b/sound/pci/hda/patch_ca0132.c
index 4f3aba78f720..5d8455e2dacd 100644
--- a/sound/pci/hda/patch_ca0132.c
+++ b/sound/pci/hda/patch_ca0132.c
@@ -4376,6 +4376,9 @@ static void ca0132_download_dsp(struct hda_codec *codec)
4376 return; /* NOP */ 4376 return; /* NOP */
4377#endif 4377#endif
4378 4378
4379 if (spec->dsp_state == DSP_DOWNLOAD_FAILED)
4380 return; /* don't retry failures */
4381
4379 chipio_enable_clocks(codec); 4382 chipio_enable_clocks(codec);
4380 spec->dsp_state = DSP_DOWNLOADING; 4383 spec->dsp_state = DSP_DOWNLOADING;
4381 if (!ca0132_download_dsp_images(codec)) 4384 if (!ca0132_download_dsp_images(codec))
@@ -4552,7 +4555,8 @@ static int ca0132_init(struct hda_codec *codec)
4552 struct auto_pin_cfg *cfg = &spec->autocfg; 4555 struct auto_pin_cfg *cfg = &spec->autocfg;
4553 int i; 4556 int i;
4554 4557
4555 spec->dsp_state = DSP_DOWNLOAD_INIT; 4558 if (spec->dsp_state != DSP_DOWNLOAD_FAILED)
4559 spec->dsp_state = DSP_DOWNLOAD_INIT;
4556 spec->curr_chip_addx = INVALID_CHIP_ADDRESS; 4560 spec->curr_chip_addx = INVALID_CHIP_ADDRESS;
4557 4561
4558 snd_hda_power_up(codec); 4562 snd_hda_power_up(codec);
@@ -4663,6 +4667,7 @@ static int patch_ca0132(struct hda_codec *codec)
4663 codec->spec = spec; 4667 codec->spec = spec;
4664 spec->codec = codec; 4668 spec->codec = codec;
4665 4669
4670 spec->dsp_state = DSP_DOWNLOAD_INIT;
4666 spec->num_mixers = 1; 4671 spec->num_mixers = 1;
4667 spec->mixers[0] = ca0132_mixer; 4672 spec->mixers[0] = ca0132_mixer;
4668 4673