<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/include/sound/hdaudio_ext.h, branch linux-5.16.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-5.16.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-5.16.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2021-09-28T08:22:26Z</updated>
<entry>
<title>ALSA: hda: hdac_ext_stream: fix potential locking issues</title>
<updated>2021-09-28T08:22:26Z</updated>
<author>
<name>Pierre-Louis Bossart</name>
</author>
<published>2021-09-24T19:24:16Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=868ddfcef31ff93ea8961b2e81ea7fe12f6f144b'/>
<id>urn:sha1:868ddfcef31ff93ea8961b2e81ea7fe12f6f144b</id>
<content type='text'>
The code for hdac_ext_stream seems inherited from hdac_stream, and
similar locking issues are present: the use of the bus-&gt;reg_lock
spinlock is inconsistent, with only writes to specific fields being
protected.

Apply similar fix as in hdac_stream by protecting all accesses to
'link_locked' and 'decoupled' fields, with a new helper
snd_hdac_ext_stream_decouple_locked() added to simplify code
changes.

Signed-off-by: Pierre-Louis Bossart &lt;pierre-louis.bossart@linux.intel.com&gt;
Link: https://lore.kernel.org/r/20210924192417.169243-4-pierre-louis.bossart@linux.intel.com
Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
</content>
</entry>
<entry>
<title>ALSA: hda_audio_ext: fix kernel-doc</title>
<updated>2021-08-13T06:05:31Z</updated>
<author>
<name>Pierre-Louis Bossart</name>
</author>
<published>2021-08-12T22:59:04Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=0c4aa67735b754b735b85edfc909163f9289fcc2'/>
<id>urn:sha1:0c4aa67735b754b735b85edfc909163f9289fcc2</id>
<content type='text'>
Add missing @

Signed-off-by: Pierre-Louis Bossart &lt;pierre-louis.bossart@linux.intel.com&gt;
Reviewed-by: Péter Ujfalusi &lt;peter.ujfalusi@linux.intel.com&gt;
Reviewed-by: Kai Vehmanen &lt;kai.vehmanen@linux.intel.com&gt;
Reviewed-by: Ranjani Sridharan &lt;ranjani.sridharan@linux.intel.com&gt;
Link: https://lore.kernel.org/r/20210812225904.171529-3-pierre-louis.bossart@linux.intel.com
Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
</content>
</entry>
<entry>
<title>ALSA: hda: add link_power op to hdac_bus_ops</title>
<updated>2021-02-08T14:56:35Z</updated>
<author>
<name>Kai Vehmanen</name>
</author>
<published>2021-02-05T18:46:28Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f9e5fd1b666e9d34c94b91808bda02c2d4d00776'/>
<id>urn:sha1:f9e5fd1b666e9d34c94b91808bda02c2d4d00776</id>
<content type='text'>
The extended HDA bus (hdac_ext) provides interfaces for more
fine-grained control of individual links than what plain HDA
provides for. Links can be powered off when they are not used and if
all links are released, controller can shut down the command DMA.

These interfaces are currently not used by common HDA codec drivers.
When a HDA codec is runtime suspended, it calls snd_hdac_codec_link_down(),
but there is no link to the HDA extended bus, and on controller side
the links are shut down only when all codecs are suspended.

This patch adds link_power() to hdac_bus ops. Controllers using the HDA
extended core, can use this to plug in snd_hdac_ext_bus_link_power() to
implement more fine-grained control of link power.

No change is needed for plain HDA controllers nor to existing HDA
codec drivers.

Co-developed-by: Ranjani Sridharan &lt;ranjani.sridharan@linux.intel.com&gt;
Signed-off-by: Ranjani Sridharan &lt;ranjani.sridharan@linux.intel.com&gt;
Signed-off-by: Kai Vehmanen &lt;kai.vehmanen@linux.intel.com&gt;
Acked-by: Mark Brown &lt;broonie@kernel.org&gt;
Link: https://lore.kernel.org/r/20210205184630.1938761-2-kai.vehmanen@linux.intel.com
Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
</content>
</entry>
<entry>
<title>ASoC: hdac: make SOF HDA codec driver probe deterministic</title>
<updated>2020-09-21T22:57:24Z</updated>
<author>
<name>Kai Vehmanen</name>
</author>
<published>2020-09-21T10:08:41Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=163cd1059a85d225b811ddb4192fabd1553f77f1'/>
<id>urn:sha1:163cd1059a85d225b811ddb4192fabd1553f77f1</id>
<content type='text'>
To provide backward compatibility to older systems, the SOF HDA driver
allows user to specify which HDMI codec driver to use at runtime via
kernel parameter. This mechanism has a subtle flaw in that it assumes
the codec drivers not to be loaded when the SOF PCI driver is loaded.

The problem is rooted in use of the hdev-&gt;type field.
snd_hdac_ext_bus_device_init() initializes this field to HDA_DEV_ASOC.
This signals the HDA core that ASoC drivers should be considered in
driver matching (hda_bus_match()). The SOF and SST drivers continue by
overriding this field to HDA_DEV_LEGACY and proceeding to load driver
modules with request_module(). Correct drivers will get loaded and
attached.

