Commit 3b0f7eef authored by Takashi Iwai's avatar Takashi Iwai
Browse files

ALSA: ice1724: Remove superfluous loop over model table

The ice1724 driver looks for the matching card_info entry twice, once
at reading EEPROM and another for the rest tasks in the probe call.
Reduce the second one by referring to the already assigned card_info
entry.

Link: https://lore.kernel.org/r/20210712091904.28022-1-tiwai@suse.de


Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent 2d52c5dd
Loading
Loading
Loading
Loading
+14 −28
Original line number Diff line number Diff line
@@ -2150,13 +2150,6 @@ static const struct snd_kcontrol_new snd_vt1724_mixer_pro_peak = {
	.get = snd_vt1724_pro_peak_get
};

/*
 *
 */

static const struct snd_ice1712_card_info no_matched;


/*
  ooAoo cards with no controls
*/
@@ -2574,7 +2567,7 @@ static int snd_vt1724_probe(struct pci_dev *pci,
	struct snd_card *card;
	struct snd_ice1712 *ice;
	int pcm_dev = 0, err;
	const struct snd_ice1712_card_info * const *tbl, *c;
	const struct snd_ice1712_card_info *c;

	if (dev >= SNDRV_CARDS)
		return -ENODEV;
@@ -2600,11 +2593,8 @@ static int snd_vt1724_probe(struct pci_dev *pci,
	/* field init before calling chip_init */
	ice->ext_clock_count = 0;

	for (tbl = card_tables; *tbl; tbl++) {
		for (c = *tbl; c->name; c++) {
			if ((model[dev] && c->model &&
			     !strcmp(model[dev], c->model)) ||
			    (c->subvendor == ice->eeprom.subvendor)) {
	c = ice->card_info;
	if (c) {
		strcpy(card->shortname, c->name);
		if (c->driver) /* specific driver? */
			strcpy(card->driver, c->driver);
@@ -2615,12 +2605,8 @@ static int snd_vt1724_probe(struct pci_dev *pci,
				return err;
			}
		}
				goto __found;
	}
		}
	}
	c = &no_matched;
__found:

	/*
	* VT1724 has separate DMAs for the analog and the SPDIF streams while
	* ICE1712 has only one for both (mixed up).
@@ -2688,7 +2674,7 @@ static int snd_vt1724_probe(struct pci_dev *pci,
		}
	}

	if (c->build_controls) {
	if (c && c->build_controls) {
		err = c->build_controls(ice);
		if (err < 0) {
			snd_card_free(card);
@@ -2696,7 +2682,7 @@ static int snd_vt1724_probe(struct pci_dev *pci,
		}
	}

	if (!c->no_mpu401) {
	if (!c || !c->no_mpu401) {
		if (ice->eeprom.data[ICE_EEP2_SYSCONF] & VT1724_CFG_MPU401) {
			struct snd_rawmidi *rmidi;