122851890Sopenharmony_ci/*
222851890Sopenharmony_ci * This header was generated from the Linux kernel headers by update_headers.py,
322851890Sopenharmony_ci * to provide necessary information from kernel to userspace, such as constants,
422851890Sopenharmony_ci * structures, and macros, and thus, contains no copyrightable information.
522851890Sopenharmony_ci */
622851890Sopenharmony_ci#ifndef _UAPI__SOUND_SB16_CSP_H
722851890Sopenharmony_ci#define _UAPI__SOUND_SB16_CSP_H
822851890Sopenharmony_ci#define SNDRV_SB_CSP_MODE_NONE		0x00
922851890Sopenharmony_ci#define SNDRV_SB_CSP_MODE_DSP_READ	0x01
1022851890Sopenharmony_ci#define SNDRV_SB_CSP_MODE_DSP_WRITE	0x02
1122851890Sopenharmony_ci#define SNDRV_SB_CSP_MODE_QSOUND		0x04
1222851890Sopenharmony_ci#define SNDRV_SB_CSP_LOAD_FROMUSER	0x01
1322851890Sopenharmony_ci#define SNDRV_SB_CSP_LOAD_INITBLOCK	0x02
1422851890Sopenharmony_ci#define SNDRV_SB_CSP_SAMPLE_8BIT		0x01
1522851890Sopenharmony_ci#define SNDRV_SB_CSP_SAMPLE_16BIT		0x02
1622851890Sopenharmony_ci#define SNDRV_SB_CSP_MONO			0x01
1722851890Sopenharmony_ci#define SNDRV_SB_CSP_STEREO		0x02
1822851890Sopenharmony_ci#define SNDRV_SB_CSP_RATE_8000		0x01
1922851890Sopenharmony_ci#define SNDRV_SB_CSP_RATE_11025		0x02
2022851890Sopenharmony_ci#define SNDRV_SB_CSP_RATE_22050		0x04
2122851890Sopenharmony_ci#define SNDRV_SB_CSP_RATE_44100		0x08
2222851890Sopenharmony_ci#define SNDRV_SB_CSP_RATE_ALL		0x0f
2322851890Sopenharmony_ci#define SNDRV_SB_CSP_ST_IDLE		0x00
2422851890Sopenharmony_ci#define SNDRV_SB_CSP_ST_LOADED		0x01
2522851890Sopenharmony_ci#define SNDRV_SB_CSP_ST_RUNNING		0x02
2622851890Sopenharmony_ci#define SNDRV_SB_CSP_ST_PAUSED		0x04
2722851890Sopenharmony_ci#define SNDRV_SB_CSP_ST_AUTO		0x08
2822851890Sopenharmony_ci#define SNDRV_SB_CSP_ST_QSOUND		0x10
2922851890Sopenharmony_ci#define SNDRV_SB_CSP_QSOUND_MAX_RIGHT	0x20
3022851890Sopenharmony_ci#define SNDRV_SB_CSP_MAX_MICROCODE_FILE_SIZE	0x3000
3122851890Sopenharmony_cistruct snd_sb_csp_mc_header {
3222851890Sopenharmony_ci	char codec_name[16];
3322851890Sopenharmony_ci	unsigned short func_req;
3422851890Sopenharmony_ci};
3522851890Sopenharmony_cistruct snd_sb_csp_microcode {
3622851890Sopenharmony_ci	struct snd_sb_csp_mc_header info;
3722851890Sopenharmony_ci	unsigned char data[SNDRV_SB_CSP_MAX_MICROCODE_FILE_SIZE];
3822851890Sopenharmony_ci};
3922851890Sopenharmony_cistruct snd_sb_csp_start {
4022851890Sopenharmony_ci	int sample_width;
4122851890Sopenharmony_ci	int channels;
4222851890Sopenharmony_ci};
4322851890Sopenharmony_cistruct snd_sb_csp_info {
4422851890Sopenharmony_ci	char codec_name[16];
4522851890Sopenharmony_ci	unsigned short func_nr;
4622851890Sopenharmony_ci	unsigned int acc_format;
4722851890Sopenharmony_ci	unsigned short acc_channels;
4822851890Sopenharmony_ci	unsigned short acc_width;
4922851890Sopenharmony_ci	unsigned short acc_rates;
5022851890Sopenharmony_ci	unsigned short csp_mode;
5122851890Sopenharmony_ci	unsigned short run_channels;
5222851890Sopenharmony_ci	unsigned short run_width;
5322851890Sopenharmony_ci	unsigned short version;
5422851890Sopenharmony_ci	unsigned short state;
5522851890Sopenharmony_ci};
5622851890Sopenharmony_ci#define SNDRV_SB_CSP_IOCTL_INFO		_IOR('H', 0x10, struct snd_sb_csp_info)
5722851890Sopenharmony_ci#define SNDRV_SB_CSP_IOCTL_LOAD_CODE	\
5822851890Sopenharmony_ci	_IOC(_IOC_WRITE, 'H', 0x11, sizeof(struct snd_sb_csp_microcode))
5922851890Sopenharmony_ci#define SNDRV_SB_CSP_IOCTL_UNLOAD_CODE	_IO('H', 0x12)
6022851890Sopenharmony_ci#define SNDRV_SB_CSP_IOCTL_START		_IOW('H', 0x13, struct snd_sb_csp_start)
6122851890Sopenharmony_ci#define SNDRV_SB_CSP_IOCTL_STOP		_IO('H', 0x14)
6222851890Sopenharmony_ci#define SNDRV_SB_CSP_IOCTL_PAUSE		_IO('H', 0x15)
6322851890Sopenharmony_ci#define SNDRV_SB_CSP_IOCTL_RESTART	_IO('H', 0x16)
6422851890Sopenharmony_ci#endif
65