[alsa-devel] [PATCH v5 08/17] soundwire: add initial definitions for sdw_master_device

Vinod Koul vkoul at kernel.org
Fri Dec 27 08:14:33 CET 2019


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


More information about the Alsa-devel mailing list