<feed xmlns='http://www.w3.org/2005/Atom'>
<title>wireguard-linux/drivers/soundwire/bus.h, branch jd/unified-crypt-queue</title>
<subtitle>WireGuard for the Linux kernel</subtitle>
<id>https://git.zx2c4.com/wireguard-linux/atom/drivers/soundwire/bus.h?h=jd%2Funified-crypt-queue</id>
<link rel='self' href='https://git.zx2c4.com/wireguard-linux/atom/drivers/soundwire/bus.h?h=jd%2Funified-crypt-queue'/>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-linux/'/>
<updated>2020-02-25T10:27:02Z</updated>
<entry>
<title>soundwire: bus: add helper to clear Slave status to UNATTACHED</title>
<updated>2020-02-25T10:27:02Z</updated>
<author>
<name>Pierre-Louis Bossart</name>
<email>pierre-louis.bossart@linux.intel.com</email>
</author>
<published>2020-01-15T00:08:40Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-linux/commit/?id=3ab2ca405a08c34c9b8b54a02b6d0e29821e73c8'/>
<id>urn:sha1:3ab2ca405a08c34c9b8b54a02b6d0e29821e73c8</id>
<content type='text'>
When resuming with a bus reset, we need to re-enumerate and restart
from UNATTACHED. The helper added in this patch helps implement a more
robust state machine avoiding race conditions on resume.

The unattach request is stored and will be used by Slave drivers, if
needed: Intel validation exposed a corner case where the Slave device
may transition to D3 when streaming stops, but streaming restarts
before the Master transitions to D3. In that case, the Slave status
was not cleared as UNATTACHED by the Master resuming, and the
wait_for_completion will time out.

When the slave resumes, it can check if a Master-initiated
re-enumeration and initialization took place and skip the
wait_for_completion() if there is no reason to wait.

Signed-off-by: Pierre-Louis Bossart &lt;pierre-louis.bossart@linux.intel.com&gt;
Link: https://lore.kernel.org/r/20200115000844.14695-7-pierre-louis.bossart@linux.intel.com
Signed-off-by: Vinod Koul &lt;vkoul@kernel.org&gt;
</content>
</entry>
<entry>
<title>soundwire: bus: fix race condition with probe_complete signaling</title>
<updated>2020-02-25T10:27:01Z</updated>
<author>
<name>Pierre-Louis Bossart</name>
<email>pierre-louis.bossart@linux.intel.com</email>
</author>
<published>2020-01-15T00:08:35Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-linux/commit/?id=2140b66b5d3ecf6c7c0fa9dc5eebb41855765ace'/>
<id>urn:sha1:2140b66b5d3ecf6c7c0fa9dc5eebb41855765ace</id>
<content type='text'>
The driver probe takes care of basic initialization and is invoked
when a Slave becomes attached, after a match between the Slave DevID
registers and ACPI/DT entries.

The update_status callback is invoked when a Slave state changes,
e.g. when it is assigned a non-zero Device Number and it reports with
an ATTACHED/ALERT state.

The state change detection is usually hardware-based and based on the
SoundWire frame rate (e.g. double-digit microseconds) while the probe
is a pure software operation, which may involve a kernel module
load. In corner cases, it's possible that the state changes before the
probe completes.

This patch suggests the use of wait_for_completion to avoid races on
startup, so that the update_status callback does not rely on invalid
pointers/data structures.

Signed-off-by: Rander Wang &lt;rander.wang@intel.com&gt;
Signed-off-by: Pierre-Louis Bossart &lt;pierre-louis.bossart@linux.intel.com&gt;
Link: https://lore.kernel.org/r/20200115000844.14695-2-pierre-louis.bossart@linux.intel.com
Signed-off-by: Vinod Koul &lt;vkoul@kernel.org&gt;
</content>
</entry>
<entry>
<title>soundwire: core: add device tree support for slave devices</title>
<updated>2019-09-04T07:42:31Z</updated>
<author>
<name>Srinivas Kandagatla</name>
<email>srinivas.kandagatla@linaro.org</email>
</author>
<published>2019-08-29T16:35:12Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-linux/commit/?id=a2e484585ad306aa8ac84140ef54d722ac8f45df'/>
<id>urn:sha1:a2e484585ad306aa8ac84140ef54d722ac8f45df</id>
<content type='text'>
This patch adds support to parsing device tree based
SoundWire slave devices.

