<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-toradex.git/sound/drivers, branch v2.6.32.35</title>
<subtitle>Linux kernel for Apalis and Colibri modules</subtitle>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/'/>
<entry>
<title>ALSA: dummy - Fix descriptions of pcm_substreams parameter</title>
<updated>2009-11-02T13:11:55+00:00</updated>
<author>
<name>Takashi Iwai</name>
<email>tiwai@suse.de</email>
</author>
<published>2009-11-02T13:10:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=23aebca486429b74c35b41ac5cac7ce97609fd6a'/>
<id>23aebca486429b74c35b41ac5cac7ce97609fd6a</id>
<content type='text'>
Now up to 128 substreams are supported.

Reported-by: Adrian Bridgett &lt;adrian@smop.co.uk&gt;
Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Now up to 128 substreams are supported.

Reported-by: Adrian Bridgett &lt;adrian@smop.co.uk&gt;
Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ALSA: sound: Move dereference after NULL test and drop unnecessary NULL tests</title>
<updated>2009-10-30T11:01:27+00:00</updated>
<author>
<name>Julia Lawall</name>
<email>julia@diku.dk</email>
</author>
<published>2009-10-17T06:33:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=4b3be6afa4ab8b3fdce39df68bad71f8b85164de'/>
<id>4b3be6afa4ab8b3fdce39df68bad71f8b85164de</id>
<content type='text'>
In pcm.c, if the NULL test on pcm is needed, then the dereference should be
after the NULL test.

In dummy.c and ali5451.c, the context of the calls to
snd_card_dummy_new_mixer and snd_ali_free_voice show that dummy and pvoice,
respectively cannot be NULL.

