staging: greybus: audio: Resolve compilation errors for GB codec module
authorVaibhav Agarwal <vaibhav.sr@gmail.com>
Thu, 9 Jul 2020 10:27:19 +0000 (15:57 +0530)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 29 Jul 2020 14:40:09 +0000 (16:40 +0200)
Due to dependencies on ASoC framework changes, GB dummy codec module
compilation is currently disabled. This patch updates codec driver as
per the latest ASoC APIs.

Signed-off-by: Vaibhav Agarwal <vaibhav.sr@gmail.com>
Reviewed-by: Dan Carpenter <dan.carpenter@oracle.com>
Link: https://lore.kernel.org/r/dd66a960fca186da055600fe1e622b7a814cb543.1594290158.git.vaibhav.sr@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/greybus/audio_codec.c
drivers/staging/greybus/audio_codec.h

index 6dc4ee2bfb37401861933a628a2419b62e35522d..0ecdba27086b53bb7a2a0816f0c8a9572dc40ffe 100644 (file)
@@ -825,7 +825,7 @@ free_jacks:
 int gbaudio_register_module(struct gbaudio_module_info *module)
 {
        int ret;
-       struct snd_soc_codec *codec;
+       struct snd_soc_component *comp;
        struct snd_card *card;
        struct gbaudio_jack *jack = NULL;
 
@@ -834,8 +834,8 @@ int gbaudio_register_module(struct gbaudio_module_info *module)
                return -EAGAIN;
        }
 
-       codec = gbcodec->codec;
-       card = codec->card->snd_card;
+       comp = gbcodec->component;
+       card = comp->card->snd_card;
 
        down_write(&card->controls_rwsem);
 
@@ -847,33 +847,33 @@ int gbaudio_register_module(struct gbaudio_module_info *module)
                return -EINVAL;
        }
 
-       ret = gbaudio_init_jack(module, component->card);
+       ret = gbaudio_init_jack(module, comp->card);
        if (ret) {
                up_write(&card->controls_rwsem);
                return ret;
        }
 
        if (module->dapm_widgets)
