linux/sound/soc/fsl/imx-pcm.h
<<
>>
Prefs
   1/*
   2 * Copyright 2009 Sascha Hauer <s.hauer@pengutronix.de>
   3 *
   4 * This code is based on code copyrighted by Freescale,
   5 * Liam Girdwood, Javier Martin and probably others.
   6 *
   7 * This program is free software; you can redistribute  it and/or modify it
   8 * under  the terms of  the GNU General  Public License as published by the
   9 * Free Software Foundation;  either version 2 of the  License, or (at your
  10 * option) any later version.
  11 */
  12
  13#ifndef _IMX_PCM_H
  14#define _IMX_PCM_H
  15
  16#include <linux/platform_data/dma-imx.h>
  17
  18/*
  19 * Do not change this as the FIQ handler depends on this size
  20 */
  21#define IMX_SSI_DMABUF_SIZE     (64 * 1024)
  22
  23static inline void
  24imx_pcm_dma_params_init_data(struct imx_dma_data *dma_data,
  25        int dma, bool shared)
  26{
  27        dma_data->dma_request = dma;
  28        dma_data->priority = DMA_PRIO_HIGH;
  29        if (shared)
  30                dma_data->peripheral_type = IMX_DMATYPE_SSI_SP;
  31        else
  32                dma_data->peripheral_type = IMX_DMATYPE_SSI;
  33}
  34
  35#ifdef CONFIG_SND_SOC_IMX_PCM_DMA
  36int imx_pcm_dma_init(struct platform_device *pdev);
  37void imx_pcm_dma_exit(struct platform_device *pdev);
  38#else
  39static inline int imx_pcm_dma_init(struct platform_device *pdev)
  40{
  41        return -ENODEV;
  42}
  43
  44static inline void imx_pcm_dma_exit(struct platform_device *pdev)
  45{
  46}
  47#endif
  48
  49#ifdef CONFIG_SND_SOC_IMX_PCM_FIQ
  50int imx_pcm_fiq_init(struct platform_device *pdev);
  51void imx_pcm_fiq_exit(struct platform_device *pdev);
  52#else
  53static inline int imx_pcm_fiq_init(struct platform_device *pdev)
  54{
  55        return -ENODEV;
  56}
  57
  58static inline void imx_pcm_fiq_exit(struct platform_device *pdev)
  59{
  60}
  61#endif
  62
  63#endif /* _IMX_PCM_H */
  64