<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/sound/soc/codecs, branch linux-4.1.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.1.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.1.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2018-05-23T01:36:33Z</updated>
<entry>
<title>ASoC: ssm2602: Replace reg_default_raw with reg_default</title>
<updated>2018-05-23T01:36:33Z</updated>
<author>
<name>James Kelly</name>
</author>
<published>2018-03-19T10:29:50Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=1a50f4c4543876df156c8f595bb584509af751dd'/>
<id>urn:sha1:1a50f4c4543876df156c8f595bb584509af751dd</id>
<content type='text'>
[ Upstream commit a01df75ce737951ad13a08d101306e88c3f57cb2 ]

SSM2602 driver is broken on recent kernels (at least
since 4.9). User space applications such as amixer or
alsamixer get EIO when attempting to access codec
controls via the relevant IOCTLs.

Root cause of these failures is the regcache_hw_init
function in drivers/base/regmap/regcache.c, which
prevents regmap cache initalization from the
reg_defaults_raw element of the regmap_config structure
when registers are write only. It also disables the
regmap cache entirely when all registers are write only
or volatile as is the case for the SSM2602 driver.

Using the reg_defaults element of the regmap_config
structure rather than the reg_defaults_raw element to
initalize the regmap cache avoids the logic in the
regcache_hw_init function entirely. It also makes this
driver consistent with other ASoC codec drivers, as
this driver was the ONLY codec driver that used the
reg_defaults_raw element to initalize the cache.

Tested on Digilent Zybo Z7 development board which has
a SSM2603 codec chip connected to a Xilinx Zynq SoC.

Signed-off-by: James Kelly &lt;jamespeterkelly@gmail.com&gt;
Signed-off-by: Mark Brown &lt;broonie@kernel.org&gt;
Cc: stable@vger.kernel.org
Signed-off-by: Sasha Levin &lt;alexander.levin@microsoft.com&gt;
</content>
</entry>
<entry>
<title>ASoC: pcm512x: add missing MODULE_DESCRIPTION/AUTHOR/LICENSE</title>
<updated>2018-03-01T03:09:49Z</updated>
<author>
<name>Jesse Chan</name>
</author>
<published>2017-11-20T07:45:49Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=8533b8d52b6ac3a670d1e0d7130dfeb6a82b2d23'/>
<id>urn:sha1:8533b8d52b6ac3a670d1e0d7130dfeb6a82b2d23</id>
<content type='text'>
[ Upstream commit 0cab20cec0b663b7be8e2be5998d5a4113647f86 ]

This change resolves a new compile-time warning
when built as a loadable module:

WARNING: modpost: missing MODULE_LICENSE() in sound/soc/codecs/snd-soc-pcm512x-spi.o
see include/linux/module.h for more information

This adds the license as "GPL v2", which matches the header of the file.

MODULE_DESCRIPTION and MODULE_AUTHOR are also added.

Signed-off-by: Jesse Chan &lt;jc@linux.com&gt;
Signed-off-by: Mark Brown &lt;broonie@kernel.org&gt;
Signed-off-by: Sasha Levin &lt;alexander.levin@microsoft.com&gt;
</content>
</entry>
<entry>
<title>ASoC: twl4030: fix child-node lookup</title>
<updated>2018-03-01T00:32:17Z</updated>
<author>
<name>Johan Hovold</name>
</author>
<published>2017-11-13T11:12:56Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=7af49778d76969becec62d97dd2fb12acb916a5c'/>
<id>urn:sha1:7af49778d76969becec62d97dd2fb12acb916a5c</id>
<content type='text'>
[ Upstream commit 15f8c5f2415bfac73f33a14bcd83422bcbfb5298 ]

Fix child-node lookup during probe, which ended up searching the whole
device tree depth-first starting at the parent rather than just matching
on its children.

To make things worse, the parent codec node was also prematurely freed,
while the child node was leaked.

