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

Commit 0c15a9e0 authored by Vaibhav Agarwal's avatar Vaibhav Agarwal Committed by Alex Elder
Browse files

greybus: audio: topology: Add helper API to map controlid with widget name



This API is used by enumerated controls .get/.set callback functions to
fetch control id associated with a widget.

Signed-off-by: default avatarVaibhav Agarwal <vaibhav.agarwal@linaro.org>
Reviewed-by: default avatarMark Greer <mark.greer@animalcreek.com>
Signed-off-by: default avatarAlex Elder <elder@linaro.org>
parent 957ccca0
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -123,6 +123,7 @@ struct gbaudio_widget {
struct gbaudio_control {
	__u8 id;
	char *name;
	char *wname;
	const char * const *texts;
	struct list_head list;
};
+16 −0
Original line number Diff line number Diff line
@@ -77,6 +77,20 @@ static const char *gbaudio_map_controlid(struct gbaudio_module_info *module,
	return NULL;
}

static int gbaudio_map_wcontrolname(struct gbaudio_module_info *module,
					  const char *name)
{
	struct gbaudio_control *control;

	list_for_each_entry(control, &module->widget_ctl_list, list) {
		if (!strncmp(control->wname, name, NAME_SIZE))
			return control->id;
	}
	dev_warn(module->dev, "%s: missing in modules controls list\n", name);

	return -EINVAL;
}

static int gbaudio_map_widgetname(struct gbaudio_module_info *module,
					  const char *name)
{
@@ -652,6 +666,8 @@ static int gbaudio_tplg_create_widget(struct gbaudio_module_info *module,
		}
		control->id = curr->id;
		control->name = curr->name;
		control->wname = w->name;

		if (curr->info.type == GB_AUDIO_CTL_ELEM_TYPE_ENUMERATED)
			control->texts = (const char * const *)
				curr->info.value.enumerated.names;