summaryrefslogtreecommitdiff
path: root/drivers/staging/greybus/audio_codec.h
diff options
context:
space:
mode:
authorVaibhav Agarwal <vaibhav.agarwal@linaro.org>2016-01-28 21:15:39 +0530
committerGreg Kroah-Hartman <gregkh@google.com>2016-02-02 21:46:54 -0800
commit796fad441cb248c1eac88bfb3a5929bb1a10fabb (patch)
treeb5b211d7a02ff35e2f1427fd65093c44fe0d2173 /drivers/staging/greybus/audio_codec.h
parent127c1fbd55939642365f26efd3121562629ec1b1 (diff)
greybus: audio: codec driver cleanup
audio codec driver is now moved to bundle driver approach. This resolved many race conditions related to audio mgmt & data connection init/exit sequence. Thus, a lot of helper functions can now be safely removed. Signed-off-by: Vaibhav Agarwal <vaibhav.agarwal@linaro.org> Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Diffstat (limited to 'drivers/staging/greybus/audio_codec.h')
-rw-r--r--drivers/staging/greybus/audio_codec.h21
1 files changed, 6 insertions, 15 deletions
diff --git a/drivers/staging/greybus/audio_codec.h b/drivers/staging/greybus/audio_codec.h
index bba48a59bf4d..56110913b70e 100644
--- a/drivers/staging/greybus/audio_codec.h
+++ b/drivers/staging/greybus/audio_codec.h
@@ -84,6 +84,8 @@ struct gbaudio_control {
struct gbaudio_dai {
__le16 data_cport;
char name[NAME_SIZE];
+ /* DAI users */
+ atomic_t users;
struct gb_connection *connection;
struct list_head list;
};
@@ -116,8 +118,9 @@ struct gbaudio_codec_info {
char *dailink_name[MAX_DAIS];
int num_dai_links;
- /* topology related */
struct gb_connection *mgmt_connection;
+ size_t num_data_connections;
+ /* topology related */
int num_dais;
int num_kcontrols;
int num_dapm_widgets;
@@ -131,9 +134,6 @@ struct gbaudio_codec_info {
struct snd_soc_dapm_route *routes;
struct snd_soc_dai_driver *dais;
- /* codec users */
- atomic_t users;
-
/* lists */
struct list_head dai_list;
struct list_head widget_list;
@@ -142,17 +142,8 @@ struct gbaudio_codec_info {
struct mutex lock;
};
-struct gb_audio {
- struct gb_connection *mgmt_connection;
- size_t num_data_connections;
- struct gbaudio_codec_info *gbcodec;
- struct gb_connection *data_connection[0];
-};
-
-struct gbaudio_dai *gbaudio_add_dai(struct gbaudio_codec_info *gbcodec,
- int data_cport,
- struct gb_connection *connection,
- const char *name);
+struct gbaudio_dai *gbaudio_find_dai(struct gbaudio_codec_info *gbcodec,
+ int data_cport, const char *name);
int gbaudio_tplg_parse_data(struct gbaudio_codec_info *gbcodec,
struct gb_audio_topology *tplg_data);
void gbaudio_tplg_release(struct gbaudio_codec_info *gbcodec);