All of lore.kernel.org
 help / color / mirror / Atom feed
* twl4030 and Puredata/jack
@ 2013-03-08 15:31 Anders Alex
  2013-03-09 20:21 ` Gabriel M. Beddingfield
  2013-03-11 13:45 ` Peter Ujfalusi
  0 siblings, 2 replies; 8+ messages in thread
From: Anders Alex @ 2013-03-08 15:31 UTC (permalink / raw)
  To: alsa-devel

Ok,

Let me start off that I know very little about audio and drivers.

Recently I started looking in to running Puredata and possibly jack on the
Pandora handheld.
However I ran in to a number of problems getting these to interface with
alsa.
I should note that on the pandora we don't have too up to date versions of
alsa and kernel so perhaps these are already resolved.
In SL4P (slackware for pandora) I have:

ALSA: 1.0.24
Kernel: 3.2.30

I will paste a couple of use-cases and their corresponding dmesg output:

When I run ~$ pd -alsa I get:

snd_pcm_hw_params (input): Invalid argument
snd_pcm_hw_params (output): Invalid argument

and:
[201429.385345] omap_mcbsp_dai_hw_params: not enough bandwidth for desired
rate and channels
[201429.385375] asoc: interface omap-mcbsp-dai.1 hw params failed

With 'jackd -d alsa -S'  (need s16_le):

loading driver ..
creating alsa driver ... hw:0|hw:0|1024|2|48000|0|0|nomon|swmeter|-|16bit
control device hw:0
configuring for 48000Hz, period = 1024 frames (21.3 ms), buffer = 2 periods
ALSA: final selected sample format for capture: 16bit little-endian
ALSA: use 2 periods for capture
ALSA: cannot set hardware parameters for capture
ALSA: cannot configure capture channel


cannot load driver module alsa

and:
[201746.759857] asoc: can't set codec twl4030-hifi hw params

The pandora kernel-dev explained that the hardware can only handle stereo
streams. However someone in #jack explains it as the following:
"This typically means that the ALSA driver is incomplete or buggy when used
the way JACK does (poll+mmap) vs. the way aplay does (blocking read+write).
So things that do stuff the "aplay way" will work; things that do stuff the
JACK way will not work."

I hope someone can shed some light on this and perhaps give some ideas to
how to get this working.

cheers,
alexander

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: twl4030 and Puredata/jack
  2013-03-08 15:31 twl4030 and Puredata/jack Anders Alex
@ 2013-03-09 20:21 ` Gabriel M. Beddingfield
  2013-03-11  1:42   ` Anders Alex
  2013-03-11 13:45 ` Peter Ujfalusi
  1 sibling, 1 reply; 8+ messages in thread
From: Gabriel M. Beddingfield @ 2013-03-09 20:21 UTC (permalink / raw)
  To: Anders Alex; +Cc: alsa-devel

On 03/08/2013 07:31 AM, Anders Alex wrote:
> I will paste a couple of use-cases and their corresponding dmesg output:
>
> When I run ~$ pd -alsa I get:
>
> snd_pcm_hw_params (input): Invalid argument
> snd_pcm_hw_params (output): Invalid argument
>
> and:
> [201429.385345] omap_mcbsp_dai_hw_params: not enough bandwidth for desired
> rate and channels
> [201429.385375] asoc: interface omap-mcbsp-dai.1 hw params failed

Strange.  In kernel 3.2, omap-mcbsp-dai.1 (McBSP1) is used for the 
codec.  But in the mainline it's omap-mcbsp-dai.2.

So the question is... how is the board wired?  And does your kernel 
match the board?

> With 'jackd -d alsa -S'  (need s16_le):
>
> loading driver ..
> creating alsa driver ... hw:0|hw:0|1024|2|48000|0|0|nomon|swmeter|-|16bit
> control device hw:0
> configuring for 48000Hz, period = 1024 frames (21.3 ms), buffer = 2 periods
> ALSA: final selected sample format for capture: 16bit little-endian
> ALSA: use 2 periods for capture
> ALSA: cannot set hardware parameters for capture
> ALSA: cannot configure capture channel

Looking at the source, it looks like hw:0,0 has no capture port.  Try 
adding the -P parameter to jackd.  Playback only.

Also, post the output of:

    $ cat /proc/asound/devices

-gabriel

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: twl4030 and Puredata/jack
  2013-03-09 20:21 ` Gabriel M. Beddingfield
@ 2013-03-11  1:42   ` Anders Alex
  2013-03-11 10:42     ` Peter Ujfalusi
  0 siblings, 1 reply; 8+ messages in thread
From: Anders Alex @ 2013-03-11  1:42 UTC (permalink / raw)
  To: Gabriel M. Beddingfield; +Cc: alsa-devel

On Sat, Mar 9, 2013 at 9:21 PM, Gabriel M. Beddingfield
<gabrbedd@gmail.com>wrote:

