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

From: Takashi Iwai
Date: Thu Oct 19 2017 - 05:02:13 EST


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