Re: [PATCH v5 08/17] soundwire: add initial definitions for sdw_master_device

From: Vinod Koul
Date: Fri Dec 27 2019 - 02:14:47 EST


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?

--
~Vinod