Fix compilation errors for GB Audio topology parser code with recent
kernel versions.

Signed-off-by: Vaibhav Agarwal <vaibhav...@gmail.com>
Reviewed-by: Dan Carpenter <dan.carpen...@oracle.com>
---
 drivers/staging/greybus/audio_topology.c | 123 +++++++++++------------
 1 file changed, 57 insertions(+), 66 deletions(-)

diff --git a/drivers/staging/greybus/audio_topology.c 
b/drivers/staging/greybus/audio_topology.c
index 4ac30accf226..ad88d3127a60 100644
--- a/drivers/staging/greybus/audio_topology.c
+++ b/drivers/staging/greybus/audio_topology.c
@@ -5,8 +5,8 @@
  * Copyright 2015-2016 Linaro Ltd.
  */
 
+#include <linux/greybus.h>
 #include "audio_codec.h"
-#include "greybus_protocols.h"
 
 #define GBAUDIO_INVALID_ID     0xFF
 
@@ -165,15 +165,15 @@ static int gbcodec_mixer_ctl_info(struct snd_kcontrol 
*kcontrol,
        struct gbaudio_ctl_pvt *data;
        struct gb_audio_ctl_elem_info *info;
        struct gbaudio_module_info *module;
-       struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol);
-       struct gbaudio_codec_info *gbcodec = snd_soc_codec_get_drvdata(codec);
+       struct snd_soc_component *comp = snd_soc_kcontrol_component(kcontrol);
+       struct gbaudio_codec_info *gbcodec = 
snd_soc_component_get_drvdata(comp);
 
-       dev_dbg(codec->dev, "Entered %s:%s\n", __func__, kcontrol->id.name);
+       dev_dbg(comp->dev, "Entered %s:%s\n", __func__, kcontrol->id.name);
        data = (struct gbaudio_ctl_pvt *)kcontrol->private_value;
        info = (struct gb_audio_ctl_elem_info *)data->info;
 
        if (!info) {
-               dev_err(codec->dev, "NULL info for %s\n", uinfo->id.name);
+               dev_err(comp->dev, "NULL info for %s\n", uinfo->id.name);
                return -EINVAL;
        }
 
