<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/sound/hda, 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>2016-08-20T03:08:35Z</updated>
<entry>
<title>ALSA: hda: Fix krealloc() with __GFP_ZERO usage</title>
<updated>2016-08-20T03:08:35Z</updated>
<author>
<name>Takashi Iwai</name>
</author>
<published>2016-08-03T13:13:00Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=0224028e1bcf2d49531308b971b8485c552c1510'/>
<id>urn:sha1:0224028e1bcf2d49531308b971b8485c552c1510</id>
<content type='text'>
[ Upstream commit 33baefe5e72f17a6df378e48196cd8cada11deec ]

krealloc() doesn't work always properly with __GFP_ZERO flag as
expected.  For clearing the reallocated area, we need to clear
explicitly instead.

Reported-by: Joe Perches &lt;joe@perches.com&gt;
Cc: &lt;stable@vger.kernel.org&gt;
Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
Signed-off-by: Sasha Levin &lt;alexander.levin@verizon.com&gt;
</content>
</entry>
<entry>
<title>ALSA: hdac_regmap - fix the register access for runtime PM</title>
<updated>2016-07-11T00:19:59Z</updated>
<author>
<name>Jaroslav Kysela</name>
</author>
<published>2016-06-17T11:35:56Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=0b1ca750b5fe6e457768c1b835f7f380a288ca58'/>
<id>urn:sha1:0b1ca750b5fe6e457768c1b835f7f380a288ca58</id>
<content type='text'>
[ Upstream commit 8198868f0a283eb23e264951632ce61ec2f82228 ]

Call path:

  1) snd_hdac_power_up_pm()
  2) snd_hdac_power_up()
  3) pm_runtime_get_sync()
  4) __pm_runtime_resume()
  5) rpm_resume()

The rpm_resume() returns 1 when the device is already active.
Because the return value is unmodified, the hdac regmap read/write
functions should allow this value for the retry I/O operation, too.

Signed-off-by: Jaroslav Kysela &lt;perex@perex.cz&gt;
Cc: &lt;stable@vger.kernel.org&gt;
Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
Signed-off-by: Sasha Levin &lt;sasha.levin@oracle.com&gt;
</content>
</entry>
<entry>
<title>ALSA: hda - Fix possible race on regmap bypass flip</title>
<updated>2016-07-11T00:19:59Z</updated>
<author>
<name>Takashi Iwai</name>
</author>
<published>2016-04-21T15:49:11Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=ec3e73223a8e5a5ec66ca6a2b12d37ddaf2530dd'/>
<id>urn:sha1:ec3e73223a8e5a5ec66ca6a2b12d37ddaf2530dd</id>
<content type='text'>
[ Upstream commit 3194ed497939c6448005542e3ca4fa2386968fa0 ]

HD-audio driver uses regmap cache bypass feature for reading a raw
value without the cache.  But this is racy since both the cached and
the uncached reads may occur concurrently.  The former is done via the
normal control API access while the latter comes from the proc file
read.

Even though the regmap itself has the protection against the
concurrent accesses, the flag set/reset is done without the
protection, so it may lead to inconsistent state of bypass flag that
doesn't match with the current read and occasionally result in a
kernel WARNING like:
  WARNING: CPU: 3 PID: 2731 at drivers/base/regmap/regcache.c:499 regcache_cache_only+0x78/0x93

One way to work around such a problem is to wrap with a mutex.  But in
this case, the solution is simpler: for the uncached read, we just
skip the regmap and directly calls its accessor.  The verb execution
there is protected by itself, so basically it's safe to call
individually.

Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=116171
Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
Signed-off-by: Sasha Levin &lt;sasha.levin@oracle.com&gt;
</content>
</entry>
<entry>
<title>ALSA: hda - Check the return value from pm_runtime_get/put*()</title>
<updated>2016-04-18T12:50:48Z</updated>
<author>
<name>Takashi Iwai</name>
</author>
<published>2015-07-17T14:27:33Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=3068107c9442d27ab2f37d08fca7eb3e862d412a'/>
<id>urn:sha1:3068107c9442d27ab2f37d08fca7eb3e862d412a</id>
<content type='text'>
[ Upstream commit fbce23a0b95763dfc4961ce6240e055c39f497ed ]

This patch changes the return type of snd_hdac_power_up/down() and
variants to pass the error code from the underlying
pm_runtime_get/put() calls.  Currently they are ignored, but in most
places, these should be handled properly.

As an example, the regmap handler is updated to check the return value
and accesses the register only when the wakeup succeeds.

Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
Signed-off-by: Sasha Levin &lt;sasha.levin@oracle.com&gt;
</content>
</entry>
<entry>
<title>ALSA: hda - Re-add the lost fake mute support</title>
<updated>2015-06-11T09:55:48Z</updated>
<author>
<name>Takashi Iwai</name>
</author>
<published>2015-06-11T08:51:28Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a686ec4c5f28eb1b384e4b87b08543155c970072'/>
<id>urn:sha1:a686ec4c5f28eb1b384e4b87b08543155c970072</id>
<content type='text'>
Yet another regression by the transition to regmap cache; for better
usability, we had the fake mute control using the zero amp value for
Conexant codecs, and this was forgotten in the new hda core code.

