mirror of
https://github.com/torvalds/linux.git
synced 2026-05-25 15:41:52 +02:00
ASoC: soc-utils: Transition to the faux device interface
The ASoC soc-utils driver does not require the creation of a platform device. Originally, this approach was chosen for simplicity when the driver was first implemented. With the introduction of the lightweight faux device interface, we now have a more appropriate alternative. Migrate the driver to utilize the faux bus, given that the platform device it previously created was not a real one anyway. This will simplify the code, reducing its footprint while maintaining functionality. Cc: Mark Brown <broonie@kernel.org> Cc: Takashi Iwai <tiwai@suse.com> Cc: linux-sound@vger.kernel.org Signed-off-by: Sudeep Holla <sudeep.holla@arm.com> Link: https://patch.msgid.link/20250317-plat2faux_dev-v1-6-5fe67c085ad5@arm.com Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
77ad261ecc
commit
18abb3797f
|
|
@ -7,7 +7,7 @@
|
|||
// Author: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
||||
// Liam Girdwood <lrg@slimlogic.co.uk>
|
||||
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/device/faux.h>
|
||||
#include <linux/export.h>
|
||||
#include <linux/math.h>
|
||||
#include <sound/core.h>
|
||||
|
|
@ -262,48 +262,38 @@ struct snd_soc_dai_link_component snd_soc_dummy_dlc = {
|
|||
};
|
||||
EXPORT_SYMBOL_GPL(snd_soc_dummy_dlc);
|
||||
|
||||
static int snd_soc_dummy_probe(struct platform_device *pdev)
|
||||
static int snd_soc_dummy_probe(struct faux_device *fdev)
|
||||
{
|
||||
int ret;
|
||||
|
||||
ret = devm_snd_soc_register_component(&pdev->dev,
|
||||
ret = devm_snd_soc_register_component(&fdev->dev,
|
||||
&dummy_codec, &dummy_dai, 1);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
ret = devm_snd_soc_register_component(&pdev->dev, &dummy_platform,
|
||||
ret = devm_snd_soc_register_component(&fdev->dev, &dummy_platform,
|
||||
NULL, 0);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static struct platform_driver soc_dummy_driver = {
|
||||
.driver = {
|
||||
.name = "snd-soc-dummy",
|
||||
},
|
||||
static struct faux_device_ops soc_dummy_ops = {
|
||||
.probe = snd_soc_dummy_probe,
|
||||
};
|
||||
|
||||
static struct platform_device *soc_dummy_dev;
|
||||
static struct faux_device *soc_dummy_dev;
|
||||
|
||||
int __init snd_soc_util_init(void)
|
||||
{
|
||||
int ret;
|
||||
soc_dummy_dev = faux_device_create("snd-soc-dummy", NULL,
|
||||
&soc_dummy_ops);
|
||||
if (!soc_dummy_dev)
|
||||
return -ENODEV;
|
||||
|
||||
soc_dummy_dev =
|
||||
platform_device_register_simple("snd-soc-dummy", -1, NULL, 0);
|
||||
if (IS_ERR(soc_dummy_dev))
|
||||
return PTR_ERR(soc_dummy_dev);
|
||||
|
||||
ret = platform_driver_register(&soc_dummy_driver);
|
||||
if (ret != 0)
|
||||
platform_device_unregister(soc_dummy_dev);
|
||||
|
||||
return ret;
|
||||
return 0;
|
||||
}
|
||||
|
||||
void snd_soc_util_exit(void)
|
||||
{
|
||||
platform_driver_unregister(&soc_dummy_driver);
|
||||
platform_device_unregister(soc_dummy_dev);
|
||||
faux_device_destroy(soc_dummy_dev);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user