|
@@ -124,6 +124,36 @@ static inline struct snd_soc_dapm_widget *dapm_cnew_widget(
|
|
|
return kmemdup(_widget, sizeof(*_widget), GFP_KERNEL);
|
|
|
}
|
|
|
|
|
|
+/* get snd_card from DAPM context */
|
|
|
+static inline struct snd_card *dapm_get_snd_card(
|
|
|
+ struct snd_soc_dapm_context *dapm)
|
|
|
+{
|
|
|
+ if (dapm->codec)
|
|
|
+ return dapm->codec->card->snd_card;
|
|
|
+ else if (dapm->platform)
|
|
|
+ return dapm->platform->card->snd_card;
|
|
|
+ else
|
|
|
+ BUG();
|
|
|
+
|
|
|
+ /* unreachable */
|
|
|
+ return NULL;
|
|
|
+}
|
|
|
+
|
|
|
+/* get soc_card from DAPM context */
|
|
|
+static inline struct snd_soc_card *dapm_get_soc_card(
|
|
|
+ struct snd_soc_dapm_context *dapm)
|
|
|
+{
|
|
|
+ if (dapm->codec)
|
|
|
+ return dapm->codec->card;
|
|
|
+ else if (dapm->platform)
|
|
|
+ return dapm->platform->card;
|
|
|
+ else
|
|
|
+ BUG();
|
|
|
+
|
|
|
+ /* unreachable */
|
|
|
+ return NULL;
|
|
|
+}
|
|
|
+
|
|
|
static int soc_widget_read(struct snd_soc_dapm_widget *w, int reg)
|
|
|
{
|
|
|
if (w->codec)
|