mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-12-28 16:56:26 +00:00
soundwire: slave: lookup SDCA version and functions
Use SDCA helpers to get the basic information and store it in the slave context. The information will be optionally be used in codec drivers to register sub-devices for each Function. When platforms are not based on ACPI the helpers do absolutely nothing. Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Reviewed-by: Péter Ujfalusi <peter.ujfalusi@linux.intel.com> Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com> Acked-by: Vinod Koul <vkoul@kernel.org> Link: https://patch.msgid.link/20241016102333.294448-5-yung-chuan.liao@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
3a513da1ae
commit
0c673d2862
@ -6,6 +6,7 @@
|
||||
menuconfig SOUNDWIRE
|
||||
tristate "SoundWire support"
|
||||
depends on ACPI || OF
|
||||
depends on SND_SOC_SDCA_OPTIONAL
|
||||
help
|
||||
SoundWire is a 2-Pin interface with data and clock line ratified
|
||||
by the MIPI Alliance. SoundWire is used for transporting data
|
||||
|
@ -5,6 +5,7 @@
|
||||
#include <linux/of.h>
|
||||
#include <linux/soundwire/sdw.h>
|
||||
#include <linux/soundwire/sdw_type.h>
|
||||
#include <sound/sdca.h>
|
||||
#include "bus.h"
|
||||
#include "sysfs_local.h"
|
||||
|
||||
@ -70,6 +71,17 @@ int sdw_slave_add(struct sdw_bus *bus,
|
||||
list_add_tail(&slave->node, &bus->slaves);
|
||||
mutex_unlock(&bus->bus_lock);
|
||||
|
||||
/*
|
||||
* The Soundwire driver probe may optionally register SDCA
|
||||
* sub-devices, one per Function. This means the information
|
||||
* on the SDCA revision and the number/type of Functions need
|
||||
* to be extracted from platform firmware before the SoundWire
|
||||
* driver probe, and as a consequence before the SoundWire
|
||||
* device_register() below.
|
||||
*/
|
||||
sdca_lookup_interface_revision(slave);
|
||||
sdca_lookup_functions(slave);
|
||||
|
||||
ret = device_register(&slave->dev);
|
||||
if (ret) {
|
||||
dev_err(bus->dev, "Failed to add slave: ret %d\n", ret);
|
||||
@ -259,3 +271,5 @@ int sdw_of_find_slaves(struct sdw_bus *bus)
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
MODULE_IMPORT_NS(SND_SOC_SDCA);
|
||||
|
Loading…
Reference in New Issue
Block a user