diff options
author | Takashi Iwai <tiwai@suse.de> | 2010-08-16 08:08:48 +0200 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2010-08-16 08:08:48 +0200 |
commit | a5ba6beb839cfa288960c92cd2668a2601c24dda (patch) | |
tree | 866c5f790dfa3e0a84a76d815541b1c1f18b4161 /sound | |
parent | da5cabf80e2433131bf0ed8993abc0f7ea618c73 (diff) | |
download | op-kernel-dev-a5ba6beb839cfa288960c92cd2668a2601c24dda.zip op-kernel-dev-a5ba6beb839cfa288960c92cd2668a2601c24dda.tar.gz |
ALSA: riptide - Fix detection / load of firmware files
The detection and loading of firmeware on riptide driver has been broken
due to rewrite of some codes, checking the presense wrongly.
This patch fixes the logic again.
Reference: kernel bug 16596
https://bugzilla.kernel.org/show_bug.cgi?id=16596
Cc: <stable@kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound')
-rw-r--r-- | sound/pci/riptide/riptide.c | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/sound/pci/riptide/riptide.c b/sound/pci/riptide/riptide.c index f64fb7d..ad5202e 100644 --- a/sound/pci/riptide/riptide.c +++ b/sound/pci/riptide/riptide.c @@ -1224,15 +1224,14 @@ static int try_to_load_firmware(struct cmdif *cif, struct snd_riptide *chip) firmware.firmware.ASIC, firmware.firmware.CODEC, firmware.firmware.AUXDSP, firmware.firmware.PROG); + if (!chip) + return 1; + for (i = 0; i < FIRMWARE_VERSIONS; i++) { if (!memcmp(&firmware_versions[i], &firmware, sizeof(firmware))) - break; - } - if (i >= FIRMWARE_VERSIONS) - return 0; /* no match */ + return 1; /* OK */ - if (!chip) - return 1; /* OK */ + } snd_printdd("Writing Firmware\n"); if (!chip->fw_entry) { |