On 17-12-19, 15:03, Pierre-Louis Bossart wrote:
Since we want an explicit support for the SoundWire Master device, add
the definitions, following the Greybus example of a 'Host Device'.
A parent (such as the Intel audio controller) would use sdw_md_add()
to create the device, passing a driver as a parameter. The
sdw_md_release() would be called when put_device() is invoked by the
parent. We use the shortcut 'md' for 'master device' to avoid very
long function names.
I agree we should not have long name :) but md does not sound great. Can
we drop the device and use sdw_slave and sdw_master for devices and
append _driver when we are talking about drivers...
we dont use sd for slave and imo this would gel well with existing names
--- a/drivers/soundwire/bus_type.c
+++ b/drivers/soundwire/bus_type.c
@@ -66,7 +66,10 @@ int sdw_uevent(struct device *dev, struct kobj_uevent_env *env)
* callback is set to use this function for a
* different device type (e.g. Master or Monitor)
*/
- dev_err(dev, "uevent for unknown Soundwire type\n");
+ if (is_sdw_master_device(dev))
+ dev_err(dev, "uevent for SoundWire Master type\n");
see below [1]:
+static void sdw_md_release(struct device *dev)
sdw_master_release() won't be too long!
+{
+ struct sdw_master_device *md = to_sdw_master_device(dev);
+
+ kfree(md);
+}
+
+struct device_type sdw_md_type = {
sdw_master_type and so on :)
+ .name = "soundwire_master",
+ .release = sdw_md_release,
[1]:
There is no uevent added here, so sdw_uevent() will never be called for
this, can you check again if you see the print you added?
+struct sdw_master_device {
we have sdw_slave, so would be better if we call this sdw_master
+ struct device dev;
+ int link_id;
+ struct sdw_md_driver *driver;
+ void *pdata;
no sdw_bus pointer and I dont see bus adding this object.. Is there no
link between bus and master device objects?