<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Technicalities &#187; ASoC</title>
	<atom:link href="http://www.sirena.org.uk/log/tag/asoc/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.sirena.org.uk/log</link>
	<description>Just another random blog</description>
	<lastBuildDate>Sat, 21 Jan 2012 23:41:17 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>regmap updates in 3.2</title>
		<link>http://www.sirena.org.uk/log/2012/01/06/regmap-updates-in-3-2/</link>
		<comments>http://www.sirena.org.uk/log/2012/01/06/regmap-updates-in-3-2/#comments</comments>
		<pubDate>Fri, 06 Jan 2012 23:59:19 +0000</pubDate>
		<dc:creator>Mark Brown</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Planet Debian]]></category>
		<category><![CDATA[regmap]]></category>
		<category><![CDATA[tech]]></category>
		<category><![CDATA[ASoC]]></category>
		<category><![CDATA[kernel]]></category>

		<guid isPermaLink="false">http://www.sirena.org.uk/log/?p=458</guid>
		<description><![CDATA[Version 3.1 of the Linux kernel was the first release to include regmap support and only included a bare minimum of features in order to ease review so version 3.2 has been a pretty big one for regmap development with some pretty major features being built on top of the core code. Support for register [...]]]></description>
			<content:encoded><![CDATA[<p>Version 3.1 of the Linux kernel was the first release to include regmap support and only included a bare minimum of features in order to ease review so version 3.2 has been a pretty big one for regmap development with some pretty major features being built on top of the core code.</p>
<ul>
<li>Support for register caches &#8211; Dimitris Papastamos ported his code for rbtree and LZO caches from ASoC over to regmap. This makes it easy for drivers to cache the current values of the device registers, improving performance by eliminating reads when doing read/modify/write cycles and providing functions to restore the register cache when resuming from power down. An indexed cache type was also added but this will be removed in 3.3 as it offers no real advantage over rbtree.</li>
<li>Support for a wider range of SPI register transfer formats contributed by Lars-Peter Clausen.</li>
<li>Tracepoints supporting both register access logging and monitoring of the time spent on register I/O operations.</li>
<li>Register map dumps via debugfs to help provide diagnostic information during development.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.sirena.org.uk/log/2012/01/06/regmap-updates-in-3-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ASoC updates in 3.2</title>
		<link>http://www.sirena.org.uk/log/2012/01/06/asoc-updates-in-3-2/</link>
		<comments>http://www.sirena.org.uk/log/2012/01/06/asoc-updates-in-3-2/#comments</comments>
		<pubDate>Fri, 06 Jan 2012 19:07:48 +0000</pubDate>
		<dc:creator>Mark Brown</dc:creator>
				<category><![CDATA[ASoC]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Planet Debian]]></category>
		<category><![CDATA[tech]]></category>
		<category><![CDATA[ADAU1373]]></category>
		<category><![CDATA[Alchemy]]></category>
		<category><![CDATA[Analog]]></category>
		<category><![CDATA[Freescale]]></category>
		<category><![CDATA[MXS]]></category>
		<category><![CDATA[Realtek]]></category>
		<category><![CDATA[RT5631]]></category>
		<category><![CDATA[WM1811]]></category>
		<category><![CDATA[WM5100]]></category>
		<category><![CDATA[Wolfson]]></category>

		<guid isPermaLink="false">http://www.sirena.org.uk/log/?p=435</guid>
		<description><![CDATA[Linux 3.2 was released yesterday. It&#8217;s been a fairly busy release for ASoC in terms of the subsystem, including the first piece of work at moving the register I/O code over to regmap to eliminate the duplication there, but a pretty quiet one on the drivers front. Substantial optimization of the DAPM algorithm, substantially reducing the CPU [...]]]></description>
			<content:encoded><![CDATA[<p>Linux 3.2 was released yesterday. It&#8217;s been a fairly busy release for ASoC in terms of the subsystem, including the first piece of work at moving the register I/O code over to regmap to eliminate the duplication there, but a pretty quiet one on the drivers front.</p>
<ul>
<li>Substantial optimization of the DAPM algorithm, substantially reducing the CPU usage when power states change. This is especially beneficial with larger modern devices.</li>
<li>Support for CODEC drivers using the regmap API.</li>
<li>Some smaller API updates &#8211; support for larger register maps, support for specifying a source when setting a sysclk.</li>
<li>New CPU drivers for Alchemy and Freescale MXS.</li>
<li>New CODEC drivers for Analog ADAU1373, Realtek RT5631 and Wolfson Microelectronics WM1811 and WM5100.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.sirena.org.uk/log/2012/01/06/asoc-updates-in-3-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ASoC updates in 3.1</title>
		<link>http://www.sirena.org.uk/log/2011/10/24/asoc-updates-in-3-1/</link>
		<comments>http://www.sirena.org.uk/log/2011/10/24/asoc-updates-in-3-1/#comments</comments>
		<pubDate>Mon, 24 Oct 2011 09:36:56 +0000</pubDate>
		<dc:creator>Mark Brown</dc:creator>
				<category><![CDATA[ASoC]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[tech]]></category>
		<category><![CDATA[ADAV80x]]></category>
		<category><![CDATA[Analog]]></category>
		<category><![CDATA[DAPM]]></category>
		<category><![CDATA[register cache]]></category>
		<category><![CDATA[Sigmatel]]></category>
		<category><![CDATA[STA326]]></category>
		<category><![CDATA[STA328]]></category>
		<category><![CDATA[STA329]]></category>
		<category><![CDATA[STA32x]]></category>
		<category><![CDATA[WM8728]]></category>
		<category><![CDATA[WM8983]]></category>
		<category><![CDATA[Wolfson]]></category>

		<guid isPermaLink="false">http://www.sirena.org.uk/log/?p=403</guid>
		<description><![CDATA[Linus released version 3.1 of the kernel at Kernel Summit this morning. This has been another fairly quiet release for the framework with a few nice power optimizations, a range of driver enhancements and a fairly small set of new drivers. Lots of cleanups to the register cache code in preparation for moving the code to the [...]]]></description>
			<content:encoded><![CDATA[<p>Linus released version 3.1 of the kernel at Kernel Summit this morning. This has been another fairly quiet release for the framework with a few nice power optimizations, a range of driver enhancements and a fairly small set of new drivers.</p>
<ul>
<li>Lots of cleanups to the register cache code in preparation for moving the code to the <a href="http://www.sirena.org.uk/log/2011/09/30/regmap-a-register-map-abstraction-for-the-linux-kernel/">regmap API</a>.</li>
<li>Support for maintaining lower power when in mostly idle states like microphone detection.</li>
<li>Support for weak DAPM routes, enabling better pop/click performance for paths like sidetones.</li>
<li>New CODEC drivers for Analog Devices ADAV80x, Sigmatel STA32x and Wolfson WM8728 and WM8983.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.sirena.org.uk/log/2011/10/24/asoc-updates-in-3-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ASoC updates in 3.0</title>
		<link>http://www.sirena.org.uk/log/2011/07/22/asoc-updates-in-3-0/</link>
		<comments>http://www.sirena.org.uk/log/2011/07/22/asoc-updates-in-3-0/#comments</comments>
		<pubDate>Fri, 22 Jul 2011 08:49:47 +0000</pubDate>
		<dc:creator>Mark Brown</dc:creator>
				<category><![CDATA[ASoC]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[tech]]></category>
		<category><![CDATA[AK4641]]></category>
		<category><![CDATA[Asahi Kasei]]></category>
		<category><![CDATA[hx4700]]></category>
		<category><![CDATA[iPAQ]]></category>
		<category><![CDATA[kernel]]></category>
		<category><![CDATA[MAX98095]]></category>
		<category><![CDATA[Maxim]]></category>
		<category><![CDATA[Samsung]]></category>
		<category><![CDATA[WM8580]]></category>
		<category><![CDATA[WM8996]]></category>
		<category><![CDATA[Wolfson Microelectronics]]></category>

		<guid isPermaLink="false">http://www.sirena.org.uk/log/?p=398</guid>
		<description><![CDATA[Linux 3.0 was released today &#8211; another fairly quiet release for the ASoC core, plus the usual collection of new drivers: Support DAPM controls that affect multiple paths &#8211; mainly used for single register bits that affect the routing for a stereo pair of audio streams. Simplifications in the cache infrastructure. New machine drivers for [...]]]></description>
			<content:encoded><![CDATA[<p>Linux 3.0 was released today &#8211; another fairly quiet release for the ASoC core, plus the usual collection of new drivers:</p>
<ul>
<li>Support DAPM controls that affect multiple paths &#8211; mainly used for single register bits that affect the routing for a stereo pair of audio streams.</li>
<li>Simplifications in the cache infrastructure.</li>
<li>New machine drivers for iPAQ hx4700, PCM hookup for WM8580 on Samsung reference platforms and Wolfson Speyside, plus a generalization of the Tegra Harmony driver to cover a range of other platforms based off a similar reference design.</li>
<li>New CODEC drivers for AK4641, MAX98095 and WM8996.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.sirena.org.uk/log/2011/07/22/asoc-updates-in-3-0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ASoC updates in 2.6.39</title>
		<link>http://www.sirena.org.uk/log/2011/05/19/asoc-updates-in-2-6-39/</link>
		<comments>http://www.sirena.org.uk/log/2011/05/19/asoc-updates-in-2-6-39/#comments</comments>
		<pubDate>Thu, 19 May 2011 21:26:18 +0000</pubDate>
		<dc:creator>Mark Brown</dc:creator>
				<category><![CDATA[ASoC]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Planet Debian]]></category>
		<category><![CDATA[tech]]></category>
		<category><![CDATA[2.6.37]]></category>
		<category><![CDATA[alsa]]></category>
		<category><![CDATA[Cirrus]]></category>
		<category><![CDATA[CS4271]]></category>
		<category><![CDATA[Freescale]]></category>
		<category><![CDATA[Intel]]></category>
		<category><![CDATA[LM4857]]></category>
		<category><![CDATA[MAX8950]]></category>
		<category><![CDATA[Maxim]]></category>
		<category><![CDATA[Medfield]]></category>
		<category><![CDATA[Natsemi]]></category>
		<category><![CDATA[release]]></category>
		<category><![CDATA[SGTL5000]]></category>
		<category><![CDATA[SN95031]]></category>
		<category><![CDATA[TI]]></category>
		<category><![CDATA[Visstrim M10]]></category>
		<category><![CDATA[WM8991]]></category>
		<category><![CDATA[Wolfson]]></category>

		<guid isPermaLink="false">http://www.sirena.org.uk/log/?p=344</guid>
		<description><![CDATA[Linux 2.6.39 was released earlier today. This release includes a few updates, the main user visible one being that machine drivers can now be registered as regular devices rather than using the soc-audio device. Support for registering machine drivers as first class devices rather than using the soc-audio device. Support for the soc-audio device will [...]]]></description>
			<content:encoded><![CDATA[<p>Linux 2.6.39 was released earlier today. This release includes a few updates, the main user visible one being that machine drivers can now be registered as regular devices rather than using the soc-audio device.</p>
<ul>
<li>Support for registering machine drivers as first class devices rather than using the soc-audio device. Support for the soc-audio device will be removed at some point in the future.</li>
<li>Support for ordering widget power changes within widget types, helping with large CODECs and multi-stage amplifiers.</li>
<li>Support for waiting for multiple slow events to complete during DAPM sequences, making it easier to handle things like DC offset correction on multiple outputs.</li>
<li>CPU support for Intel Medfield and nVidia Tegra2.</li>
<li>CODEC support for Cirrus CS4271, Freescale SGTL5000, Maxim MAX8950, National Semiconductors ﻿LM4857, TI SN95031 and Wolfson WM8991</li>
<li>Machine support for Intel Medfield MID reference platforms, nVidia Harmony, ﻿﻿and Visstrim M10.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.sirena.org.uk/log/2011/05/19/asoc-updates-in-2-6-39/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ASoC conference 2011 &#8211; Edinburgh, 4-5th May</title>
		<link>http://www.sirena.org.uk/log/2011/03/26/asoc-conference-2011-edinburgh-4-5th-may/</link>
		<comments>http://www.sirena.org.uk/log/2011/03/26/asoc-conference-2011-edinburgh-4-5th-may/#comments</comments>
		<pubDate>Sat, 26 Mar 2011 00:20:06 +0000</pubDate>
		<dc:creator>Mark Brown</dc:creator>
				<category><![CDATA[ASoC]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Planet Debian]]></category>
		<category><![CDATA[tech]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[Edinburgh]]></category>
		<category><![CDATA[SMWS]]></category>

		<guid isPermaLink="false">http://www.sirena.org.uk/log/?p=395</guid>
		<description><![CDATA[There will be an ASoC conference in Edinburgh 4th-5th May this year, held in the Scotch Malt Whisky Society in Edinburgh. Full details are in the announcement &#8211; if you&#8217;ve got an interest in embedded audio on Linux I recommend you attend, there&#8217;s a lot of development going on in this area right now and [...]]]></description>
			<content:encoded><![CDATA[<p>There will be an ASoC conference in Edinburgh 4th-5th May this year, held in the <a href="http://www.smws.co.uk/">Scotch Malt Whisky Society</a> in Edinburgh. <a href="http://www.slimlogic.co.uk/?p=268">Full details are in the announcement</a> &#8211; if you&#8217;ve got an interest in embedded audio on Linux I recommend you attend, there&#8217;s a lot of development going on in this area right now and it promises to be a great opportunity to coordinate development plans and make sure things work well for everyone. Having met quite a few of the attendees who&#8217;ve signed up already I can also say that it should be an opportunity to meet some really excellent people.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sirena.org.uk/log/2011/03/26/asoc-conference-2011-edinburgh-4-5th-may/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ASoC updates in 2.6.38</title>
		<link>http://www.sirena.org.uk/log/2011/03/15/asoc-updates-in-2-6-38/</link>
		<comments>http://www.sirena.org.uk/log/2011/03/15/asoc-updates-in-2-6-38/#comments</comments>
		<pubDate>Tue, 15 Mar 2011 12:58:48 +0000</pubDate>
		<dc:creator>Mark Brown</dc:creator>
				<category><![CDATA[ASoC]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Planet Debian]]></category>
		<category><![CDATA[tech]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[ALC5621]]></category>
		<category><![CDATA[ALC5622]]></category>
		<category><![CDATA[ALC5623]]></category>
		<category><![CDATA[alsa]]></category>
		<category><![CDATA[Samsung]]></category>
		<category><![CDATA[WM8737]]></category>
		<category><![CDATA[WM8770]]></category>
		<category><![CDATA[WM8958]]></category>
		<category><![CDATA[Wolfson]]></category>

		<guid isPermaLink="false">http://www.sirena.org.uk/log/?p=325</guid>
		<description><![CDATA[Linux 2.6.38 was just released, with another big update to ASoC including: Enhancements to multi-component from Jarkko Nikula allowing multiple devices of the same type to be included in one system (and handling other overlaps between devices) and support cross device DAPM. Support from Dimitris Papastamos for compressing the register cache in memory using either [...]]]></description>
			<content:encoded><![CDATA[<p>Linux 2.6.38 was just released, with another big update to ASoC including:</p>
<ul>
<li>Enhancements to multi-component from <a href="http://bitmer.com/">Jarkko Nikula</a> allowing multiple devices of the same type to be included in one system (and handling other overlaps between devices) and support cross device DAPM.</li>
<li>Support from <a href="http://opensource.wolfsonmicro.com/">Dimitris Papastamos</a> for compressing the register cache in memory using either an rbtree or LZO, giving substantial memory savings on CODECs with large register maps, especially those that are sparse. This is especially beneficial to modern devices with integrated DSPs. This can be enabled by machine drivers, though CODECs can also provide defaults.</li>
<li>Addition of trace points around DAPM and register I/O operation, allowing very low overhead logging without interfering with the main system log, useful for collecting verbose diagnostics without interfering with system operation and for always enabled flight recorder style tracking for intermittent problems. I blogged about <a href="http://www.sirena.org.uk/log/2011/01/22/tracing-asoc-with-trace-points/">ASoC trace points</a> in more detail at the time.</li>
<li>Restructuring of the Samsung CPU support from <a href="http://www.samsung.com/">Jassi Brar</a>, including a number of really good usability improvements. This supports features of more modern CPUs such as the ability to run two audio streams to a single I2S port and includes a number of API simplifications which should also make developing drivers for Samsung systems much easier.</li>
<li>New CODEC drivers for ALC5621/2/3, WM8737, WM8770 and WM8958.</li>
<li>Machine support for HP iPAQ H1940, HP t5325 thin clients and OpenRC Ultimate.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.sirena.org.uk/log/2011/03/15/asoc-updates-in-2-6-38/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tracing ASoC with trace events</title>
		<link>http://www.sirena.org.uk/log/2011/01/22/tracing-asoc-with-trace-points/</link>
		<comments>http://www.sirena.org.uk/log/2011/01/22/tracing-asoc-with-trace-points/#comments</comments>
		<pubDate>Sat, 22 Jan 2011 16:21:50 +0000</pubDate>
		<dc:creator>Mark Brown</dc:creator>
				<category><![CDATA[ASoC]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Planet Debian]]></category>
		<category><![CDATA[tech]]></category>
		<category><![CDATA[alsa]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[kernel]]></category>
		<category><![CDATA[logging]]></category>
		<category><![CDATA[trace]]></category>

		<guid isPermaLink="false">http://www.sirena.org.uk/log/?p=330</guid>
		<description><![CDATA[Kernel 2.6.38 will add support for tracing ASoC using trace points. Previously all logging for ASoC had been done using printk(), meaning that changing the active logging required a kernel rebuild and that when trace was enabled the volume of trace could easily become very disruptive to other logging within the system. Trace points solve these [...]]]></description>
			<content:encoded><![CDATA[<p>Kernel 2.6.38 will add support for tracing ASoC using <a href="http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=Documentation/trace/tracepoints.txt;h=c0e1ceed75a441b692bf447b3fcdc49d8abdd1cc;hb=refs/heads/master">trace points</a>. Previously all logging for ASoC had been done using printk(), meaning that changing the active logging required a kernel rebuild and that when trace was enabled the volume of trace could easily become very disruptive to other logging within the system. Trace points solve these problems by providing a framework for enabling and disabling individual traces dynamically and separate logging infrastructure designed for easy filtering and post-processing. When using trace points it&#8217;s reasonable to leave them enabled all the time, making life much easier especially when debugging intermittent problems.</p>
<p>There&#8217;s a bunch of existing documentation out there for the trace subsystem, including some in the kernel under <a href="http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=tree;f=Documentation/trace;hb=refs/heads/master">Documentation/trace</a>, which I won&#8217;t repeat here. The ASoC events are grouped together under &#8216;asoc&#8217;. The raw log can be viewed by looking at the file tracing/trace in debugfs. Here&#8217;s a sample output from starting playback of an MP3 on a Samsung SMDK6410 reference system using WM8580, a high performance six channel CODEC with a very simple software interface:</p>
<pre>mplayer-1673  [000]   183.920000: snd_soc_dapm_start: card=SMDK-I2S
mplayer-1673  [000]   183.920000: snd_soc_dapm_widget_power: widget=Rear val=1
mplayer-1673  [000]   183.920000: snd_soc_dapm_widget_power: widget=Center+Sub val=1
mplayer-1673  [000]   183.920000: snd_soc_dapm_widget_power: widget=Front val=1
mplayer-1673  [000]   183.920000: snd_soc_dapm_widget_power: widget=VOUT3R val=1
mplayer-1673  [000]   183.920000: snd_soc_dapm_widget_power: widget=VOUT3L val=1
mplayer-1673  [000]   183.920000: snd_soc_dapm_widget_power: widget=VOUT2R val=1
mplayer-1673  [000]   183.920000: snd_soc_dapm_widget_power: widget=VOUT2L val=1
mplayer-1673  [000]   183.920000: snd_soc_dapm_widget_power: widget=VOUT1R val=1
mplayer-1673  [000]   183.920000: snd_soc_dapm_widget_power: widget=VOUT1L val=1
mplayer-1673  [000]   183.920000: snd_soc_dapm_widget_power: widget=DAC3 val=1
mplayer-1673  [000]   183.920000: snd_soc_dapm_widget_power: widget=DAC2 val=1
mplayer-1673  [000]   183.920000: snd_soc_dapm_widget_power: widget=DAC1 val=1
mplayer-1673  [000]   183.920000: snd_soc_bias_level_start: card=SMDK-I2S val=2
mplayer-1673  [000]   183.920000: snd_soc_bias_level_done: card=SMDK-I2S val=2
mplayer-1673  [000]   183.920000: snd_soc_reg_read: codec=wm8580-codec.0-001b.27 reg=32 val=1e
mplayer-1673  [000]   183.920000: snd_soc_reg_write: codec=wm8580-codec.0-001b.27 reg=32 val=2
mplayer-1673  [000]   183.920000: snd_soc_bias_level_start: card=SMDK-I2S val=3
mplayer-1673  [000]   183.920000: snd_soc_bias_level_done: card=SMDK-I2S val=3
mplayer-1673  [000]   183.920000: snd_soc_dapm_done: card=SMDK-I2S
mplayer-1673  [000]   183.920000: snd_soc_reg_read: codec=wm8580-codec.0-001b.27 reg=13 val=10
mplayer-1673  [000]   183.920000: snd_soc_reg_write: codec=wm8580-codec.0-001b.27 reg=13 val=0</pre>
<p>Each line represents a trace event, showing the process that initiated the event, the CPU it ran on and the time it was recorded at together with event-specific details. On this system the time is reported with 10ms accuracy and the CODEC is very simple so the timing information is not terribly informative, but more accurate timers can be really helpful in analysing what&#8217;s going on with more complex CODECs. The set of events available will change over time, the key ones currently present in the kernel are:</p>
<ul>
<li>snd_soc_dapm_start and snd_soc_dapm_done: These events show the start and stop of the DAPM algorithms, showing the time spent on power management decisions.</li>
<li>snd_soc_dapm_widget_power events are generated for each of the widgets which DAPM has determined needs to change state. The &#8216;val=1&#8242; means that all these widgets are being powered up, val=0 would show power down.</li>
<li>snd_soc_reg_write events show values written to registers.</li>
<li>snd_soc_reg_read events show values read from registers &#8211; these reads may be done from the register cache, or may be from the hardware.</li>
<li>snd_soc_dapm_widget_event_start and snd_soc_dapm_widget_event_done show the time spent in per-widget event callbacks.</li>
</ul>
<p>The set of events traced will change as the subsystem develops and as people gain more experience with using the trace API.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sirena.org.uk/log/2011/01/22/tracing-asoc-with-trace-points/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ASoC changes in 2.6.37</title>
		<link>http://www.sirena.org.uk/log/2011/01/05/asoc-changes-in-2-6-37/</link>
		<comments>http://www.sirena.org.uk/log/2011/01/05/asoc-changes-in-2-6-37/#comments</comments>
		<pubDate>Wed, 05 Jan 2011 11:34:45 +0000</pubDate>
		<dc:creator>Mark Brown</dc:creator>
				<category><![CDATA[ASoC]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Planet Debian]]></category>
		<category><![CDATA[tech]]></category>
		<category><![CDATA[88PM860x]]></category>
		<category><![CDATA[EP93xx]]></category>
		<category><![CDATA[Freescale]]></category>
		<category><![CDATA[HDMI]]></category>
		<category><![CDATA[kernel]]></category>
		<category><![CDATA[Marvell]]></category>
		<category><![CDATA[MAX98088]]></category>
		<category><![CDATA[MAX98089]]></category>
		<category><![CDATA[MPC85xx]]></category>
		<category><![CDATA[multi component]]></category>
		<category><![CDATA[release]]></category>
		<category><![CDATA[SH]]></category>
		<category><![CDATA[WM8804]]></category>
		<category><![CDATA[WM8962]]></category>
		<category><![CDATA[WM8985]]></category>

		<guid isPermaLink="false">http://www.sirena.org.uk/log/?p=313</guid>
		<description><![CDATA[2.6.37, which was released today, has been a very big release for ASoC &#8211; about 40,000 lines of changes covering every single file within the subsystem plus a bunch of new drivers. The highlights are: Overhaul of the core APIs for registration of all kinds of devices from my co-maintainer Liam Girdwood, reducing the level of [...]]]></description>
			<content:encoded><![CDATA[<p>2.6.37, which was released today, has been a very big release for ASoC &#8211; about 40,000 lines of changes covering every single file within the subsystem plus a bunch of new drivers. The highlights are:</p>
<ul>
<li>Overhaul of the core APIs for registration of all kinds of devices from my co-maintainer <a href="http://www.slimlogic.co.uk/">Liam Girdwood,</a> reducing the level of direct coupling between machine drivers and their CODEC and CPU drivers allowing ASoC machines to have multiple CODEC devices and multiple instances of the same CODEC device within a system.</li>
<li>New CODEC drivers for  88PM860x CODEC, MAX98088/9, WL1273, WM8962, WM8804, and WM8985.</li>
<li>New CPU drivers for EP93xx AC&#8217;97 controllers, MPC﻿85xx SSI ports, and SH HDMI controllers.</li>
<li>Machine support for Freescale P1022 DS, Marvell Tavor and Saarb and Simplemachines Sim.One</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.sirena.org.uk/log/2011/01/05/asoc-changes-in-2-6-37/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ASoC updates in 2.6.35</title>
		<link>http://www.sirena.org.uk/log/2010/08/03/asoc-updates-in-2-6-35/</link>
		<comments>http://www.sirena.org.uk/log/2010/08/03/asoc-updates-in-2-6-35/#comments</comments>
		<pubDate>Tue, 03 Aug 2010 07:08:40 +0000</pubDate>
		<dc:creator>Mark Brown</dc:creator>
				<category><![CDATA[ASoC]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Planet Debian]]></category>
		<category><![CDATA[tech]]></category>
		<category><![CDATA[kernel]]></category>

		<guid isPermaLink="false">http://www.sirena.org.uk/log/?p=274</guid>
		<description><![CDATA[Linux 2.6.35 has been a fairly interesting release from an ASoC point of view, with several notable framework enhancements: Support for keeping audio paths through the CODEC up during system suspend, primarily intended for use with devices where the Linux system is one of several independent systems running on the device and the other systems [...]]]></description>
			<content:encoded><![CDATA[<p>Linux 2.6.35 has been a fairly interesting release from an ASoC point of view, with several notable framework enhancements:</p>
<ul>
<li>Support for keeping audio paths through the CODEC up during system suspend, primarily intended for use with devices where the Linux system is one of several independent systems running on the device and the other systems (like the cellular modem in a phone) can maintain useful audio paths even when the Linux system is inactive.</li>
<li>Enhancements to the jack detection infrastructure, including the addition of notifiers on jack status changes (allowing better integration of physical jack detection with electronic methods) and snd_soc_dapm_force_enable_pin() (which allows DAPM managed supplies such as microphone biases to be forced on). For example, jack status change notifications can be used to enable microphone detection via bias current sense only when a microphone is physically present.</li>
<li>Support for knot and continuous PCM rates in the core.</li>
<li>SMDK6410 5.1 audio support, TI SDP4030 audio support, and basic support for playback on the 1133-EV1 PMIC module for Freescale i.MX31ADS systems (currently limited by the support for the SSI interface on the i.MX31).</li>
<li>Support for DaVinci integrated voice CODECs, Philips UDA1345 CODEC, SuperH FSI2 interfaces, TI OMAP4, TWL6040 CODECs, WM9090 audio subsystem.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.sirena.org.uk/log/2010/08/03/asoc-updates-in-2-6-35/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

