[Solved] linux-kirkwood kernel CONFIG_SND_SOC is not set

This forum is for Marvell Kirkwood devices such as the GoFlex Home/Net, PogoPlug v1/v2, SheevaPlug, and ZyXEL devices.

[Solved] linux-kirkwood kernel CONFIG_SND_SOC is not set

Postby rstepanov » Sat Oct 05, 2013 6:56 pm

I wonder what's the reason for that decision? While I'm waiting for Cubieboard A20 to play with I'm still trying to do something useful with the HP t5325 box. I think it will be good to have t5325 audio driver in the stock kernel rather than build it manually for each new kernel version. Please set CONFIG_SND_SOC, SND_KIRKWOOD_SOC and SND_KIRKWOOD_SOC_T5325 in future releases!
Last edited by rstepanov on Tue Oct 15, 2013 6:30 pm, edited 1 time in total.
HP t5325, thinking of RPi
rstepanov
 
Posts: 15
Joined: Mon Sep 16, 2013 2:01 pm

Re: linux-kirkwood kernel CONFIG_SND_SOC is not set

Postby WarheadsSE » Sun Oct 06, 2013 1:48 am

Pull request?
Core Developer
Remember: Arch Linux ARM is entirely community donation supported!
WarheadsSE
Developer
 
Posts: 6807
Joined: Mon Oct 18, 2010 2:12 pm

Re: linux-kirkwood kernel CONFIG_SND_SOC is not set

Postby rstepanov » Sun Oct 06, 2013 6:24 am

What exactly shall I do?
HP t5325, thinking of RPi
rstepanov
 
Posts: 15
Joined: Mon Sep 16, 2013 2:01 pm

Re: linux-kirkwood kernel CONFIG_SND_SOC is not set

Postby moonman » Sun Oct 06, 2013 6:52 am

I'll add it with the next kernel update. To submit a pull request for our repo on github, make necessary changes and submit a pull request
https://github.com/archlinuxarm/PKGBUILDs
Pogoplug V4 | GoFlex Home | Raspberry Pi 4 4GB | CuBox-i4 Pro | ClearFog | BeagleBone Black | Odroid U2 | Odroid C1 | Odroid XU4
-----------------------------------------------------------------------------------------------------------------------
[armv5] Updated U-Boot | [armv5] NAND Rescue System
moonman
Developer
 
Posts: 3388
Joined: Sat Jan 15, 2011 3:36 am

Re: linux-kirkwood kernel CONFIG_SND_SOC is not set

Postby rstepanov » Sun Oct 06, 2013 5:07 pm

Thank you very much! I'm not familiar with the Archlinux package build process, so I need to spend some time studying.
HP t5325, thinking of RPi
rstepanov
 
Posts: 15
Joined: Mon Sep 16, 2013 2:01 pm

Re: linux-kirkwood kernel CONFIG_SND_SOC is not set

Postby rstepanov » Sun Oct 06, 2013 6:55 pm

