Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4a4d4a69 authored by Takashi Iwai's avatar Takashi Iwai
Browse files

ALSA: hda - Sort input pins in snd_hda_parse_pin_def_config()



Sort inputs[] array in autocfg so that the codec parsers can filter out
easily per input pin types.

Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent 990061c2
Loading
Loading
Loading
Loading
+19 −0
Original line number Diff line number Diff line
@@ -4383,6 +4383,23 @@ static void add_auto_cfg_input_pin(struct auto_pin_cfg *cfg, hda_nid_t nid,
	}
}

/* sort inputs in the order of AUTO_PIN_* type */
static void sort_autocfg_input_pins(struct auto_pin_cfg *cfg)
{
	int i, j;

	for (i = 0; i < cfg->num_inputs; i++) {
		for (j = i + 1; j < cfg->num_inputs; j++) {
			if (cfg->inputs[i].type > cfg->inputs[j].type) {
				struct auto_pin_cfg_item tmp;
				tmp = cfg->inputs[i];
				cfg->inputs[i] = cfg->inputs[j];
				cfg->inputs[j] = tmp;
			}
		}
	}
}

/*
 * Parse all pin widgets and store the useful pin nids to cfg
 *
@@ -4585,6 +4602,8 @@ int snd_hda_parse_pin_def_config(struct hda_codec *codec,
		break;
	}

	sort_autocfg_input_pins(cfg);

	/*
	 * debug prints of the parsed results
	 */