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.