Fixes: 2d6d649a2e0f ("ASoC: twl4030: Support for DT booted kernel")
Signed-off-by: Johan Hovold &lt;johan@kernel.org&gt;
Signed-off-by: Mark Brown &lt;broonie@kernel.org&gt;
Cc: stable &lt;stable@vger.kernel.org&gt;
Signed-off-by: Sasha Levin &lt;alexander.levin@microsoft.com&gt;
</content>
</entry>
<entry>
<title>ASoC: wm_adsp: Don't overrun firmware file buffer when reading region data</title>
<updated>2017-12-08T23:01:12Z</updated>
<author>
<name>Richard Fitzgerald</name>
</author>
<published>2016-12-20T10:29:12Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=9a921388d86fb1773aea41d03dfe040c1abd12fa'/>
<id>urn:sha1:9a921388d86fb1773aea41d03dfe040c1abd12fa</id>
<content type='text'>
[ Upstream commit 1cab2a84f470e15ecc8e5143bfe9398c6e888032 ]

Protect against corrupt firmware files by ensuring that the length we
get for the data in a region actually lies within the available firmware
file data buffer.

Signed-off-by: Richard Fitzgerald &lt;rf@opensource.wolfsonmicro.com&gt;
Signed-off-by: Mark Brown &lt;broonie@kernel.org&gt;
Signed-off-by: Sasha Levin &lt;alexander.levin@verizon.com&gt;
</content>
</entry>
<entry>
<title>ASoC: adau17x1: Workaround for noise bug in ADC</title>
<updated>2017-12-07T02:19:53Z</updated>
<author>
<name>Ricard Wanderlof</name>
</author>
<published>2017-09-07T13:31:38Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d3c7fd753c609330faee3c45be539e33141b5bbf'/>
<id>urn:sha1:d3c7fd753c609330faee3c45be539e33141b5bbf</id>
<content type='text'>
[ Upstream commit 1e6f4fc06f6411adf98bbbe7fcd79442cd2b2a75 ]

The ADC in the ADAU1361 (and possibly other Analog Devices codecs)
exhibits a cyclic variation in the noise floor (in our test setup between
-87 and -93 dB), a new value being attained within this range whenever a
new capture stream is started. The cycle repeats after about 10 or 11
restarts.

The workaround recommended by the manufacturer is to toggle the ADOSR bit
in the Converter Control 0 register each time a new capture stream is
started.

I have verified that the patch fixes this problem on the ADAU1361, and
according to the manufacturer toggling the bit in question in this manner
will at least have no detrimental effect on other chips served by this
driver.

Signed-off-by: Ricard Wanderlof &lt;ricardw@axis.com&gt;
Signed-off-by: Mark Brown &lt;broonie@kernel.org&gt;
Cc: stable@vger.kernel.org
Signed-off-by: Sasha Levin &lt;alexander.levin@verizon.com&gt;
</content>
</entry>
<entry>
<title>ASoC: tlv320aic3x: Mark the RESET register as volatile</title>
<updated>2017-09-10T20:35:55Z</updated>
<author>
<name>Peter Ujfalusi</name>
</author>
<published>2016-12-23T09:21:10Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=02c31961613541e8229a41c02905785a6d0bebdb'/>
<id>urn:sha1:02c31961613541e8229a41c02905785a6d0bebdb</id>
<content type='text'>
[ Upstream commit 63c3194b82530bd71fd49db84eb7ab656b8d404a ]

The RESET register only have one self clearing bit and it should not be
cached. If it is cached, when we sync the registers back to the chip we
will initiate a software reset as well, which is not desirable.

Signed-off-by: Peter Ujfalusi &lt;peter.ujfalusi@ti.com&gt;
Reviewed-by: Jarkko Nikula &lt;jarkko.nikula@bitmer.com&gt;
Signed-off-by: Mark Brown &lt;broonie@kernel.org&gt;
Signed-off-by: Sasha Levin &lt;alexander.levin@verizon.com&gt;
</content>
</entry>
<entry>
<title>ASoC: ssm4567: Reset device before regcache_sync()</title>
<updated>2016-07-11T03:07:11Z</updated>
<author>
<name>Lars-Peter Clausen</name>
</author>
<published>2016-01-27T13:26:18Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=fad61c46cc9c999169b95d14a67c60a0a7141d00'/>
<id>urn:sha1:fad61c46cc9c999169b95d14a67c60a0a7141d00</id>
<content type='text'>
[ Upstream commit 712a8038cc24dba668afe82f0413714ca87184e0 ]

When the ssm4567 is powered up the driver calles regcache_sync() to restore
the register map content. regcache_sync() assumes that the device is in its
power-on reset state. Make sure that this is the case by explicitly
resetting the ssm4567 register map before calling regcache_sync() otherwise
we might end up with a incorrect register map which leads to undefined
behaviour.

