瀏覽代碼

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>
Takashi Iwai 15 年之前
父節點
當前提交
a5ba6beb83
共有 1 個文件被更改,包括 5 次插入6 次删除
  1. 5 6
      sound/pci/riptide/riptide.c

+ 5 - 6
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.ASIC, firmware.firmware.CODEC,
 		    firmware.firmware.AUXDSP, firmware.firmware.PROG);
 		    firmware.firmware.AUXDSP, firmware.firmware.PROG);
 
 
+	if (!chip)
+		return 1;
+
 	for (i = 0; i < FIRMWARE_VERSIONS; i++) {
 	for (i = 0; i < FIRMWARE_VERSIONS; i++) {
 		if (!memcmp(&firmware_versions[i], &firmware, sizeof(firmware)))
 		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");
 	snd_printdd("Writing Firmware\n");
 	if (!chip->fw_entry) {
 	if (!chip->fw_entry) {