blob: 3c0d5208988774ef53aa7a2b4f67abd123f17510 [file] [log] [blame]
Meng Wang43bbb872018-12-10 12:32:05 +08001/* SPDX-License-Identifier: GPL-2.0-only */
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302/* Copyright (c) 2012,2015-2016 The Linux Foundation. All rights reserved.
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303 */
4#ifndef _MSM_PCM_AFE_H
5#define _MSM_PCM_AFE_H
Laxminath Kasam605b42f2017-08-01 22:02:15 +05306#include <dsp/apr_audio-v2.h>
7#include <dsp/q6afe-v2.h>
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308
9
10struct pcm_afe_info {
11 unsigned long dma_addr;
12 struct snd_pcm_substream *substream;
13 unsigned int pcm_irq_pos; /* IRQ position */
14 struct mutex lock;
15 spinlock_t dsp_lock;
16 uint32_t samp_rate;
17 uint32_t channel_mode;
18 uint8_t start;
19 uint32_t dsp_cnt;
20 uint32_t buf_phys;
21 int32_t mmap_flag;
22 int prepared;
23 struct hrtimer hrt;
24 int poll_time;
25 struct afe_audio_client *audio_client;
26 wait_queue_head_t read_wait;
27 atomic_t rec_bytes_avail;
28 bool reset_event;
29};
30
31
32#define MSM_EXT(xname, fp_info, fp_get, fp_put, addr) \
33 {.iface = SNDRV_CTL_ELEM_IFACE_MIXER, \
34 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE, \
35 .name = xname, \
36 .info = fp_info,\
37 .get = fp_get, .put = fp_put, \
38 .private_value = addr, \
39 }
40
41#endif /*_MSM_PCM_AFE_H*/