[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20171127091849.GS3187@localhost>
Date: Mon, 27 Nov 2017 14:48:50 +0530
From: Vinod Koul <vinod.koul@...el.com>
To: Charles Keepax <ckeepax@...nsource.cirrus.com>
Cc: Sanyog Kale <sanyog.r.kale@...el.com>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
LKML <linux-kernel@...r.kernel.org>,
ALSA <alsa-devel@...a-project.org>, Mark <broonie@...nel.org>,
Takashi <tiwai@...e.de>,
Pierre <pierre-louis.bossart@...ux.intel.com>,
Shreyas NC <shreyas.nc@...el.com>, patches.audio@...el.com,
alan@...ux.intel.com, Sagar Dharia <sdharia@...eaurora.org>,
srinivas.kandagatla@...aro.org, plai@...eaurora.org,
Sudheer Papothi <spapothi@...eaurora.org>
Subject: Re: [PATCH v2 04/14] soundwire: Add MIPI DisCo property helpers
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
Powered by blists - more mailing lists