On Mon, Jul 25, 2011 at 01:44:45PM +0200, Manuel Lauss wrote: Looks good, I'll apply this but a few minor comments you might want to look at incrementally. > +#define ALCHEMY_PCM_FMTS \ > + (SNDRV_PCM_FMTBIT_S8 | SNDRV_PCM_FMTBIT_U8 | \ > + SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S16_BE | \ > + SNDRV_PCM_FMTBIT_U16_LE | SNDRV_PCM_FMTBIT_U16_BE | \ > + SNDRV_PCM_FMTBIT_S32_LE | SNDRV_PCM_FMTBIT_S32_BE | \ > + SNDRV_PCM_FMTBIT_U32_LE | SNDRV_PCM_FMTBIT_U32_BE | \ > + 0) Why the | 0? Same for the other one. > + case (DMA_D0 | DMA_D1): > + pr_debug("DMA %d missed interrupt.\n", stream->dma); > + au1000_dma_stop(stream); > + au1000_dma_start(stream); > + break; > + case (~DMA_D0 & ~DMA_D1): > + pr_debug("DMA %d empty irq.\n", stream->dma); This case should return IRQ_NONE really since it didn't handle an interrupt...