From 0c15a9e0f3f7174718351fcb1c16be944f3b8a57 Mon Sep 17 00:00:00 2001 From: Vaibhav Agarwal Date: Tue, 5 Jul 2016 17:09:20 -0500 Subject: [PATCH] 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: Vaibhav Agarwal Reviewed-by: Mark Greer Signed-off-by: Alex Elder --- drivers/staging/greybus/audio_codec.h | 1 + drivers/staging/greybus/audio_topology.c | 16 ++++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/drivers/staging/greybus/audio_codec.h b/drivers/staging/greybus/audio_codec.h index 5a19467c1623..f4936f18647b 100644 --- a/drivers/staging/greybus/audio_codec.h +++ b/drivers/staging/greybus/audio_codec.h @@ -123,6 +123,7 @@ struct gbaudio_widget { struct gbaudio_control { __u8 id; char *name; + char *wname; const char * const *texts; struct list_head list; }; diff --git a/drivers/staging/greybus/audio_topology.c b/drivers/staging/greybus/audio_topology.c index 1f9e8b6178dd..1bc987449180 100644 --- a/drivers/staging/greybus/audio_topology.c +++ b/drivers/staging/greybus/audio_topology.c @@ -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; -- 2.39.5