<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/sound/hda/hdac_controller.c, branch linux-5.0.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-5.0.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-5.0.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2018-09-12T10:22:09Z</updated>
<entry>
<title>sound: don't call skl_init_chip() to reset intel skl soc</title>
<updated>2018-09-12T10:22:09Z</updated>
<author>
<name>Yu Zhao</name>
</author>
<published>2018-09-11T21:15:16Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=75383f8d39d4c0fb96083dd460b7b139fbdac492'/>
<id>urn:sha1:75383f8d39d4c0fb96083dd460b7b139fbdac492</id>
<content type='text'>
Internally, skl_init_chip() calls snd_hdac_bus_init_chip() which
1) sets bus-&gt;chip_init to prevent multiple entrances before device
is stopped; 2) enables interrupt.

We shouldn't use it for the purpose of resetting device only because
1) when we really want to initialize device, we won't be able to do
so; 2) we are ready to handle interrupt yet, and kernel crashes when
interrupt comes in.

Rename azx_reset() to snd_hdac_bus_reset_link(), and use it to reset
device properly.

Fixes: 60767abcea3d ("ASoC: Intel: Skylake: Reset the controller in probe")
Reviewed-by: Takashi Iwai &lt;tiwai@suse.de&gt;
Signed-off-by: Yu Zhao &lt;yuzhao@google.com&gt;
Signed-off-by: Mark Brown &lt;broonie@kernel.org&gt;
</content>
</entry>
<entry>
<title>sound: enable interrupt after dma buffer initialization</title>
<updated>2018-09-12T10:21:55Z</updated>
<author>
<name>Yu Zhao</name>
</author>
<published>2018-09-11T21:14:04Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b61749a89f826eb61fc59794d9e4697bd246eb61'/>
<id>urn:sha1:b61749a89f826eb61fc59794d9e4697bd246eb61</id>
<content type='text'>
In snd_hdac_bus_init_chip(), we enable interrupt before
snd_hdac_bus_init_cmd_io() initializing dma buffers. If irq has
been acquired and irq handler uses the dma buffer, kernel may crash
when interrupt comes in.

Fix the problem by postponing enabling irq after dma buffer
initialization. And warn once on null dma buffer pointer during the
initialization.

Reviewed-by: Takashi Iwai &lt;tiwai@suse.de&gt;
Signed-off-by: Yu Zhao &lt;yuzhao@google.com&gt;
Signed-off-by: Mark Brown &lt;broonie@kernel.org&gt;
</content>
</entry>
<entry>
<title>Merge branch 'for-next' into for-linus</title>
<updated>2017-11-13T14:43:13Z</updated>
<author>
<name>Takashi Iwai</name>
</author>
<published>2017-11-13T14:43:04Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c429bda21ffafb28f02fb2eb4055b4ab6879ed58'/>
<id>urn:sha1:c429bda21ffafb28f02fb2eb4055b4ab6879ed58</id>
<content type='text'>
Pull 4.15 updates to take over the previous urgent fixes.

Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
</content>
</entry>
<entry>
<title>ALSA: hda: Abort capability probe on invalid capability</title>
<updated>2017-10-24T06:13:55Z</updated>
<author>
<name>Rakesh Ughreja</name>
</author>
<published>2017-10-24T12:56:47Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b676da70c495acb2515de76300596e9147806ead'/>
<id>urn:sha1:b676da70c495acb2515de76300596e9147806ead</id>
<content type='text'>
On reading wrong capability pointer values driver may crash, so whenever
driver discovers unknown HDA capability, log it as error and stop traversing
the link list further.

Signed-off-by: Rakesh Ughreja &lt;rakesh.a.ughreja@intel.com&gt;
Acked-by: Vinod Koul &lt;vinod.koul@intel.com&gt;
Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
</content>
</entry>
<entry>
<title>ALSA: hda: Abort capability probe at invalid register read</title>
<updated>2017-10-18T10:26:44Z</updated>
<author>
<name>Takashi Iwai</name>
</author>
<published>2017-10-17T14:38:55Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=098a0a62c1554f5a3813ef1b8539563214ada8f6'/>
<id>urn:sha1:098a0a62c1554f5a3813ef1b8539563214ada8f6</id>
<content type='text'>
The loop in snd_hdac_bus_parse_capabilities() may go to nirvana when
it hits an invalid register value read:

 BUG: unable to handle kernel paging request at ffffad5dc41f3fff
 IP: pci_azx_readl+0x5/0x10 [snd_hda_intel]
 Call Trace:
  snd_hdac_bus_parse_capabilities+0x3c/0x1f0 [snd_hda_core]
  azx_probe_continue+0x7d5/0x940 [snd_hda_intel]
  .....

