⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hda_codec.h

📁 一个Linux下的软猫驱动
💻 H
📖 第 1 页 / 共 2 页
字号:
/* * Universal Interface for Intel High Definition Audio Codec * * Copyright (c) 2004 Takashi Iwai <tiwai@suse.de> * *  This program is free software; you can redistribute it and/or modify it *  under the terms of the GNU General Public License as published by the Free *  Software Foundation; either version 2 of the License, or (at your option) *  any later version. * *  This program is distributed in the hope that it will be useful, but WITHOUT *  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or *  FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for *  more details. * *  You should have received a copy of the GNU General Public License along with *  this program; if not, write to the Free Software Foundation, Inc., 59 *  Temple Place - Suite 330, Boston, MA  02111-1307, USA. */#ifndef __SOUND_HDA_CODEC_H#define __SOUND_HDA_CODEC_H#include <sound/info.h>#include <sound/control.h>#include <sound/pcm.h>#ifndef FOUND_KZALLOC#define kzalloc(s, f) kcalloc(1, s, f)#endif/* * nodes */#define	AC_NODE_ROOT		0x00/* * function group types */enum {	AC_GRP_AUDIO_FUNCTION = 0x01,	AC_GRP_MODEM_FUNCTION = 0x02,};	/* * widget types */enum {	AC_WID_AUD_OUT,		/* Audio Out */	AC_WID_AUD_IN,		/* Audio In */	AC_WID_AUD_MIX,		/* Audio Mixer */	AC_WID_AUD_SEL,		/* Audio Selector */	AC_WID_PIN,		/* Pin Complex */	AC_WID_POWER,		/* Power */	AC_WID_VOL_KNB,		/* Volume Knob */	AC_WID_BEEP,		/* Beep Generator */	AC_WID_VENDOR = 0x0f	/* Vendor specific */};/* * GET verbs */#define AC_VERB_GET_STREAM_FORMAT		0x0a00#define AC_VERB_GET_AMP_GAIN_MUTE		0x0b00#define AC_VERB_GET_PROC_COEF			0x0c00#define AC_VERB_GET_COEF_INDEX			0x0d00#define AC_VERB_PARAMETERS			0x0f00#define AC_VERB_GET_CONNECT_SEL			0x0f01#define AC_VERB_GET_CONNECT_LIST		0x0f02#define AC_VERB_GET_PROC_STATE			0x0f03#define AC_VERB_GET_SDI_SELECT			0x0f04#define AC_VERB_GET_POWER_STATE			0x0f05#define AC_VERB_GET_CONV			0x0f06#define AC_VERB_GET_PIN_WIDGET_CONTROL		0x0f07#define AC_VERB_GET_UNSOLICITED_RESPONSE	0x0f08#define AC_VERB_GET_PIN_SENSE			0x0f09#define AC_VERB_GET_BEEP_CONTROL		0x0f0a#define AC_VERB_GET_EAPD_BTLENABLE		0x0f0c#define AC_VERB_GET_DIGI_CONVERT		0x0f0d#define AC_VERB_GET_VOLUME_KNOB_CONTROL		0x0f0f/* f10-f1a: GPIO */#define AC_VERB_GET_GPIO_DATA			0x0f15#define AC_VERB_GET_GPIO_MASK			0x0f16#define AC_VERB_GET_GPIO_DIRECTION		0x0f17#define AC_VERB_GET_CONFIG_DEFAULT		0x0f1c/* f20: AFG/MFG */#define AC_VERB_GET_SUBSYSTEM_ID		0x0f20/* * SET verbs */#define AC_VERB_SET_STREAM_FORMAT		0x200#define AC_VERB_SET_AMP_GAIN_MUTE		0x300#define AC_VERB_SET_PROC_COEF			0x400#define AC_VERB_SET_COEF_INDEX			0x500#define AC_VERB_SET_CONNECT_SEL			0x701#define AC_VERB_SET_PROC_STATE			0x703#define AC_VERB_SET_SDI_SELECT			0x704#define AC_VERB_SET_POWER_STATE			0x705#define AC_VERB_SET_CHANNEL_STREAMID		0x706#define AC_VERB_SET_PIN_WIDGET_CONTROL		0x707#define AC_VERB_SET_UNSOLICITED_ENABLE		0x708#define AC_VERB_SET_PIN_SENSE			0x709#define AC_VERB_SET_BEEP_CONTROL		0x70a#define AC_VERB_SET_EAPD_BTLENALBE		0x70c#define AC_VERB_SET_DIGI_CONVERT_1		0x70d#define AC_VERB_SET_DIGI_CONVERT_2		0x70e#define AC_VERB_SET_VOLUME_KNOB_CONTROL		0x70f#define AC_VERB_SET_GPIO_DATA			0x715#define AC_VERB_SET_GPIO_MASK			0x716#define AC_VERB_SET_GPIO_DIRECTION		0x717#define AC_VERB_SET_CONFIG_DEFAULT_BYTES_0	0x71c#define AC_VERB_SET_CONFIG_DEFAULT_BYTES_1	0x71d#define AC_VERB_SET_CONFIG_DEFAULT_BYTES_2	0x71e#define AC_VERB_SET_CONFIG_DEFAULT_BYTES_3	0x71f#define AC_VERB_SET_CODEC_RESET			0x7ff/* * Parameter IDs */#define AC_PAR_VENDOR_ID		0x00#define AC_PAR_SUBSYSTEM_ID		0x01#define AC_PAR_REV_ID			0x02#define AC_PAR_NODE_COUNT		0x04#define AC_PAR_FUNCTION_TYPE		0x05#define AC_PAR_AUDIO_FG_CAP		0x08#define AC_PAR_AUDIO_WIDGET_CAP		0x09#define AC_PAR_PCM			0x0a#define AC_PAR_STREAM			0x0b#define AC_PAR_PIN_CAP			0x0c#define AC_PAR_AMP_IN_CAP		0x0d#define AC_PAR_CONNLIST_LEN		0x0e#define AC_PAR_POWER_STATE		0x0f#define AC_PAR_PROC_CAP			0x10#define AC_PAR_GPIO_CAP			0x11#define AC_PAR_AMP_OUT_CAP		0x12/* * AC_VERB_PARAMETERS results (32bit) *//* Function Group Type */#define AC_FGT_TYPE			(0xff<<0)#define AC_FGT_TYPE_SHIFT		0#define AC_FGT_UNSOL_CAP		(1<<8)/* Audio Function Group Capabilities */#define AC_AFG_OUT_DELAY		(0xf<<0)#define AC_AFG_IN_DELAY			(0xf<<8)#define AC_AFG_BEEP_GEN			(1<<16)/* Audio Widget Capabilities */#define AC_WCAP_STEREO			(1<<0)	/* stereo I/O */#define AC_WCAP_IN_AMP			(1<<1)	/* AMP-in present */#define AC_WCAP_OUT_AMP			(1<<2)	/* AMP-out present */#define AC_WCAP_AMP_OVRD		(1<<3)	/* AMP-parameter override */#define AC_WCAP_FORMAT_OVRD		(1<<4)	/* format override */#define AC_WCAP_STRIPE			(1<<5)	/* stripe */#define AC_WCAP_PROC_WID		(1<<6)	/* Proc Widget */#define AC_WCAP_UNSOL_CAP		(1<<7)	/* Unsol capable */#define AC_WCAP_CONN_LIST		(1<<8)	/* connection list */#define AC_WCAP_DIGITAL			(1<<9)	/* digital I/O */#define AC_WCAP_POWER			(1<<10)	/* power control */#define AC_WCAP_LR_SWAP			(1<<11)	/* L/R swap */#define AC_WCAP_DELAY			(0xf<<16)#define AC_WCAP_DELAY_SHIFT		16#define AC_WCAP_TYPE			(0xf<<20)#define AC_WCAP_TYPE_SHIFT		20/* supported PCM rates and bits */#define AC_SUPPCM_RATES			(0xfff << 0)#define AC_SUPPCM_BITS_8		(1<<16)#define AC_SUPPCM_BITS_16		(1<<17)#define AC_SUPPCM_BITS_20		(1<<18)#define AC_SUPPCM_BITS_24		(1<<19)#define AC_SUPPCM_BITS_32		(1<<20)/* supported PCM stream format */#define AC_SUPFMT_PCM			(1<<0)#define AC_SUPFMT_FLOAT32		(1<<1)#define AC_SUPFMT_AC3			(1<<2)/* Pin widget capabilies */#define AC_PINCAP_IMP_SENSE		(1<<0)	/* impedance sense capable */#define AC_PINCAP_TRIG_REQ		(1<<1)	/* trigger required */#define AC_PINCAP_PRES_DETECT		(1<<2)	/* presence detect capable */#define AC_PINCAP_HP_DRV		(1<<3)	/* headphone drive capable */#define AC_PINCAP_OUT			(1<<4)	/* output capable */#define AC_PINCAP_IN			(1<<5)	/* input capable */#define AC_PINCAP_BALANCE		(1<<6)	/* balanced I/O capable */#define AC_PINCAP_VREF			(0x37<<8)#define AC_PINCAP_VREF_SHIFT		8#define AC_PINCAP_EAPD			(1<<16)	/* EAPD capable *//* Vref status (used in pin cap) */#define AC_PINCAP_VREF_HIZ		(1<<0)	/* Hi-Z */#define AC_PINCAP_VREF_50		(1<<1)	/* 50% */#define AC_PINCAP_VREF_GRD		(1<<2)	/* ground */#define AC_PINCAP_VREF_80		(1<<4)	/* 80% */#define AC_PINCAP_VREF_100		(1<<5)	/* 100% *//* Amplifier capabilities */#define AC_AMPCAP_OFFSET		(0x7f<<0)  /* 0dB offset */#define AC_AMPCAP_OFFSET_SHIFT		0#define AC_AMPCAP_NUM_STEPS		(0x7f<<8)  /* number of steps */#define AC_AMPCAP_NUM_STEPS_SHIFT	8#define AC_AMPCAP_STEP_SIZE		(0x7f<<16) /* step size 0-32dB in 0.25dB */#define AC_AMPCAP_STEP_SIZE_SHIFT	16#define AC_AMPCAP_MUTE			(1<<31)    /* mute capable */#define AC_AMPCAP_MUTE_SHIFT		31/* Connection list */#define AC_CLIST_LENGTH			(0x7f<<0)#define AC_CLIST_LONG			(1<<7)/* Supported power status */#define AC_PWRST_D0SUP			(1<<0)#define AC_PWRST_D1SUP			(1<<1)#define AC_PWRST_D2SUP			(1<<2)#define AC_PWRST_D3SUP			(1<<3)/* Processing capabilies */#define AC_PCAP_BENIGN			(1<<0)#define AC_PCAP_NUM_COEF		(0xff<<8)/* Volume knobs capabilities */#define AC_KNBCAP_NUM_STEPS		(0x7f<<0)#define AC_KNBCAP_DELTA			(1<<8)/* * Control Parameters *//* Amp gain/mute */#define AC_AMP_MUTE			(1<<8)#define AC_AMP_GAIN			(0x7f)#define AC_AMP_GET_INDEX		(0xf<<0)#define AC_AMP_GET_LEFT			(1<<13)#define AC_AMP_GET_RIGHT		(0<<13)#define AC_AMP_GET_OUTPUT		(1<<15)#define AC_AMP_GET_INPUT		(0<<15)#define AC_AMP_SET_INDEX		(0xf<<8)#define AC_AMP_SET_INDEX_SHIFT		8#define AC_AMP_SET_RIGHT		(1<<12)#define AC_AMP_SET_LEFT			(1<<13)#define AC_AMP_SET_INPUT		(1<<14)#define AC_AMP_SET_OUTPUT		(1<<15)/* DIGITAL1 bits */#define AC_DIG1_ENABLE			(1<<0)#define AC_DIG1_V			(1<<1)#define AC_DIG1_VCFG			(1<<2)#define AC_DIG1_EMPHASIS		(1<<3)#define AC_DIG1_COPYRIGHT		(1<<4)#define AC_DIG1_NONAUDIO		(1<<5)#define AC_DIG1_PROFESSIONAL		(1<<6)#define AC_DIG1_LEVEL			(1<<7)/* Pin widget control - 8bit */#define AC_PINCTL_VREFEN		(0x7<<0)#define AC_PINCTL_VREF_HIZ		0	/* Hi-Z */#define AC_PINCTL_VREF_50		1	/* 50% */#define AC_PINCTL_VREF_GRD		2	/* ground */#define AC_PINCTL_VREF_80		4	/* 80% */#define AC_PINCTL_VREF_100		5	/* 100% */#define AC_PINCTL_IN_EN			(1<<5)#define AC_PINCTL_OUT_EN		(1<<6)#define AC_PINCTL_HP_EN			(1<<7)/* Unsolicited response - 8bit */#define AC_USRSP_EN			(1<<7)/* configuration default - 32bit */#define AC_DEFCFG_SEQUENCE		(0xf<<0)#define AC_DEFCFG_DEF_ASSOC		(0xf<<4)#define AC_DEFCFG_ASSOC_SHIFT		4#define AC_DEFCFG_MISC			(0xf<<8)#define AC_DEFCFG_MISC_SHIFT		8#define AC_DEFCFG_COLOR			(0xf<<12)#define AC_DEFCFG_COLOR_SHIFT		12#define AC_DEFCFG_CONN_TYPE		(0xf<<16)#define AC_DEFCFG_CONN_TYPE_SHIFT	16#define AC_DEFCFG_DEVICE		(0xf<<20)#define AC_DEFCFG_DEVICE_SHIFT		20#define AC_DEFCFG_LOCATION		(0x3f<<24)#define AC_DEFCFG_LOCATION_SHIFT	24#define AC_DEFCFG_PORT_CONN		(0x3<<30)#define AC_DEFCFG_PORT_CONN_SHIFT	30/* device device types (0x0-0xf) */enum {	AC_JACK_LINE_OUT,	AC_JACK_SPEAKER,	AC_JACK_HP_OUT,	AC_JACK_CD,	AC_JACK_SPDIF_OUT,	AC_JACK_DIG_OTHER_OUT,	AC_JACK_MODEM_LINE_SIDE,	AC_JACK_MODEM_HAND_SIDE,	AC_JACK_LINE_IN,	AC_JACK_AUX,	AC_JACK_MIC_IN,	AC_JACK_TELEPHONY,	AC_JACK_SPDIF_IN,	AC_JACK_DIG_OTHER_IN,	AC_JACK_OTHER = 0xf,};/* jack connection types (0x0-0xf) */enum {	AC_JACK_CONN_UNKNOWN,	AC_JACK_CONN_1_8,	AC_JACK_CONN_1_4,	AC_JACK_CONN_ATAPI,	AC_JACK_CONN_RCA,	AC_JACK_CONN_OPTICAL,	AC_JACK_CONN_OTHER_DIGITAL,	AC_JACK_CONN_OTHER_ANALOG,

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -