<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/include/sound/hdaudio.h, branch linux-5.5.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-5.5.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-5.5.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2020-02-11T12:36:45Z</updated>
<entry>
<title>ALSA: hda: Apply aligned MMIO access only conditionally</title>
<updated>2020-02-11T12:36:45Z</updated>
<author>
<name>Takashi Iwai</name>
</author>
<published>2020-01-20T10:41:27Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=0ef641ba2c94501a89d93a11434036abc036ed34'/>
<id>urn:sha1:0ef641ba2c94501a89d93a11434036abc036ed34</id>
<content type='text'>
commit 4d024fe8f806e20e577cc934204c5784c7063293 upstream.

It turned out that the recent simplification of HD-audio bus access
helpers caused a regression on the virtual HD-audio device on QEMU
with ARM platforms.  The driver got a CORB/RIRB timeout and couldn't
probe any codecs.

The essential difference that caused a problem was the enforced
aligned MMIO accesses by simplification.  Since snd-hda-tegra driver
is enabled on ARM, it enables CONFIG_SND_HDA_ALIGNED_MMIO, which makes
the all HD-audio drivers using the aligned MMIO accesses.  While this
is mandatory for snd-hda-tegra, it seems that snd-hda-intel on ARM
gets broken by this access pattern.

For addressing the regression, this patch introduces a new flag,
aligned_mmio, to hdac_bus object, and applies the aligned MMIO only
when this flag is set.  This change affects only platforms with
CONFIG_SND_HDA_ALIGNED_MMIO set, i.e. mostly only for ARM platforms.

Unfortunately the patch became a big bigger than it should be, just
because the former calls didn't take hdac_bus object in the argument,
hence we had to extend the call patterns.

Fixes: 19abfefd4c76 ("ALSA: hda: Direct MMIO accesses")
BugLink: https://bugzilla.opensuse.org/show_bug.cgi?id=1161152
Cc: &lt;stable@vger.kernel.org&gt;
Link: https://lore.kernel.org/r/20200120104127.28985-1-tiwai@suse.de
Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>ALSA: hda: Modify stream stripe mask only when needed</title>
<updated>2019-12-03T06:46:30Z</updated>
<author>
<name>Takashi Iwai</name>
</author>
<published>2019-12-02T07:49:47Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e38e486d66e2a3b902768fd71c32dbf10f77e1cb'/>
<id>urn:sha1:e38e486d66e2a3b902768fd71c32dbf10f77e1cb</id>
<content type='text'>
The recent commit in HD-audio stream management for changing the
stripe control seems causing a regression on some platforms.  The
stripe control is currently used only by HDMI codec, and applying the
stripe mask unconditionally may lead to scratchy and static noises as
seen on some MacBooks.

For addressing the regression, this patch changes the stream
management code to apply the stripe mask conditionally only when the
codec driver requested.

Fixes: 9b6f7e7a296e ("ALSA: hda: program stripe bits for controller")
BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=204477
Tested-by: Michael Pobega &lt;mpobega@neverware.com&gt;
Cc: &lt;stable@vger.kernel.org&gt;
Link: https://lore.kernel.org/r/20191202074947.1617-1-tiwai@suse.de
Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
</content>
</entry>
<entry>
<title>ALSA: hda: Unexport a few more stuff</title>
<updated>2019-08-14T18:00:56Z</updated>
<author>
<name>Takashi Iwai</name>
</author>
<published>2019-08-14T17:59:44Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=ddf7cb83b0f45feb94ad89a987f600c766c463ca'/>
<id>urn:sha1:ddf7cb83b0f45feb94ad89a987f600c766c463ca</id>
<content type='text'>
Drop EXPORT_SYMBOL*() from a few more stuff in HD-audio core that
aren't used outside.  Particular the unsol event handler can be
staticized now because the recent change removed all external
callers.

Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
</content>
</entry>
<entry>
<title>ALSA: hda: Drop export of snd_hdac_bus_add/remove_device()</title>
<updated>2019-08-14T17:51:24Z</updated>
<author>
<name>Takashi Iwai</name>
</author>
<published>2019-08-14T16:27:08Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=53eff75e5f4dd4b9bc489955fdc60fde48d85e93'/>
<id>urn:sha1:53eff75e5f4dd4b9bc489955fdc60fde48d85e93</id>
<content type='text'>
snd_hdac_bus_add_device() and snd_hdac_remove_device() are called only
internally in hda-core.  Let's drop the exports of them and move the
declarations into local.h.

Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
</content>
</entry>
<entry>
<title>ALSA: hda: Direct MMIO accesses</title>
<updated>2019-08-08T14:36:18Z</updated>
<author>
<name>Takashi Iwai</name>
</author>
<published>2019-08-07T18:32:08Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=19abfefd4c7604993d1c31e098a3f48bdafe334d'/>
<id>urn:sha1:19abfefd4c7604993d1c31e098a3f48bdafe334d</id>
<content type='text'>
HD-audio drivers access to the mmio registers indirectly via the
corresponding bus-&gt;io_ops callbacks.  This is because some platform
(notably Tegra SoC) requires the word-aligned access.  But it's rather
a rare case, and other platforms suffer from the penalties by indirect
calls unnecessarily.

This patch is an attempt to optimize and cleanup for this situation.
Now the special aligned access is used only when a new kconfig
CONFIG_SND_HDA_ALIGNED_MMIO is set.  And the HD-audio core itself
provides the aligned MMIO access helpers instead of the driver side.
If Kconfig isn't set (as default), the standard helpers like readl()
or writel() are used directly.

