<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/sound/soc/bcm, branch linux-4.15.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.15.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.15.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2017-11-10T21:31:10Z</updated>
<entry>
<title>Merge remote-tracking branches 'asoc/topic/cygnus', 'asoc/topic/da7213', 'asoc/topic/davinci' and 'asoc/topic/doc' into asoc-next</title>
<updated>2017-11-10T21:31:10Z</updated>
<author>
<name>Mark Brown</name>
</author>
<published>2017-11-10T21:31:10Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=67e85d4e4e2eaf9614cf4db981be704890eb2869'/>
<id>urn:sha1:67e85d4e4e2eaf9614cf4db981be704890eb2869</id>
<content type='text'>
</content>
</entry>
<entry>
<title>ASoC: bcm2835: Support left/right justified and DSP modes</title>
<updated>2017-11-10T21:26:07Z</updated>
<author>
<name>Matthias Reichl</name>
</author>
<published>2017-11-08T20:03:30Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=abd4f0e1c24fd5b7241c77506006e9c0982128c0'/>
<id>urn:sha1:abd4f0e1c24fd5b7241c77506006e9c0982128c0</id>
<content type='text'>
DSP modes and left/right justified modes can be supported
on bcm2835 by configuring the frame sync polarity and
frame sync length registers and by adjusting the
channel data position registers.

Clock and frame sync polarity handling in hw_params has
been refactored to make the interaction between logical
rising/falling edge frame start and physical configuration
(changed by normal/inverted polarity modes) clearer.

Modes where the first active data bit is transmitted immediately
after frame start (eg DSP mode B with slot 0 active)
only work reliable if bcm2835 is configured as frame master.
In frame slave mode channel swap (or shift, this isn't quite
clear yet) can occur.

Currently the driver only warns if an unstable configuration
is detected but doensn't prevent using them.

Signed-off-by: Matthias Reichl &lt;hias@horus.com&gt;
Signed-off-by: Mark Brown &lt;broonie@kernel.org&gt;
</content>
</entry>
<entry>
<title>ASoC: bcm2835: Enforce full symmetry</title>
<updated>2017-11-10T21:26:03Z</updated>
<author>
<name>Matthias Reichl</name>
</author>
<published>2017-11-08T20:03:32Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=3d2b3c707b3f9516d6c183eb1ffbf02a6dc5dc98'/>
<id>urn:sha1:3d2b3c707b3f9516d6c183eb1ffbf02a6dc5dc98</id>
<content type='text'>
bcm2835's configuration registers can't be changed when a stream
is running, which means asymmetric configurations aren't supported.

Channel and rate symmetry are already enforced by constraints
but samplebits had been missed.

As hw_params doesn't check for symmetry constraints by itself
and just returns success if a stream is running this led to
situations where asymmetric configurations were seeming to
succeed but of course didn't work because the hardware wasn't
configured at all.

Fix this by adding the missing samplerate symmetry constraint.

Signed-off-by: Matthias Reichl &lt;hias@horus.com&gt;
Signed-off-by: Mark Brown &lt;broonie@kernel.org&gt;
</content>
</entry>
<entry>
<title>ASoC: bcm2835: Support additional samplerates up to 384kHz</title>
<updated>2017-11-10T21:24:34Z</updated>
<author>
<name>Matthias Reichl</name>
</author>
<published>2017-11-08T20:03:31Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=675c0ee514f56ea39f6f550299621aafe9a53fc0'/>
<id>urn:sha1:675c0ee514f56ea39f6f550299621aafe9a53fc0</id>
<content type='text'>
Sample rates are only restricted by the capabilities of the
clock driver, so use SNDRV_PCM_RATE_CONTINUOUS instead of
SNDRV_PCM_RATE_8000_192000.

Tests (eg with pcm5122) have shown that bcm2835 works fine
in 384kHz/32bit stereo mode, so change the maximum allowed
rate from 192kHz to 384kHz.

Signed-off-by: Matthias Reichl &lt;hias@horus.com&gt;
Reviewed-by: Eric Anholt &lt;eric@anholt.net&gt;
Signed-off-by: Mark Brown &lt;broonie@kernel.org&gt;
</content>
</entry>
<entry>
<title>ASoC: bcm2835: Add support for TDM modes</title>
<updated>2017-11-10T21:24:30Z</updated>
<author>
<name>Matthias Reichl</name>
</author>
<published>2017-11-08T20:03:29Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=9448572d98f358de9078be67a2a52d467e28fbd2'/>
<id>urn:sha1:9448572d98f358de9078be67a2a52d467e28fbd2</id>
<content type='text'>
bcm2835 supports arbitrary positioning of channel data within
a frame and thus is capable of supporting TDM modes. Since
the driver is limited to 2-channel operations only TDM setups
with exactly 2 active slots are supported.

Logical TDM slot numbering follows the usual convention:

For I2S-like modes, with a 50% duty-cycle frame clock,
slots 0, 2, ... are transmitted in the first half of a frame,
slots 1, 3, ... are transmitted in the second half.