This happened on a new Intel machine, and we need to check the value
and abort the loop accordingly.

[Note: the fixes tag below indicates only the commit where this patch
 can be applied; the original problem was introduced even before that
 commit]

Fixes: 6720b38420a0 ("ALSA: hda - move bus_parse_capabilities to core")
Cc: &lt;stable@vger.kernel.org&gt;
Acked-by: Vinod Koul &lt;vinod.koul@intel.com&gt;
Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
</content>
</entry>
<entry>
<title>ALSA: hda: Fix cpu lockup when stopping the cmd dmas</title>
<updated>2017-05-10T06:47:17Z</updated>
<author>
<name>Jeeja KP</name>
</author>
<published>2017-05-10T06:21:58Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=960013762df0a214b57f2fce655422fb52bdfd2c'/>
<id>urn:sha1:960013762df0a214b57f2fce655422fb52bdfd2c</id>
<content type='text'>
Using jiffies in hdac_wait_for_cmd_dmas() to determine when to time out
when interrupts are off (snd_hdac_bus_stop_cmd_io()/spin_lock_irq())
causes hard lockup so unlock while waiting using jiffies.

---&lt;-snip-&gt;---
&lt;0&gt;[ 1211.603046] NMI watchdog: Watchdog detected hard LOCKUP on cpu 3
&lt;4&gt;[ 1211.603047] Modules linked in: snd_hda_intel i915 vgem
&lt;4&gt;[ 1211.603053] irq event stamp: 13366
&lt;4&gt;[ 1211.603053] hardirqs last  enabled at (13365):
...
&lt;4&gt;[ 1211.603059] Call Trace:
&lt;4&gt;[ 1211.603059]  ? delay_tsc+0x3d/0xc0
&lt;4&gt;[ 1211.603059]  __delay+0xa/0x10
&lt;4&gt;[ 1211.603060]  __const_udelay+0x31/0x40
&lt;4&gt;[ 1211.603060]  snd_hdac_bus_stop_cmd_io+0x96/0xe0 [snd_hda_core]
&lt;4&gt;[ 1211.603060]  ? azx_dev_disconnect+0x20/0x20 [snd_hda_intel]
&lt;4&gt;[ 1211.603061]  snd_hdac_bus_stop_chip+0xb1/0x100 [snd_hda_core]
&lt;4&gt;[ 1211.603061]  azx_stop_chip+0x9/0x10 [snd_hda_codec]
&lt;4&gt;[ 1211.603061]  azx_suspend+0x72/0x220 [snd_hda_intel]
&lt;4&gt;[ 1211.603061]  pci_pm_suspend+0x71/0x140
&lt;4&gt;[ 1211.603062]  dpm_run_callback+0x6f/0x330
&lt;4&gt;[ 1211.603062]  ? pci_pm_freeze+0xe0/0xe0
&lt;4&gt;[ 1211.603062]  __device_suspend+0xf9/0x370
&lt;4&gt;[ 1211.603062]  ? dpm_watchdog_set+0x60/0x60
&lt;4&gt;[ 1211.603063]  async_suspend+0x1a/0x90
&lt;4&gt;[ 1211.603063]  async_run_entry_fn+0x34/0x160
&lt;4&gt;[ 1211.603063]  process_one_work+0x1f4/0x6d0
&lt;4&gt;[ 1211.603063]  ? process_one_work+0x16e/0x6d0
&lt;4&gt;[ 1211.603064]  worker_thread+0x49/0x4a0
&lt;4&gt;[ 1211.603064]  kthread+0x107/0x140
&lt;4&gt;[ 1211.603064]  ? process_one_work+0x6d0/0x6d0
&lt;4&gt;[ 1211.603065]  ? kthread_create_on_node+0x40/0x40
&lt;4&gt;[ 1211.603065]  ret_from_fork+0x2e/0x40

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=100419
Fixes: 38b19ed7f81ec ("ALSA: hda: fix to wait for RIRB &amp; CORB DMA to set")
Reported-by: Marta Lofstedt &lt;marta.lofstedt@intel.com&gt;
Suggested-by: Takashi Iwai &lt;tiwai@suse.de&gt;
Signed-off-by: Jeeja KP &lt;jeeja.kp@intel.com&gt;
Acked-by: Vinod Koul &lt;vinod.koul@intel.com&gt;
CC: stable &lt;stable@vger.kernel.org&gt; # 4.7
Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
</content>
</entry>
<entry>
<title>Merge tag 'asoc-v4.12' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus</title>
<updated>2017-05-02T06:25:25Z</updated>
<author>
<name>Takashi Iwai</name>
</author>
<published>2017-05-02T06:25:25Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a5c3b32a1146e44f6b38fdfdfffc27842953420c'/>
<id>urn:sha1:a5c3b32a1146e44f6b38fdfdfffc27842953420c</id>
<content type='text'>
ASoC: Updates for v4.12

