int manager_id;
char name[NAME_SIZE];
+ /*
+ * there can be a rece condition between gb_audio_disconnect()
+ * and dai->trigger from above ASoC layer.
+ * To avoid any deadlock over codec_info->lock, atomic variable
+ * is used.
+ */
+ atomic_t is_connected;
+ struct mutex lock;
+
/* soc related data */
struct snd_soc_codec *codec;
struct device *dev;
struct list_head widget_list;
struct list_head codec_ctl_list;
struct list_head widget_ctl_list;
- struct mutex lock;
};
struct gbaudio_dai *gbaudio_find_dai(struct gbaudio_codec_info *gbcodec,