diff options
author | Viresh Kumar <viresh.kumar@linaro.org> | 2016-01-27 16:57:48 +0530 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@google.com> | 2016-01-27 17:53:10 -0800 |
commit | 35e28794dcddf2eab1d53b9f3bf5a0eeee82e3c9 (patch) | |
tree | e404cb7fae47009b3a09b18ea52e163f2beae770 /drivers/staging/greybus/audio_topology.c | |
parent | 4b27be1223b048322398e04fcebef7f85c0dac0d (diff) | |
download | op-kernel-dev-35e28794dcddf2eab1d53b9f3bf5a0eeee82e3c9.zip op-kernel-dev-35e28794dcddf2eab1d53b9f3bf5a0eeee82e3c9.tar.gz |
greybus: audio_codec: convert to bundle driver
Convert the legacy audio management and data protocol drivers to a
bundle driver.
The Audio bundle driver can support a single management and any number
of data cports, and so we expect multiple data cports to be present for
the bundle during initialization.
Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Reviewed-by: Johan Hovold <johan@hovoldconsulting.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Diffstat (limited to 'drivers/staging/greybus/audio_topology.c')
-rw-r--r-- | drivers/staging/greybus/audio_topology.c | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/drivers/staging/greybus/audio_topology.c b/drivers/staging/greybus/audio_topology.c index b18574e..90d2148 100644 --- a/drivers/staging/greybus/audio_topology.c +++ b/drivers/staging/greybus/audio_topology.c @@ -92,7 +92,8 @@ static int gbcodec_mixer_ctl_info(struct snd_kcontrol *kcontrol, struct gbaudio_ctl_pvt *data; struct gb_audio_ctl_elem_info *info; struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol); - struct gbaudio_codec_info *gbcodec = snd_soc_codec_get_drvdata(codec); + struct gb_audio *audio = snd_soc_codec_get_drvdata(codec); + struct gbaudio_codec_info *gbcodec = audio->gbcodec; data = (struct gbaudio_ctl_pvt *)kcontrol->private_value; info = (struct gb_audio_ctl_elem_info *)data->info; @@ -138,7 +139,8 @@ static int gbcodec_mixer_ctl_get(struct snd_kcontrol *kcontrol, struct gbaudio_ctl_pvt *data; struct gb_audio_ctl_elem_value gbvalue; struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol); - struct gbaudio_codec_info *gb = snd_soc_codec_get_drvdata(codec); + struct gb_audio *audio = snd_soc_codec_get_drvdata(codec); + struct gbaudio_codec_info *gb = audio->gbcodec; data = (struct gbaudio_ctl_pvt *)kcontrol->private_value; info = (struct gb_audio_ctl_elem_info *)data->info; @@ -185,7 +187,8 @@ static int gbcodec_mixer_ctl_put(struct snd_kcontrol *kcontrol, struct gbaudio_ctl_pvt *data; struct gb_audio_ctl_elem_value gbvalue; struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol); - struct gbaudio_codec_info *gb = snd_soc_codec_get_drvdata(codec); + struct gb_audio *audio = snd_soc_codec_get_drvdata(codec); + struct gbaudio_codec_info *gb = audio->gbcodec; data = (struct gbaudio_ctl_pvt *)kcontrol->private_value; info = (struct gb_audio_ctl_elem_info *)data->info; @@ -279,7 +282,8 @@ static int gbcodec_mixer_dapm_ctl_get(struct snd_kcontrol *kcontrol, struct snd_soc_dapm_widget_list *wlist = snd_kcontrol_chip(kcontrol); struct snd_soc_dapm_widget *widget = wlist->widgets[0]; struct snd_soc_codec *codec = widget->codec; - struct gbaudio_codec_info *gb = snd_soc_codec_get_drvdata(codec); + struct gb_audio *audio = snd_soc_codec_get_drvdata(codec); + struct gbaudio_codec_info *gb = audio->gbcodec; data = (struct gbaudio_ctl_pvt *)kcontrol->private_value; info = (struct gb_audio_ctl_elem_info *)data->info; @@ -313,7 +317,8 @@ static int gbcodec_mixer_dapm_ctl_put(struct snd_kcontrol *kcontrol, struct snd_soc_dapm_widget_list *wlist = snd_kcontrol_chip(kcontrol); struct snd_soc_dapm_widget *widget = wlist->widgets[0]; struct snd_soc_codec *codec = widget->codec; - struct gbaudio_codec_info *gb = snd_soc_codec_get_drvdata(codec); + struct gb_audio *audio = snd_soc_codec_get_drvdata(codec); + struct gbaudio_codec_info *gb = audio->gbcodec; data = (struct gbaudio_ctl_pvt *)kcontrol->private_value; info = (struct gb_audio_ctl_elem_info *)data->info; @@ -519,7 +524,8 @@ static int gbaudio_widget_event(struct snd_soc_dapm_widget *w, int wid; int ret; struct snd_soc_codec *codec = w->codec; - struct gbaudio_codec_info *gbcodec = snd_soc_codec_get_drvdata(codec); + struct gb_audio *audio = snd_soc_codec_get_drvdata(codec); + struct gbaudio_codec_info *gbcodec = audio->gbcodec; dev_dbg(codec->dev, "%s %s %d\n", __func__, w->name, event); |