Re: [PATCH v2 04/14] soundwire: Add MIPI DisCo property helpers

From: Vinod Koul
Date: Mon Nov 27 2017 - 04:15:42 EST


On Mon, Nov 27, 2017 at 07:59:40AM +0000, Charles Keepax wrote:

> > > Apologies for the long and slightly vague comment, but I guess my
> > > question is do you have a thought on how drivers should know when
> > > it is safe to communicate with a SoundWire device?
> >
> > IMO it is safe to communicate with SoundWire device when the Slave
> > status is ATTACHED. In any case bus will report error if it is not able
> > to communicate with SoundWire device.
>
> Yeah I guess my point here is that there is currently no way in
> this SoundWire framework for the slave driver to know if the
> device is attached or not, unless I am missing something? There
> are calls by which the master can inform the framework, but
> nothing to pass that on to the slave driver.

Nope, as Sanyog pointed out there are deterministic ways for Slave
driver to find out. We can do that by:
a) check the slave->status and communicate only if status is SDW_SLAVE_ATTACHED
b) Implement sdw_slave_ops->update_status() which is invoked by Bus on any
status changes.

So to summarize, for a Slave driver during the probe, if the status is not
SDW_SLAVE_ATTACHED it should not communicate and should implement
sdw_slave_ops->update_status and attempt IO when this callback gets invoked
with SDW_SLAVE_ATTACHED status.

Does that clarify and solve the problem.

--
~Vinod