On Thu, Oct 19, 2017 at 11:02:02AM +0200, Takashi Iwai wrote: > On Thu, 19 Oct 2017 05:03:20 +0200, > Vinod Koul wrote: > > > > + 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? Well the spec mandates 300 as worst case, in practice this _should_ be lesser. I need to double check on behaviour of clock stop on driver removal. We need to keep in mind that multiple Slaves can be on a bus and removal maybe from one of them, so we may not do clock stop. > > + > > +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. Ah missed this one. It was made public for debug, lets make it static now :) -- ~Vinod _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel