[alsa-devel] Input/output error - Confusion regarding period size and interrupts

Pharaoh . pharaoh137 at gmail.com
Mon Jul 16 16:18:05 CEST 2007


I finally solved it, the issue has nothing to do with the above
mentioned things, it was
h/w specific issue.

On 7/16/07, Pharaoh . <pharaoh137 at gmail.com> wrote:
> Hi
>
> The hardware I am working on expects 8K bytes to be DMAed before
> giving an interrupt. Only after a block of 8K bytes is DMAed, I get an
> end of the block interrupt and I enqueue next 8K bytes for processing.
> The params look like these:
>
> static snd_pcm_hardware_t snd_omap_alsa_playback = {
>         .info = (SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_PAUSE |
>                               SNDRV_PCM_INFO_RESUME |
> SNDRV_PCM_INFO_MMAP_VALID | SNDRV_PCM_INFO_MMAP),
>         .formats = (SNDRV_PCM_FMTBIT_S16_LE),
>         .rates = (SNDRV_PCM_RATE_44100 | SNDRV_PCM_RATE_48000 ),
>         .rate_min = 44100,
>         .rate_max = 48000,
>         .channels_min = 2,
>         .channels_max = 2,
>         .buffer_bytes_max = 8192*8,
>         .period_bytes_min = 32,
>         .period_bytes_max = 8 * 1024,
>         .periods_min = 2,               //ping pong buffer
>         .periods_max = 128,
>         .fifo_size = 0,
> };
>
> I just copied it from another driver ;-). But now I am getting an
> input/output error after
> first block of data i.e. 8K bytes are DMAed. Does it have anything to
> do with the above struct? I have discussed this earlier too, but now
> attacking it once again after long gap.
>
> -pharaoh.
>


More information about the Alsa-devel mailing list