Signed-off-by: Srinivas Kandagatla &lt;srinivas.kandagatla@linaro.org&gt;
Link: https://lore.kernel.org/r/20190829163514.11221-3-srinivas.kandagatla@linaro.org
Signed-off-by: Vinod Koul &lt;vkoul@kernel.org&gt;
</content>
</entry>
<entry>
<title>soundwire: add debugfs support</title>
<updated>2019-08-23T06:31:02Z</updated>
<author>
<name>Pierre-Louis Bossart</name>
<email>pierre-louis.bossart@linux.intel.com</email>
</author>
<published>2019-08-21T18:58:18Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-linux/commit/?id=bf03473d5bcc85fbe9533fa042f67809d8520c4e'/>
<id>urn:sha1:bf03473d5bcc85fbe9533fa042f67809d8520c4e</id>
<content type='text'>
Add base debugfs mechanism for SoundWire bus by creating soundwire
root and master-N and slave-x hierarchy.

Also add SDW Slave SCP, DP0 and DP-N register debug file.

Registers not implemented will print as "XX"

Credits: this patch is based on an earlier internal contribution by
Vinod Koul, Sanyog Kale, Shreyas Nc and Hardik Shah.

Reviewed-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
Acked-by: Sanyog Kale &lt;sanyog.r.kale@intel.com&gt;
Signed-off-by: Pierre-Louis Bossart &lt;pierre-louis.bossart@linux.intel.com&gt;
Link: https://lore.kernel.org/r/20190821185821.12690-2-pierre-louis.bossart@linux.intel.com
Signed-off-by: Vinod Koul &lt;vkoul@kernel.org&gt;
</content>
</entry>
<entry>
<title>soundwire: export helpers to find row and column values</title>
<updated>2019-08-21T09:06:01Z</updated>
<author>
<name>Pierre-Louis Bossart</name>
<email>pierre-louis.bossart@linux.intel.com</email>
</author>
<published>2019-08-06T00:55:10Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-linux/commit/?id=fe4b70f2ce27e961198605ac5ddc288f066f7150'/>
<id>urn:sha1:fe4b70f2ce27e961198605ac5ddc288f066f7150</id>
<content type='text'>
Add a prefix for common tables and export 2 helpers to set the frame
shapes based on row/col values.

These changes simplify bandwidth allocation algorithms as well as the
Cadence parts which all need to convert from frame shape to indices
used by the standard. These helpers are used in the following patch.

Signed-off-by: Pierre-Louis Bossart &lt;pierre-louis.bossart@linux.intel.com&gt;
Link: https://lore.kernel.org/r/20190806005522.22642-6-pierre-louis.bossart@linux.intel.com
Signed-off-by: Vinod Koul &lt;vkoul@kernel.org&gt;
</content>
</entry>
<entry>
<title>soundwire: fix alignment issues in header files</title>
<updated>2019-05-02T15:16:26Z</updated>
<author>
<name>Pierre-Louis Bossart</name>
<email>pierre-louis.bossart@linux.intel.com</email>
</author>
<published>2019-05-01T15:57:26Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-linux/commit/?id=806a11f095e24f4fae12211ee86caa9bde3ae3c0'/>
<id>urn:sha1:806a11f095e24f4fae12211ee86caa9bde3ae3c0</id>
<content type='text'>
use Linux style

Reviewed-by: Takashi Iwai &lt;tiwai@suse.de&gt;
Signed-off-by: Pierre-Louis Bossart &lt;pierre-louis.bossart@linux.intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>soundwire: fix SPDX license for header files</title>
<updated>2019-05-02T15:09:00Z</updated>
<author>
<name>Pierre-Louis Bossart</name>
<email>pierre-louis.bossart@linux.intel.com</email>
</author>
<published>2019-05-01T15:57:25Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-linux/commit/?id=23859465529550fcf390f3a5a28cf767adb83232'/>
<id>urn:sha1:23859465529550fcf390f3a5a28cf767adb83232</id>
<content type='text'>
No C++ comments in .h files

