[alsa-devel] [PATCH 04/14] soundwire: Add MIPI DisCo property helpers

Takashi Iwai tiwai at suse.de
Thu Oct 19 11:02:02 CEST 2017


On Thu, 19 Oct 2017 05:03:20 +0200,
Vinod Koul wrote:
> 
> diff --git a/drivers/soundwire/bus_type.c b/drivers/soundwire/bus_type.c
> index a14d1de80afa..baad4ad3be44 100644
> --- a/drivers/soundwire/bus_type.c
> +++ b/drivers/soundwire/bus_type.c
> @@ -139,12 +139,28 @@ static int sdw_drv_probe(struct device *dev)
>  		return ret;
>  	}
>  
> +	slave->ops = drv->ops;
> +
>  	ret = drv->probe(slave, id);
>  	if (ret) {
>  		dev_err(dev, "Probe of %s failed: %d\n", drv->name, ret);
>  		return ret;
>  	}
>  
> +	/* device is probed so let's read the properties now */
> +	if (slave->ops && slave->ops->read_prop)
> +		slave->ops->read_prop(slave);
> +
> +	/*
> +	 * Check for valid clk_stop_timeout, use DisCo worst case value of
> +	 * 300ms
> +	 */
> +	if (slave->prop.clk_stop_timeout == 0)
> +		slave->prop.clk_stop_timeout = 300;
> +
> +	slave->bus->clk_stop_timeout = max_t(u32, slave->bus->clk_stop_timeout,
> +					slave->prop.clk_stop_timeout);

Isn't it racy?
Also what happens after removing a driver?  The clk_stop_timeout is
kept high?


> +
> +int sdw_slave_read_dpn(struct sdw_slave *slave,
> +		struct sdw_dpn_prop *dpn, int count, int ports, char *type)

Missing comment for a public API function.


thanks,

Takashi


More information about the Alsa-devel mailing list