Openmoko Bug #1599: Suspend / resume breaks audio
Openmoko Public Trac
bugs at docs.openmoko.org
Sun Oct 5 23:50:30 CEST 2008
#1599: Suspend / resume breaks audio
-------------------------------------------+--------------------------------
Reporter: phyce | Owner: openmoko-kernel
Type: defect | Status: new
Priority: normal | Milestone: Om2007.2
Component: System Software | Version: GTA02v5
Severity: normal | Resolution:
Keywords: sound audio suspend resume | Blockedby:
Reproducible: | Blocking:
-------------------------------------------+--------------------------------
Comment(by gcasse):
Some dmesg messages for hopefully completing bug #1599.
* aplay is suspended (apm -s) on the FR, after resume, no more sound: the
aplay process is hanging.
* dmesg:
ALSA sound/core/pcm_lib.c:155: BUG: stream = 0, pos = 0x28c8000, buffer
size = 0x4000, period size = 0x400
(line 155: snd_pcm_update_hw_ptr_pos).
If the hanging aplay process is nuked then another aplay can be started
successfully.
-----------------------------------------------
More details:
* kernel 2.6.24 (5 Oct git origin/stable), defconfig-gta02 +
CONFIG_SND_VERBOSE_PRINTK=y, CONFIG_SND_DEBUG, CONFIG_SND_DEBUG_DETECT,
CONFIG_SND_S3C24XX_SOC_NEO1973_WM8753_DEBUG
* alsa 1.0.15
* dmesg:
...
glamo-mci glamo-mci.0: powered (vdd = 20) clk: 16666kHz div=2 (req:
16666kHz). Bus width=2
soc-audio soc-audio: scheduling resume work
PM: Finishing wakeup.
Restarting tasks ... <6>soc-audio soc-audio: starting resume work
done.
usb0: full speed config #1: 500 mA, Ethernet Gadget, using CDC Ethernet
soc-audio soc-audio: resume work completed
dma2: channel has nothing loaded
ALSA sound/core/pcm_lib.c:155: BUG: stream = 0, pos = 0x28c8000, buffer
size = 0x4000, period size = 0x400
ALSA sound/core/pcm_lib.c:155: BUG: stream = 0, pos = 0x28c8000, buffer
size = 0x4000, period size = 0x400
...
* File sound/core/pcm_lib.c, line 155:
...
static inline snd_pcm_uframes_t snd_pcm_update_hw_ptr_pos(struct
snd_pcm_substream *substream,
struct
snd_pcm_runtime *runtime)
{
snd_pcm_uframes_t pos;
pos = substream->ops->pointer(substream);
if (pos == SNDRV_PCM_POS_XRUN)
return pos; /* XRUN */
if (runtime->tstamp_mode & SNDRV_PCM_TSTAMP_MMAP)
getnstimeofday((struct timespec
*)&runtime->status->tstamp);
#ifdef CONFIG_SND_DEBUG
if (pos >= runtime->buffer_size) {
snd_printk(KERN_ERR "BUG: stream = %i, pos = 0x%lx,
buffer size = 0x%lx, period size = 0x%lx\n", substream->stream, pos,
runtime->buffer_size, runtime->period_size);
}
#endif
pos -= pos % runtime->min_align;
return pos;
}
...
--
Ticket URL: <https://docs.openmoko.org/trac/ticket/1599#comment:24>
docs.openmoko.org <http://docs.openmoko.org/trac/>
openmoko trac
More information about the buglog
mailing list