mirror of
https://github.com/torvalds/linux.git
synced 2024-11-23 12:42:02 +00:00
staging: greybus: audio: Resolve compilation errors for GB codec module
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>
This commit is contained in:
parent
ac40b4d1e4
commit
ce7bd8325d
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user