Ticket #1353 (closed defect: fixed)
No sound after resume from suspend
| Reported by: | allen_lin@… | Owned by: | openmoko-kernel@… |
|---|---|---|---|
| Priority: | highest | Milestone: | |
| Component: | kernel | Version: | current svn head |
| Severity: | critical | Keywords: | |
| Cc: | buglog@…, reddog@… | Blocked By: | |
| Blocking: | Estimated Completion (week): | ||
| HasPatchForReview: | PatchReviewResult: | ||
| Reproducible: |
Description
https://people.internal.openmoko.org/openmoko/internal-daily-build/neo1973/deploy/glibc/images/neo1973/Openmoko-openmoko-freerunner-image-glibc-ipk-P1-Snapshot-20080417-om-gta02.rootfs.jffs2
https://people.internal.openmoko.org/openmoko/internal-daily-build/neo1973/deploy/glibc/images/neo1973/uImage-2.6.24+git20080417-r0-om-gta02.bin
Suspend about 10-15 minutes, I can resume to X, but there is not sound for
click. When I calling and talking via Neo FreeRunner?, I still can hear the sounds.
Change History
comment:2 Changed 5 years ago by reddog@…
If the alsactl restore doesn't help you could test if it's the same issue we
have in the #79 bug.
To find out if it is just do the following:
"/etc/init.d/xserver-nodm stop"
"/etc/init.d/pulseaudio stop"
"/usr/bin/pulseaudio -vvvv --no-cpu-limit --resample-method=trivial -nF
/etc/pulse/session"
then on another terminal:
"/etc/init.d/xserver-nodm start"
if you can see a message like: "W: module-alsa-sink.c: Got POLLERR from ALSA" in
the pulseaudio output, it is the same issue!
comment:4 Changed 5 years ago by graeme@…
Here is a copy of email I sent to kernel list which never got any comments.
I spent this afternoon debugging the audio resume problem that was seen
in pulse and I can confirm it is a bug.
iiscon = readl(s3c24xx_i2s.regs + S3C2410_IISCON);
in function s3c24xx_snd_lrsync always returns 0x0F and function is
waiting for 0x10F to start sound. This would normally indicate that
the L/R clock isnt functioning.
But if you change this function to just return 0 then audio will
restart after resume showing L/R clock is in fact running.
So it seems reading the register gets stuck, I dont know why. I also
don't know if this function is needed, I inherited it need to do
a whole lot of left only sample tests to tell if samsung hardware is
really broken.
comment:5 Changed 5 years ago by andy
- Status changed from new to closed
- Resolution set to fixed
I have a workaround based on Graeme's findings in andy branch which "fixes" this.
comment:6 Changed 5 years ago by olberger
AFAICT this also happens on 2007.2... so is it indeed considered fixed ?
comment:7 Changed 5 years ago by andy
There's another bug with pulseaudio choking on suspend -- without pulseaudio around suspend / resume and audio work fine.
comment:8 Changed 5 years ago by yarikoptic
Since others already confirmed that I am not alone I am reopening the bug (ACTUALLY I CANT -- apparently I don't have permissions... WTF?)
I am running 2008.9 with recent updates. on resume, no sound to the speaker. stop/start on pulseaudio resolves the issue until next suspend
Here is what I have installed for pulseaudio (bug report for fix doesn't include version where it got fixed thus...)
pulseaudio-lib-alsa-util - 0.9.10-r4 -
pulseaudio-lib-authkey - 0.9.10-r4 -
pulseaudio-lib-authkey-prop - 0.9.10-r4 -
pulseaudio-lib-cli - 0.9.10-r4 -
pulseaudio-lib-iochannel - 0.9.10-r4 -
pulseaudio-lib-ioline - 0.9.10-r4 -
pulseaudio-lib-ipacl - 0.9.10-r4 -
pulseaudio-lib-packet - 0.9.10-r4 -
pulseaudio-lib-pdispatch - 0.9.10-r4 -
pulseaudio-lib-protocol-cli - 0.9.10-r4 -
pulseaudio-lib-protocol-esound - 0.9.10-r4 -
pulseaudio-lib-protocol-native - 0.9.10-r4 -
pulseaudio-lib-protocol-simple - 0.9.10-r4 -
pulseaudio-lib-pstream - 0.9.10-r4 -
pulseaudio-lib-pstream-util - 0.9.10-r4 -
pulseaudio-lib-socket-server - 0.9.10-r4 -
pulseaudio-lib-socket-util - 0.9.10-r4 -
pulseaudio-lib-strlist - 0.9.10-r4 -
pulseaudio-lib-tagstruct - 0.9.10-r4 -
pulseaudio-module-alsa-sink - 0.9.10-r4 -
pulseaudio-module-alsa-source - 0.9.10-r4 -
pulseaudio-module-cli - 0.9.10-r4 -
pulseaudio-module-cli-protocol-unix - 0.9.10-r4 -
pulseaudio-module-esound-protocol-unix - 0.9.10-r4 -
pulseaudio-module-native-protocol-unix - 0.9.10-r4 -
pulseaudio-module-simple-protocol-tcp - 0.9.10-r4 -
pulseaudio-server - 0.9.10-r4 -
comment:9 Changed 5 years ago by yarikoptic
not sure if useful.
prior to suspend pulseaudio is busy with querying both
/dev/snd/pcmC0D0p and /dev/snd/timer
after resume - it doesn't care about timer anymore and just loops at pcmC0D0p according to strace:
1483 SYS_298(0x8001, 0x40ff5cfc, 0x2, 0x1000, 0x2b08000) = 0
1483 SYS_298(0x8001, 0x40ff5d62, 0x1, 0x1800, 0x4eb10) = 0
1483 ioctl(18, 0xc0844123, 0x4ed60) = 0
1483 ioctl(18, 0xc0844123, 0x4ed60) = 0
1483 ioctl(18, 0xc0844123, 0x4ed60) = 0
1483 ioctl(18, 0xc0844123, 0x4ed60) = 0
1483 ioctl(18, 0xc0844123, 0x4ed60) = 0
/proc/1482/fd/18 -> /dev/snd/pcmC0D0p
comment:10 Changed 5 years ago by yarikoptic
for now I just removed pulseaudio -- it seems it is needed only for 2007 stack and I installed openmoko-mediaplayer2 so it pulled pulseaudio in
opkg remove openmoko-mediaplayer2 openmoko-sound-system2 pulseaudio-server

Well, it sounds good we are suspending and that's all that's wrong :-)
Can you try to run
# alsactl restore
from a shell after resume and see if it allows the feedback sounds again?