-               snd_soc_dapm_new_controls(&codec->dapm, module->dapm_widgets,
+               snd_soc_dapm_new_controls(&comp->dapm, module->dapm_widgets,
                                          module->num_dapm_widgets);
        if (module->controls)
-               snd_soc_add_codec_controls(codec, module->controls,
-                                          module->num_controls);
+               snd_soc_add_component_controls(comp, module->controls,
+                                              module->num_controls);
        if (module->dapm_routes)
-               snd_soc_dapm_add_routes(&codec->dapm, module->dapm_routes,
+               snd_soc_dapm_add_routes(&comp->dapm, module->dapm_routes,
                                        module->num_dapm_routes);
 
        /* card already instantiated, create widgets here only */
-       if (codec->card->instantiated) {
-               snd_soc_dapm_link_component_dai_widgets(codec->card,
-                                                       &codec->dapm);
+       if (comp->card->instantiated) {
+               snd_soc_dapm_link_component_dai_widgets(comp->card,
+                                                       &comp->dapm);
 #ifdef CONFIG_SND_JACK
                /*
                 * register jack devices for this module
                 * from codec->jack_list
                 */
                list_for_each_entry(jack, &module->jack_list, list) {
-                       snd_device_register(codec->card->snd_card,
+                       snd_device_register(comp->card->snd_card,
                                            jack->jack.jack);
                }
 #endif
@@ -883,9 +883,9 @@ int gbaudio_register_module(struct gbaudio_module_info *module)
        list_add(&module->list, &gbcodec->module_list);
        mutex_unlock(&gbcodec->lock);
 
-       if (codec->card->instantiated)
-               ret = snd_soc_dapm_new_widgets(&codec->dapm);
-       dev_dbg(codec->dev, "Registered %s module\n", module->name);
+       if (comp->card->instantiated)
+               ret = snd_soc_dapm_new_widgets(comp->card);
+       dev_dbg(comp->dev, "Registered %s module\n", module->name);
 
        up_write(&card->controls_rwsem);
        return ret;
@@ -956,18 +956,18 @@ static void gbaudio_codec_cleanup(struct gbaudio_module_info *module)
 
 void gbaudio_unregister_module(struct gbaudio_module_info *module)
 {
-       struct snd_soc_codec *codec = gbcodec->codec;
-       struct snd_card *card = codec->card->snd_card;
+       struct snd_soc_component *comp = gbcodec->component;
+       struct snd_card *card = comp->card->snd_card;
        struct gbaudio_jack *jack, *n;
        int mask;
 
-       dev_dbg(codec->dev, "Unregister %s module\n", module->name);
+       dev_dbg(comp->dev, "Unregister %s module\n", module->name);
 
        down_write(&card->controls_rwsem);
        mutex_lock(&gbcodec->lock);
        gbaudio_codec_cleanup(module);
        list_del(&module->list);
-       dev_dbg(codec->dev, "Process Unregister %s module\n", module->name);
+       dev_dbg(comp->dev, "Process Unregister %s module\n", module->name);
        mutex_unlock(&gbcodec->lock);
 
 #ifdef CONFIG_SND_JACK
@@ -983,99 +983,97 @@ void gbaudio_unregister_module(struct gbaudio_module_info *module)
                        dev_dbg(module->dev, "Report %s removal\n",
                                jack->jack.jack->id);
                        snd_soc_jack_report(&jack->jack, 0, mask);
-                       snd_device_free(codec->card->snd_card, jack->jack.jack);
+                       snd_device_free(comp->card->snd_card,
+                                       jack->jack.jack);
                        list_del(&jack->list);
                }
        }
 #endif
 
        if (module->dapm_routes) {
-               dev_dbg(codec->dev, "Removing %d routes\n",
+               dev_dbg(comp->dev, "Removing %d routes\n",
                        module->num_dapm_routes);
-               snd_soc_dapm_del_routes(&codec->dapm, module->dapm_routes,
+               snd_soc_dapm_del_routes(&comp->dapm, module->dapm_routes,
                                        module->num_dapm_routes);
        }
        if (module->controls) {
-               dev_dbg(codec->dev, "Removing %d controls\n",
+               dev_dbg(comp->dev, "Removing %d controls\n",
                        module->num_controls);
-               snd_soc_remove_codec_controls(codec, module->controls,
+               snd_soc_remove_codec_controls(comp, module->controls,
                                              module->num_controls);
        }
        if (module->dapm_widgets) {
-               dev_dbg(codec->dev, "Removing %d widgets\n",
+               dev_dbg(comp->dev, "Removing %d widgets\n",
                        module->num_dapm_widgets);
-               snd_soc_dapm_free_controls(&codec->dapm, module->dapm_widgets,
+               snd_soc_dapm_free_controls(&comp->dapm, module->dapm_widgets,
                                           module->num_dapm_widgets);
        }
 
-       dev_dbg(codec->dev, "Unregistered %s module\n", module->name);
+       dev_dbg(comp->dev, "Unregistered %s module\n", module->name);
 
        up_write(&card->controls_rwsem);
 }
 EXPORT_SYMBOL(gbaudio_unregister_module);
 
 /*
- * codec driver ops
+ * component driver ops
  */
-static int gbcodec_probe(struct snd_soc_codec *codec)
+static int gbcodec_probe(struct snd_soc_component *comp)
 {
        int i;
        struct gbaudio_codec_info *info;
        struct gbaudio_codec_dai *dai;
 
-       info = devm_kzalloc(codec->dev, sizeof(*info), GFP_KERNEL);
+       info = devm_kzalloc(comp->dev, sizeof(*info), GFP_KERNEL);
        if (!info)
                return -ENOMEM;
 
-       info->dev = codec->dev;
+       info->dev = comp->dev;
        INIT_LIST_HEAD(&info->module_list);
        mutex_init(&info->lock);
        INIT_LIST_HEAD(&info->dai_list);
 
        /* init dai_list used to maintain runtime stream info */
        for (i = 0; i < ARRAY_SIZE(gbaudio_dai); i++) {
-               dai = devm_kzalloc(codec->dev, sizeof(*dai), GFP_KERNEL);
+               dai = devm_kzalloc(comp->dev, sizeof(*dai), GFP_KERNEL);
                if (!dai)
                        return -ENOMEM;
                dai->id = gbaudio_dai[i].id;
                list_add(&dai->list, &info->dai_list);
        }
 
-       info->codec = codec;
-       snd_soc_codec_set_drvdata(codec, info);
+       info->component = comp;
+       snd_soc_component_set_drvdata(comp, info);
        gbcodec = info;
 
-       device_init_wakeup(codec->dev, 1);
+       device_init_wakeup(comp->dev, 1);
        return 0;
 }
 
-static int gbcodec_remove(struct snd_soc_codec *codec)
+static void gbcodec_remove(struct snd_soc_component *comp)
 {
        /* Empty function for now */
-       return 0;
+       return;
 }
 
-static int gbcodec_write(struct snd_soc_codec *codec, unsigned int reg,
+static int gbcodec_write(struct snd_soc_component *comp, unsigned int reg,
                         unsigned int value)
 {
        return 0;
 }
 
-static unsigned int gbcodec_read(struct snd_soc_codec *codec,
+static unsigned int gbcodec_read(struct snd_soc_component *comp,
                                 unsigned int reg)
 {
        return 0;
 }
 
-static struct snd_soc_codec_driver soc_codec_dev_gbaudio = {
+static const struct snd_soc_component_driver soc_codec_dev_gbaudio = {
        .probe  = gbcodec_probe,
        .remove = gbcodec_remove,
 
        .read = gbcodec_read,
        .write = gbcodec_write,
-
-       .idle_bias_off = true,
-       .ignore_pmdown_time = 1,
 };
 
 #ifdef CONFIG_PM
@@ -1099,13 +1097,13 @@ static const struct dev_pm_ops gbaudio_codec_pm_ops = {
 
 static int gbaudio_codec_probe(struct platform_device *pdev)
 {
-       return snd_soc_register_codec(&pdev->dev, &soc_codec_dev_gbaudio,
+       return devm_snd_soc_register_component(&pdev->dev,
+                       &soc_codec_dev_gbaudio,
                        gbaudio_dai, ARRAY_SIZE(gbaudio_dai));
 }
 
 static int gbaudio_codec_remove(struct platform_device *pdev)
 {
-       snd_soc_unregister_codec(&pdev->dev);
        return 0;
 }
 
index af9195eceb3abc8d066bf3620e42eb4310ae4d24..ce15e800e6074d546d2427e6215bccc8cb9ab0bb 100644 (file)
@@ -66,7 +66,7 @@ struct gbaudio_codec_dai {
 
 struct gbaudio_codec_info {
        struct device *dev;
-       struct snd_soc_codec *codec;
+       struct snd_soc_component *component;
        struct list_head module_list;
        /* to maintain runtime stream params for each DAI */
        struct list_head dai_list;