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

Pierre-Louis Bossart
2019-12-13T20:38:47Z

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.