On Mon, Jan 21, 2013 at 05:16:44PM EST, Tanu Kaskinen wrote: > On Mon, 2013-01-21 at 16:44 +1100, Luke Yelavich wrote: > > On Mon, Jan 21, 2013 at 09:55:07AM EST, Tanu Kaskinen wrote: > > > On Mon, 2013-01-21 at 09:08 +1100, Luke Yelavich wrote: > > > > On Fri, Jan 18, 2013 at 06:22:05PM EST, Tanu Kaskinen wrote: > > > > > On Fri, 2013-01-18 at 16:08 +1100, Luke Yelavich wrote: > > > > > > Hey folks, > > > > > > I was attempting to test Pulse 3.0 on a PandaBoard ES for something > > > > > > completely unrelated, however when attepting to load PulseAudio, it > > > > > > crashed when attempting to make use of UCM. The stacktrace is > > > > > > attached, and I still have the core dump if anybody requires that as > > > > > > well. This test was conducted on Ubuntu Raring with all latest updates > > > > > > for the PandaBoard. > > > > > > > > > > > > Happy to provide information if required, and I hope this stacktrace > > > > > > is useful to whip up a fix. > > > > > > > > > > Looks like an alsa-lib bug that has been fixed in 1.0.26. > > > > > > > > Thanks, will round up the patch and get it included in our package. > > > > > > So you can't upgrade alsa-lib to 1.0.26? I'm not sure if "round up" > > > means that you already know which patch it is or not, so here's a link > > > to the patch: > > > > > > http://git.alsa-project.org/?p=alsa-lib.git;a=commitdiff;h=e16a9a04b190c1c7981d9c65c08c504b9a23fe37 > > > > Thanks, I figured that was the one. As for upgrading to 1.0.26 ALA, we > > haven't got to it yet, and it requires a little QA testing before we > > throw it in. Pulse is getting sed testing atm, so whilst 1.0.26 wille > > ventually l and, I need to solve this bug now, and then move onto > > 1.0.26. > > > > Unfortunately it seems that I still get a crash with that patch > > included. Traceback attached. > > Are you sure you are testing a properly patched alsa-lib? If you are, > then this is some other alsa-lib bug. ucm_get_modifiers() in pulseaudio > definitely doesn't do any double-freeing. Yes, I have verified that I was testing with your referenced patch, and alsa 1.0.26 twice, and I still get the crash. For reference, I am also attaching the UCM files that are used in Ubuntu for the PandaBoardES, which is what I am using. I haven't verified their syntax beyond making sure they are packaged. Luke -------------- next part -------------- # Use case Configurationfor TI PandaBoardES HiFi Music # By Liam Girdwood <lrg at slimlogic.co.uk> SectionVerb { EnableSequence [ cdev "hw:PandaBoardES" cset "name='AMIC_UL PDM Switch' 1" cset "name='MUX_UL00' 9" cset "name='MUX_UL01' 10" cset "name='Capture Volume' 4" ] DisableSequence [ cdev "hw:PandaBoardES" cset "name='AMIC_UL PDM Switch' 0" cset "name='MUX_UL00' 0" cset "name='MUX_UL01' 0" cset "name='Capture Volume' 0" ] # Optional TQ and ALSA PCMs Value { TQ "Music" CapturePCM "hw:0,0" } } SectionDevice."Headset".0 { Comment "PandaBoardES 3.5mm Headset" EnableSequence [ cdev "hw:PandaBoardES" cset "name='Analog Left Capture Route' 2" cset "name='Analog Right Capture Route' 2" cset "name='Capture Preamplifier Volume' 2" ] DisableSequence [ cdev "hw:PandaBoardES" cset "name='Analog Left Capture Route' 3" cset "name='Analog Right Capture Route' 3" cset "name='Capture Preamplifier Volume' 0" ] } -------------- next part -------------- # UCM configuration for PandaBoardES SectionUseCase."Record" { File "record" Comment "Record." } SectionUseCase."HiFi" { File "hifi" Comment "Play HiFi quality Music." } SectionUseCase."HiFi_Low_Power" { File "hifiLP" Comment "Play HiFi quality Music in Low Power Mode." } SectionUseCase."Voice" { File "voice" Comment "Playback Voice quality." } SectionUseCase."Voice_Low_Power" { File "voice" Comment "Playback Voice quality in Low Power Mode." } SectionUseCase."Voice_Call" { File "voiceCall" Comment "Capture and Playback in Voice quality." } SectionUseCase."Voice_Call_IP" { File "voiceCall" Comment "Capture and Playback in Voice quality." } SectionUseCase."FM_Analog_Radio" { File "FMAnalog" Comment "Capture FM Analog Radio." } SectionDefaults [ cdev "hw:PandaBoardES" exec "echo Im setting PandaBoardES defaults" ] -------------- next part -------------- # Use case Configuration for TI PandaBoardES HiFi Music # By Liam Girdwood <lrg at slimlogic.co.uk> SectionVerb { EnableSequence [ cdev "hw:PandaBoardES" cset "name='DL1 Mixer Multimedia' 1" cset "name='Sidetone Mixer Playback' 1" cset "name='DL1 PDM Switch' 1" cset "name='DL1 Media Playback Volume' 90,90" cset "name='SDT DL Volume' 120" cset "name='Headset Left Playback' 1" cset "name='Headset Right Playback' 1" cset "name='Headset Playback Volume' 13" ] DisableSequence [ cdev "hw:PandaBoardES" cset "name='DL1 Mixer Multimedia' 0" cset "name='Sidetone Mixer Playback' 0" cset "name='DL1 PDM Switch' 0" cset "name='DL1 Media Playback Volume' 0,0" cset "name='SDT DL Volume' 0" cset "name='Headset Right Playback' 0" cset "name='Headset Left Playback' 0" cset "name='Headset Playback Volume' 0" ] # Optional TQ and ALSA PCMs # Value { # TQ "Music" # PlaybackPCM "hw:0,0" # PlaybackVolume "name='DL1 Media Playback Volume' 90,90" # PlaybackSwitch "name='DL1 PDM Switch' 1" # } } SectionDevice."Headset".0 { Comment "PandaBoardES 3.5mm Headset" EnableSequence [ cdev "hw:PandaBoardES" cset "name='Headset Left Playback' 1" cset "name='Headset Right Playback' 1" cset "name='Headset Playback Volume' 13" ] DisableSequence [ cdev "hw:PandaBoardES" cset "name='Headset Right Playback' 0" cset "name='Headset Left Playback' 0" cset "name='Headset Playback Volume' 0" ] } #SectionModifier."RecordMedia".0 { # SupportedDevice [ # "Headset" # ] # EnableSequence [ # .... # ] # # DisableSequence [ # ... # ] # # TransitionSequence."ToModifierName" [ # ... # ] # # # Optional TQ and ALSA PCMs # Value { # TQ Voice # CapturePCM "hw:1" # PlaybackVolume "name='Master Playback Volume',index=2" # PlaybackSwitch "name='Master Playback Switch',index=2" # } # #} -------------- next part -------------- # Use case Configuration for TI PandaBoardES HiFi Music # By Liam Girdwood <lrg at slimlogic.co.uk> SectionVerb { EnableSequence [ cdev "hw:PandaBoardES" cset "name='DL1 Mixer Multimedia' 1" cset "name='Sidetone Mixer Playback' 1" cset "name='DL1 PDM Switch' 1" cset "name='DL1 Media Playback Volume' 90,90" cset "name='SDT DL Volume' 120" ] DisableSequence [ cdev "hw:PandaBoardES" cset "name='DL1 Mixer Multimedia' 0" cset "name='Sidetone Mixer Playback' 0" cset "name='DL1 PDM Switch' 0" cset "name='DL1 Media Playback Volume' 0,0" cset "name='SDT DL Volume' 0" ] # Optional TQ and ALSA PCMs Value { TQ "Music" PlaybackPCM "hw:0,6" } } SectionDevice."Headset".0 { Comment "PandaBoardES 3.5mm Headset" EnableSequence [ cdev "hw:PandaBoardES" cset "name='Headset Left Playback' 1" cset "name='Headset Right Playback' 1" cset "name='Headset Playback Volume' 13" ] DisableSequence [ cdev "hw:PandaBoardES" cset "name='Headset Right Playback' 0" cset "name='Headset Left Playback' 0" cset "name='Headset Playback Volume' 0" ] } -------------- next part -------------- # Use case Configuration for TI PandaBoardES HiFi Music # By Liam Girdwood <lrg at slimlogic.co.uk> SectionVerb { EnableSequence [ cdev "hw:PandaBoardES" # No more AMIC PDM Switch in current kernels #cset "name='AMIC_UL PDM Switch' 1" cset "name='MUX_UL00' 9" cset "name='MUX_UL01' 10" cset "name='Capture Volume' 4" ] DisableSequence [ cdev "hw:PandaBoardES" # No more AMIC PDM Switch in current kernels #cset "name='AMIC_UL PDM Switch' 0" cset "name='MUX_UL00' 0" cset "name='MUX_UL01' 0" cset "name='Capture Volume' 0" ] # Optional TQ and ALSA PCMs Value { TQ "Music" CapturePCM "hw:0,0" } } SectionDevice."Headset".0 { Comment "PandaBoardES 3.5mm Headset" EnableSequence [ cdev "hw:PandaBoardES" cset "name='Analog Left Capture Route' 0" cset "name='Analog Right Capture Route' 0" cset "name='Capture Preamplifier Volume' 2" ] DisableSequence [ cdev "hw:PandaBoardES" cset "name='Analog Left Capture Route' 3" cset "name='Analog Right Capture Route' 3" cset "name='Capture Preamplifier Volume' 0" ] } -------------- next part -------------- # Use case Configuration for TI PandaBoardES HiFi Music # By Liam Girdwood <lrg at slimlogic.co.uk> SectionVerb { EnableSequence [ cdev "hw:PandaBoardES" cset "name='DL1 Mixer Voice' 1" cset "name='Sidetone Mixer Playback' 1" cset "name='DL1 PDM Switch' 1" cset "name='DL1 Voice Playback Volume' 90,90" cset "name='SDT DL Volume' 120" ] DisableSequence [ cdev "hw:PandaBoardES" cset "name='DL1 Mixer Voice' 0" cset "name='Sidetone Mixer Playback' 0" cset "name='DL1 PDM Switch' 0" cset "name='DL1 Voice Playback Volume' 0,0" cset "name='SDT DL Volume' 0" ] # Optional TQ and ALSA PCMs Value { TQ "Voice" PlaybackPCM "hw:0,2" } } SectionDevice."Headset".0 { Comment "PandaBoardES 3.5mm Headset" EnableSequence [ cdev "hw:PandaBoardES" cset "name='Headset Left Playback' 1" cset "name='Headset Right Playback' 1" cset "name='Headset Playback Volume' 13" ] DisableSequence [ cdev "hw:PandaBoardES" cset "name='Headset Right Playback' 0" cset "name='Headset Left Playback' 0" cset "name='Headset Playback Volume' 0" ] } -------------- next part -------------- # Use case Configuration for TI PandaBoardES HiFi Music # By Liam Girdwood <lrg at slimlogic.co.uk> SectionVerb { EnableSequence [ cdev "hw:PandaBoardES" cset "name='AMIC_UL PDM Switch' 1" cset "name='Sidetone Mixer Capture' 1" cset "name='MUX_VX0' 9" cset "name='MUX_VX1' 10" cset "name='DL1 Mixer Voice' 1" cset "name='Sidetone Mixer Playback' 1" cset "name='DL1 PDM Switch' 1" cset "name='DL1 Voice Playback Volume' 90,90" cset "name='Capture Volume' 4" cset "name='Capture Mixer Voice Capture' 90,90" cset "name='SDT DL Volume' 120" ] DisableSequence [ cdev "hw:PandaBoardES" cset "name='AMIC_UL PDM Switch' 0" cset "name='Sidetone Mixer Capture' 0" cset "name='MUX_VX0' 0" cset "name='MUX_VX1' 0" cset "name='DL1 Mixer Voice' 0" cset "name='Sidetone Mixer Playback' 0" cset "name='DL1 PDM Switch' 0" cset "name='DL1 Voice Playback Volume' 0,0" cset "name='Capture Volume' 0" cset "name='DL1 Voice Playback Volume' 0,0" cset "name='SDT DL Volume' 0" ] # Optional TQ and ALSA PCMs Value { TQ "Voice" CapturePCM "hw:0,2" PlaybackPCM "hw:0,2" } } SectionDevice."Headset".0 { Comment "PandaBoardES 3.5mm Headset" EnableSequence [ cdev "hw:PandaBoardES" cset "name='Analog Left Capture Route' 0" cset "name='Analog Right Capture Route' 0" cset "name='Capture Preamplifier Volume' 2" cset "name='Headset Left Playback' 1" cset "name='Headset Right Playback' 1" cset "name='Headset Playback Volume' 13" ] DisableSequence [ cdev "hw:PandaBoardES" cset "name='Analog Left Capture Route' 3" cset "name='Analog Right Capture Route' 3" cset "name='Capture Preamplifier Volume' 0" cset "name='Headset Right Playback' 0" cset "name='Headset Left Playback' 0" cset "name='Headset Playback Volume' 0" ] }