Hmm, all 5325 specific drivers seem to be outdated or poorly written. Have no idea what to do with that:
$this->bbcode_second_pass_code('', '
[ 3082.733668] t5325-audio t5325-audio: ASoC: CODEC alc562x-codec.0-001a not registered
[ 3082.741476] t5325-audio t5325-audio: snd_soc_register_card() failed: -517
[ 3082.754375] platform t5325-audio: Driver t5325-audio requests probe deferral
')
HP t5325, thinking of RPi
rstepanov
 
Posts: 15
Joined: Mon Sep 16, 2013 2:01 pm

Re: linux-kirkwood kernel CONFIG_SND_SOC is not set

Postby rstepanov » Mon Oct 14, 2013 2:45 pm

I spend some time studying the code and trying to understand how it works. As a result I realized I need to modprobe the following modules manually to make it works:
$this->bbcode_second_pass_code('', '
i2c-mv64xxx
snd-soc-kirkwood
snd-soc-kirkwood-i2s
snd-soc-alc5623
')

As a result I see the following message in the dmesg:
$this->bbcode_second_pass_code('', ' t5325-audio t5325-audio: alc5621-hifi <-> kirkwood-i2s mapping ok')

I can see now that t5325 sound card is listed in /proc/asound as card0 and I can run aplay sample.wav on that card.

Next problem is that I can hear nothing from the speaker connected to the audio jack. I can see that /sys/kernel/debug/asoc/t5325/dapm/bias_level is always off during playback which effectively means audio output is powered off.

Are there anyone who understands how ALSA dapm works? What shall I do to make dapm power on the corresponding audio output?
HP t5325, thinking of RPi
rstepanov
 
Posts: 15
Joined: Mon Sep 16, 2013 2:01 pm

Re: linux-kirkwood kernel CONFIG_SND_SOC is not set

Postby rstepanov » Tue Oct 15, 2013 6:29 pm

Sound works fine, this is alsamixer setup for headphones:

/var/lib/alsa/asound.state:

$this->bbcode_second_pass_code('', '
state.t5325 {
control.1 {
iface MIXER
name 'Speaker Playback Volume'
value.0 28
value.1 28
comment {
access 'read write'
type INTEGER
count 2
range '0 - 31'
dbmin -4650
dbmax 0
dbvalue.0 -450
dbvalue.1 -450
}
}
control.2 {
iface MIXER
name 'Speaker Playback Switch'
value.0 true
value.1 true
comment {
access 'read write'
type BOOLEAN
count 2
}
}
control.3 {
iface MIXER
name 'Headphone Playback Volume'
value.0 27
value.1 27
comment {
access 'read write'
type INTEGER
count 2
range '0 - 31'
dbmin -4650
dbmax 0
dbvalue.0 -600
dbvalue.1 -600
}
}
control.4 {
iface MIXER
name 'Headphone Playback Switch'
value.0 true
value.1 true
comment {
access 'read write'
type BOOLEAN
count 2
}
}
control.5 {
iface MIXER
name 'Auxout Playback Volume'
value.0 28
value.1 28
comment {
access 'read write'
type INTEGER
count 2
range '0 - 31'
dbmin -4650
dbmax 0
dbvalue.0 -450
dbvalue.1 -450
}
}
control.6 {
iface MIXER
name 'Auxout Playback Switch'
value.0 false
value.1 false
comment {
access 'read write'
type BOOLEAN
count 2
}
}
control.7 {
iface MIXER
name 'PCM Playback Volume'
value.0 23
value.1 23
comment {
access 'read write'
type INTEGER
count 2
range '0 - 31'
dbmin -3450
dbmax 1200
dbvalue.0 0
dbvalue.1 0
}
}
control.8 {
iface MIXER
name 'AuxI Capture Volume'
value.0 23
value.1 23
comment {
access 'read write'
type INTEGER
count 2
range '0 - 31'
dbmin -3450
dbmax 1200
dbvalue.0 0
dbvalue.1 0
}
}
control.9 {
iface MIXER
name 'LineIn Capture Volume'
value.0 29
value.1 29
comment {
access 'read write'
type INTEGER
count 2
range '0 - 31'
dbmin -3450
dbmax 1200
dbvalue.0 900
dbvalue.1 900
}
}
control.10 {
iface MIXER
name 'Mic1 Capture Volume'
value 23
comment {
access 'read write'
type INTEGER
count 1
range '0 - 31'
dbmin -3450
dbmax 1200
dbvalue.0 0
}
}
control.11 {
iface MIXER
name 'Mic2 Capture Volume'
value 23
comment {
access 'read write'
type INTEGER
count 1
range '0 - 31'
dbmin -3450
dbmax 1200
dbvalue.0 0
}
}
control.12 {
iface MIXER
name 'Rec Capture Volume'
value.0 29
value.1 29
comment {
access 'read write'
type INTEGER
count 2
range '0 - 31'
dbmin -1650
dbmax 3000
dbvalue.0 2700
dbvalue.1 2700
}
}
control.13 {
iface MIXER
name 'Mic 1 Boost Volume'
value 0
comment {
access 'read write'
type INTEGER
count 1
range '0 - 2'
dbmin 0
dbmax 3000
dbvalue.0 0
}
}
control.14 {
iface MIXER
name 'Mic 2 Boost Volume'
value 0
comment {
access 'read write'
type INTEGER
count 1
range '0 - 2'
dbmin 0
dbmax 3000
dbvalue.0 0
}
}
control.15 {
iface MIXER
name 'Digital Boost Volume'
value 2
comment {
access 'read write'
type INTEGER
count 1
range '0 - 3'
dbmin 0
dbmax 1800
dbvalue.0 1200
}
}
control.16 {
iface MIXER
name 'AB-D Amp Mux'
value 'AB Amp'
comment {
access 'read write'
type ENUMERATED
count 1
item.0 'AB Amp'
item.1 'D Amp'
}
}
control.17 {
iface MIXER
name 'Right Capture Mix Mic1 Capture Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.18 {
iface MIXER
name 'Right Capture Mix Mic2 Capture Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.19 {
iface MIXER
name 'Right Capture Mix LineInR Capture Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.20 {
iface MIXER
name 'Right Capture Mix Right AuxI Capture Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.21 {
iface MIXER
name 'Right Capture Mix HPMixerR Capture Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.22 {
iface MIXER
name 'Right Capture Mix SPKMixer Capture Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.23 {
iface MIXER
name 'Right Capture Mix MonoMixer Capture Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.24 {
iface MIXER
name 'Left Capture Mix Mic1 Capture Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.25 {
iface MIXER
name 'Left Capture Mix Mic2 Capture Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.26 {
iface MIXER
name 'Left Capture Mix LineInL Capture Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.27 {
iface MIXER
name 'Left Capture Mix Left AuxI Capture Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.28 {
iface MIXER
name 'Left Capture Mix HPMixerL Capture Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.29 {
iface MIXER
name 'Left Capture Mix SPKMixer Capture Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.30 {
iface MIXER
name 'Left Capture Mix MonoMixer Capture Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.31 {
iface MIXER
name 'Speaker Mix LI2SPK Playback Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.32 {
iface MIXER
name 'Speaker Mix AUXI2SPK Playback Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.33 {
iface MIXER
name 'Speaker Mix MIC12SPK Playback Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.34 {
iface MIXER
name 'Speaker Mix MIC22SPK Playback Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.35 {
iface MIXER
name 'Speaker Mix DAC2SPK Playback Switch'
value true
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.36 {
iface MIXER
name 'Mono Mix ADC2MONO_L Playback Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.37 {
iface MIXER
name 'Mono Mix ADC2MONO_R Playback Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.38 {
iface MIXER
name 'Mono Mix LI2MONO Playback Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.39 {
iface MIXER
name 'Mono Mix AUXI2MONO Playback Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.40 {
iface MIXER
name 'Mono Mix MIC12MONO Playback Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.41 {
iface MIXER
name 'Mono Mix MIC22MONO Playback Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.42 {
iface MIXER
name 'Mono Mix DAC2MONO Playback Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.43 {
iface MIXER
name 'HPL Mix ADC2HP_L Playback Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.44 {
iface MIXER
name 'HPR Mix ADC2HP_R Playback Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.45 {
iface MIXER
name 'HP Mix LI2HP Playback Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.46 {
iface MIXER
name 'HP Mix AUXI2HP Playback Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.47 {
iface MIXER
name 'HP Mix MIC12HP Playback Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.48 {
iface MIXER
name 'HP Mix MIC22HP Playback Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.49 {
iface MIXER
name 'HP Mix DAC2HP Playback Switch'
value true
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.50 {
iface MIXER
name 'SpeakerOut N Mux'
value RP/+R
comment {
access 'read write'
type ENUMERATED
count 1
item.0 RN/-R
item.1 RP/+R
item.2 LN/-R
item.3 Vmid
}
}
control.51 {
iface MIXER
name 'Right Headphone Mux'
value 'HP Right Mix'
comment {
access 'read write'
type ENUMERATED
count 1
item.0 Vmid
item.1 'HP Right Mix'
}
}
control.52 {
iface MIXER
name 'Left Headphone Mux'
value 'HP Left Mix'
comment {
access 'read write'
type ENUMERATED
count 1
item.0 Vmid
item.1 'HP Left Mix'
}
}
control.53 {
iface MIXER
name 'SpeakerOut Mux'
value Vmid
comment {
access 'read write'
type ENUMERATED
count 1
item.0 Vmid
item.1 'HPOut Mix'
item.2 'Speaker Mix'
item.3 'Mono Mix'
}
}
control.54 {
iface MIXER
name 'AuxOut Mux'
value Vmid
comment {
access 'read write'
type ENUMERATED
count 1
item.0 Vmid
item.1 'HPOut Mix'
item.2 'Speaker Mix'
item.3 'Mono Mix'
}
}
}
')
HP t5325, thinking of RPi
rstepanov
 
Posts: 15
Joined: Mon Sep 16, 2013 2:01 pm

Re: [Solved] linux-kirkwood kernel CONFIG_SND_SOC is not set

Postby rstepanov » Tue Oct 15, 2013 6:35 pm

It's also possible to route sound stream to the built in speaker, but I have no idea how to detect headphone jack plug/unplug events, the codec (Realtec ALC5621) can do that but there is no infrastructure to handle it.
HP t5325, thinking of RPi
rstepanov
 
Posts: 15
Joined: Mon Sep 16, 2013 2:01 pm


Return to Marvell Kirkwood

Who is online

Users browsing this forum: No registered users and 2 guests