A couple of places in ASoC Intel drivers have the access via io_ops
reg_writel(), and they are replaced with the direct writel() calls.

And now with this patch, the whole bus-&gt;io_ops becomes empty, so it's
dropped completely.  The bus initialization functions are changed
accordingly as well to drop the whole bus-&gt;io_ops.

Reviewed-by: Pierre-Louis Bossart &lt;pierre-louis.bossart@linux.intel.com&gt;
Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
</content>
</entry>
<entry>
<title>ALSA: hda: Remove page allocation redirection</title>
<updated>2019-08-08T14:34:49Z</updated>
<author>
<name>Takashi Iwai</name>
</author>
<published>2019-08-07T18:02:31Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=619a1f195f93276dc8c6e33fe057e007adc9c288'/>
<id>urn:sha1:619a1f195f93276dc8c6e33fe057e007adc9c288</id>
<content type='text'>
The HD-audio core allocates and releases pages via driver's specific
dma_alloc_pages and dma_free_pages ops defined in bus-&gt;io_ops.  This
was because some platforms require the uncached pages and the handling
of page flags had to be done locally in the driver code.

Since the recent change in ALSA core memory allocator, we can simply
pass SNDRV_DMA_TYPE_DEV_UC for the uncached pages, and the only
difference became about this type to be passed to the core allocator.
That is, it's good time for cleaning up the mess.

This patch changes the allocation code in HD-audio core to call the
core allocator directly so that we get rid of dma_alloc_pages and
dma_free_pages io_ops.  If a driver needs the uncached pages, it has
to set bus-&gt;dma_type right after the bus initialization.

This is merely a code refactoring and shouldn't bring any behavior
changes.

Reviewed-by: Pierre-Louis Bossart &lt;pierre-louis.bossart@linux.intel.com&gt;
Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
</content>
</entry>
<entry>
<title>Merge branch 'topic/hda-refresh-cleanup' into for-next</title>
<updated>2019-07-07T09:29:30Z</updated>
<author>
<name>Takashi Iwai</name>
</author>
<published>2019-07-07T09:29:03Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b89b889a326a7abf1c9ceef7ddbe06dbaf8c2520'/>
<id>urn:sha1:b89b889a326a7abf1c9ceef7ddbe06dbaf8c2520</id>
<content type='text'>
Merge a cleanup for HD-audio widget refresh code

Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
</content>
</entry>
<entry>
<title>ALSA: hda: Simplify snd_hdac_refresh_widgets()</title>
<updated>2019-07-05T10:01:06Z</updated>
<author>
<name>Takashi Iwai</name>
</author>
<published>2019-07-03T12:35:12Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=774a075ab5140bb4504e6026bf327021926c3e65'/>
<id>urn:sha1:774a075ab5140bb4504e6026bf327021926c3e65</id>
<content type='text'>
Along with the recent fix for the races of snd_hdac_refresh_widgets()
it turned out that the instantiation of widgets sysfs at
snd_hdac_sysfs_reinit() could cause a race.  The race itself was
already covered later by extending the mutex protection range, the
commit 98482377dc72 ("ALSA: hda: Fix widget_mutex incomplete
protection"), but this also indicated that the call of *_reinit() is
basically superfluous, as the widgets shall be created sooner or later
from snd_hdac_device_register().

This patch removes the redundant call of snd_hdac_sysfs_reinit() at
first.  By this removal, the sysfs argument itself in
snd_hdac_refresh_widgets() becomes superfluous, too, because the only
case sysfs=false is always with codec-&gt;widgets=NULL.  So, we drop this
redundant argument as well.

Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
</content>
</entry>
<entry>
<title>ALSA: hda: move polling_mode flag to struct hdac_bus</title>
<updated>2019-05-28T05:52:02Z</updated>
<author>
<name>Bard Liao</name>
</author>
<published>2019-05-26T16:58:34Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=8af42130b50c4d38f48fa82f3f7be4606d01f595'/>
<id>urn:sha1:8af42130b50c4d38f48fa82f3f7be4606d01f595</id>
<content type='text'>
polling mode is a useful function in the get_response function. Move
polling_mode flag from struct azx to struct hdac_bus so people can
implement polling mode in their own get_response function without
adding a polling_mode flag in their local chip structure.

Signed-off-by: Bard Liao &lt;yung-chuan.liao@linux.intel.com&gt;
Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
</content>
</entry>
<entry>
<title>Merge tag 'sound-fix-5.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound</title>
<updated>2019-05-17T20:57:54Z</updated>
<author>
<name>Linus Torvalds</name>
</author>
<published>2019-05-17T20:57:54Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=72cf0b07418a9c8349aa9137194b1ccba6e54a9d'/>
<id>urn:sha1:72cf0b07418a9c8349aa9137194b1ccba6e54a9d</id>
<content type='text'>
Pull sound fixes from Takashi Iwai:
 "Just a few HD-audio fixes, most of which are specific to Realtek
  codecs"

* tag 'sound-fix-5.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
  ALSA: hda/realtek - Fix for Lenovo B50-70 inverted internal microphone bug
  ALSA: hda: Fix race between creating and refreshing sysfs entries
  ALSA: hda/realtek - Corrected fixup for System76 Gazelle (gaze14)
  ALSA: hda/realtek - Avoid superfluous COEF EAPD setups
  ALSA: hda/realtek - Fixup headphone noise via runtime suspend
</content>
</entry>
</feed>
