参照元

説明

  • パス: linux-4.4.1/sound/soc/soc-dapm.c?
  • FIXME: これは何?
    • 説明

引数

  • struct snd_soc_dapm_widget *w
    • linux-4.4.1/snd_soc_dapm_widget?

返り値

  • int

参考

実装

/* create new dapm mux control */
static int dapm_new_mux(struct snd_soc_dapm_widget *w)
{
	struct snd_soc_dapm_context *dapm = w->dapm;
	enum snd_soc_dapm_direction dir;
	struct snd_soc_dapm_path *path;
	const char *type;
	int ret;
	switch (w->id) {
	case snd_soc_dapm_mux:
		dir = SND_SOC_DAPM_DIR_OUT;
		type = "mux";
		break;
	case snd_soc_dapm_demux:
		dir = SND_SOC_DAPM_DIR_IN;
		type = "demux";
		break;
	default:
		return -EINVAL;
	}

	if (w->num_kcontrols != 1) {
		dev_err(dapm->dev,
			"ASoC: %s %s has incorrect number of controls\n", type,
			w->name);
		return -EINVAL;
	}
    • linux-4.4.1/dev_err()?
	if (list_empty(&w->edges[dir])) {
		dev_err(dapm->dev, "ASoC: %s %s has no paths\n", type, w->name);
		return -EINVAL;
	}
    • linux-4.4.1/list_empty()?
	ret = dapm_create_or_share_kcontrol(w, 0);
	if (ret < 0)
		return ret;
    • linux-4.4.1/dapm_create_or_share_kcontrol()?
	snd_soc_dapm_widget_for_each_path(w, dir, path) {
		if (path->name)
			dapm_kcontrol_add_path(w->kcontrols[0], path);
	}
    • linux-4.4.1/snd_soc_dapm_widget_for_each_path()?
    • linux-4.4.1/dapm_kcontrol_add_path()?
  • path->name を設定している箇所は下記
	return 0;
}

コメント


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2018-06-22 (金) 11:39:44 (93d)