For DSP modes slot numbering is ascending: 0, 1, 2, 3, ...

Channel position calculation has been refactored to use
TDM info and moved out of hw_params.

set_tdm_slot, set_bclk_ratio and hw_params now check more
strictly if the configuration is valid. Illegal configurations
like odd number of slots in I2S mode, data lengths exceeding
slot width or frame sizes larger than the hardware limit of
1024 are rejected. Also hw_params now properly checks for
errors from clk_set_rate.

Allowed PCM formats are already guarded by stream constraints,
thus the formats check in hw_params has been removed and
data_length is now retrieved via params_width().

Also standard functions like snd_soc_params_to_bclk are now
being used instead of manual calculations to make the code
more readable.

Special care has been taken to ensure that set_bclk_ratio works
as before. The bclk ratio is mapped to a 2-channel TDM config
with a slot width of half the ratio. In order to support odd ratios,
which can't be expressed via a TDM config, the ratio (frame length)
is stored and used by hw_params.

Signed-off-by: Matthias Reichl &lt;hias@horus.com&gt;
Signed-off-by: Mark Brown &lt;broonie@kernel.org&gt;
</content>
</entry>
<entry>
<title>ASoC: cygnus: Remove unnecessary active_slots check</title>
<updated>2017-10-09T08:41:05Z</updated>
<author>
<name>Christos Gkekas</name>
</author>
<published>2017-10-08T18:20:30Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=4c75968a1bbfb3f190e2e624c83929451e4730ac'/>
<id>urn:sha1:4c75968a1bbfb3f190e2e624c83929451e4730ac</id>
<content type='text'>
Variable active_slots is unsigned so checking whether it is less than
zero is not necessary.

Signed-off-by: Christos Gkekas &lt;chris.gekas@gmail.com&gt;
Signed-off-by: Mark Brown &lt;broonie@kernel.org&gt;
</content>
</entry>
<entry>
<title>ASoC: cygnus: Remove support for 8 bit audio and for mono</title>
<updated>2017-10-04T10:59:37Z</updated>
<author>
<name>Lori Hikichi</name>
</author>
<published>2017-09-28T22:29:35Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=934e4885cb958566a34124e5a1dad2f9212a8ec6'/>
<id>urn:sha1:934e4885cb958566a34124e5a1dad2f9212a8ec6</id>
<content type='text'>
These modes of operation were not working properly and it is
unclear if the hardware could fully support these modes properly.
There is little to be gained by enabling these modes, therefore,
we will just remove support.

Signed-off-by: Lori Hikichi &lt;lori.hikichi@broadcom.com&gt;
Signed-off-by: Mark Brown &lt;broonie@kernel.org&gt;
</content>
</entry>
<entry>
<title>ASoC: cygnus: Remove set_fmt from SPDIF dai ops</title>
<updated>2017-10-04T10:59:24Z</updated>
<author>
<name>Lori Hikichi</name>
</author>
<published>2017-09-28T22:29:34Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=fcf30f3b4377d2475aa709ce28964461990c3caa'/>
<id>urn:sha1:fcf30f3b4377d2475aa709ce28964461990c3caa</id>
<content type='text'>
The SPDIF port cannot modify its format so a set_fmt function is not
needed. Previously, we used a generic set_fmt for all ports and returned
an error code for the SPDIF port. It is cleaner to not populate the
set_fmt field.

Signed-off-by: Lori Hikichi &lt;lori.hikichi@broadcom.com&gt;
Signed-off-by: Mark Brown &lt;broonie@kernel.org&gt;
</content>
</entry>
<entry>
<title>ASoC: cygnus: Add EXPORT_SYMBOL for helper function</title>
<updated>2017-10-04T10:59:16Z</updated>
<author>
<name>Lori Hikichi</name>
</author>
<published>2017-09-28T22:29:32Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d8302aa6b53acbe421fe615b9d704fd813623e96'/>
<id>urn:sha1:d8302aa6b53acbe421fe615b9d704fd813623e96</id>
<content type='text'>
The helper function cygnus_ssp_set_custom_fsync_width() is intended
to be called from an ASoC machine driver, need to export symbol
if using modules.

Signed-off-by: Lori Hikichi &lt;lori.hikichi@broadcom.com&gt;
Signed-off-by: Mark Brown &lt;broonie@kernel.org&gt;
</content>
</entry>
<entry>
<title>Merge remote-tracking branches 'asoc/topic/cs43130', 'asoc/topic/cs53l30', 'asoc/topic/cygnus' and 'asoc/topic/davinci' into asoc-next</title>
<updated>2017-09-01T11:12:32Z</updated>
<author>
<name>Mark Brown</name>
</author>
<published>2017-09-01T11:12:32Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=3b2d0bb5ef7f0d07fe05feefd15c1acbc3bda22e'/>
<id>urn:sha1:3b2d0bb5ef7f0d07fe05feefd15c1acbc3bda22e</id>
<content type='text'>
</content>
</entry>
</feed>