Reviewed-by: Takashi Iwai &lt;tiwai@suse.de&gt;
Signed-off-by: Pierre-Louis Bossart &lt;pierre-louis.bossart@linux.intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>soundwire: Add support for multi link bank switch</title>
<updated>2018-08-27T04:19:48Z</updated>
<author>
<name>Shreyas NC</name>
<email>shreyas.nc@intel.com</email>
</author>
<published>2018-07-27T09:14:16Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-linux/commit/?id=ce6e74d008ff5c8b43e3bafaa7343bf7eb69593e'/>
<id>urn:sha1:ce6e74d008ff5c8b43e3bafaa7343bf7eb69593e</id>
<content type='text'>
In cases of multiple Masters in a stream, synchronization
between multiple Master(s) is achieved by performing bank switch
together and using Master methods.

Add sdw_ml_bank_switch() to wait for completion of bank switch.

Signed-off-by: Sanyog Kale &lt;sanyog.r.kale@intel.com&gt;
Signed-off-by: Shreyas NC &lt;shreyas.nc@intel.com&gt;
Acked-by: Pierre-Louis Bossart &lt;pierre-louis.bossart@linux.intel.com&gt;
Signed-off-by: Vinod Koul &lt;vkoul@kernel.org&gt;
</content>
</entry>
<entry>
<title>soundwire: Add support to lock across bus instances</title>
<updated>2018-08-27T04:19:48Z</updated>
<author>
<name>Sanyog Kale</name>
<email>sanyog.r.kale@intel.com</email>
</author>
<published>2018-07-27T09:14:13Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-linux/commit/?id=0c4a1049cf298721eaec4553d3d5039798086e12'/>
<id>urn:sha1:0c4a1049cf298721eaec4553d3d5039798086e12</id>
<content type='text'>
Currently, the stream concept is limited to single Master and one
or more Codecs.

This patch extends the concept to support multiple Master(s)
sharing the same reference clock and synchronized in the hardware.
Modify sdw_stream_runtime to support a list of sdw_master_runtime
for the same. The existing reference to a single m_rt is removed
in the next patch.

Typically to lock, one would acquire a global lock and then lock
bus instances. In this case, the caller framework(ASoC DPCM)
guarantees that stream operations on a card are always serialized.
So, there is no race condition and hence no need for global lock.

Bus lock(s) are acquired to reconfigure the bus while the stream
is set-up.
So, we add sdw_acquire_bus_lock()/sdw_release_bus_lock() APIs which
are used only to reconfigure the bus.

Signed-off-by: Sanyog Kale &lt;sanyog.r.kale@intel.com&gt;
Signed-off-by: Shreyas NC &lt;shreyas.nc@intel.com&gt;
Acked-by: Pierre-Louis Bossart &lt;pierre-louis.bossart@linux.intel.com&gt;
Signed-off-by: Vinod Koul &lt;vkoul@kernel.org&gt;
</content>
</entry>
<entry>
<title>soundwire: Add bank switch routine</title>
<updated>2018-05-11T16:17:05Z</updated>
<author>
<name>Sanyog Kale</name>
<email>sanyog.r.kale@intel.com</email>
</author>
<published>2018-04-26T13:08:28Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-linux/commit/?id=99b8a5d608a64254f22483f6b67a98f26d3eac8c'/>
<id>urn:sha1:99b8a5d608a64254f22483f6b67a98f26d3eac8c</id>
<content type='text'>
SoundWire supports two registers banks. So, program the alternate bank
with new configuration and then performs bank switch.

Signed-off-by: Sanyog Kale &lt;sanyog.r.kale@intel.com&gt;
Signed-off-by: Shreyas NC &lt;shreyas.nc@intel.com&gt;
Signed-off-by: Vinod Koul &lt;vkoul@kernel.org&gt;
</content>
</entry>
</feed>