If however the codec drivers are already loaded when
snd_hdac_ext_bus_device_init() is called, the matching will not work as
expected as device type is still set to HDA_DEV_ASOC. Specifically if
hdac-hdmi is attached when machine driver is configured to use hdac-hda,
this leads to out-of-bounds memory access in
hda_dsp_hdmi_build_controls().

Fix the issue by adding codec type as a parameter to
snd_hdac_ext_bus_device_init() and ensuring type is set correctly from
the start.

Fixes: 139c7febad1a ("ASoC: SOF: Intel: add support for snd-hda-codec-hdmi")
Signed-off-by: Kai Vehmanen &lt;kai.vehmanen@linux.intel.com&gt;
Reviewed-by: Guennadi Liakhovetski &lt;guennadi.liakhovetski@linux.intel.com&gt;
Reviewed-by: Pierre-Louis Bossart &lt;pierre-louis.bossart@linux.intel.com&gt;
Link: https://lore.kernel.org/r/20200921100841.2882662-1-kai.vehmanen@linux.intel.com
Signed-off-by: Mark Brown &lt;broonie@kernel.org&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: hdac: add extended ops in the hdac_bus</title>
<updated>2018-06-28T05:33:29Z</updated>
<author>
<name>Rakesh Ughreja</name>
</author>
<published>2018-06-02T03:53:58Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=cb04ba33187ca571142b67c2fb60d0a8c24994c8'/>
<id>urn:sha1:cb04ba33187ca571142b67c2fb60d0a8c24994c8</id>
<content type='text'>
Add extended ops in the hdac_bus to allow calling the ASoC HDAC library
ops to reuse the legacy HDA codec drivers with ASoC framework.
Extended ops are used by the legacy codec drivers to call into
hdac_hda library, in the subsequent patches..

Signed-off-by: Rakesh Ughreja &lt;rakesh.a.ughreja@intel.com&gt;
Signed-off-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: hdac: remove memory allocation from snd_hdac_ext_bus_device_init</title>
<updated>2018-06-28T05:33:29Z</updated>
<author>
<name>Rakesh Ughreja</name>
</author>
<published>2018-06-02T03:53:57Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=6298542fa33b6ba0e3effbace5b99b70b93ed9ae'/>
<id>urn:sha1:6298542fa33b6ba0e3effbace5b99b70b93ed9ae</id>
<content type='text'>
Remove memory allocation within snd_hdac_ext_bus_device_init, to make
its behaviour identical to snd_hdac_bus_device_init. So that caller
can allocate the parent data structure containing hdac_device.
This API change helps in reusing the legacy HDA codec drivers with
ASoC platform drivers.

Signed-off-by: Rakesh Ughreja &lt;rakesh.a.ughreja@intel.com&gt;
Signed-off-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: hdac: Remove usage of struct hdac_ext_driver, use hdac_driver instead</title>
<updated>2018-06-28T05:33:29Z</updated>
<author>
<name>Rakesh Ughreja</name>
</author>
<published>2018-06-02T03:53:51Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e1df9317cbb192582ed7aa88c5f294c2336a3c75'/>
<id>urn:sha1:e1df9317cbb192582ed7aa88c5f294c2336a3c75</id>
<content type='text'>
This patch removes the hdac_ext_driver structure. The legacy and
enhanced HDaudio capabilities can be handled in a backward-compatible
way without separate definitions.

Signed-off-by: Rakesh Ughreja &lt;rakesh.a.ughreja@intel.com&gt;
Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
</content>
</entry>
<entry>
<title>ALSA: hdac: Remove usage of struct hdac_ext_bus and use hdac_bus instead</title>
<updated>2018-06-28T05:33:29Z</updated>
<author>
<name>Rakesh Ughreja</name>
</author>
<published>2018-06-02T03:53:50Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=76f56fae1cf9040325a58d1375291baf71dfaf03'/>
<id>urn:sha1:76f56fae1cf9040325a58d1375291baf71dfaf03</id>
<content type='text'>
This patch removes the hdac_ext_bus structure. The legacy and
enhanced HDaudio capabilities can be handled in a backward-compatible
way without separate definitions.

Follow-up patches in this series handle the driver definition.

Signed-off-by: Rakesh Ughreja &lt;rakesh.a.ughreja@intel.com&gt;
Signed-off-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: hdac: Remove usage of struct hdac_ext_device and use hdac_device instead</title>
<updated>2018-06-28T05:33:29Z</updated>
<author>
<name>Rakesh Ughreja</name>
</author>
<published>2018-06-02T03:53:49Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=3787a39852b0d6a9e67336f8fb5815c13ab78bb6'/>
<id>urn:sha1:3787a39852b0d6a9e67336f8fb5815c13ab78bb6</id>
<content type='text'>
This patch removes the hdac_ext_device structure. The legacy and
enhanced HDaudio capabilities can be handled in a backward-compatible
way without separate definitions.

Follow-up patches in this series handle the bus and driver definitions.

Signed-off-by: Rakesh Ughreja &lt;rakesh.a.ughreja@intel.com&gt;
Signed-off-by: Pierre-Louis Bossart &lt;pierre-louis.bossart@linux.intel.com&gt;
Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
</content>
</entry>
</feed>