> Strange.  In kernel 3.2, omap-mcbsp-dai.1 (McBSP1) is used for the codec.
>  But in the mainline it's omap-mcbsp-dai.2.
>
> So the question is... how is the board wired?  And does your kernel match
> the board?

1) no idea 2) it should, yes.


> Looking at the source, it looks like hw:0,0 has no capture port.  Try
> adding the -P parameter to jackd.  Playback only.
>
Hmm, when I do that I get:

[419034.693756] Alignment trap: not handling instruction edc46a06 at
[<4022ce2c>]
[419034.693878] Unhandled fault: alignment exception (0x801) at 0x4019e1e6

In dmesg.
Apparently this is/was a known issue on jack2 and has been fixed there.
No idea about jack1 (which I'm currently running). Will try to compile
latest jack2 and report back on this.


Also, post the output of:
>
>    $ cat /proc/asound/devices
>

$ cat /proc/asound/devices
  0: [ 0]   : control
  1:        : sequencer
 16: [ 0- 0]: digital audio playback
 17: [ 0- 1]: digital audio playback
 24: [ 0- 0]: digital audio capture
 25: [ 0- 1]: digital audio capture
 33:        : time


>
> -gabriel
>
>

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: twl4030 and Puredata/jack
  2013-03-11  1:42   ` Anders Alex
@ 2013-03-11 10:42     ` Peter Ujfalusi
  2013-03-11 16:57       ` Grazvydas Ignotas
  0 siblings, 1 reply; 8+ messages in thread
From: Peter Ujfalusi @ 2013-03-11 10:42 UTC (permalink / raw)
  To: Anders Alex; +Cc: alsa-devel, Gražvydas Ignotas, Gabriel M. Beddingfield

On 03/11/2013 02:42 AM, Anders Alex wrote:
> On Sat, Mar 9, 2013 at 9:21 PM, Gabriel M. Beddingfield
> <gabrbedd@gmail.com>wrote:
> 
>> Strange.  In kernel 3.2, omap-mcbsp-dai.1 (McBSP1) is used for the codec.
>>  But in the mainline it's omap-mcbsp-dai.2.
>>
>> So the question is... how is the board wired?  And does your kernel match
>> the board?
> 
> 1) no idea 2) it should, yes.

McBSP2 is connected to PCM1773 for playback
McBSP4 is connected to TWL4030 for capture

Both codec is slave, but the CLKS of McBSP is connected to TWL4030's CLKS out
256fs.

Since both PCM is hooked with the twl4030 codec driver, only stereo stream is
supported because the twl4030 does not support mono on the HiFi DAI (it
supports stereo or four channel).
They needed to do this so when they do playback through the PCM1773 they need
to power on the twl4030 codec and receive the 256fs from it.

Gražvydas Ignotas can correct me if I'm mistaken...

>> Looking at the source, it looks like hw:0,0 has no capture port.  Try
>> adding the -P parameter to jackd.  Playback only.
>>
> Hmm, when I do that I get:
> 
> [419034.693756] Alignment trap: not handling instruction edc46a06 at
> [<4022ce2c>]
> [419034.693878] Unhandled fault: alignment exception (0x801) at 0x4019e1e6
> 
> In dmesg.
> Apparently this is/was a known issue on jack2 and has been fixed there.
> No idea about jack1 (which I'm currently running). Will try to compile
> latest jack2 and report back on this.
> 
> 
> Also, post the output of:
>>
>>    $ cat /proc/asound/devices
>>
> 
> $ cat /proc/asound/devices
>   0: [ 0]   : control
>   1:        : sequencer
>  16: [ 0- 0]: digital audio playback
>  17: [ 0- 1]: digital audio playback
>  24: [ 0- 0]: digital audio capture
>  25: [ 0- 1]: digital audio capture
>  33:        : time
> 
> 
>>
>> -gabriel
>>
>>
> _______________________________________________
> Alsa-devel mailing list
> Alsa-devel@alsa-project.org
> http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
> 


-- 
Péter

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: twl4030 and Puredata/jack
  2013-03-08 15:31 twl4030 and Puredata/jack Anders Alex
  2013-03-09 20:21 ` Gabriel M. Beddingfield
@ 2013-03-11 13:45 ` Peter Ujfalusi
  2013-03-11 17:31   ` Peter Ujfalusi
  1 sibling, 1 reply; 8+ messages in thread
From: Peter Ujfalusi @ 2013-03-11 13:45 UTC (permalink / raw)
  To: Anders Alex; +Cc: alsa-devel

On 03/08/2013 04:31 PM, Anders Alex wrote:
> With 'jackd -d alsa -S'  (need s16_le):

I'm not really a jack user, but can you try:
jackd -d alsa -o 2 -i 2 -S -C hw:0,1 -P hw:0,0

So you tell jack to play on hw:0,0 record on hw:0,1 use stereo for both.



-- 
Péter

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: twl4030 and Puredata/jack
  2013-03-11 10:42     ` Peter Ujfalusi
@ 2013-03-11 16:57       ` Grazvydas Ignotas
  0 siblings, 0 replies; 8+ messages in thread
From: Grazvydas Ignotas @ 2013-03-11 16:57 UTC (permalink / raw)
  To: Peter Ujfalusi; +Cc: alsa-devel, Anders Alex, Gabriel M. Beddingfield

On Mon, Mar 11, 2013 at 12:42 PM, Peter Ujfalusi <peter.ujfalusi@ti.com> wrote:
> On 03/11/2013 02:42 AM, Anders Alex wrote:
>> On Sat, Mar 9, 2013 at 9:21 PM, Gabriel M. Beddingfield
>> <gabrbedd@gmail.com>wrote:
>>
>>> Strange.  In kernel 3.2, omap-mcbsp-dai.1 (McBSP1) is used for the codec.
>>>  But in the mainline it's omap-mcbsp-dai.2.
>>>
>>> So the question is... how is the board wired?  And does your kernel match
>>> the board?
>>
>> 1) no idea 2) it should, yes.
>
> McBSP2 is connected to PCM1773 for playback
> McBSP4 is connected to TWL4030 for capture
>
> Both codec is slave, but the CLKS of McBSP is connected to TWL4030's CLKS out
> 256fs.