@@ -201,7 +201,7 @@ static int gbcodec_mixer_ctl_info(struct snd_kcontrol 
*kcontrol,
                strlcpy(uinfo->value.enumerated.name, name, NAME_SIZE);
                break;
        default:
-               dev_err(codec->dev, "Invalid type: %d for %s:kcontrol\n",
+               dev_err(comp->dev, "Invalid type: %d for %s:kcontrol\n",
                        info->type, kcontrol->id.name);
                break;
        }
@@ -216,11 +216,11 @@ static int gbcodec_mixer_ctl_get(struct snd_kcontrol 
*kcontrol,
        struct gbaudio_ctl_pvt *data;
        struct gb_audio_ctl_elem_value gbvalue;
        struct gbaudio_module_info *module;
-       struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol);
-       struct gbaudio_codec_info *gb = snd_soc_codec_get_drvdata(codec);
+       struct snd_soc_component *comp = snd_soc_kcontrol_component(kcontrol);
+       struct gbaudio_codec_info *gb = snd_soc_component_get_drvdata(comp);
        struct gb_bundle *bundle;
 
-       dev_dbg(codec->dev, "Entered %s:%s\n", __func__, kcontrol->id.name);
+       dev_dbg(comp->dev, "Entered %s:%s\n", __func__, kcontrol->id.name);
        module = find_gb_module(gb, kcontrol->id.name);
        if (!module)
                return -EINVAL;
@@ -239,7 +239,7 @@ static int gbcodec_mixer_ctl_get(struct snd_kcontrol 
*kcontrol,
        gb_pm_runtime_put_autosuspend(bundle);
 
        if (ret) {
-               dev_err_ratelimited(codec->dev, "%d:Error in %s for %s\n", ret,
+               dev_err_ratelimited(comp->dev, "%d:Error in %s for %s\n", ret,
                                    __func__, kcontrol->id.name);
                return ret;
        }
@@ -262,7 +262,7 @@ static int gbcodec_mixer_ctl_get(struct snd_kcontrol 
*kcontrol,
                                le32_to_cpu(gbvalue.value.enumerated_item[1]);
                break;
        default:
-               dev_err(codec->dev, "Invalid type: %d for %s:kcontrol\n",
+               dev_err(comp->dev, "Invalid type: %d for %s:kcontrol\n",
                        info->type, kcontrol->id.name);
                ret = -EINVAL;
                break;
@@ -278,11 +278,11 @@ static int gbcodec_mixer_ctl_put(struct snd_kcontrol 
*kcontrol,
        struct gbaudio_ctl_pvt *data;
        struct gb_audio_ctl_elem_value gbvalue;
        struct gbaudio_module_info *module;
-       struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol);
-       struct gbaudio_codec_info *gb = snd_soc_codec_get_drvdata(codec);
+       struct snd_soc_component *comp = snd_soc_kcontrol_component(kcontrol);
+       struct gbaudio_codec_info *gb = snd_soc_component_get_drvdata(comp);
        struct gb_bundle *bundle;
 
-       dev_dbg(codec->dev, "Entered %s:%s\n", __func__, kcontrol->id.name);
+       dev_dbg(comp->dev, "Entered %s:%s\n", __func__, kcontrol->id.name);
        module = find_gb_module(gb, kcontrol->id.name);
        if (!module)
                return -EINVAL;
@@ -309,7 +309,7 @@ static int gbcodec_mixer_ctl_put(struct snd_kcontrol 
*kcontrol,
                                cpu_to_le32(ucontrol->value.enumerated.item[1]);
                break;
        default:
-               dev_err(codec->dev, "Invalid type: %d for %s:kcontrol\n",
+               dev_err(comp->dev, "Invalid type: %d for %s:kcontrol\n",
                        info->type, kcontrol->id.name);
                ret = -EINVAL;
                break;
@@ -328,7 +328,7 @@ static int gbcodec_mixer_ctl_put(struct snd_kcontrol 
*kcontrol,
        gb_pm_runtime_put_autosuspend(bundle);
 
        if (ret) {
-               dev_err_ratelimited(codec->dev, "%d:Error in %s for %s\n", ret,
+               dev_err_ratelimited(comp->dev, "%d:Error in %s for %s\n", ret,
                                    __func__, kcontrol->id.name);
        }
 
@@ -352,11 +352,7 @@ static int gbcodec_mixer_dapm_ctl_info(struct snd_kcontrol 
*kcontrol,
        int platform_max, platform_min;
        struct gbaudio_ctl_pvt *data;
        struct gb_audio_ctl_elem_info *info;
-       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;
 
-       dev_dbg(codec->dev, "Entered %s:%s\n", __func__, kcontrol->id.name);
        data = (struct gbaudio_ctl_pvt *)kcontrol->private_value;
        info = (struct gb_audio_ctl_elem_info *)data->info;
 
@@ -387,11 +383,11 @@ static int gbcodec_mixer_dapm_ctl_get(struct snd_kcontrol 
*kcontrol,
        struct gbaudio_module_info *module;
        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 device *codec_dev = widget->dapm->dev;
+       struct gbaudio_codec_info *gb = dev_get_drvdata(codec_dev);
        struct gb_bundle *bundle;
 
-       dev_dbg(codec->dev, "Entered %s:%s\n", __func__, kcontrol->id.name);
+       dev_dbg(codec_dev, "Entered %s:%s\n", __func__, kcontrol->id.name);
        module = find_gb_module(gb, kcontrol->id.name);
        if (!module)
                return -EINVAL;
@@ -415,7 +411,7 @@ static int gbcodec_mixer_dapm_ctl_get(struct snd_kcontrol 
*kcontrol,
        gb_pm_runtime_put_autosuspend(bundle);
 
        if (ret) {
-               dev_err_ratelimited(codec->dev, "%d:Error in %s for %s\n", ret,
+               dev_err_ratelimited(codec_dev, "%d:Error in %s for %s\n", ret,
                                    __func__, kcontrol->id.name);
                return ret;
        }
@@ -437,11 +433,11 @@ static int gbcodec_mixer_dapm_ctl_put(struct snd_kcontrol 
*kcontrol,
        struct gbaudio_module_info *module;
        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 device *codec_dev = widget->dapm->dev;
+       struct gbaudio_codec_info *gb = dev_get_drvdata(codec_dev);
        struct gb_bundle *bundle;
 
-       dev_dbg(codec->dev, "Entered %s:%s\n", __func__, kcontrol->id.name);
+       dev_dbg(codec_dev, "Entered %s:%s\n", __func__, kcontrol->id.name);
        module = find_gb_module(gb, kcontrol->id.name);
        if (!module)
                return -EINVAL;
@@ -464,11 +460,8 @@ static int gbcodec_mixer_dapm_ctl_put(struct snd_kcontrol 
*kcontrol,
        if (gbvalue.value.integer_value[0] != val) {
                for (wi = 0; wi < wlist->num_widgets; wi++) {
                        widget = wlist->widgets[wi];
-
-                       widget->value = val;
-                       widget->dapm->update = NULL;
-                       snd_soc_dapm_mixer_update_power(widget, kcontrol,
-                                                       connect);
+                       snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
+                                                       connect, NULL);
                }
                gbvalue.value.integer_value[0] =
                        cpu_to_le32(ucontrol->value.integer.value[0]);
@@ -484,7 +477,7 @@ static int gbcodec_mixer_dapm_ctl_put(struct snd_kcontrol 
*kcontrol,
                gb_pm_runtime_put_autosuspend(bundle);
 
                if (ret) {
-                       dev_err_ratelimited(codec->dev,
+                       dev_err_ratelimited(codec_dev,
                                            "%d:Error in %s for %s\n", ret,
                                            __func__, kcontrol->id.name);
                        return ret;
@@ -553,11 +546,11 @@ static int gbcodec_enum_ctl_get(struct snd_kcontrol 
*kcontrol,
                                struct snd_ctl_elem_value *ucontrol)
 {
        int ret, ctl_id;
-       struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol);
+       struct snd_soc_component *comp = snd_soc_kcontrol_component(kcontrol);
+       struct gbaudio_codec_info *gb = snd_soc_component_get_drvdata(comp);
        struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
        struct gb_audio_ctl_elem_value gbvalue;
        struct gbaudio_module_info *module;
-       struct gbaudio_codec_info *gb = snd_soc_codec_get_drvdata(codec);
        struct gb_bundle *bundle;
 
        module = find_gb_module(gb, kcontrol->id.name);
@@ -580,7 +573,7 @@ static int gbcodec_enum_ctl_get(struct snd_kcontrol 
*kcontrol,
        gb_pm_runtime_put_autosuspend(bundle);
 
        if (ret) {
-               dev_err_ratelimited(codec->dev, "%d:Error in %s for %s\n", ret,
+               dev_err_ratelimited(comp->dev, "%d:Error in %s for %s\n", ret,
                                    __func__, kcontrol->id.name);
                return ret;
        }
@@ -598,11 +591,11 @@ static int gbcodec_enum_ctl_put(struct snd_kcontrol 
*kcontrol,
                                struct snd_ctl_elem_value *ucontrol)
 {
        int ret, ctl_id;
-       struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol);
+       struct snd_soc_component *comp = snd_soc_kcontrol_component(kcontrol);
+       struct gbaudio_codec_info *gb = snd_soc_component_get_drvdata(comp);
        struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
        struct gb_audio_ctl_elem_value gbvalue;
        struct gbaudio_module_info *module;
-       struct gbaudio_codec_info *gb = snd_soc_codec_get_drvdata(codec);
        struct gb_bundle *bundle;
 
        module = find_gb_module(gb, kcontrol->id.name);
@@ -613,13 +606,13 @@ static int gbcodec_enum_ctl_put(struct snd_kcontrol 
*kcontrol,
        if (ctl_id < 0)
                return -EINVAL;
 
-       if (ucontrol->value.enumerated.item[0] > e->max - 1)
+       if (ucontrol->value.enumerated.item[0] > e->items - 1)
                return -EINVAL;
        gbvalue.value.enumerated_item[0] =
                cpu_to_le32(ucontrol->value.enumerated.item[0]);
 
        if (e->shift_l != e->shift_r) {
-               if (ucontrol->value.enumerated.item[1] > e->max - 1)
+               if (ucontrol->value.enumerated.item[1] > e->items - 1)
                        return -EINVAL;
                gbvalue.value.enumerated_item[1] =
                        cpu_to_le32(ucontrol->value.enumerated.item[1]);
@@ -637,8 +630,8 @@ static int gbcodec_enum_ctl_put(struct snd_kcontrol 
*kcontrol,
        gb_pm_runtime_put_autosuspend(bundle);
 
        if (ret) {
-               dev_err_ratelimited(codec->dev, "%d:Error in %s for %s\n", ret,
-                                   __func__, kcontrol->id.name);
+               dev_err_ratelimited(comp->dev, "%d:Error in %s for %s\n",
+                                   ret, __func__, kcontrol->id.name);
        }
 
        return ret;
@@ -659,13 +652,13 @@ static int gbaudio_tplg_create_enum_kctl(struct 
gbaudio_module_info *gb,
        gb_enum = &ctl->info.value.enumerated;
 
        /* since count=1, and reg is dummy */
-       gbe->max = le32_to_cpu(gb_enum->items);
+       gbe->items = le32_to_cpu(gb_enum->items);
        gbe->texts = gb_generate_enum_strings(gb, gb_enum);
 
        /* debug enum info */
-       dev_dbg(gb->dev, "Max:%d, name_length:%d\n", gbe->max,
+       dev_dbg(gb->dev, "Max:%d, name_length:%d\n", gbe->items,
                le16_to_cpu(gb_enum->names_length));
-       for (i = 0; i < gbe->max; i++)
+       for (i = 0; i < gbe->items; i++)
                dev_dbg(gb->dev, "src[%d]: %s\n", i, gbe->texts[i]);
 
        *kctl = (struct snd_kcontrol_new)
@@ -720,8 +713,8 @@ static int gbcodec_enum_dapm_ctl_get(struct snd_kcontrol 
*kcontrol,
        struct snd_soc_dapm_widget *widget = wlist->widgets[0];
        struct gbaudio_module_info *module;
        struct gb_audio_ctl_elem_value gbvalue;
-       struct snd_soc_codec *codec = widget->codec;
-       struct gbaudio_codec_info *gb = snd_soc_codec_get_drvdata(codec);
+       struct device *codec_dev = widget->dapm->dev;
+       struct gbaudio_codec_info *gb = dev_get_drvdata(codec_dev);
        struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
        struct gb_bundle *bundle;
 
@@ -745,7 +738,7 @@ static int gbcodec_enum_dapm_ctl_get(struct snd_kcontrol 
*kcontrol,
        gb_pm_runtime_put_autosuspend(bundle);
 
        if (ret) {
-               dev_err_ratelimited(codec->dev, "%d:Error in %s for %s\n", ret,
+               dev_err_ratelimited(codec_dev, "%d:Error in %s for %s\n", ret,
                                    __func__, kcontrol->id.name);
                return ret;
        }
@@ -768,12 +761,12 @@ static int gbcodec_enum_dapm_ctl_put(struct snd_kcontrol 
*kcontrol,
        struct snd_soc_dapm_widget *widget = wlist->widgets[0];
        struct gb_audio_ctl_elem_value gbvalue;
        struct gbaudio_module_info *module;
-       struct snd_soc_codec *codec = widget->codec;
-       struct gbaudio_codec_info *gb = snd_soc_codec_get_drvdata(codec);
+       struct device *codec_dev = widget->dapm->dev;
+       struct gbaudio_codec_info *gb = dev_get_drvdata(codec_dev);
        struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
        struct gb_bundle *bundle;
 
-       if (ucontrol->value.enumerated.item[0] > e->max - 1)
+       if (ucontrol->value.enumerated.item[0] > e->items - 1)
                return -EINVAL;
 
        module = find_gb_module(gb, kcontrol->id.name);
@@ -797,7 +790,7 @@ static int gbcodec_enum_dapm_ctl_put(struct snd_kcontrol 
*kcontrol,
        gb_pm_runtime_put_autosuspend(bundle);
 
        if (ret) {
-               dev_err_ratelimited(codec->dev, "%d:Error in %s for %s\n", ret,
+               dev_err_ratelimited(codec_dev, "%d:Error in %s for %s\n", ret,
                                    __func__, kcontrol->id.name);
                return ret;
        }
@@ -814,7 +807,7 @@ static int gbcodec_enum_dapm_ctl_put(struct snd_kcontrol 
*kcontrol,
        }
 
        if (e->shift_l != e->shift_r) {
-               if (ucontrol->value.enumerated.item[1] > e->max - 1)
+               if (ucontrol->value.enumerated.item[1] > e->items - 1)
                        return -EINVAL;
                val |= ucontrol->value.enumerated.item[1] << e->shift_r;
                mask |= e->mask << e->shift_r;
@@ -837,16 +830,14 @@ static int gbcodec_enum_dapm_ctl_put(struct snd_kcontrol 
*kcontrol,
                gb_pm_runtime_put_autosuspend(bundle);
 
                if (ret) {
-                       dev_err_ratelimited(codec->dev,
+                       dev_err_ratelimited(codec_dev,
                                            "%d:Error in %s for %s\n", ret,
                                            __func__, kcontrol->id.name);
                }
                for (wi = 0; wi < wlist->num_widgets; wi++) {
                        widget = wlist->widgets[wi];
-
-                       widget->value = val;
-                       widget->dapm->update = NULL;
-                       snd_soc_dapm_mux_update_power(widget, kcontrol, mux, e);
+                       snd_soc_dapm_mux_update_power(widget->dapm, kcontrol,
+                                                     val, e, NULL);
                }
        }
 
@@ -868,13 +859,13 @@ static int gbaudio_tplg_create_enum_ctl(struct 
gbaudio_module_info *gb,
        gb_enum = &ctl->info.value.enumerated;
 
        /* since count=1, and reg is dummy */
-       gbe->max = le32_to_cpu(gb_enum->items);
+       gbe->items = le32_to_cpu(gb_enum->items);
        gbe->texts = gb_generate_enum_strings(gb, gb_enum);
 
        /* debug enum info */
-       dev_dbg(gb->dev, "Max:%d, name_length:%d\n", gbe->max,
+       dev_dbg(gb->dev, "Max:%d, name_length:%d\n", gbe->items,
                le16_to_cpu(gb_enum->names_length));
-       for (i = 0; i < gbe->max; i++)
+       for (i = 0; i < gbe->items; i++)
                dev_dbg(gb->dev, "src[%d]: %s\n", i, gbe->texts[i]);
 
        *kctl = (struct snd_kcontrol_new)
@@ -935,12 +926,12 @@ 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 device *codec_dev = w->dapm->dev;
+       struct gbaudio_codec_info *gbcodec = dev_get_drvdata(codec_dev);
        struct gbaudio_module_info *module;
        struct gb_bundle *bundle;
 
-       dev_dbg(codec->dev, "%s %s %d\n", __func__, w->name, event);
+       dev_dbg(codec_dev, "%s %s %d\n", __func__, w->name, event);
 
        /* Find relevant module */
        module = find_gb_module(gbcodec, w->name);
@@ -950,7 +941,7 @@ static int gbaudio_widget_event(struct snd_soc_dapm_widget 
*w,
        /* map name to widget id */
        wid = gbaudio_map_widgetname(module, w->name);
        if (wid < 0) {
-               dev_err(codec->dev, "Invalid widget name:%s\n", w->name);
+               dev_err(codec_dev, "Invalid widget name:%s\n", w->name);
                return -EINVAL;
        }
 
@@ -973,7 +964,7 @@ static int gbaudio_widget_event(struct snd_soc_dapm_widget 
*w,
                break;
        }
        if (ret)
-               dev_err_ratelimited(codec->dev,
+               dev_err_ratelimited(codec_dev,
                                    "%d: widget, event:%d failed:%d\n", wid,
                                    event, ret);
 
-- 
2.26.2

_______________________________________________
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

Reply via email to