Since the bits 4-7 are unused for the amp registers (as we follow the
syntax of AMP_GET verb), the bit 4 is now used to indicate the fake
mute.  For setting this flag, snd_hda_codec_amp_update() becomes a
function from a simple macro.  The bonus is that it gained a proper
function description.

Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
</content>
</entry>
<entry>
<title>ALSA: hda - Don't actually write registers for caps overwrites</title>
<updated>2015-06-10T08:31:10Z</updated>
<author>
<name>Takashi Iwai</name>
</author>
<published>2015-06-10T08:27:00Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=98a226ed21949601b270f7ea20abc9f72f7b0be9'/>
<id>urn:sha1:98a226ed21949601b270f7ea20abc9f72f7b0be9</id>
<content type='text'>
Along with the transition to regmap for managing the cached parameter
reads, the caps overwrite was also moved to regmap cache.  The cache
change itself works, but it still tries to write the non-existing verb
(the HDA parameter is read-only) wrongly.  It's harmless in most
cases, but some chips are picky and may result in the codec
communication stall.

This patch avoids it just by adding the missing flag check in
reg_write ops.

Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
</content>
</entry>
<entry>
<title>ALSA: hda - set GET bit when adding a vendor verb to the codec regmap</title>
<updated>2015-04-14T05:25:42Z</updated>
<author>
<name>Mengdong Lin</name>
</author>
<published>2015-04-14T03:25:36Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d6eb9e3ec78c98324097bab8eea266c3bb0d0ac7'/>
<id>urn:sha1:d6eb9e3ec78c98324097bab8eea266c3bb0d0ac7</id>
<content type='text'>
Some HD-A codecs may add their own vendor 'set' verb to the regmap, thru func
snd_hdac_add_vendor_verb(). This patch sets the GET bit (bit 11)  when adding
the verb so that its peer vendor 'get' verb is actually added. This can avoid
I/O error when writing the 'set' verb thru remap, since HD-A regmap internally
looks up a writable vendor verb with GET bit set at first.

Signed-off-by: Mengdong Lin &lt;mengdong.lin@intel.com&gt;
Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
</content>
</entry>
<entry>
<title>ALSA: hda - Fix another race in runtime PM refcounting</title>
<updated>2015-04-13T09:07:20Z</updated>
<author>
<name>Takashi Iwai</name>
</author>
<published>2015-04-13T09:01:14Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c3aeda62878f09da91329693a60a1f08ec97e0b8'/>
<id>urn:sha1:c3aeda62878f09da91329693a60a1f08ec97e0b8</id>
<content type='text'>
Although some races in runtime PM refcount was fixed by the commit
[664c715573c2: ALSA: hda - Work around races of power up/down with
runtime PM], there is still a race in the following case:

CPU0:                   CPU1 :
runtime suspend:
  codec-&gt;in_pm = 1
                        snd_hdac_power_up_pm():
                          pm_runtime_get_sync() skipped
suspend finished:
  codec-&gt;in_pm = 0
                        snd_hdac_power_down_pm():
                          pm_runtime_put_*() is called!

For avoiding this situation, increment in_pm flag atomically when it's
non-zero, and decrement accordingly, to ensure that in_pm is set
consistently for the whole concurrent operations.

Also, since atomic_inc_not_zero() and atomic_dec_if_positive() are
lengthy inline functions, move snd_hdac_power_up_pm() and _down_pm()
to sound/hda/hdac_device.c as no inline functions.

Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
</content>
</entry>
<entry>
<title>ALSA: hda - Expose codec type sysfs</title>
<updated>2015-04-13T08:43:54Z</updated>
<author>
<name>Takashi Iwai</name>
</author>
<published>2015-04-13T08:43:54Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=eacf6e0a238923dfce0626450adcb6d486072f28'/>
<id>urn:sha1:eacf6e0a238923dfce0626450adcb6d486072f28</id>
<content type='text'>
The type field of HD-audio codec object should be exposed to
user-space so that it can identify which driver type to bind (legacy /
asoc).

Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
</content>
</entry>
<entry>
<title>ALSA: hda - Always allow access for POWER_STATE verbs via regmap</title>
<updated>2015-04-09T06:24:51Z</updated>
<author>
<name>Takashi Iwai</name>
</author>
<published>2015-04-09T05:58:46Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=9efe2731db3a8944d26233bb47532011411810fb'/>
<id>urn:sha1:9efe2731db3a8944d26233bb47532011411810fb</id>
<content type='text'>
The hdac regmap code checks whether the codec is powered on while
accessing, but there must be an exception -- the verbs to control the
power state.

Currently HD-audio driver doesn't access them via regmap, so this
patch doesn't fix any current behavior, but it's just for future.

Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
</content>
</entry>
</feed>