A simplified version of the semantic match that detects this problem is as
follows (http://coccinelle.lip6.fr/):

// &lt;smpl&gt;
@match exists@
expression x, E;
identifier fld;
@@

* x-&gt;fld
  ... when != \(x = E\|&amp;x\)
* x == NULL
// &lt;/smpl&gt;

Signed-off-by: Julia Lawall &lt;julia@diku.dk&gt;
Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In pcm.c, if the NULL test on pcm is needed, then the dereference should be
after the NULL test.

In dummy.c and ali5451.c, the context of the calls to
snd_card_dummy_new_mixer and snd_ali_free_voice show that dummy and pvoice,
respectively cannot be NULL.

A simplified version of the semantic match that detects this problem is as
follows (http://coccinelle.lip6.fr/):

// &lt;smpl&gt;
@match exists@
expression x, E;
identifier fld;
@@

* x-&gt;fld
  ... when != \(x = E\|&amp;x\)
* x == NULL
// &lt;/smpl&gt;

Signed-off-by: Julia Lawall &lt;julia@diku.dk&gt;
Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ALSA: pcsp - Fix nforce workaround</title>
<updated>2009-10-30T10:55:22+00:00</updated>
<author>
<name>Stas Sergeev</name>
<email>stsp@aknet.ru</email>
</author>
<published>2009-10-30T10:51:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=b71207e9dc044b30d8b5d7f1c2290ba14563f05c'/>
<id>b71207e9dc044b30d8b5d7f1c2290ba14563f05c</id>
<content type='text'>
The attached patch fixes the problems introduced in this commit:
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=eea0579fc85e64e9f05361d5aacf496fe7a151aa

- Fix nForce workaround by honouring the pointer_update var
- Revert "ns" to u64, as per the hrtimer API
- Revert to the zero-delay timer startup, since I can't reproduce any
  problem with it (please, give me the hint!)

Signed-off-by: Stas Sergeev &lt;stsp@aknet.ru&gt;
Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The attached patch fixes the problems introduced in this commit:
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=eea0579fc85e64e9f05361d5aacf496fe7a151aa

- Fix nForce workaround by honouring the pointer_update var
- Revert "ns" to u64, as per the hrtimer API
- Revert to the zero-delay timer startup, since I can't reproduce any
  problem with it (please, give me the hint!)

Signed-off-by: Stas Sergeev &lt;stsp@aknet.ru&gt;
Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ALSA: opl3: circular locking in the snd_opl3_note_on() and snd_opl3_note_off()</title>
<updated>2009-10-08T09:48:10+00:00</updated>
<author>
<name>Krzysztof Helt</name>
<email>krzysztof.h1@wp.pl</email>
</author>
<published>2009-10-07T20:51:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=8dce39b8955be6164172cb6204ef8fc21de27431'/>
<id>8dce39b8955be6164172cb6204ef8fc21de27431</id>
<content type='text'>
Fix following circular locking in the opl3 driver.

=======================================================
[ INFO: possible circular locking dependency detected ]
2.6.32-rc3 #87
-------------------------------------------------------
swapper/0 is trying to acquire lock:
 (&amp;opl3-&gt;voice_lock){..-...}, at: [&lt;cca748fe&gt;] snd_opl3_note_off+0x1e/0xe0 [snd_opl3_synth]

but task is already holding lock:
 (&amp;opl3-&gt;sys_timer_lock){..-...}, at: [&lt;cca75169&gt;] snd_opl3_timer_func+0x19/0xc0 [snd_opl3_synth]

which lock already depends on the new lock.

the existing dependency chain (in reverse order) is:

-&gt; #1 (&amp;opl3-&gt;sys_timer_lock){..-...}:
       [&lt;c02461d5&gt;] validate_chain+0xa25/0x1040
       [&lt;c0246aca&gt;] __lock_acquire+0x2da/0xab0
       [&lt;c024731a&gt;] lock_acquire+0x7a/0xa0
       [&lt;c044c300&gt;] _spin_lock_irqsave+0x40/0x60
       [&lt;cca75046&gt;] snd_opl3_note_on+0x686/0x790 [snd_opl3_synth]
       [&lt;cca68912&gt;] snd_midi_process_event+0x322/0x590 [snd_seq_midi_emul]
       [&lt;cca74245&gt;] snd_opl3_synth_event_input+0x15/0x20 [snd_opl3_synth]
       [&lt;cca4dcc0&gt;] snd_seq_deliver_single_event+0x100/0x200 [snd_seq]
       [&lt;cca4de07&gt;] snd_seq_deliver_event+0x47/0x1f0 [snd_seq]
       [&lt;cca4e50b&gt;] snd_seq_dispatch_event+0x3b/0x140 [snd_seq]
       [&lt;cca5008c&gt;] snd_seq_check_queue+0x10c/0x120 [snd_seq]
       [&lt;cca5037b&gt;] snd_seq_enqueue_event+0x6b/0xe0 [snd_seq]
       [&lt;cca4e0fd&gt;] snd_seq_client_enqueue_event+0xdd/0x100 [snd_seq]
       [&lt;cca4eb7a&gt;] snd_seq_write+0xea/0x190 [snd_seq]
       [&lt;c02827b6&gt;] vfs_write+0x96/0x160
       [&lt;c0282c9d&gt;] sys_write+0x3d/0x70
       [&lt;c0202c45&gt;] syscall_call+0x7/0xb

-&gt; #0 (&amp;opl3-&gt;voice_lock){..-...}:
       [&lt;c02467e6&gt;] validate_chain+0x1036/0x1040
       [&lt;c0246aca&gt;] __lock_acquire+0x2da/0xab0
       [&lt;c024731a&gt;] lock_acquire+0x7a/0xa0
       [&lt;c044c300&gt;] _spin_lock_irqsave+0x40/0x60
       [&lt;cca748fe&gt;] snd_opl3_note_off+0x1e/0xe0 [snd_opl3_synth]
       [&lt;cca751f0&gt;] snd_opl3_timer_func+0xa0/0xc0 [snd_opl3_synth]
       [&lt;c022ac46&gt;] run_timer_softirq+0x166/0x1e0
       [&lt;c02269e8&gt;] __do_softirq+0x78/0x110
       [&lt;c0226ac6&gt;] do_softirq+0x46/0x50
       [&lt;c0226e26&gt;] irq_exit+0x36/0x40
       [&lt;c0204bd2&gt;] do_IRQ+0x42/0xb0
       [&lt;c020328e&gt;] common_interrupt+0x2e/0x40
       [&lt;c021092f&gt;] apm_cpu_idle+0x10f/0x290
       [&lt;c0201b11&gt;] cpu_idle+0x21/0x40
       [&lt;c04443cd&gt;] rest_init+0x4d/0x60
       [&lt;c055c835&gt;] start_kernel+0x235/0x280
       [&lt;c055c066&gt;] i386_start_kernel+0x66/0x70

other info that might help us debug this:

2 locks held by swapper/0:
 #0:  (&amp;opl3-&gt;tlist){+.-...}, at: [&lt;c022abd0&gt;] run_timer_softirq+0xf0/0x1e0
 #1:  (&amp;opl3-&gt;sys_timer_lock){..-...}, at: [&lt;cca75169&gt;] snd_opl3_timer_func+0x19/0xc0 [snd_opl3_synth]

stack backtrace:
Pid: 0, comm: swapper Not tainted 2.6.32-rc3 #87
Call Trace:
 [&lt;c0245188&gt;] print_circular_bug+0xc8/0xd0
 [&lt;c02467e6&gt;] validate_chain+0x1036/0x1040
 [&lt;c0247f14&gt;] ? check_usage_forwards+0x54/0xd0
 [&lt;c0246aca&gt;] __lock_acquire+0x2da/0xab0
 [&lt;c024731a&gt;] lock_acquire+0x7a/0xa0
 [&lt;cca748fe&gt;] ? snd_opl3_note_off+0x1e/0xe0 [snd_opl3_synth]
 [&lt;c044c300&gt;] _spin_lock_irqsave+0x40/0x60
 [&lt;cca748fe&gt;] ? snd_opl3_note_off+0x1e/0xe0 [snd_opl3_synth]
 [&lt;cca748fe&gt;] snd_opl3_note_off+0x1e/0xe0 [snd_opl3_synth]
 [&lt;c044c307&gt;] ? _spin_lock_irqsave+0x47/0x60
 [&lt;cca751f0&gt;] snd_opl3_timer_func+0xa0/0xc0 [snd_opl3_synth]
 [&lt;c022ac46&gt;] run_timer_softirq+0x166/0x1e0
 [&lt;c022abd0&gt;] ? run_timer_softirq+0xf0/0x1e0
 [&lt;cca75150&gt;] ? snd_opl3_timer_func+0x0/0xc0 [snd_opl3_synth]
 [&lt;c02269e8&gt;] __do_softirq+0x78/0x110
 [&lt;c044c0fd&gt;] ? _spin_unlock+0x1d/0x20
 [&lt;c025915f&gt;] ? handle_level_irq+0xaf/0xe0
 [&lt;c0226ac6&gt;] do_softirq+0x46/0x50
 [&lt;c0226e26&gt;] irq_exit+0x36/0x40
 [&lt;c0204bd2&gt;] do_IRQ+0x42/0xb0
 [&lt;c024463c&gt;] ? trace_hardirqs_on_caller+0x12c/0x180
 [&lt;c020328e&gt;] common_interrupt+0x2e/0x40
 [&lt;c0208d88&gt;] ? default_idle+0x38/0x50
 [&lt;c021092f&gt;] apm_cpu_idle+0x10f/0x290
 [&lt;c0201b11&gt;] cpu_idle+0x21/0x40
 [&lt;c04443cd&gt;] rest_init+0x4d/0x60
 [&lt;c055c835&gt;] start_kernel+0x235/0x280
 [&lt;c055c210&gt;] ? unknown_bootoption+0x0/0x210
 [&lt;c055c066&gt;] i386_start_kernel+0x66/0x70

Signed-off-by: Krzysztof Helt &lt;krzysztof.h1@wp.pl&gt;
Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fix following circular locking in the opl3 driver.

=======================================================
[ INFO: possible circular locking dependency detected ]
2.6.32-rc3 #87
-------------------------------------------------------
swapper/0 is trying to acquire lock:
 (&amp;opl3-&gt;voice_lock){..-...}, at: [&lt;cca748fe&gt;] snd_opl3_note_off+0x1e/0xe0 [snd_opl3_synth]

but task is already holding lock:
 (&amp;opl3-&gt;sys_timer_lock){..-...}, at: [&lt;cca75169&gt;] snd_opl3_timer_func+0x19/0xc0 [snd_opl3_synth]

which lock already depends on the new lock.

the existing dependency chain (in reverse order) is:

-&gt; #1 (&amp;opl3-&gt;sys_timer_lock){..-...}:
       [&lt;c02461d5&gt;] validate_chain+0xa25/0x1040
       [&lt;c0246aca&gt;] __lock_acquire+0x2da/0xab0
       [&lt;c024731a&gt;] lock_acquire+0x7a/0xa0
       [&lt;c044c300&gt;] _spin_lock_irqsave+0x40/0x60
       [&lt;cca75046&gt;] snd_opl3_note_on+0x686/0x790 [snd_opl3_synth]
       [&lt;cca68912&gt;] snd_midi_process_event+0x322/0x590 [snd_seq_midi_emul]
       [&lt;cca74245&gt;] snd_opl3_synth_event_input+0x15/0x20 [snd_opl3_synth]
       [&lt;cca4dcc0&gt;] snd_seq_deliver_single_event+0x100/0x200 [snd_seq]
       [&lt;cca4de07&gt;] snd_seq_deliver_event+0x47/0x1f0 [snd_seq]
       [&lt;cca4e50b&gt;] snd_seq_dispatch_event+0x3b/0x140 [snd_seq]
       [&lt;cca5008c&gt;] snd_seq_check_queue+0x10c/0x120 [snd_seq]
       [&lt;cca5037b&gt;] snd_seq_enqueue_event+0x6b/0xe0 [snd_seq]
       [&lt;cca4e0fd&gt;] snd_seq_client_enqueue_event+0xdd/0x100 [snd_seq]
       [&lt;cca4eb7a&gt;] snd_seq_write+0xea/0x190 [snd_seq]
       [&lt;c02827b6&gt;] vfs_write+0x96/0x160
       [&lt;c0282c9d&gt;] sys_write+0x3d/0x70
       [&lt;c0202c45&gt;] syscall_call+0x7/0xb

-&gt; #0 (&amp;opl3-&gt;voice_lock){..-...}:
       [&lt;c02467e6&gt;] validate_chain+0x1036/0x1040
       [&lt;c0246aca&gt;] __lock_acquire+0x2da/0xab0
       [&lt;c024731a&gt;] lock_acquire+0x7a/0xa0
       [&lt;c044c300&gt;] _spin_lock_irqsave+0x40/0x60
       [&lt;cca748fe&gt;] snd_opl3_note_off+0x1e/0xe0 [snd_opl3_synth]
       [&lt;cca751f0&gt;] snd_opl3_timer_func+0xa0/0xc0 [snd_opl3_synth]
       [&lt;c022ac46&gt;] run_timer_softirq+0x166/0x1e0
       [&lt;c02269e8&gt;] __do_softirq+0x78/0x110
       [&lt;c0226ac6&gt;] do_softirq+0x46/0x50
       [&lt;c0226e26&gt;] irq_exit+0x36/0x40
       [&lt;c0204bd2&gt;] do_IRQ+0x42/0xb0
       [&lt;c020328e&gt;] common_interrupt+0x2e/0x40
       [&lt;c021092f&gt;] apm_cpu_idle+0x10f/0x290
       [&lt;c0201b11&gt;] cpu_idle+0x21/0x40
       [&lt;c04443cd&gt;] rest_init+0x4d/0x60
       [&lt;c055c835&gt;] start_kernel+0x235/0x280
       [&lt;c055c066&gt;] i386_start_kernel+0x66/0x70

other info that might help us debug this:

2 locks held by swapper/0:
 #0:  (&amp;opl3-&gt;tlist){+.-...}, at: [&lt;c022abd0&gt;] run_timer_softirq+0xf0/0x1e0
 #1:  (&amp;opl3-&gt;sys_timer_lock){..-...}, at: [&lt;cca75169&gt;] snd_opl3_timer_func+0x19/0xc0 [snd_opl3_synth]

stack backtrace:
Pid: 0, comm: swapper Not tainted 2.6.32-rc3 #87
Call Trace:
 [&lt;c0245188&gt;] print_circular_bug+0xc8/0xd0
 [&lt;c02467e6&gt;] validate_chain+0x1036/0x1040
 [&lt;c0247f14&gt;] ? check_usage_forwards+0x54/0xd0
 [&lt;c0246aca&gt;] __lock_acquire+0x2da/0xab0
 [&lt;c024731a&gt;] lock_acquire+0x7a/0xa0
 [&lt;cca748fe&gt;] ? snd_opl3_note_off+0x1e/0xe0 [snd_opl3_synth]
 [&lt;c044c300&gt;] _spin_lock_irqsave+0x40/0x60
 [&lt;cca748fe&gt;] ? snd_opl3_note_off+0x1e/0xe0 [snd_opl3_synth]
 [&lt;cca748fe&gt;] snd_opl3_note_off+0x1e/0xe0 [snd_opl3_synth]
 [&lt;c044c307&gt;] ? _spin_lock_irqsave+0x47/0x60
 [&lt;cca751f0&gt;] snd_opl3_timer_func+0xa0/0xc0 [snd_opl3_synth]
 [&lt;c022ac46&gt;] run_timer_softirq+0x166/0x1e0
 [&lt;c022abd0&gt;] ? run_timer_softirq+0xf0/0x1e0
 [&lt;cca75150&gt;] ? snd_opl3_timer_func+0x0/0xc0 [snd_opl3_synth]
 [&lt;c02269e8&gt;] __do_softirq+0x78/0x110
 [&lt;c044c0fd&gt;] ? _spin_unlock+0x1d/0x20
 [&lt;c025915f&gt;] ? handle_level_irq+0xaf/0xe0
 [&lt;c0226ac6&gt;] do_softirq+0x46/0x50
 [&lt;c0226e26&gt;] irq_exit+0x36/0x40
 [&lt;c0204bd2&gt;] do_IRQ+0x42/0xb0
 [&lt;c024463c&gt;] ? trace_hardirqs_on_caller+0x12c/0x180
 [&lt;c020328e&gt;] common_interrupt+0x2e/0x40
 [&lt;c0208d88&gt;] ? default_idle+0x38/0x50
 [&lt;c021092f&gt;] apm_cpu_idle+0x10f/0x290
 [&lt;c0201b11&gt;] cpu_idle+0x21/0x40
 [&lt;c04443cd&gt;] rest_init+0x4d/0x60
 [&lt;c055c835&gt;] start_kernel+0x235/0x280
 [&lt;c055c210&gt;] ? unknown_bootoption+0x0/0x210
 [&lt;c055c066&gt;] i386_start_kernel+0x66/0x70

Signed-off-by: Krzysztof Helt &lt;krzysztof.h1@wp.pl&gt;
Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ALSA: dummy - Increase MAX_PCM_SUBSTREAMS to 128</title>
<updated>2009-09-08T16:15:17+00:00</updated>
<author>
<name>Takashi Iwai</name>
<email>tiwai@suse.de</email>
</author>
<published>2009-09-08T16:15:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=b888d1ce82ebd2bafecf64c765754968e78b4228'/>
<id>b888d1ce82ebd2bafecf64c765754968e78b4228</id>
<content type='text'>
Increase the limit of PCM substreams to 128.  The default value is
unchanged; only the max accept value is increased.

Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Increase the limit of PCM substreams to 128.  The default value is
unchanged; only the max accept value is increased.

Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ALSA: dummy - Add debug proc file</title>
<updated>2009-09-08T12:46:49+00:00</updated>
<author>
<name>Takashi Iwai</name>
<email>tiwai@suse.de</email>
</author>
<published>2009-09-08T12:30:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=9b151fec139d32ab3acce5da5761d868e205fadd'/>
<id>9b151fec139d32ab3acce5da5761d868e205fadd</id>
<content type='text'>
Added the debug proc file to see or change the snd_pcm_hardware fields
to emulate.  The parameters can be changed by writing to a proc file like:

    # echo periods_min 4 &gt; /proc/asound/card1/dummy_pcm

Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Added the debug proc file to see or change the snd_pcm_hardware fields
to emulate.  The parameters can be changed by writing to a proc file like:

    # echo periods_min 4 &gt; /proc/asound/card1/dummy_pcm

Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ALSA: dummy - Fake buffer allocations</title>
<updated>2009-09-07T07:01:10+00:00</updated>
<author>
<name>Takashi Iwai</name>
<email>tiwai@suse.de</email>
</author>
<published>2009-09-04T10:19:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=a68c4d11336610dc348620766119db09675707c2'/>
<id>a68c4d11336610dc348620766119db09675707c2</id>
<content type='text'>
Instead of allocating the real buffers, use a fake buffer and ignore
read/write in the dummy driver so that we can save the resources.
For mmap, a single page (unique to the direction, though) is reused
to all buffers.

When the app requires to read/write the real buffers, pass fake_buffer=0
module option at loading time.  This will get back to the old behavior.

Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Instead of allocating the real buffers, use a fake buffer and ignore
read/write in the dummy driver so that we can save the resources.
For mmap, a single page (unique to the direction, though) is reused
to all buffers.

When the app requires to read/write the real buffers, pass fake_buffer=0
module option at loading time.  This will get back to the old behavior.

Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ALSA: dummy - Fix the timer calculation in systimer mode</title>
<updated>2009-09-04T06:45:11+00:00</updated>
<author>
<name>Takashi Iwai</name>
<email>tiwai@suse.de</email>
</author>
<published>2009-09-04T06:45:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=b5d10781731ece07bb2049e7743907194a5cc3f1'/>
<id>b5d10781731ece07bb2049e7743907194a5cc3f1</id>
<content type='text'>
Fix the expire-time calculation in the systimer mode when the buffer
size isn't aligned to the period size.

Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fix the expire-time calculation in the systimer mode when the buffer
size isn't aligned to the period size.

Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ALSA: dummy - Better jiffies handling</title>
<updated>2009-09-03T14:01:06+00:00</updated>
<author>
<name>Takashi Iwai</name>
<email>tiwai@suse.de</email>
</author>
<published>2009-09-03T14:01:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=b142037b4c1edf5ad0b2871c518d4f14ac1cd470'/>
<id>b142037b4c1edf5ad0b2871c518d4f14ac1cd470</id>
<content type='text'>
In the system-timer mode, snd-dummy driver issues each tick to update
the position.  This is highly inefficient and even inaccurate if the
timer can't be triggered at each tick.

Now rewritten to wake up only at the period boundary.  The position
is calculated from the current jiffies.

Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In the system-timer mode, snd-dummy driver issues each tick to update
the position.  This is highly inefficient and even inaccurate if the
timer can't be triggered at each tick.

Now rewritten to wake up only at the period boundary.  The position
is calculated from the current jiffies.

Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ALSA: dummy - Support high-res timer mode</title>
<updated>2009-09-03T13:59:26+00:00</updated>
<author>
<name>Takashi Iwai</name>
<email>tiwai@suse.de</email>
</author>
<published>2009-09-03T13:59:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=c631d03c6873b9e17906556e84fcafc42f26a7c2'/>
<id>c631d03c6873b9e17906556e84fcafc42f26a7c2</id>
<content type='text'>
Allow snd-dummy driver to use high-res timer as its timing source
instead of the system timer.  The new module option "hrtimer" is added
to turn on/off the high-res timer support.  It can be switched even
dynamically via sysfs.

Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Allow snd-dummy driver to use high-res timer as its timing source
instead of the system timer.  The new module option "hrtimer" is added
to turn on/off the high-res timer support.  It can be switched even
dynamically via sysfs.

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