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

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

ALSA: hda - Small code refactoring about path re-initialization



Introduce a helper function to do the same thing.

Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent e4a395e7
Loading
Loading
Loading
Loading
+11 −14
Original line number Diff line number Diff line
@@ -735,6 +735,14 @@ static void set_pin_eapd(struct hda_codec *codec, hda_nid_t pin, bool enable)
				   enable ? 0x02 : 0x00);
}

/* re-initialize the path specified by the given path index */
static void resume_path_from_idx(struct hda_codec *codec, int path_idx)
{
	struct nid_path *path = snd_hda_get_path_from_idx(codec, path_idx);
	if (path)
		snd_hda_activate_path(codec, path, path->active, false);
}


/*
 * Helper functions for creating mixer ctl elements
@@ -4684,16 +4692,8 @@ static void init_analog_input(struct hda_codec *codec)

		/* init loopback inputs */
		if (spec->mixer_nid) {
			struct nid_path *path;
			path = snd_hda_get_path_from_idx(codec, spec->loopback_paths[i]);
			if (path)
				snd_hda_activate_path(codec, path,
						      path->active, false);
			path = snd_hda_get_path_from_idx(codec,
							 spec->loopback_merge_path);
			if (path)
				snd_hda_activate_path(codec, path, path->active,
						      false);
			resume_path_from_idx(codec, spec->loopback_paths[i]);
			resume_path_from_idx(codec, spec->loopback_merge_path);
		}
	}
}
@@ -4741,11 +4741,8 @@ static void init_digital(struct hda_codec *codec)
		set_output_and_unmute(codec, spec->digout_paths[i]);
	pin = spec->autocfg.dig_in_pin;
	if (pin) {
		struct nid_path *path;
		restore_pin_ctl(codec, pin);
		path = snd_hda_get_path_from_idx(codec, spec->digin_path);
		if (path)
			snd_hda_activate_path(codec, path, path->active, false);
		resume_path_from_idx(codec, spec->digin_path);
	}
}