111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/****************************************************************************
211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ****************************************************************************
311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***
411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***   This header was automatically generated from a Linux kernel header
511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***   of the same name, to make information necessary for userspace to
611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***   call into the kernel available to libc.  It contains only constants,
711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***   structures, and macros generated from the original header, and thus,
811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***   contains no copyrightable information.
911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***
1011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ****************************************************************************
1111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ****************************************************************************/
1211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef __LINUX_MSM_AUDIO_H
1311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define __LINUX_MSM_AUDIO_H
1411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
1511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <linux/types.h>
1611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <linux/ioctl.h>
1711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <asm/sizes.h>
1811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
1911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define AUDIO_IOCTL_MAGIC 'a'
2011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
2111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define AUDIO_START _IOW(AUDIO_IOCTL_MAGIC, 0, unsigned)
2211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define AUDIO_STOP _IOW(AUDIO_IOCTL_MAGIC, 1, unsigned)
2311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define AUDIO_FLUSH _IOW(AUDIO_IOCTL_MAGIC, 2, unsigned)
2411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define AUDIO_GET_CONFIG _IOR(AUDIO_IOCTL_MAGIC, 3, unsigned)
2511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define AUDIO_SET_CONFIG _IOW(AUDIO_IOCTL_MAGIC, 4, unsigned)
2611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define AUDIO_GET_STATS _IOR(AUDIO_IOCTL_MAGIC, 5, unsigned)
2711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define AUDIO_ENABLE_AUDPP _IOW(AUDIO_IOCTL_MAGIC, 6, unsigned)
2811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define AUDIO_SET_ADRC _IOW(AUDIO_IOCTL_MAGIC, 7, unsigned)
2911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define AUDIO_SET_EQ _IOW(AUDIO_IOCTL_MAGIC, 8, unsigned)
3011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define AUDIO_SET_RX_IIR _IOW(AUDIO_IOCTL_MAGIC, 9, unsigned)
3111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define AUDIO_SET_VOLUME _IOW(AUDIO_IOCTL_MAGIC, 10, unsigned)
3211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define AUDIO_ENABLE_AUDPRE _IOW(AUDIO_IOCTL_MAGIC, 11, unsigned)
3311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define AUDIO_SET_AGC _IOW(AUDIO_IOCTL_MAGIC, 12, unsigned)
3411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define AUDIO_SET_NS _IOW(AUDIO_IOCTL_MAGIC, 13, unsigned)
3511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define AUDIO_SET_TX_IIR _IOW(AUDIO_IOCTL_MAGIC, 14, unsigned)
3611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
3711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct msm_audio_config {
3811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert uint32_t buffer_size;
3911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert uint32_t buffer_count;
4011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert uint32_t channel_count;
4111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert uint32_t sample_rate;
4211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert uint32_t type;
4311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert uint32_t unused[3];
4411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
4511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
4611cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct msm_audio_stats {
4711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert uint32_t byte_count;
4811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert uint32_t sample_count;
4911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert uint32_t unused[2];
5011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
5111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
5211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SND_IOCTL_MAGIC 's'
5311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
5411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SND_MUTE_UNMUTED 0
5511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SND_MUTE_MUTED 1
5611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
5711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct msm_snd_device_config {
5811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert uint32_t device;
5911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert uint32_t ear_mute;
6011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert uint32_t mic_mute;
6111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
6211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
6311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SND_SET_DEVICE _IOW(SND_IOCTL_MAGIC, 2, struct msm_device_config *)
6411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
6511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SND_METHOD_VOICE 0
6611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
6711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct msm_snd_volume_config {
6811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert uint32_t device;
6911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert uint32_t method;
7011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert uint32_t volume;
7111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
7211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
7311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SND_SET_VOLUME _IOW(SND_IOCTL_MAGIC, 3, struct msm_snd_volume_config *)
7411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
7511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SND_GET_NUM_ENDPOINTS _IOR(SND_IOCTL_MAGIC, 4, unsigned *)
7611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
7711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct msm_snd_endpoint {
7811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int id;
7911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char name[64];
8011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
8111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
8211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SND_GET_ENDPOINT _IOWR(SND_IOCTL_MAGIC, 5, struct msm_snd_endpoint *)
8311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
8411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif
8511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
86