[alsa-devel] [PATCH 02/19] ASoC: au1x: Don't set unused struct snd_pcm_hardware fields

Manuel Lauss manuel.lauss at gmail.com
Fri Dec 20 16:24:26 CET 2013


My Alchemy hardware likes it.

Tested-by: Manuel Lauss <manuel.lauss at gmail.com>

On Fri, Dec 20, 2013 at 2:20 PM, Lars-Peter Clausen <lars at metafoo.de> wrote:
> The ASoC core assumes that the PCM component of the ASoC card transparently
> moves data around and does not impose any restrictions on the memory layout or
> the transfer speed. It ignores all fields from the snd_pcm_hardware struct for
> the PCM driver that are related to this. Setting these fields in the PCM driver
> might suggest otherwise though, so rather not set them.
>
> Signed-off-by: Lars-Peter Clausen <lars at metafoo.de>
> Cc: Manuel Lauss <manuel.lauss at googlemail.com>
> ---
>  sound/soc/au1x/dbdma2.c |  9 ---------
>  sound/soc/au1x/dma.c    | 14 --------------
>  2 files changed, 23 deletions(-)
>
> diff --git a/sound/soc/au1x/dbdma2.c b/sound/soc/au1x/dbdma2.c
> index 3b4eafa..17a24d8 100644
> --- a/sound/soc/au1x/dbdma2.c
> +++ b/sound/soc/au1x/dbdma2.c
> @@ -65,19 +65,10 @@ struct au1xpsc_audio_dmadata {
>  #define AU1XPSC_PERIOD_MIN_BYTES       1024
>  #define AU1XPSC_BUFFER_MIN_BYTES       65536
>
> -#define AU1XPSC_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)
> -
>  /* PCM hardware DMA capabilities - platform specific */
>  static const struct snd_pcm_hardware au1xpsc_pcm_hardware = {
>         .info             = SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_MMAP_VALID |
>                             SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_BATCH,
> -       .formats          = AU1XPSC_PCM_FMTS,
>         .period_bytes_min = AU1XPSC_PERIOD_MIN_BYTES,
>         .period_bytes_max = 4096 * 1024 - 1,
>         .periods_min      = 2,
> diff --git a/sound/soc/au1x/dma.c b/sound/soc/au1x/dma.c
> index befd107..e920b60 100644
> --- a/sound/soc/au1x/dma.c
> +++ b/sound/soc/au1x/dma.c
> @@ -21,14 +21,6 @@
>
>  #include "psc.h"
>
> -#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)
> -
>  struct pcm_period {
>         u32 start;
>         u32 relative_end;       /* relative to start of buffer */
> @@ -171,12 +163,6 @@ static irqreturn_t au1000_dma_interrupt(int irq, void *ptr)
>  static const struct snd_pcm_hardware alchemy_pcm_hardware = {
>         .info             = SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_MMAP_VALID |
>                             SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_BATCH,
> -       .formats          = ALCHEMY_PCM_FMTS,
> -       .rates            = SNDRV_PCM_RATE_8000_192000,
> -       .rate_min         = SNDRV_PCM_RATE_8000,
> -       .rate_max         = SNDRV_PCM_RATE_192000,
> -       .channels_min     = 2,
> -       .channels_max     = 2,
>         .period_bytes_min = 1024,
>         .period_bytes_max = 16 * 1024 - 1,
>         .periods_min      = 4,
> --
> 1.8.0
>


More information about the Alsa-devel mailing list