ALSA: hda/ca0132 - Check if dspload_image succeeded.
authorDylan Reid <dgreid@chromium.org>
Fri, 15 Mar 2013 00:27:44 +0000 (17:27 -0700)
committerTakashi Iwai <tiwai@suse.de>
Fri, 15 Mar 2013 06:40:11 +0000 (07:40 +0100)
If dspload_image() fails, it was ignored and dspload_wait_loaded() was
still called.  dsp_loaded should never be set to true in this case,
skip it.  The check in dspload_wait_loaded() return true if the DSP is
loaded or if it never started.

Signed-off-by: Dylan Reid <dgreid@chromium.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/pci/hda/patch_ca0132.c

index eefc4563b2f946c440df969d063a403e09c37dc0..cf24b75108d9bce7bb91a480189270a51a240cc2 100644 (file)
@@ -4351,12 +4351,16 @@ static bool ca0132_download_dsp_images(struct hda_codec *codec)
                return false;
 
        dsp_os_image = (struct dsp_image_seg *)(fw_entry->data);
-       dspload_image(codec, dsp_os_image, 0, 0, true, 0);
+       if (dspload_image(codec, dsp_os_image, 0, 0, true, 0)) {
+               pr_err("ca0132 dspload_image failed.\n");
+               goto exit_download;
+       }
+
        dsp_loaded = dspload_wait_loaded(codec);
 
+exit_download:
        release_firmware(fw_entry);
 
-
        return dsp_loaded;
 }