A quiet release for the core, but lots of new drivers this time around:

 - A new, generalized, API for hooking up jacks which makes it easier to
   write generic machine drivers for simple cases.
 - Continuing fixes for issues with the x86 CPU drivers.
 - New drivers for Cirrus CS35L35, DIO DIO2125, Everest ES7132,
   HiSilicon hi6210, Maxim MAX98927, MT2701 systems with WM8960, Nuvoton
   NAU8824, Odroid systems, ST STM32 SAI controllers and x86 systems with
   DA7213
</content>
</entry>
<entry>
<title>ALSA: hda - Avoid tricky macros</title>
<updated>2017-04-03T06:42:43Z</updated>
<author>
<name>Takashi Iwai</name>
</author>
<published>2017-03-29T06:27:15Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=2c1f81381eadc6dd3c288ec4477b2fe572cf86dc'/>
<id>urn:sha1:2c1f81381eadc6dd3c288ec4477b2fe572cf86dc</id>
<content type='text'>
The macros _snd_hdac_chip_read() and *_write() expand to different
types (b,w,l) per their argument.  They were thought to be used only
internally for other snd_hdac_chip_*() macros, but in some situations
we need to call these directly, and they are way too ugly.

Instead of saving a few lines, we just write these macros explicitly
with the types, so that they can be used in a saner way.

Acked-by: Vinod Koul &lt;vinod.koul@intel.com&gt;
Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
</content>
</entry>
<entry>
<title>ALSA: hda: Fix LLCH register read</title>
<updated>2017-03-29T11:01:35Z</updated>
<author>
<name>B, Jayachandran</name>
</author>
<published>2017-03-24T17:40:24Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=ccfdf9f6a47179941cb8b5f1d3df9734e54b38c4'/>
<id>urn:sha1:ccfdf9f6a47179941cb8b5f1d3df9734e54b38c4</id>
<content type='text'>
LLCH is a 16 bit register. Use readw instead of readl API.

Signed-off-by: B, Jayachandran &lt;jayachandran.b@intel.com&gt;
Signed-off-by: Jeeja KP &lt;jeeja.kp@intel.com&gt;
Acked-by: Takashi Iwai &lt;tiwai@suse.de&gt;
Acked-by: Vinod Koul &lt;vinod.koul@intel.com&gt;
Signed-off-by: Mark Brown &lt;broonie@kernel.org&gt;
</content>
</entry>
<entry>
<title>ALSA: hda - move bus_parse_capabilities to core</title>
<updated>2016-08-09T06:53:56Z</updated>
<author>
<name>Vinod Koul</name>
</author>
<published>2016-08-04T10:16:00Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=6720b38420a01d40dbeb8ee575eb601d612de691'/>
<id>urn:sha1:6720b38420a01d40dbeb8ee575eb601d612de691</id>
<content type='text'>
HDA capability introduced recently are move to hdac core so that it can
be used by legacy driver as well. Also move the capability pointers up
to hdac_bus object.

Signed-off-by: Vinod Koul &lt;vinod.koul@intel.com&gt;
Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
</content>
</entry>
</feed>
