Re: my driver can't reproduce continuously

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi

> Now I'm creating sound driver.
> But can't reproduce continuously.
(snip)
> Q1)
> When I play sound, aplay said
>
> underrun!!! (at least 0.000 ms long)
> underrun!!! (at least 0.000 ms long)
(snip)
> Q2)
> The reason that it can not reproduce continuously
> seems soc-core.c :: soc_pcm_trigger timing.
> Call timing of soc_pcm_trigger is slow.

I attached my stupid driver.
fsi.c, dma-sh7724.c, fsi.h
This driver assume that input data is 16bit sound data.

The calculation of the transmission data size of FSI is confusing.
But may be it is OK about this in my stupid driver.

I would like to ask following.

o Is there something wrong about call timing of
  snd_pcm_period_elapsed ?
  if period is 4, snd_pcm_period_elapsed is called 4 times.
  Is it correct ?
  If not what should I do ?

o Is there something wrong about
  return value of snd_pcm_ops :: pointer ?

o why aplay say underrun!!! ?
  where should I check ?
   - XXX size
   - XXX value
   - XXX call timing
   - XXX function return value
   - should have XXX function or do XXX operation...
  Does this have relationship to snd_pcm_period_elapsed ?

o soc-core.c :: soc_pcm_trigger timing seems slow.
  So, it can not reproduce continuously.
  but how to controll this ?

o sometimes BUG_ON is called when I use kmalloc on
  snd_soc_dai_ops :: trigger.
  This BUG_ON came frome cache_alloc_refill.
  Should I not use kmalloc on trigger function ?

Attachment: fsi.c
Description: Binary data

Attachment: dma-sh7724.c
Description: Binary data

Attachment: fsi.h
Description: Binary data

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

[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux