<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/drivers/soundwire/stream.c, branch linux-5.1.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.</subtitle>
<id>https://universe.0xinfinity.dev/distro/kernel/atom?h=linux-5.1.y</id>
<link rel='self' href='https://universe.0xinfinity.dev/distro/kernel/atom?h=linux-5.1.y'/>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/'/>
<updated>2019-07-14T06:09:38Z</updated>
<entry>
<title>soundwire: stream: fix bad unlock balance</title>
<updated>2019-07-14T06:09:38Z</updated>
<author>
<name>Srinivas Kandagatla</name>
<email>srinivas.kandagatla@linaro.org</email>
</author>
<published>2019-06-06T11:22:22Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=2d48fa440c70bb22153da18c753e66846ed74a61'/>
<id>urn:sha1:2d48fa440c70bb22153da18c753e66846ed74a61</id>
<content type='text'>
[ Upstream commit 9315d904c7e8f38886e2820fa6cb8d0fa723ea21 ]

the msg lock is taken for multi-link cases only but released
unconditionally, leading to an unlock balance warning for single-link usages
This patch fixes this.

 =====================================
 WARNING: bad unlock balance detected!
 5.1.0-16506-gc1c383a6f0a2-dirty #1523 Tainted: G        W
 -------------------------------------
 aplay/2954 is trying to release lock (&amp;bus-&gt;msg_lock) at:
 do_bank_switch+0x21c/0x480
 but there are no more locks to release!

Signed-off-by: Srinivas Kandagatla &lt;srinivas.kandagatla@linaro.org&gt;
Acked-by: Pierre-Louis Bossart &lt;pierre-louis.bossart@linux.intel.com&gt;
Acked-by: Sanyog Kale &lt;sanyog.r.kale@intel.com&gt;
[vkoul: edited the change log as suggested by Pierre]
Signed-off-by: Vinod Koul &lt;vkoul@kernel.org&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>soundwire: stream: fix out of boundary access on port properties</title>
<updated>2019-07-14T06:09:36Z</updated>
<author>
<name>Srinivas Kandagatla</name>
<email>srinivas.kandagatla@linaro.org</email>
</author>
<published>2019-05-22T16:24:43Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=867abba5b0c6efc857ed5423c76792f49ca4d434'/>
<id>urn:sha1:867abba5b0c6efc857ed5423c76792f49ca4d434</id>
<content type='text'>
[ Upstream commit 03ecad90d3798be11b033248bbd4bbff4425a1c7 ]

Assigning local iterator to array element and using it again for
indexing would cross the array boundary.
Fix this by directly referring array element without using the local
variable.

Signed-off-by: Srinivas Kandagatla &lt;srinivas.kandagatla@linaro.org&gt;
Acked-by: Pierre-Louis Bossart &lt;pierre-louis.bossart@linux.intel.com&gt;
Signed-off-by: Vinod Koul &lt;vkoul@kernel.org&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>soundwire: keep track of Masters in a stream</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:15Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=9b5c132a1ec98895fe40ba73a19e0a17293122e5'/>
<id>urn:sha1:9b5c132a1ec98895fe40ba73a19e0a17293122e5</id>
<content type='text'>
A multi link bankswitch can be done if the hardware supports and
the stream is handled by multiple Master(s).

This preparatory patch adds support to track m_rt in a stream.
Modifying m_rt_count and usage is added as part of the next patch.

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 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://universe.0xinfinity.dev/distro/kernel/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: Handle multiple master instances in a stream</title>
<updated>2018-08-27T04:19:48Z</updated>
<author>
<name>Vinod Koul</name>
<email>vkoul@kernel.org</email>
</author>
<published>2018-07-27T09:14:14Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=48949722ced4daacfa32f13c221f173b87231ead'/>
<id>urn:sha1:48949722ced4daacfa32f13c221f173b87231ead</id>
<content type='text'>
For each SoundWire stream operation, we need to parse master
list and operate upon all master runtime.

This is a preparatory patch to do the boilerplate conversion
of stream handling from single master runtime to handle a
list of master runtime. The code to support bank switch for
multiple master instances is added in the next patch.

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://universe.0xinfinity.dev/distro/kernel/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: Fix acquiring bus lock twice during master release</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:10Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=8d6ccf5cebbc7ed1dee9986e36853a78dfb64084'/>
<id>urn:sha1:8d6ccf5cebbc7ed1dee9986e36853a78dfb64084</id>
<content type='text'>
As part of sdw_stream_remove_master(), sdw_stream_remove_slave() is called
which results in bus lock being acquired twice.

So, fix it by performing specific Slave remove operations in
sdw_release_master_stream() instead of calling sdw_stream_remove_slave().

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: Fix incorrect exit after configuring stream</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:09Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=3fef1a2259c556cce34df2791688cb3001f81c92'/>
<id>urn:sha1:3fef1a2259c556cce34df2791688cb3001f81c92</id>
<content type='text'>
In sdw_stream_add_master() after the Master ports are configured,
the stream is released incorrectly.

So, fix it by avoiding stream release after configuring the Master
for the stream.
While at it, rename the label appropriately.

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: Fix duplicate stream state assignment</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:08Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=0aebe40bae6cf5652fdc3d05ecee15fbf5748194'/>
<id>urn:sha1:0aebe40bae6cf5652fdc3d05ecee15fbf5748194</id>
<content type='text'>
For a SoundWire stream it is expected that a Slave is added to the
stream before Master is added.

So, move the stream state to CONFIGURED after the first Slave is
added and remove the stream state assignment for Master add.
Along with these changes, add additional comments to explain the same.

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>docs: Fix more broken references</title>
<updated>2018-06-15T21:11:26Z</updated>
<author>
<name>Mauro Carvalho Chehab</name>
<email>mchehab+samsung@kernel.org</email>
</author>
<published>2018-05-08T18:14:57Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=34962fb8070cb5a60b686a5ee11f81f2978836bd'/>
<id>urn:sha1:34962fb8070cb5a60b686a5ee11f81f2978836bd</id>
<content type='text'>
As we move stuff around, some doc references are broken. Fix some of
them via this script:
	./scripts/documentation-file-ref-check --fix

Manually checked that produced results are valid.

Acked-by: Matthias Brugger &lt;matthias.bgg@gmail.com&gt;
Acked-by: Takashi Iwai &lt;tiwai@suse.de&gt;
Acked-by: Jeff Kirsher &lt;jeffrey.t.kirsher@intel.com&gt;
Acked-by: Guenter Roeck &lt;linux@roeck-us.net&gt;
Acked-by: Miguel Ojeda &lt;miguel.ojeda.sandonis@gmail.com&gt;
Signed-off-by: Mauro Carvalho Chehab &lt;mchehab+samsung@kernel.org&gt;
Acked-by: Jonathan Corbet &lt;corbet@lwn.net&gt;
</content>
</entry>
</feed>
