Lines Matching refs:se
83 static void soc_tplg_denum_remove_texts(struct soc_enum *se);
84 static void soc_tplg_denum_remove_values(struct soc_enum *se);
386 struct soc_enum *se = container_of(dobj, struct soc_enum, dobj); in remove_enum() local
397 soc_tplg_denum_remove_values(se); in remove_enum()
398 soc_tplg_denum_remove_texts(se); in remove_enum()
399 kfree(se); in remove_enum()
464 struct soc_enum *se = in remove_widget() local
470 soc_tplg_denum_remove_values(se); in remove_widget()
471 soc_tplg_denum_remove_texts(se); in remove_widget()
473 kfree(se); in remove_widget()
938 static int soc_tplg_denum_create_texts(struct soc_enum *se, in soc_tplg_denum_create_texts() argument
943 se->dobj.control.dtexts = in soc_tplg_denum_create_texts()
945 if (se->dobj.control.dtexts == NULL) in soc_tplg_denum_create_texts()
956 se->dobj.control.dtexts[i] = kstrdup(ec->texts[i], GFP_KERNEL); in soc_tplg_denum_create_texts()
957 if (!se->dobj.control.dtexts[i]) { in soc_tplg_denum_create_texts()
963 se->items = le32_to_cpu(ec->items); in soc_tplg_denum_create_texts()
964 se->texts = (const char * const *)se->dobj.control.dtexts; in soc_tplg_denum_create_texts()
968 se->items = i; in soc_tplg_denum_create_texts()
969 soc_tplg_denum_remove_texts(se); in soc_tplg_denum_create_texts()
973 static inline void soc_tplg_denum_remove_texts(struct soc_enum *se) in soc_tplg_denum_remove_texts() argument
975 int i = se->items; in soc_tplg_denum_remove_texts()
978 kfree(se->dobj.control.dtexts[i]); in soc_tplg_denum_remove_texts()
979 kfree(se->dobj.control.dtexts); in soc_tplg_denum_remove_texts()
982 static int soc_tplg_denum_create_values(struct soc_enum *se, in soc_tplg_denum_create_values() argument
990 se->dobj.control.dvalues = kzalloc(le32_to_cpu(ec->items) * in soc_tplg_denum_create_values()
991 sizeof(*se->dobj.control.dvalues), in soc_tplg_denum_create_values()
993 if (!se->dobj.control.dvalues) in soc_tplg_denum_create_values()
998 se->dobj.control.dvalues[i] = le32_to_cpu(ec->values[i]); in soc_tplg_denum_create_values()
1004 static inline void soc_tplg_denum_remove_values(struct soc_enum *se) in soc_tplg_denum_remove_values() argument
1006 kfree(se->dobj.control.dvalues); in soc_tplg_denum_remove_values()
1013 struct soc_enum *se; in soc_tplg_denum_create() local
1035 se = kzalloc((sizeof(*se)), GFP_KERNEL); in soc_tplg_denum_create()
1036 if (se == NULL) in soc_tplg_denum_create()
1047 kc.private_value = (long)se; in soc_tplg_denum_create()
1051 se->reg = tplc_chan_get_reg(tplg, ec->channel, SNDRV_CHMAP_FL); in soc_tplg_denum_create()
1052 se->shift_l = tplc_chan_get_shift(tplg, ec->channel, in soc_tplg_denum_create()
1054 se->shift_r = tplc_chan_get_shift(tplg, ec->channel, in soc_tplg_denum_create()
1057 se->mask = le32_to_cpu(ec->mask); in soc_tplg_denum_create()
1058 se->dobj.index = tplg->index; in soc_tplg_denum_create()
1059 se->dobj.type = SND_SOC_DOBJ_ENUM; in soc_tplg_denum_create()
1060 se->dobj.ops = tplg->ops; in soc_tplg_denum_create()
1061 INIT_LIST_HEAD(&se->dobj.list); in soc_tplg_denum_create()
1066 err = soc_tplg_denum_create_values(se, ec); in soc_tplg_denum_create()
1077 err = soc_tplg_denum_create_texts(se, ec); in soc_tplg_denum_create()
1111 &kc, &se->dobj.control.kcontrol); in soc_tplg_denum_create()
1118 list_add(&se->dobj.list, &tplg->comp->dobj_list); in soc_tplg_denum_create()
1123 kfree(se); in soc_tplg_denum_create()
1410 struct soc_enum *se; in soc_tplg_dapm_widget_denum_create() local
1424 se = kzalloc(sizeof(*se), GFP_KERNEL); in soc_tplg_dapm_widget_denum_create()
1425 if (se == NULL) in soc_tplg_dapm_widget_denum_create()
1434 kc[i].private_value = (long)se; in soc_tplg_dapm_widget_denum_create()
1442 se->reg = tplc_chan_get_reg(tplg, ec->channel, SNDRV_CHMAP_FL); in soc_tplg_dapm_widget_denum_create()
1443 se->shift_l = tplc_chan_get_shift(tplg, ec->channel, in soc_tplg_dapm_widget_denum_create()
1445 se->shift_r = tplc_chan_get_shift(tplg, ec->channel, in soc_tplg_dapm_widget_denum_create()
1448 se->items = le32_to_cpu(ec->items); in soc_tplg_dapm_widget_denum_create()
1449 se->mask = le32_to_cpu(ec->mask); in soc_tplg_dapm_widget_denum_create()
1450 se->dobj.index = tplg->index; in soc_tplg_dapm_widget_denum_create()
1455 err = soc_tplg_denum_create_values(se, ec); in soc_tplg_dapm_widget_denum_create()
1465 err = soc_tplg_denum_create_texts(se, ec); in soc_tplg_dapm_widget_denum_create()
1500 se = (struct soc_enum *)kc[i].private_value; in soc_tplg_dapm_widget_denum_create()
1502 if (se) { in soc_tplg_dapm_widget_denum_create()
1503 soc_tplg_denum_remove_values(se); in soc_tplg_dapm_widget_denum_create()
1504 soc_tplg_denum_remove_texts(se); in soc_tplg_dapm_widget_denum_create()
1507 kfree(se); in soc_tplg_dapm_widget_denum_create()