]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - drivers/staging/greybus/audio_topology.c
greybus: audio: use variable 'is_connected' to maintain module state
[karo-tx-linux.git] / drivers / staging / greybus / audio_topology.c
index 5fab393130a596c3675005c2cb0698c6b2597f1c..1651c14c87ba95aab70b6a9b4da61abc207c9027 100644 (file)
@@ -140,6 +140,9 @@ static int gbcodec_mixer_ctl_get(struct snd_kcontrol *kcontrol,
        struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol);
        struct gbaudio_codec_info *gb = snd_soc_codec_get_drvdata(codec);
 
+       if (!atomic_read(&gb->is_connected))
+               return -ENODEV;
+
        data = (struct gbaudio_ctl_pvt *)kcontrol->private_value;
        info = (struct gb_audio_ctl_elem_info *)data->info;
 
@@ -187,6 +190,9 @@ static int gbcodec_mixer_ctl_put(struct snd_kcontrol *kcontrol,
        struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol);
        struct gbaudio_codec_info *gb = snd_soc_codec_get_drvdata(codec);
 
+       if (!atomic_read(&gb->is_connected))
+               return -ENODEV;
+
        data = (struct gbaudio_ctl_pvt *)kcontrol->private_value;
        info = (struct gb_audio_ctl_elem_info *)data->info;
 
@@ -281,6 +287,9 @@ static int gbcodec_mixer_dapm_ctl_get(struct snd_kcontrol *kcontrol,
        struct snd_soc_codec *codec = widget->codec;
        struct gbaudio_codec_info *gb = snd_soc_codec_get_drvdata(codec);
 
+       if (!atomic_read(&gb->is_connected))
+               return -ENODEV;
+
        data = (struct gbaudio_ctl_pvt *)kcontrol->private_value;
        info = (struct gb_audio_ctl_elem_info *)data->info;
 
@@ -315,6 +324,9 @@ static int gbcodec_mixer_dapm_ctl_put(struct snd_kcontrol *kcontrol,
        struct snd_soc_codec *codec = widget->codec;
        struct gbaudio_codec_info *gb = snd_soc_codec_get_drvdata(codec);
 
+       if (!atomic_read(&gb->is_connected))
+               return -ENODEV;
+
        data = (struct gbaudio_ctl_pvt *)kcontrol->private_value;
        info = (struct gb_audio_ctl_elem_info *)data->info;