One such undefined behaviour was observed when returning from system
suspend while a playback stream is active, in that case the ssm4567 was
kept muted after resume.

Fixes: 1ee44ce03011 ("ASoC: ssm4567: Add driver for Analog Devices SSM4567 amplifier")
Reported-by: Harsha Priya &lt;harshapriya.n@intel.com&gt;
Tested-by: Fang, Yang A &lt;yang.a.fang@intel.com&gt;
Signed-off-by: Lars-Peter Clausen &lt;lars@metafoo.de&gt;
Signed-off-by: Mark Brown &lt;broonie@kernel.org&gt;
Signed-off-by: Sasha Levin &lt;sasha.levin@oracle.com&gt;
</content>
</entry>
<entry>
<title>ASoC: ak4642: Enable cache usage to fix crashes on resume</title>
<updated>2016-06-06T23:12:28Z</updated>
<author>
<name>Mark Brown</name>
</author>
<published>2016-05-18T17:30:39Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=ded044fcdd60ec9fea0e3cc512d85073f88d129b'/>
<id>urn:sha1:ded044fcdd60ec9fea0e3cc512d85073f88d129b</id>
<content type='text'>
[ Upstream commit d3030d11961a8c103cf07aed59905276ddfc06c2 ]

The ak4642 driver is using a regmap cache sync to restore the
configuration of the chip on resume but (as Peter observed) does not
actually define a register cache which means that the resume is never
going to work and we trigger asserts in regmap.  Fix this by enabling
caching.

Reported-by: Geert Uytterhoeven &lt;geert@linux-m68k.org&gt;
Reported-by: Peter Ujfalusi &lt;peter.ujfalusi@ti.com&gt;
Tested-by: Geert Uytterhoeven &lt;geert+renesas@glider.be&gt;
Signed-off-by: Mark Brown &lt;broonie@kernel.org&gt;
Cc: stable@vger.kernel.org
Signed-off-by: Sasha Levin &lt;sasha.levin@oracle.com&gt;
</content>
</entry>
<entry>
<title>ASoC: ak4642: Fix up max_register setting</title>
<updated>2016-06-06T23:12:27Z</updated>
<author>
<name>Axel Lin</name>
</author>
<published>2015-06-30T16:56:36Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=141afa30231ef169dc4d1bcc00c00478068cf2f7'/>
<id>urn:sha1:141afa30231ef169dc4d1bcc00c00478068cf2f7</id>
<content type='text'>
[ Upstream commit f8ea6cebcfa6499949392da71fc427567c9e5a0e ]

The max_register setting for ak4642, ak4643 and ak4648 are wrong, fix it.

According to the datasheet:
        the maximum valid register for ak4642 is 0x1f
        the maximum valid register for ak4643 is 0x24
        the maximum valid register for ak4648 is 0x27

The default settings for ak4642 and ak4643 are the same for 0x0 ~ 0x1f
registers, so it's fine to use the same reg_default table with differnt
num_reg_defaults setting.

Signed-off-by: Axel Lin &lt;axel.lin@ingics.com&gt;
Tested-by: Kuninori Morimoto &lt;kuninori.morimoto.gx@renesas.com&gt;
Signed-off-by: Mark Brown &lt;broonie@kernel.org&gt;
Signed-off-by: Sasha Levin &lt;sasha.levin@oracle.com&gt;
</content>
</entry>
<entry>
<title>ASoC: rt5640: Correct the digital interface data select</title>
<updated>2016-05-17T01:53:33Z</updated>
<author>
<name>Sugar Zhang</name>
</author>
<published>2016-03-18T06:54:22Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=35d3478878eae689a9934dda6fc6f1cd55262bfd'/>
<id>urn:sha1:35d3478878eae689a9934dda6fc6f1cd55262bfd</id>
<content type='text'>
[ Upstream commit 653aa4645244042826f105aab1be3d01b3d493ca ]

this patch corrects the interface adc/dac control register definition
according to datasheet.

Signed-off-by: Sugar Zhang &lt;sugar.zhang@rock-chips.com&gt;
Signed-off-by: Mark Brown &lt;broonie@kernel.org&gt;
Cc: stable@vger.kernel.org
Signed-off-by: Sasha Levin &lt;sasha.levin@oracle.com&gt;
</content>
</entry>
</feed>