That's right, the difference is because the dai numbering has changed
in commit 45656b44 (used to be ...-dai.1 / -dai.3 for McBSP2/McBSP4
and is now ...-dai.2 and -dai.4).


-- 
Gražvydas
_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: twl4030 and Puredata/jack
  2013-03-11 13:45 ` Peter Ujfalusi
@ 2013-03-11 17:31   ` Peter Ujfalusi
  2013-03-11 18:21     ` Anders Alex
  0 siblings, 1 reply; 8+ messages in thread
From: Peter Ujfalusi @ 2013-03-11 17:31 UTC (permalink / raw)
  To: Anders Alex; +Cc: alsa-devel

On 03/11/2013 02:45 PM, Peter Ujfalusi wrote:
> On 03/08/2013 04:31 PM, Anders Alex wrote:
>> With 'jackd -d alsa -S'  (need s16_le):
> 
> I'm not really a jack user, but can you try:
> jackd -d alsa -o 2 -i 2 -S -C hw:0,1 -P hw:0,0
> 
> So you tell jack to play on hw:0,0 record on hw:0,1 use stereo for both.

I have tried jack on my BeagleBoard (using twl4030 codec):

jackd -d alsa -o 2 -i 2 -S -C hw:0,0 -P hw:0,0
mplayer -ao jack media/music/nin-echoplex.flac

It works fine.

-- 
Péter

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: twl4030 and Puredata/jack
  2013-03-11 17:31   ` Peter Ujfalusi
@ 2013-03-11 18:21     ` Anders Alex
  0 siblings, 0 replies; 8+ messages in thread
From: Anders Alex @ 2013-03-11 18:21 UTC (permalink / raw)
  To: Peter Ujfalusi; +Cc: alsa-devel

On Mon, Mar 11, 2013 at 6:31 PM, Peter Ujfalusi <peter.ujfalusi@ti.com>wrote:

> On 03/11/2013 02:45 PM, Peter Ujfalusi wrote:
> > On 03/08/2013 04:31 PM, Anders Alex wrote:
> >> With 'jackd -d alsa -S'  (need s16_le):
> >
> > I'm not really a jack user, but can you try:
> > jackd -d alsa -o 2 -i 2 -S -C hw:0,1 -P hw:0,0
> >
> > So you tell jack to play on hw:0,0 record on hw:0,1 use stereo for both.
>
> I have tried jack on my BeagleBoard (using twl4030 codec):
>
> jackd -d alsa -o 2 -i 2 -S -C hw:0,0 -P hw:0,0
> mplayer -ao jack media/music/nin-echoplex.flac
>
> It works fine.
>

With jack1 I was still having problems. Also occasionally the known
alignment-trap issue. I now built jack2 from latest git and it works!
(with your suggested 'jackd -d alsa -o 2 -i 2 -S -C hw:0,1 -P hw:0,0' to
specify the devices)
Also built vanilla Puredata with build-optimizations for pandora (and
enabled jack and disabled direct alsa) and this now works as well!



> --
> Péter
>

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2013-03-11 18:21 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-03-08 15:31 twl4030 and Puredata/jack Anders Alex
2013-03-09 20:21 ` Gabriel M. Beddingfield
2013-03-11  1:42   ` Anders Alex
2013-03-11 10:42     ` Peter Ujfalusi
2013-03-11 16:57       ` Grazvydas Ignotas
2013-03-11 13:45 ` Peter Ujfalusi
2013-03-11 17:31   ` Peter Ujfalusi
2013-03-11 18:21     ` Anders Alex

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.