Re: [alsa-devel] [PATCH v4 06/15] soundwire: add support for sdw_slave_type

From: Pierre-Louis Bossart
Date: Fri Dec 13 2019 - 10:54:18 EST


On 12/13/19 1:21 AM, Greg KH wrote:
On Thu, Dec 12, 2019 at 11:04:00PM -0600, Pierre-Louis Bossart wrote:
Currently the bus does not have any explicit support for master
devices.

First add explicit support for sdw_slave_type and error checks if this type
is not set.

In follow-up patches we can add support for the sdw_md_type (md==Master
Device), following the Grey Bus example.

How are you using greybus as an example of "master devices"? All you
are doing here is setting the type of the existing devices, right?

I took your advice to look at GreyBus and used the 'gb host device' as the model to implement the 'sdw master' add/startup/remove interfaces we needed.

so yes in this patch we just add a type for the slave, the interesting part is in the next patches.
static int sdw_uevent(struct device *dev, struct kobj_uevent_env *env)
{
- struct sdw_slave *slave = to_sdw_slave_device(dev);
+ struct sdw_slave *slave;
char modalias[32];
- sdw_slave_modalias(slave, modalias, sizeof(modalias));
+ if (is_sdw_slave(dev)) {
+ slave = to_sdw_slave_device(dev);
+
+ sdw_slave_modalias(slave, modalias, sizeof(modalias));
- if (add_uevent_var(env, "MODALIAS=%s", modalias))
- return -ENOMEM;
+ if (add_uevent_var(env, "MODALIAS=%s", modalias))
+ return -ENOMEM;
+ } else {
+ /* only Slave device type supported */
+ dev_warn(dev, "uevent for unknown Soundwire type\n");
+ return -EINVAL;

Right now, this can not happen, right?

Not a problem, just trying to understand the sequence of patches here...

yes this cannot happen at this point, it's more of a paranoid test. In theory a SoundWire solution could enable a 'monitor' device as defined in the standard.