Linux Kernel
3.7.1
|
#include <linux/bitops.h>
#include <linux/device.h>
#include <linux/workqueue.h>
#include <sound/pcm.h>
#include <sound/control.h>
#include <sound/info.h>
Go to the source code of this file.
Data Structures | |
struct | snd_ac97_build_ops |
struct | snd_ac97_bus_ops |
struct | snd_ac97_bus |
struct | snd_ac97_res_table |
struct | snd_ac97_template |
struct | snd_ac97 |
struct | ac97_quirk |
struct | ac97_pcm |
Macros | |
#define | AC97_BUS_MAX_DEVICES 4 |
#define | AC97_RESET 0x00 /* Reset */ |
#define | AC97_MASTER 0x02 /* Master Volume */ |
#define | AC97_HEADPHONE 0x04 /* Headphone Volume (optional) */ |
#define | AC97_MASTER_MONO 0x06 /* Master Volume Mono (optional) */ |
#define | AC97_MASTER_TONE 0x08 /* Master Tone (Bass & Treble) (optional) */ |
#define | AC97_PC_BEEP 0x0a /* PC Beep Volume (optinal) */ |
#define | AC97_PHONE 0x0c /* Phone Volume (optional) */ |
#define | AC97_MIC 0x0e /* MIC Volume */ |
#define | AC97_LINE 0x10 /* Line In Volume */ |
#define | AC97_CD 0x12 /* CD Volume */ |
#define | AC97_VIDEO 0x14 /* Video Volume (optional) */ |
#define | AC97_AUX 0x16 /* AUX Volume (optional) */ |
#define | AC97_PCM 0x18 /* PCM Volume */ |
#define | AC97_REC_SEL 0x1a /* Record Select */ |
#define | AC97_REC_GAIN 0x1c /* Record Gain */ |
#define | AC97_REC_GAIN_MIC 0x1e /* Record Gain MIC (optional) */ |
#define | AC97_GENERAL_PURPOSE 0x20 /* General Purpose (optional) */ |
#define | AC97_3D_CONTROL 0x22 /* 3D Control (optional) */ |
#define | AC97_INT_PAGING 0x24 /* Audio Interrupt & Paging (AC'97 2.3) */ |
#define | AC97_POWERDOWN 0x26 /* Powerdown control / status */ |
#define | AC97_EXTENDED_ID 0x28 /* Extended Audio ID */ |
#define | AC97_EXTENDED_STATUS 0x2a /* Extended Audio Status and Control */ |
#define | AC97_PCM_FRONT_DAC_RATE 0x2c /* PCM Front DAC Rate */ |
#define | AC97_PCM_SURR_DAC_RATE 0x2e /* PCM Surround DAC Rate */ |
#define | AC97_PCM_LFE_DAC_RATE 0x30 /* PCM LFE DAC Rate */ |
#define | AC97_PCM_LR_ADC_RATE 0x32 /* PCM LR ADC Rate */ |
#define | AC97_PCM_MIC_ADC_RATE 0x34 /* PCM MIC ADC Rate */ |
#define | AC97_CENTER_LFE_MASTER 0x36 /* Center + LFE Master Volume */ |
#define | AC97_SURROUND_MASTER 0x38 /* Surround (Rear) Master Volume */ |
#define | AC97_SPDIF 0x3a /* S/PDIF control */ |
#define | AC97_EXTENDED_MID 0x3c /* Extended Modem ID */ |
#define | AC97_EXTENDED_MSTATUS 0x3e /* Extended Modem Status and Control */ |
#define | AC97_LINE1_RATE 0x40 /* Line1 DAC/ADC Rate */ |
#define | AC97_LINE2_RATE 0x42 /* Line2 DAC/ADC Rate */ |
#define | AC97_HANDSET_RATE 0x44 /* Handset DAC/ADC Rate */ |
#define | AC97_LINE1_LEVEL 0x46 /* Line1 DAC/ADC Level */ |
#define | AC97_LINE2_LEVEL 0x48 /* Line2 DAC/ADC Level */ |
#define | AC97_HANDSET_LEVEL 0x4a /* Handset DAC/ADC Level */ |
#define | AC97_GPIO_CFG 0x4c /* GPIO Configuration */ |
#define | AC97_GPIO_POLARITY 0x4e /* GPIO Pin Polarity/Type, 0=low, 1=high active */ |
#define | AC97_GPIO_STICKY 0x50 /* GPIO Pin Sticky, 0=not, 1=sticky */ |
#define | AC97_GPIO_WAKEUP 0x52 /* GPIO Pin Wakeup, 0=no int, 1=yes int */ |
#define | AC97_GPIO_STATUS 0x54 /* GPIO Pin Status, slot 12 */ |
#define | AC97_MISC_AFE 0x56 /* Miscellaneous Modem AFE Status and Control */ |
#define | AC97_VENDOR_ID1 0x7c /* Vendor ID1 */ |
#define | AC97_VENDOR_ID2 0x7e /* Vendor ID2 / revision */ |
#define | AC97_CODEC_CLASS_REV 0x60 /* Codec Class/Revision */ |
#define | AC97_PCI_SVID 0x62 /* PCI Subsystem Vendor ID */ |
#define | AC97_PCI_SID 0x64 /* PCI Subsystem ID */ |
#define | AC97_FUNC_SELECT 0x66 /* Function Select */ |
#define | AC97_FUNC_INFO 0x68 /* Function Information */ |
#define | AC97_SENSE_INFO 0x6a /* Sense Details */ |
#define | AC97_MUTE_MASK_MONO 0x8000 |
#define | AC97_MUTE_MASK_STEREO 0x8080 |
#define | AC97_SLOT_TAG 0 |
#define | AC97_SLOT_CMD_ADDR 1 |
#define | AC97_SLOT_CMD_DATA 2 |
#define | AC97_SLOT_PCM_LEFT 3 |
#define | AC97_SLOT_PCM_RIGHT 4 |
#define | AC97_SLOT_MODEM_LINE1 5 |
#define | AC97_SLOT_PCM_CENTER 6 |
#define | AC97_SLOT_MIC 6 /* input */ |
#define | AC97_SLOT_SPDIF_LEFT1 6 |
#define | AC97_SLOT_PCM_SLEFT 7 /* surround left */ |
#define | AC97_SLOT_PCM_LEFT_0 7 /* double rate operation */ |
#define | AC97_SLOT_SPDIF_LEFT 7 |
#define | AC97_SLOT_PCM_SRIGHT 8 /* surround right */ |
#define | AC97_SLOT_PCM_RIGHT_0 8 /* double rate operation */ |
#define | AC97_SLOT_SPDIF_RIGHT 8 |
#define | AC97_SLOT_LFE 9 |
#define | AC97_SLOT_SPDIF_RIGHT1 9 |
#define | AC97_SLOT_MODEM_LINE2 10 |
#define | AC97_SLOT_PCM_LEFT_1 10 /* double rate operation */ |
#define | AC97_SLOT_SPDIF_LEFT2 10 |
#define | AC97_SLOT_HANDSET 11 /* output */ |
#define | AC97_SLOT_PCM_RIGHT_1 11 /* double rate operation */ |
#define | AC97_SLOT_SPDIF_RIGHT2 11 |
#define | AC97_SLOT_MODEM_GPIO 12 /* modem GPIO */ |
#define | AC97_SLOT_PCM_CENTER_1 12 /* double rate operation */ |
#define | AC97_BC_DEDICATED_MIC 0x0001 /* Dedicated Mic PCM In Channel */ |
#define | AC97_BC_RESERVED1 0x0002 /* Reserved (was Modem Line Codec support) */ |
#define | AC97_BC_BASS_TREBLE 0x0004 /* Bass & Treble Control */ |
#define | AC97_BC_SIM_STEREO 0x0008 /* Simulated stereo */ |
#define | AC97_BC_HEADPHONE 0x0010 /* Headphone Out Support */ |
#define | AC97_BC_LOUDNESS 0x0020 /* Loudness (bass boost) Support */ |
#define | AC97_BC_16BIT_DAC 0x0000 /* 16-bit DAC resolution */ |
#define | AC97_BC_18BIT_DAC 0x0040 /* 18-bit DAC resolution */ |
#define | AC97_BC_20BIT_DAC 0x0080 /* 20-bit DAC resolution */ |
#define | AC97_BC_DAC_MASK 0x00c0 |
#define | AC97_BC_16BIT_ADC 0x0000 /* 16-bit ADC resolution */ |
#define | AC97_BC_18BIT_ADC 0x0100 /* 18-bit ADC resolution */ |
#define | AC97_BC_20BIT_ADC 0x0200 /* 20-bit ADC resolution */ |
#define | AC97_BC_ADC_MASK 0x0300 |
#define | AC97_BC_3D_TECH_ID_MASK 0x7c00 /* Per-vendor ID of 3D enhancement */ |
#define | AC97_GP_DRSS_MASK 0x0c00 /* double rate slot select */ |
#define | AC97_GP_DRSS_1011 0x0000 /* LR(C) 10+11(+12) */ |
#define | AC97_GP_DRSS_78 0x0400 /* LR 7+8 */ |
#define | AC97_PD_ADC_STATUS 0x0001 /* ADC status (RO) */ |
#define | AC97_PD_DAC_STATUS 0x0002 /* DAC status (RO) */ |
#define | AC97_PD_MIXER_STATUS 0x0004 /* Analog mixer status (RO) */ |
#define | AC97_PD_VREF_STATUS 0x0008 /* Vref status (RO) */ |
#define | AC97_PD_PR0 0x0100 /* Power down PCM ADCs and input MUX */ |
#define | AC97_PD_PR1 0x0200 /* Power down PCM front DAC */ |
#define | AC97_PD_PR2 0x0400 /* Power down Mixer (Vref still on) */ |
#define | AC97_PD_PR3 0x0800 /* Power down Mixer (Vref off) */ |
#define | AC97_PD_PR4 0x1000 /* Power down AC-Link */ |
#define | AC97_PD_PR5 0x2000 /* Disable internal clock usage */ |
#define | AC97_PD_PR6 0x4000 /* Headphone amplifier */ |
#define | AC97_PD_EAPD 0x8000 /* External Amplifer Power Down (EAPD) */ |
#define | AC97_EI_VRA 0x0001 /* Variable bit rate supported */ |
#define | AC97_EI_DRA 0x0002 /* Double rate supported */ |
#define | AC97_EI_SPDIF 0x0004 /* S/PDIF out supported */ |
#define | AC97_EI_VRM 0x0008 /* Variable bit rate supported for MIC */ |
#define | AC97_EI_DACS_SLOT_MASK 0x0030 /* DACs slot assignment */ |
#define | AC97_EI_DACS_SLOT_SHIFT 4 |
#define | AC97_EI_CDAC 0x0040 /* PCM Center DAC available */ |
#define | AC97_EI_SDAC 0x0080 /* PCM Surround DACs available */ |
#define | AC97_EI_LDAC 0x0100 /* PCM LFE DAC available */ |
#define | AC97_EI_AMAP 0x0200 /* indicates optional slot/DAC mapping based on codec ID */ |
#define | AC97_EI_REV_MASK 0x0c00 /* AC'97 revision mask */ |
#define | AC97_EI_REV_22 0x0400 /* AC'97 revision 2.2 */ |
#define | AC97_EI_REV_23 0x0800 /* AC'97 revision 2.3 */ |
#define | AC97_EI_REV_SHIFT 10 |
#define | AC97_EI_ADDR_MASK 0xc000 /* physical codec ID (address) */ |
#define | AC97_EI_ADDR_SHIFT 14 |
#define | AC97_EA_VRA 0x0001 /* Variable bit rate enable bit */ |
#define | AC97_EA_DRA 0x0002 /* Double-rate audio enable bit */ |
#define | AC97_EA_SPDIF 0x0004 /* S/PDIF out enable bit */ |
#define | AC97_EA_VRM 0x0008 /* Variable bit rate for MIC enable bit */ |
#define | AC97_EA_SPSA_SLOT_MASK 0x0030 /* Mask for slot assignment bits */ |
#define | AC97_EA_SPSA_SLOT_SHIFT 4 |
#define | AC97_EA_SPSA_3_4 0x0000 /* Slot assigned to 3 & 4 */ |
#define | AC97_EA_SPSA_7_8 0x0010 /* Slot assigned to 7 & 8 */ |
#define | AC97_EA_SPSA_6_9 0x0020 /* Slot assigned to 6 & 9 */ |
#define | AC97_EA_SPSA_10_11 0x0030 /* Slot assigned to 10 & 11 */ |
#define | AC97_EA_CDAC 0x0040 /* PCM Center DAC is ready (Read only) */ |
#define | AC97_EA_SDAC 0x0080 /* PCM Surround DACs are ready (Read only) */ |
#define | AC97_EA_LDAC 0x0100 /* PCM LFE DAC is ready (Read only) */ |
#define | AC97_EA_MDAC 0x0200 /* MIC ADC is ready (Read only) */ |
#define | AC97_EA_SPCV 0x0400 /* S/PDIF configuration valid (Read only) */ |
#define | AC97_EA_PRI 0x0800 /* Turns the PCM Center DAC off */ |
#define | AC97_EA_PRJ 0x1000 /* Turns the PCM Surround DACs off */ |
#define | AC97_EA_PRK 0x2000 /* Turns the PCM LFE DAC off */ |
#define | AC97_EA_PRL 0x4000 /* Turns the MIC ADC off */ |
#define | AC97_SC_PRO 0x0001 /* Professional status */ |
#define | AC97_SC_NAUDIO 0x0002 /* Non audio stream */ |
#define | AC97_SC_COPY 0x0004 /* Copyright status */ |
#define | AC97_SC_PRE 0x0008 /* Preemphasis status */ |
#define | AC97_SC_CC_MASK 0x07f0 /* Category Code mask */ |
#define | AC97_SC_CC_SHIFT 4 |
#define | AC97_SC_L 0x0800 /* Generation Level status */ |
#define | AC97_SC_SPSR_MASK 0x3000 /* S/PDIF Sample Rate bits */ |
#define | AC97_SC_SPSR_SHIFT 12 |
#define | AC97_SC_SPSR_44K 0x0000 /* Use 44.1kHz Sample rate */ |
#define | AC97_SC_SPSR_48K 0x2000 /* Use 48kHz Sample rate */ |
#define | AC97_SC_SPSR_32K 0x3000 /* Use 32kHz Sample rate */ |
#define | AC97_SC_DRS 0x4000 /* Double Rate S/PDIF */ |
#define | AC97_SC_V 0x8000 /* Validity status */ |
#define | AC97_PAGE_MASK 0x000f /* Page Selector */ |
#define | AC97_PAGE_VENDOR 0 /* Vendor-specific registers */ |
#define | AC97_PAGE_1 1 /* Extended Codec Registers page 1 */ |
#define | AC97_INT_ENABLE 0x0800 /* Interrupt Enable */ |
#define | AC97_INT_SENSE 0x1000 /* Sense Cycle */ |
#define | AC97_INT_CAUSE_SENSE 0x2000 /* Sense Cycle Completed (RO) */ |
#define | AC97_INT_CAUSE_GPIO 0x4000 /* GPIO bits changed (RO) */ |
#define | AC97_INT_STATUS 0x8000 /* Interrupt Status */ |
#define | AC97_MEI_LINE1 0x0001 /* Line1 present */ |
#define | AC97_MEI_LINE2 0x0002 /* Line2 present */ |
#define | AC97_MEI_HANDSET 0x0004 /* Handset present */ |
#define | AC97_MEI_CID1 0x0008 /* caller ID decode for Line1 is supported */ |
#define | AC97_MEI_CID2 0x0010 /* caller ID decode for Line2 is supported */ |
#define | AC97_MEI_ADDR_MASK 0xc000 /* physical codec ID (address) */ |
#define | AC97_MEI_ADDR_SHIFT 14 |
#define | AC97_MEA_GPIO 0x0001 /* GPIO is ready (ro) */ |
#define | AC97_MEA_MREF 0x0002 /* Vref is up to nominal level (ro) */ |
#define | AC97_MEA_ADC1 0x0004 /* ADC1 operational (ro) */ |
#define | AC97_MEA_DAC1 0x0008 /* DAC1 operational (ro) */ |
#define | AC97_MEA_ADC2 0x0010 /* ADC2 operational (ro) */ |
#define | AC97_MEA_DAC2 0x0020 /* DAC2 operational (ro) */ |
#define | AC97_MEA_HADC 0x0040 /* HADC operational (ro) */ |
#define | AC97_MEA_HDAC 0x0080 /* HDAC operational (ro) */ |
#define | AC97_MEA_PRA 0x0100 /* GPIO power down (high) */ |
#define | AC97_MEA_PRB 0x0200 /* reserved */ |
#define | AC97_MEA_PRC 0x0400 /* ADC1 power down (high) */ |
#define | AC97_MEA_PRD 0x0800 /* DAC1 power down (high) */ |
#define | AC97_MEA_PRE 0x1000 /* ADC2 power down (high) */ |
#define | AC97_MEA_PRF 0x2000 /* DAC2 power down (high) */ |
#define | AC97_MEA_PRG 0x4000 /* HADC power down (high) */ |
#define | AC97_MEA_PRH 0x8000 /* HDAC power down (high) */ |
#define | AC97_GPIO_LINE1_OH 0x0001 /* Off Hook Line1 */ |
#define | AC97_GPIO_LINE1_RI 0x0002 /* Ring Detect Line1 */ |
#define | AC97_GPIO_LINE1_CID 0x0004 /* Caller ID path enable Line1 */ |
#define | AC97_GPIO_LINE1_LCS 0x0008 /* Loop Current Sense Line1 */ |
#define | AC97_GPIO_LINE1_PULSE 0x0010 /* Opt./ Pulse Dial Line1 (out) */ |
#define | AC97_GPIO_LINE1_HL1R 0x0020 /* Opt./ Handset to Line1 relay control (out) */ |
#define | AC97_GPIO_LINE1_HOHD 0x0040 /* Opt./ Handset off hook detect Line1 (in) */ |
#define | AC97_GPIO_LINE12_AC 0x0080 /* Opt./ Int.bit 1 / Line1/2 AC (out) */ |
#define | AC97_GPIO_LINE12_DC 0x0100 /* Opt./ Int.bit 2 / Line1/2 DC (out) */ |
#define | AC97_GPIO_LINE12_RS 0x0200 /* Opt./ Int.bit 3 / Line1/2 RS (out) */ |
#define | AC97_GPIO_LINE2_OH 0x0400 /* Off Hook Line2 */ |
#define | AC97_GPIO_LINE2_RI 0x0800 /* Ring Detect Line2 */ |
#define | AC97_GPIO_LINE2_CID 0x1000 /* Caller ID path enable Line2 */ |
#define | AC97_GPIO_LINE2_LCS 0x2000 /* Loop Current Sense Line2 */ |
#define | AC97_GPIO_LINE2_PULSE 0x4000 /* Opt./ Pulse Dial Line2 (out) */ |
#define | AC97_GPIO_LINE2_HL1R 0x8000 /* Opt./ Handset to Line2 relay control (out) */ |
#define | AC97_SIGMATEL_OUTSEL 0x64 /* Output Select, STAC9758 */ |
#define | AC97_SIGMATEL_INSEL 0x66 /* Input Select, STAC9758 */ |
#define | AC97_SIGMATEL_IOMISC 0x68 /* STAC9758 */ |
#define | AC97_SIGMATEL_ANALOG 0x6c /* Analog Special */ |
#define | AC97_SIGMATEL_DAC2INVERT 0x6e |
#define | AC97_SIGMATEL_BIAS1 0x70 |
#define | AC97_SIGMATEL_BIAS2 0x72 |
#define | AC97_SIGMATEL_VARIOUS 0x72 /* STAC9758 */ |
#define | AC97_SIGMATEL_MULTICHN 0x74 /* Multi-Channel programming */ |
#define | AC97_SIGMATEL_CIC1 0x76 |
#define | AC97_SIGMATEL_CIC2 0x78 |
#define | AC97_AD_TEST 0x5a /* test register */ |
#define | AC97_AD_TEST2 0x5c /* undocumented test register 2 */ |
#define | AC97_AD_HPFD_SHIFT 12 /* High Pass Filter Disable */ |
#define | AC97_AD_CODEC_CFG 0x70 /* codec configuration */ |
#define | AC97_AD_JACK_SPDIF 0x72 /* Jack Sense & S/PDIF */ |
#define | AC97_AD_SERIAL_CFG 0x74 /* Serial Configuration */ |
#define | AC97_AD_MISC 0x76 /* Misc Control Bits */ |
#define | AC97_AD_VREFD_SHIFT 2 /* V_REFOUT Disable (AD1888) */ |
#define | AC97_CSR_ACMODE 0x5e /* AC Mode Register */ |
#define | AC97_CSR_MISC_CRYSTAL 0x60 /* Misc Crystal Control */ |
#define | AC97_CSR_SPDIF 0x68 /* S/PDIF Register */ |
#define | AC97_CSR_SERIAL 0x6a /* Serial Port Control */ |
#define | AC97_CSR_SPECF_ADDR 0x6c /* Special Feature Address */ |
#define | AC97_CSR_SPECF_DATA 0x6e /* Special Feature Data */ |
#define | AC97_CSR_BDI_STATUS 0x7a /* BDI Status */ |
#define | AC97_CXR_AUDIO_MISC 0x5c |
#define | AC97_CXR_SPDIFEN (1<<3) |
#define | AC97_CXR_COPYRGT (1<<2) |
#define | AC97_CXR_SPDIF_MASK (3<<0) |
#define | AC97_CXR_SPDIF_PCM 0x0 |
#define | AC97_CXR_SPDIF_AC3 0x2 |
#define | AC97_ALC650_SPDIF_INPUT_STATUS1 0x60 |
#define | AC97_ALC650_PRO 0x0001 /* Professional status */ |
#define | AC97_ALC650_NAUDIO 0x0002 /* Non audio stream */ |
#define | AC97_ALC650_COPY 0x0004 /* Copyright status */ |
#define | AC97_ALC650_PRE 0x0038 /* Preemphasis status */ |
#define | AC97_ALC650_PRE_SHIFT 3 |
#define | AC97_ALC650_MODE 0x00C0 /* Preemphasis status */ |
#define | AC97_ALC650_MODE_SHIFT 6 |
#define | AC97_ALC650_CC_MASK 0x7f00 /* Category Code mask */ |
#define | AC97_ALC650_CC_SHIFT 8 |
#define | AC97_ALC650_L 0x8000 /* Generation Level status */ |
#define | AC97_ALC650_SPDIF_INPUT_STATUS2 0x62 |
#define | AC97_ALC650_SOUCE_MASK 0x000f /* Source number */ |
#define | AC97_ALC650_CHANNEL_MASK 0x00f0 /* Channel number */ |
#define | AC97_ALC650_CHANNEL_SHIFT 4 |
#define | AC97_ALC650_SPSR_MASK 0x0f00 /* S/PDIF Sample Rate bits */ |
#define | AC97_ALC650_SPSR_SHIFT 8 |
#define | AC97_ALC650_SPSR_44K 0x0000 /* Use 44.1kHz Sample rate */ |
#define | AC97_ALC650_SPSR_48K 0x0200 /* Use 48kHz Sample rate */ |
#define | AC97_ALC650_SPSR_32K 0x0300 /* Use 32kHz Sample rate */ |
#define | AC97_ALC650_CLOCK_ACCURACY 0x3000 /* Clock accuracy */ |
#define | AC97_ALC650_CLOCK_SHIFT 12 |
#define | AC97_ALC650_CLOCK_LOCK 0x4000 /* Clock locked status */ |
#define | AC97_ALC650_V 0x8000 /* Validity status */ |
#define | AC97_ALC650_SURR_DAC_VOL 0x64 |
#define | AC97_ALC650_LFE_DAC_VOL 0x66 |
#define | AC97_ALC650_UNKNOWN1 0x68 |
#define | AC97_ALC650_MULTICH 0x6a |
#define | AC97_ALC650_UNKNOWN2 0x6c |
#define | AC97_ALC650_REVISION 0x6e |
#define | AC97_ALC650_UNKNOWN3 0x70 |
#define | AC97_ALC650_UNKNOWN4 0x72 |
#define | AC97_ALC650_MISC 0x74 |
#define | AC97_ALC650_GPIO_SETUP 0x76 |
#define | AC97_ALC650_GPIO_STATUS 0x78 |
#define | AC97_ALC650_CLOCK 0x7a |
#define | AC97_YMF7X3_DIT_CTRL 0x66 /* DIT Control (YMF743) / 2 (YMF753) */ |
#define | AC97_YMF7X3_3D_MODE_SEL 0x68 /* 3D Mode Select */ |
#define | AC97_CM9738_VENDOR_CTRL 0x5a |
#define | AC97_CM9739_MULTI_CHAN 0x64 |
#define | AC97_CM9739_SPDIF_IN_STATUS 0x68 /* 32bit */ |
#define | AC97_CM9739_SPDIF_CTRL 0x6c |
#define | AC97_WM97XX_FMIXER_VOL 0x72 |
#define | AC97_WM9704_RMIXER_VOL 0x74 |
#define | AC97_WM9704_TEST 0x5a |
#define | AC97_WM9704_RPCM_VOL 0x70 |
#define | AC97_WM9711_OUT3VOL 0x16 |
#define | AC97_SCAP_AUDIO (1<<0) /* audio codec 97 */ |
#define | AC97_SCAP_MODEM (1<<1) /* modem codec 97 */ |
#define | AC97_SCAP_SURROUND_DAC (1<<2) /* surround L&R DACs are present */ |
#define | AC97_SCAP_CENTER_LFE_DAC (1<<3) /* center and LFE DACs are present */ |
#define | AC97_SCAP_SKIP_AUDIO (1<<4) /* skip audio part of codec */ |
#define | AC97_SCAP_SKIP_MODEM (1<<5) /* skip modem part of codec */ |
#define | AC97_SCAP_INDEP_SDIN (1<<6) /* independent SDIN */ |
#define | AC97_SCAP_INV_EAPD (1<<7) /* inverted EAPD */ |
#define | AC97_SCAP_DETECT_BY_VENDOR (1<<8) /* use vendor registers for read tests */ |
#define | AC97_SCAP_NO_SPDIF (1<<9) /* don't build SPDIF controls */ |
#define | AC97_SCAP_EAPD_LED (1<<10) /* EAPD as mute LED */ |
#define | AC97_SCAP_POWER_SAVE (1<<11) /* capable for aggressive power-saving */ |
#define | AC97_HAS_PC_BEEP (1<<0) /* force PC Speaker usage */ |
#define | AC97_AD_MULTI (1<<1) /* Analog Devices - multi codecs */ |
#define | AC97_CS_SPDIF (1<<2) /* Cirrus Logic uses funky SPDIF */ |
#define | AC97_CX_SPDIF (1<<3) /* Conexant's spdif interface */ |
#define | AC97_STEREO_MUTES (1<<4) /* has stereo mute bits */ |
#define | AC97_DOUBLE_RATE (1<<5) /* supports double rate playback */ |
#define | AC97_HAS_NO_MASTER_VOL (1<<6) /* no Master volume */ |
#define | AC97_HAS_NO_PCM_VOL (1<<7) /* no PCM volume */ |
#define | AC97_DEFAULT_POWER_OFF (1<<8) /* no RESET write */ |
#define | AC97_MODEM_PATCH (1<<9) /* modem patch */ |
#define | AC97_HAS_NO_REC_GAIN (1<<10) /* no Record gain */ |
#define | AC97_HAS_NO_PHONE (1<<11) /* no PHONE volume */ |
#define | AC97_HAS_NO_PC_BEEP (1<<12) /* no PC Beep volume */ |
#define | AC97_HAS_NO_VIDEO (1<<13) /* no Video volume */ |
#define | AC97_HAS_NO_CD (1<<14) /* no CD volume */ |
#define | AC97_HAS_NO_MIC (1<<15) /* no MIC volume */ |
#define | AC97_HAS_NO_TONE (1<<16) /* no Tone volume */ |
#define | AC97_HAS_NO_STD_PCM (1<<17) /* no standard AC97 PCM volume and mute */ |
#define | AC97_HAS_NO_AUX (1<<18) /* no standard AC97 AUX volume and mute */ |
#define | AC97_HAS_8CH (1<<19) /* supports 8-channel output */ |
#define | AC97_RATES_FRONT_DAC 0 |
#define | AC97_RATES_SURR_DAC 1 |
#define | AC97_RATES_LFE_DAC 2 |
#define | AC97_RATES_ADC 3 |
#define | AC97_RATES_MIC_ADC 4 |
#define | AC97_RATES_SPDIF 5 |
#define | to_ac97_t(d) container_of(d, struct snd_ac97, dev) |
Enumerations | |
enum | { AC97_TUNE_DEFAULT = -1, AC97_TUNE_NONE = 0, AC97_TUNE_HP_ONLY, AC97_TUNE_SWAP_HP, AC97_TUNE_SWAP_SURROUND, AC97_TUNE_AD_SHARING, AC97_TUNE_ALC_JACK, AC97_TUNE_INV_EAPD, AC97_TUNE_MUTE_LED, AC97_TUNE_HP_MUTE_LED } |
enum | ac97_pcm_cfg { AC97_PCM_CFG_FRONT = 2, AC97_PCM_CFG_REAR = 10, AC97_PCM_CFG_LFE = 11, AC97_PCM_CFG_40 = 4, AC97_PCM_CFG_51 = 6, AC97_PCM_CFG_SPDIF = 20 } |
Variables | |
struct bus_type | ac97_bus_type |
#define AC97_3D_CONTROL 0x22 /* 3D Control (optional) */ |
Definition at line 59 of file ac97_codec.h.
#define AC97_AD_CODEC_CFG 0x70 /* codec configuration */ |
Definition at line 293 of file ac97_codec.h.
#define AC97_AD_HPFD_SHIFT 12 /* High Pass Filter Disable */ |
Definition at line 292 of file ac97_codec.h.
#define AC97_AD_JACK_SPDIF 0x72 /* Jack Sense & S/PDIF */ |
Definition at line 294 of file ac97_codec.h.
#define AC97_AD_MISC 0x76 /* Misc Control Bits */ |
Definition at line 296 of file ac97_codec.h.
#define AC97_AD_MULTI (1<<1) /* Analog Devices - multi codecs */ |
Definition at line 392 of file ac97_codec.h.
#define AC97_AD_SERIAL_CFG 0x74 /* Serial Configuration */ |
Definition at line 295 of file ac97_codec.h.
#define AC97_AD_TEST 0x5a /* test register */ |
Definition at line 290 of file ac97_codec.h.
#define AC97_AD_TEST2 0x5c /* undocumented test register 2 */ |
Definition at line 291 of file ac97_codec.h.
#define AC97_AD_VREFD_SHIFT 2 /* V_REFOUT Disable (AD1888) */ |
Definition at line 297 of file ac97_codec.h.
#define AC97_ALC650_CC_MASK 0x7f00 /* Category Code mask */ |
Definition at line 326 of file ac97_codec.h.
#define AC97_ALC650_CC_SHIFT 8 |
Definition at line 327 of file ac97_codec.h.
#define AC97_ALC650_CHANNEL_MASK 0x00f0 /* Channel number */ |
Definition at line 333 of file ac97_codec.h.
#define AC97_ALC650_CHANNEL_SHIFT 4 |
Definition at line 334 of file ac97_codec.h.
#define AC97_ALC650_CLOCK 0x7a |
Definition at line 356 of file ac97_codec.h.
#define AC97_ALC650_CLOCK_ACCURACY 0x3000 /* Clock accuracy */ |
Definition at line 340 of file ac97_codec.h.
#define AC97_ALC650_CLOCK_LOCK 0x4000 /* Clock locked status */ |
Definition at line 342 of file ac97_codec.h.
#define AC97_ALC650_CLOCK_SHIFT 12 |
Definition at line 341 of file ac97_codec.h.
#define AC97_ALC650_COPY 0x0004 /* Copyright status */ |
Definition at line 321 of file ac97_codec.h.
#define AC97_ALC650_GPIO_SETUP 0x76 |
Definition at line 354 of file ac97_codec.h.
#define AC97_ALC650_GPIO_STATUS 0x78 |
Definition at line 355 of file ac97_codec.h.
#define AC97_ALC650_L 0x8000 /* Generation Level status */ |
Definition at line 328 of file ac97_codec.h.
#define AC97_ALC650_LFE_DAC_VOL 0x66 |
Definition at line 346 of file ac97_codec.h.
#define AC97_ALC650_MISC 0x74 |
Definition at line 353 of file ac97_codec.h.
#define AC97_ALC650_MODE 0x00C0 /* Preemphasis status */ |
Definition at line 324 of file ac97_codec.h.
#define AC97_ALC650_MODE_SHIFT 6 |
Definition at line 325 of file ac97_codec.h.
#define AC97_ALC650_MULTICH 0x6a |
Definition at line 348 of file ac97_codec.h.
#define AC97_ALC650_NAUDIO 0x0002 /* Non audio stream */ |
Definition at line 320 of file ac97_codec.h.
#define AC97_ALC650_PRE 0x0038 /* Preemphasis status */ |
Definition at line 322 of file ac97_codec.h.
#define AC97_ALC650_PRE_SHIFT 3 |
Definition at line 323 of file ac97_codec.h.
#define AC97_ALC650_PRO 0x0001 /* Professional status */ |
Definition at line 319 of file ac97_codec.h.
#define AC97_ALC650_REVISION 0x6e |
Definition at line 350 of file ac97_codec.h.
#define AC97_ALC650_SOUCE_MASK 0x000f /* Source number */ |
Definition at line 332 of file ac97_codec.h.
#define AC97_ALC650_SPDIF_INPUT_STATUS1 0x60 |
Definition at line 317 of file ac97_codec.h.
#define AC97_ALC650_SPDIF_INPUT_STATUS2 0x62 |
Definition at line 330 of file ac97_codec.h.
#define AC97_ALC650_SPSR_32K 0x0300 /* Use 32kHz Sample rate */ |
Definition at line 339 of file ac97_codec.h.
#define AC97_ALC650_SPSR_44K 0x0000 /* Use 44.1kHz Sample rate */ |
Definition at line 337 of file ac97_codec.h.
#define AC97_ALC650_SPSR_48K 0x0200 /* Use 48kHz Sample rate */ |
Definition at line 338 of file ac97_codec.h.
#define AC97_ALC650_SPSR_MASK 0x0f00 /* S/PDIF Sample Rate bits */ |
Definition at line 335 of file ac97_codec.h.
#define AC97_ALC650_SPSR_SHIFT 8 |
Definition at line 336 of file ac97_codec.h.
#define AC97_ALC650_SURR_DAC_VOL 0x64 |
Definition at line 345 of file ac97_codec.h.
#define AC97_ALC650_UNKNOWN1 0x68 |
Definition at line 347 of file ac97_codec.h.
#define AC97_ALC650_UNKNOWN2 0x6c |
Definition at line 349 of file ac97_codec.h.
#define AC97_ALC650_UNKNOWN3 0x70 |
Definition at line 351 of file ac97_codec.h.
#define AC97_ALC650_UNKNOWN4 0x72 |
Definition at line 352 of file ac97_codec.h.
#define AC97_ALC650_V 0x8000 /* Validity status */ |
Definition at line 343 of file ac97_codec.h.
#define AC97_AUX 0x16 /* AUX Volume (optional) */ |
Definition at line 53 of file ac97_codec.h.
#define AC97_BC_16BIT_ADC 0x0000 /* 16-bit ADC resolution */ |
Definition at line 141 of file ac97_codec.h.
#define AC97_BC_16BIT_DAC 0x0000 /* 16-bit DAC resolution */ |
Definition at line 137 of file ac97_codec.h.
#define AC97_BC_18BIT_ADC 0x0100 /* 18-bit ADC resolution */ |
Definition at line 142 of file ac97_codec.h.
#define AC97_BC_18BIT_DAC 0x0040 /* 18-bit DAC resolution */ |
Definition at line 138 of file ac97_codec.h.
#define AC97_BC_20BIT_ADC 0x0200 /* 20-bit ADC resolution */ |
Definition at line 143 of file ac97_codec.h.
#define AC97_BC_20BIT_DAC 0x0080 /* 20-bit DAC resolution */ |
Definition at line 139 of file ac97_codec.h.
#define AC97_BC_3D_TECH_ID_MASK 0x7c00 /* Per-vendor ID of 3D enhancement */ |
Definition at line 145 of file ac97_codec.h.
#define AC97_BC_ADC_MASK 0x0300 |
Definition at line 144 of file ac97_codec.h.
#define AC97_BC_BASS_TREBLE 0x0004 /* Bass & Treble Control */ |
Definition at line 133 of file ac97_codec.h.
#define AC97_BC_DAC_MASK 0x00c0 |
Definition at line 140 of file ac97_codec.h.
#define AC97_BC_DEDICATED_MIC 0x0001 /* Dedicated Mic PCM In Channel */ |
Definition at line 131 of file ac97_codec.h.
#define AC97_BC_HEADPHONE 0x0010 /* Headphone Out Support */ |
Definition at line 135 of file ac97_codec.h.
#define AC97_BC_LOUDNESS 0x0020 /* Loudness (bass boost) Support */ |
Definition at line 136 of file ac97_codec.h.
#define AC97_BC_RESERVED1 0x0002 /* Reserved (was Modem Line Codec support) */ |
Definition at line 132 of file ac97_codec.h.
#define AC97_BC_SIM_STEREO 0x0008 /* Simulated stereo */ |
Definition at line 134 of file ac97_codec.h.
#define AC97_BUS_MAX_DEVICES 4 |
Definition at line 36 of file ac97_codec.h.
#define AC97_CD 0x12 /* CD Volume */ |
Definition at line 51 of file ac97_codec.h.
#define AC97_CENTER_LFE_MASTER 0x36 /* Center + LFE Master Volume */ |
Definition at line 70 of file ac97_codec.h.
#define AC97_CM9738_VENDOR_CTRL 0x5a |
Definition at line 363 of file ac97_codec.h.
#define AC97_CM9739_MULTI_CHAN 0x64 |
Definition at line 364 of file ac97_codec.h.
#define AC97_CM9739_SPDIF_CTRL 0x6c |
Definition at line 366 of file ac97_codec.h.
#define AC97_CM9739_SPDIF_IN_STATUS 0x68 /* 32bit */ |
Definition at line 365 of file ac97_codec.h.
#define AC97_CODEC_CLASS_REV 0x60 /* Codec Class/Revision */ |
Definition at line 92 of file ac97_codec.h.
#define AC97_CS_SPDIF (1<<2) /* Cirrus Logic uses funky SPDIF */ |
Definition at line 393 of file ac97_codec.h.
#define AC97_CSR_ACMODE 0x5e /* AC Mode Register */ |
Definition at line 300 of file ac97_codec.h.
#define AC97_CSR_BDI_STATUS 0x7a /* BDI Status */ |
Definition at line 306 of file ac97_codec.h.
#define AC97_CSR_MISC_CRYSTAL 0x60 /* Misc Crystal Control */ |
Definition at line 301 of file ac97_codec.h.
#define AC97_CSR_SERIAL 0x6a /* Serial Port Control */ |
Definition at line 303 of file ac97_codec.h.
#define AC97_CSR_SPDIF 0x68 /* S/PDIF Register */ |
Definition at line 302 of file ac97_codec.h.
#define AC97_CSR_SPECF_ADDR 0x6c /* Special Feature Address */ |
Definition at line 304 of file ac97_codec.h.
#define AC97_CSR_SPECF_DATA 0x6e /* Special Feature Data */ |
Definition at line 305 of file ac97_codec.h.
Definition at line 394 of file ac97_codec.h.
#define AC97_CXR_AUDIO_MISC 0x5c |
Definition at line 309 of file ac97_codec.h.
#define AC97_CXR_COPYRGT (1<<2) |
Definition at line 311 of file ac97_codec.h.
#define AC97_CXR_SPDIF_AC3 0x2 |
Definition at line 314 of file ac97_codec.h.
#define AC97_CXR_SPDIF_MASK (3<<0) |
Definition at line 312 of file ac97_codec.h.
#define AC97_CXR_SPDIF_PCM 0x0 |
Definition at line 313 of file ac97_codec.h.
#define AC97_CXR_SPDIFEN (1<<3) |
Definition at line 310 of file ac97_codec.h.
Definition at line 399 of file ac97_codec.h.
#define AC97_DOUBLE_RATE (1<<5) /* supports double rate playback */ |
Definition at line 396 of file ac97_codec.h.
#define AC97_EA_CDAC 0x0040 /* PCM Center DAC is ready (Read only) */ |
Definition at line 195 of file ac97_codec.h.
#define AC97_EA_DRA 0x0002 /* Double-rate audio enable bit */ |
Definition at line 186 of file ac97_codec.h.
#define AC97_EA_LDAC 0x0100 /* PCM LFE DAC is ready (Read only) */ |
Definition at line 197 of file ac97_codec.h.
#define AC97_EA_MDAC 0x0200 /* MIC ADC is ready (Read only) */ |
Definition at line 198 of file ac97_codec.h.
#define AC97_EA_PRI 0x0800 /* Turns the PCM Center DAC off */ |
Definition at line 200 of file ac97_codec.h.
#define AC97_EA_PRJ 0x1000 /* Turns the PCM Surround DACs off */ |
Definition at line 201 of file ac97_codec.h.
#define AC97_EA_PRK 0x2000 /* Turns the PCM LFE DAC off */ |
Definition at line 202 of file ac97_codec.h.
#define AC97_EA_PRL 0x4000 /* Turns the MIC ADC off */ |
Definition at line 203 of file ac97_codec.h.
#define AC97_EA_SDAC 0x0080 /* PCM Surround DACs are ready (Read only) */ |
Definition at line 196 of file ac97_codec.h.
#define AC97_EA_SPCV 0x0400 /* S/PDIF configuration valid (Read only) */ |
Definition at line 199 of file ac97_codec.h.
#define AC97_EA_SPDIF 0x0004 /* S/PDIF out enable bit */ |
Definition at line 187 of file ac97_codec.h.
#define AC97_EA_SPSA_10_11 0x0030 /* Slot assigned to 10 & 11 */ |
Definition at line 194 of file ac97_codec.h.
#define AC97_EA_SPSA_3_4 0x0000 /* Slot assigned to 3 & 4 */ |
Definition at line 191 of file ac97_codec.h.
#define AC97_EA_SPSA_6_9 0x0020 /* Slot assigned to 6 & 9 */ |
Definition at line 193 of file ac97_codec.h.
#define AC97_EA_SPSA_7_8 0x0010 /* Slot assigned to 7 & 8 */ |
Definition at line 192 of file ac97_codec.h.
#define AC97_EA_SPSA_SLOT_MASK 0x0030 /* Mask for slot assignment bits */ |
Definition at line 189 of file ac97_codec.h.
#define AC97_EA_SPSA_SLOT_SHIFT 4 |
Definition at line 190 of file ac97_codec.h.
#define AC97_EA_VRA 0x0001 /* Variable bit rate enable bit */ |
Definition at line 185 of file ac97_codec.h.
#define AC97_EA_VRM 0x0008 /* Variable bit rate for MIC enable bit */ |
Definition at line 188 of file ac97_codec.h.
#define AC97_EI_ADDR_MASK 0xc000 /* physical codec ID (address) */ |
Definition at line 181 of file ac97_codec.h.
#define AC97_EI_ADDR_SHIFT 14 |
Definition at line 182 of file ac97_codec.h.
#define AC97_EI_AMAP 0x0200 /* indicates optional slot/DAC mapping based on codec ID */ |
Definition at line 176 of file ac97_codec.h.
#define AC97_EI_CDAC 0x0040 /* PCM Center DAC available */ |
Definition at line 173 of file ac97_codec.h.
#define AC97_EI_DACS_SLOT_MASK 0x0030 /* DACs slot assignment */ |
Definition at line 171 of file ac97_codec.h.
#define AC97_EI_DACS_SLOT_SHIFT 4 |
Definition at line 172 of file ac97_codec.h.
#define AC97_EI_DRA 0x0002 /* Double rate supported */ |
Definition at line 168 of file ac97_codec.h.
#define AC97_EI_LDAC 0x0100 /* PCM LFE DAC available */ |
Definition at line 175 of file ac97_codec.h.
#define AC97_EI_REV_22 0x0400 /* AC'97 revision 2.2 */ |
Definition at line 178 of file ac97_codec.h.
#define AC97_EI_REV_23 0x0800 /* AC'97 revision 2.3 */ |
Definition at line 179 of file ac97_codec.h.
#define AC97_EI_REV_MASK 0x0c00 /* AC'97 revision mask */ |
Definition at line 177 of file ac97_codec.h.
#define AC97_EI_REV_SHIFT 10 |
Definition at line 180 of file ac97_codec.h.
#define AC97_EI_SDAC 0x0080 /* PCM Surround DACs available */ |
Definition at line 174 of file ac97_codec.h.
#define AC97_EI_SPDIF 0x0004 /* S/PDIF out supported */ |
Definition at line 169 of file ac97_codec.h.
#define AC97_EI_VRA 0x0001 /* Variable bit rate supported */ |
Definition at line 167 of file ac97_codec.h.
#define AC97_EI_VRM 0x0008 /* Variable bit rate supported for MIC */ |
Definition at line 170 of file ac97_codec.h.
#define AC97_EXTENDED_ID 0x28 /* Extended Audio ID */ |
Definition at line 63 of file ac97_codec.h.
#define AC97_EXTENDED_MID 0x3c /* Extended Modem ID */ |
Definition at line 74 of file ac97_codec.h.
#define AC97_EXTENDED_MSTATUS 0x3e /* Extended Modem Status and Control */ |
Definition at line 75 of file ac97_codec.h.
#define AC97_EXTENDED_STATUS 0x2a /* Extended Audio Status and Control */ |
Definition at line 64 of file ac97_codec.h.
#define AC97_FUNC_INFO 0x68 /* Function Information */ |
Definition at line 96 of file ac97_codec.h.
#define AC97_FUNC_SELECT 0x66 /* Function Select */ |
Definition at line 95 of file ac97_codec.h.
#define AC97_GENERAL_PURPOSE 0x20 /* General Purpose (optional) */ |
Definition at line 58 of file ac97_codec.h.
#define AC97_GP_DRSS_1011 0x0000 /* LR(C) 10+11(+12) */ |
Definition at line 149 of file ac97_codec.h.
#define AC97_GP_DRSS_78 0x0400 /* LR 7+8 */ |
Definition at line 150 of file ac97_codec.h.
#define AC97_GP_DRSS_MASK 0x0c00 /* double rate slot select */ |
Definition at line 148 of file ac97_codec.h.
#define AC97_GPIO_CFG 0x4c /* GPIO Configuration */ |
Definition at line 82 of file ac97_codec.h.
#define AC97_GPIO_LINE12_AC 0x0080 /* Opt./ Int.bit 1 / Line1/2 AC (out) */ |
Definition at line 266 of file ac97_codec.h.
#define AC97_GPIO_LINE12_DC 0x0100 /* Opt./ Int.bit 2 / Line1/2 DC (out) */ |
Definition at line 267 of file ac97_codec.h.
#define AC97_GPIO_LINE12_RS 0x0200 /* Opt./ Int.bit 3 / Line1/2 RS (out) */ |
Definition at line 268 of file ac97_codec.h.
#define AC97_GPIO_LINE1_CID 0x0004 /* Caller ID path enable Line1 */ |
Definition at line 261 of file ac97_codec.h.
#define AC97_GPIO_LINE1_HL1R 0x0020 /* Opt./ Handset to Line1 relay control (out) */ |
Definition at line 264 of file ac97_codec.h.
#define AC97_GPIO_LINE1_HOHD 0x0040 /* Opt./ Handset off hook detect Line1 (in) */ |
Definition at line 265 of file ac97_codec.h.
#define AC97_GPIO_LINE1_LCS 0x0008 /* Loop Current Sense Line1 */ |
Definition at line 262 of file ac97_codec.h.
#define AC97_GPIO_LINE1_OH 0x0001 /* Off Hook Line1 */ |
Definition at line 259 of file ac97_codec.h.
#define AC97_GPIO_LINE1_PULSE 0x0010 /* Opt./ Pulse Dial Line1 (out) */ |
Definition at line 263 of file ac97_codec.h.
#define AC97_GPIO_LINE1_RI 0x0002 /* Ring Detect Line1 */ |
Definition at line 260 of file ac97_codec.h.
#define AC97_GPIO_LINE2_CID 0x1000 /* Caller ID path enable Line2 */ |
Definition at line 271 of file ac97_codec.h.
#define AC97_GPIO_LINE2_HL1R 0x8000 /* Opt./ Handset to Line2 relay control (out) */ |
Definition at line 274 of file ac97_codec.h.
#define AC97_GPIO_LINE2_LCS 0x2000 /* Loop Current Sense Line2 */ |
Definition at line 272 of file ac97_codec.h.
#define AC97_GPIO_LINE2_OH 0x0400 /* Off Hook Line2 */ |
Definition at line 269 of file ac97_codec.h.
#define AC97_GPIO_LINE2_PULSE 0x4000 /* Opt./ Pulse Dial Line2 (out) */ |
Definition at line 273 of file ac97_codec.h.
#define AC97_GPIO_LINE2_RI 0x0800 /* Ring Detect Line2 */ |
Definition at line 270 of file ac97_codec.h.
#define AC97_GPIO_POLARITY 0x4e /* GPIO Pin Polarity/Type, 0=low, 1=high active */ |
Definition at line 83 of file ac97_codec.h.
#define AC97_GPIO_STATUS 0x54 /* GPIO Pin Status, slot 12 */ |
Definition at line 86 of file ac97_codec.h.
#define AC97_GPIO_STICKY 0x50 /* GPIO Pin Sticky, 0=not, 1=sticky */ |
Definition at line 84 of file ac97_codec.h.
#define AC97_GPIO_WAKEUP 0x52 /* GPIO Pin Wakeup, 0=no int, 1=yes int */ |
Definition at line 85 of file ac97_codec.h.
#define AC97_HANDSET_LEVEL 0x4a /* Handset DAC/ADC Level */ |
Definition at line 81 of file ac97_codec.h.
#define AC97_HANDSET_RATE 0x44 /* Handset DAC/ADC Rate */ |
Definition at line 78 of file ac97_codec.h.
Definition at line 410 of file ac97_codec.h.
Definition at line 409 of file ac97_codec.h.
Definition at line 405 of file ac97_codec.h.
Definition at line 397 of file ac97_codec.h.
Definition at line 406 of file ac97_codec.h.
Definition at line 403 of file ac97_codec.h.
Definition at line 398 of file ac97_codec.h.
Definition at line 402 of file ac97_codec.h.
Definition at line 401 of file ac97_codec.h.
Definition at line 408 of file ac97_codec.h.
Definition at line 407 of file ac97_codec.h.
Definition at line 404 of file ac97_codec.h.
Definition at line 391 of file ac97_codec.h.
#define AC97_HEADPHONE 0x04 /* Headphone Volume (optional) */ |
Definition at line 44 of file ac97_codec.h.
#define AC97_INT_CAUSE_GPIO 0x4000 /* GPIO bits changed (RO) */ |
Definition at line 228 of file ac97_codec.h.
#define AC97_INT_CAUSE_SENSE 0x2000 /* Sense Cycle Completed (RO) */ |
Definition at line 227 of file ac97_codec.h.
#define AC97_INT_ENABLE 0x0800 /* Interrupt Enable */ |
Definition at line 225 of file ac97_codec.h.
#define AC97_INT_PAGING 0x24 /* Audio Interrupt & Paging (AC'97 2.3) */ |
Definition at line 60 of file ac97_codec.h.
#define AC97_INT_SENSE 0x1000 /* Sense Cycle */ |
Definition at line 226 of file ac97_codec.h.
#define AC97_INT_STATUS 0x8000 /* Interrupt Status */ |
Definition at line 229 of file ac97_codec.h.
#define AC97_LINE 0x10 /* Line In Volume */ |
Definition at line 50 of file ac97_codec.h.
#define AC97_LINE1_LEVEL 0x46 /* Line1 DAC/ADC Level */ |
Definition at line 79 of file ac97_codec.h.
#define AC97_LINE1_RATE 0x40 /* Line1 DAC/ADC Rate */ |
Definition at line 76 of file ac97_codec.h.
#define AC97_LINE2_LEVEL 0x48 /* Line2 DAC/ADC Level */ |
Definition at line 80 of file ac97_codec.h.
#define AC97_LINE2_RATE 0x42 /* Line2 DAC/ADC Rate */ |
Definition at line 77 of file ac97_codec.h.
#define AC97_MASTER 0x02 /* Master Volume */ |
Definition at line 43 of file ac97_codec.h.
#define AC97_MASTER_MONO 0x06 /* Master Volume Mono (optional) */ |
Definition at line 45 of file ac97_codec.h.
#define AC97_MASTER_TONE 0x08 /* Master Tone (Bass & Treble) (optional) */ |
Definition at line 46 of file ac97_codec.h.
#define AC97_MEA_ADC1 0x0004 /* ADC1 operational (ro) */ |
Definition at line 243 of file ac97_codec.h.
#define AC97_MEA_ADC2 0x0010 /* ADC2 operational (ro) */ |
Definition at line 245 of file ac97_codec.h.
#define AC97_MEA_DAC1 0x0008 /* DAC1 operational (ro) */ |
Definition at line 244 of file ac97_codec.h.
#define AC97_MEA_DAC2 0x0020 /* DAC2 operational (ro) */ |
Definition at line 246 of file ac97_codec.h.
#define AC97_MEA_GPIO 0x0001 /* GPIO is ready (ro) */ |
Definition at line 241 of file ac97_codec.h.
#define AC97_MEA_HADC 0x0040 /* HADC operational (ro) */ |
Definition at line 247 of file ac97_codec.h.
#define AC97_MEA_HDAC 0x0080 /* HDAC operational (ro) */ |
Definition at line 248 of file ac97_codec.h.
#define AC97_MEA_MREF 0x0002 /* Vref is up to nominal level (ro) */ |
Definition at line 242 of file ac97_codec.h.
#define AC97_MEA_PRA 0x0100 /* GPIO power down (high) */ |
Definition at line 249 of file ac97_codec.h.
#define AC97_MEA_PRB 0x0200 /* reserved */ |
Definition at line 250 of file ac97_codec.h.
#define AC97_MEA_PRC 0x0400 /* ADC1 power down (high) */ |
Definition at line 251 of file ac97_codec.h.
#define AC97_MEA_PRD 0x0800 /* DAC1 power down (high) */ |
Definition at line 252 of file ac97_codec.h.
#define AC97_MEA_PRE 0x1000 /* ADC2 power down (high) */ |
Definition at line 253 of file ac97_codec.h.
#define AC97_MEA_PRF 0x2000 /* DAC2 power down (high) */ |
Definition at line 254 of file ac97_codec.h.
#define AC97_MEA_PRG 0x4000 /* HADC power down (high) */ |
Definition at line 255 of file ac97_codec.h.
#define AC97_MEA_PRH 0x8000 /* HDAC power down (high) */ |
Definition at line 256 of file ac97_codec.h.
#define AC97_MEI_ADDR_MASK 0xc000 /* physical codec ID (address) */ |
Definition at line 237 of file ac97_codec.h.
#define AC97_MEI_ADDR_SHIFT 14 |
Definition at line 238 of file ac97_codec.h.
#define AC97_MEI_CID1 0x0008 /* caller ID decode for Line1 is supported */ |
Definition at line 235 of file ac97_codec.h.
#define AC97_MEI_CID2 0x0010 /* caller ID decode for Line2 is supported */ |
Definition at line 236 of file ac97_codec.h.
#define AC97_MEI_HANDSET 0x0004 /* Handset present */ |
Definition at line 234 of file ac97_codec.h.
#define AC97_MEI_LINE1 0x0001 /* Line1 present */ |
Definition at line 232 of file ac97_codec.h.
#define AC97_MEI_LINE2 0x0002 /* Line2 present */ |
Definition at line 233 of file ac97_codec.h.
#define AC97_MIC 0x0e /* MIC Volume */ |
Definition at line 49 of file ac97_codec.h.
#define AC97_MISC_AFE 0x56 /* Miscellaneous Modem AFE Status and Control */ |
Definition at line 87 of file ac97_codec.h.
#define AC97_MODEM_PATCH (1<<9) /* modem patch */ |
Definition at line 400 of file ac97_codec.h.
#define AC97_MUTE_MASK_MONO 0x8000 |
Definition at line 100 of file ac97_codec.h.
#define AC97_MUTE_MASK_STEREO 0x8080 |
Definition at line 101 of file ac97_codec.h.
#define AC97_PAGE_1 1 /* Extended Codec Registers page 1 */ |
Definition at line 224 of file ac97_codec.h.
#define AC97_PAGE_MASK 0x000f /* Page Selector */ |
Definition at line 222 of file ac97_codec.h.
#define AC97_PAGE_VENDOR 0 /* Vendor-specific registers */ |
Definition at line 223 of file ac97_codec.h.
#define AC97_PC_BEEP 0x0a /* PC Beep Volume (optinal) */ |
Definition at line 47 of file ac97_codec.h.
#define AC97_PCI_SID 0x64 /* PCI Subsystem ID */ |
Definition at line 94 of file ac97_codec.h.
#define AC97_PCI_SVID 0x62 /* PCI Subsystem Vendor ID */ |
Definition at line 93 of file ac97_codec.h.
#define AC97_PCM 0x18 /* PCM Volume */ |
Definition at line 54 of file ac97_codec.h.
#define AC97_PCM_FRONT_DAC_RATE 0x2c /* PCM Front DAC Rate */ |
Definition at line 65 of file ac97_codec.h.
#define AC97_PCM_LFE_DAC_RATE 0x30 /* PCM LFE DAC Rate */ |
Definition at line 67 of file ac97_codec.h.
#define AC97_PCM_LR_ADC_RATE 0x32 /* PCM LR ADC Rate */ |
Definition at line 68 of file ac97_codec.h.
#define AC97_PCM_MIC_ADC_RATE 0x34 /* PCM MIC ADC Rate */ |
Definition at line 69 of file ac97_codec.h.
#define AC97_PCM_SURR_DAC_RATE 0x2e /* PCM Surround DAC Rate */ |
Definition at line 66 of file ac97_codec.h.
#define AC97_PD_ADC_STATUS 0x0001 /* ADC status (RO) */ |
Definition at line 153 of file ac97_codec.h.
#define AC97_PD_DAC_STATUS 0x0002 /* DAC status (RO) */ |
Definition at line 154 of file ac97_codec.h.
#define AC97_PD_EAPD 0x8000 /* External Amplifer Power Down (EAPD) */ |
Definition at line 164 of file ac97_codec.h.
#define AC97_PD_MIXER_STATUS 0x0004 /* Analog mixer status (RO) */ |
Definition at line 155 of file ac97_codec.h.
#define AC97_PD_PR0 0x0100 /* Power down PCM ADCs and input MUX */ |
Definition at line 157 of file ac97_codec.h.
#define AC97_PD_PR1 0x0200 /* Power down PCM front DAC */ |
Definition at line 158 of file ac97_codec.h.
#define AC97_PD_PR2 0x0400 /* Power down Mixer (Vref still on) */ |
Definition at line 159 of file ac97_codec.h.
#define AC97_PD_PR3 0x0800 /* Power down Mixer (Vref off) */ |
Definition at line 160 of file ac97_codec.h.
#define AC97_PD_PR4 0x1000 /* Power down AC-Link */ |
Definition at line 161 of file ac97_codec.h.
#define AC97_PD_PR5 0x2000 /* Disable internal clock usage */ |
Definition at line 162 of file ac97_codec.h.
#define AC97_PD_PR6 0x4000 /* Headphone amplifier */ |
Definition at line 163 of file ac97_codec.h.
#define AC97_PD_VREF_STATUS 0x0008 /* Vref status (RO) */ |
Definition at line 156 of file ac97_codec.h.
#define AC97_PHONE 0x0c /* Phone Volume (optional) */ |
Definition at line 48 of file ac97_codec.h.
#define AC97_POWERDOWN 0x26 /* Powerdown control / status */ |
Definition at line 61 of file ac97_codec.h.
#define AC97_RATES_ADC 3 |
Definition at line 416 of file ac97_codec.h.
#define AC97_RATES_FRONT_DAC 0 |
Definition at line 413 of file ac97_codec.h.
#define AC97_RATES_LFE_DAC 2 |
Definition at line 415 of file ac97_codec.h.
#define AC97_RATES_MIC_ADC 4 |
Definition at line 417 of file ac97_codec.h.
#define AC97_RATES_SPDIF 5 |
Definition at line 418 of file ac97_codec.h.
#define AC97_RATES_SURR_DAC 1 |
Definition at line 414 of file ac97_codec.h.
#define AC97_REC_GAIN 0x1c /* Record Gain */ |
Definition at line 56 of file ac97_codec.h.
#define AC97_REC_GAIN_MIC 0x1e /* Record Gain MIC (optional) */ |
Definition at line 57 of file ac97_codec.h.
#define AC97_REC_SEL 0x1a /* Record Select */ |
Definition at line 55 of file ac97_codec.h.
#define AC97_RESET 0x00 /* Reset */ |
Definition at line 42 of file ac97_codec.h.
#define AC97_SC_CC_MASK 0x07f0 /* Category Code mask */ |
Definition at line 210 of file ac97_codec.h.
#define AC97_SC_CC_SHIFT 4 |
Definition at line 211 of file ac97_codec.h.
#define AC97_SC_COPY 0x0004 /* Copyright status */ |
Definition at line 208 of file ac97_codec.h.
#define AC97_SC_DRS 0x4000 /* Double Rate S/PDIF */ |
Definition at line 218 of file ac97_codec.h.
#define AC97_SC_L 0x0800 /* Generation Level status */ |
Definition at line 212 of file ac97_codec.h.
#define AC97_SC_NAUDIO 0x0002 /* Non audio stream */ |
Definition at line 207 of file ac97_codec.h.
#define AC97_SC_PRE 0x0008 /* Preemphasis status */ |
Definition at line 209 of file ac97_codec.h.
#define AC97_SC_PRO 0x0001 /* Professional status */ |
Definition at line 206 of file ac97_codec.h.
#define AC97_SC_SPSR_32K 0x3000 /* Use 32kHz Sample rate */ |
Definition at line 217 of file ac97_codec.h.
#define AC97_SC_SPSR_44K 0x0000 /* Use 44.1kHz Sample rate */ |
Definition at line 215 of file ac97_codec.h.
#define AC97_SC_SPSR_48K 0x2000 /* Use 48kHz Sample rate */ |
Definition at line 216 of file ac97_codec.h.
#define AC97_SC_SPSR_MASK 0x3000 /* S/PDIF Sample Rate bits */ |
Definition at line 213 of file ac97_codec.h.
#define AC97_SC_SPSR_SHIFT 12 |
Definition at line 214 of file ac97_codec.h.
#define AC97_SC_V 0x8000 /* Validity status */ |
Definition at line 219 of file ac97_codec.h.
Definition at line 377 of file ac97_codec.h.
Definition at line 380 of file ac97_codec.h.
Definition at line 385 of file ac97_codec.h.
Definition at line 387 of file ac97_codec.h.
#define AC97_SCAP_INDEP_SDIN (1<<6) /* independent SDIN */ |
Definition at line 383 of file ac97_codec.h.
#define AC97_SCAP_INV_EAPD (1<<7) /* inverted EAPD */ |
Definition at line 384 of file ac97_codec.h.
#define AC97_SCAP_MODEM (1<<1) /* modem codec 97 */ |
Definition at line 378 of file ac97_codec.h.
Definition at line 386 of file ac97_codec.h.
Definition at line 388 of file ac97_codec.h.
Definition at line 381 of file ac97_codec.h.
Definition at line 382 of file ac97_codec.h.
Definition at line 379 of file ac97_codec.h.
#define AC97_SENSE_INFO 0x6a /* Sense Details */ |
Definition at line 97 of file ac97_codec.h.
#define AC97_SIGMATEL_ANALOG 0x6c /* Analog Special */ |
Definition at line 280 of file ac97_codec.h.
#define AC97_SIGMATEL_BIAS1 0x70 |
Definition at line 282 of file ac97_codec.h.
#define AC97_SIGMATEL_BIAS2 0x72 |
Definition at line 283 of file ac97_codec.h.
#define AC97_SIGMATEL_CIC1 0x76 |
Definition at line 286 of file ac97_codec.h.
#define AC97_SIGMATEL_CIC2 0x78 |
Definition at line 287 of file ac97_codec.h.
#define AC97_SIGMATEL_DAC2INVERT 0x6e |
Definition at line 281 of file ac97_codec.h.
#define AC97_SIGMATEL_INSEL 0x66 /* Input Select, STAC9758 */ |
Definition at line 278 of file ac97_codec.h.
#define AC97_SIGMATEL_IOMISC 0x68 /* STAC9758 */ |
Definition at line 279 of file ac97_codec.h.
#define AC97_SIGMATEL_MULTICHN 0x74 /* Multi-Channel programming */ |
Definition at line 285 of file ac97_codec.h.
#define AC97_SIGMATEL_OUTSEL 0x64 /* Output Select, STAC9758 */ |
Definition at line 277 of file ac97_codec.h.
#define AC97_SIGMATEL_VARIOUS 0x72 /* STAC9758 */ |
Definition at line 284 of file ac97_codec.h.
#define AC97_SLOT_CMD_ADDR 1 |
Definition at line 105 of file ac97_codec.h.
#define AC97_SLOT_CMD_DATA 2 |
Definition at line 106 of file ac97_codec.h.
#define AC97_SLOT_HANDSET 11 /* output */ |
Definition at line 124 of file ac97_codec.h.
#define AC97_SLOT_LFE 9 |
Definition at line 119 of file ac97_codec.h.
#define AC97_SLOT_MIC 6 /* input */ |
Definition at line 111 of file ac97_codec.h.
#define AC97_SLOT_MODEM_GPIO 12 /* modem GPIO */ |
Definition at line 127 of file ac97_codec.h.
#define AC97_SLOT_MODEM_LINE1 5 |
Definition at line 109 of file ac97_codec.h.
#define AC97_SLOT_MODEM_LINE2 10 |
Definition at line 121 of file ac97_codec.h.
#define AC97_SLOT_PCM_CENTER 6 |
Definition at line 110 of file ac97_codec.h.
Definition at line 128 of file ac97_codec.h.
#define AC97_SLOT_PCM_LEFT 3 |
Definition at line 107 of file ac97_codec.h.
Definition at line 114 of file ac97_codec.h.
Definition at line 122 of file ac97_codec.h.
#define AC97_SLOT_PCM_RIGHT 4 |
Definition at line 108 of file ac97_codec.h.
Definition at line 117 of file ac97_codec.h.
Definition at line 125 of file ac97_codec.h.
#define AC97_SLOT_PCM_SLEFT 7 /* surround left */ |
Definition at line 113 of file ac97_codec.h.
#define AC97_SLOT_PCM_SRIGHT 8 /* surround right */ |
Definition at line 116 of file ac97_codec.h.
#define AC97_SLOT_SPDIF_LEFT 7 |
Definition at line 115 of file ac97_codec.h.
#define AC97_SLOT_SPDIF_LEFT1 6 |
Definition at line 112 of file ac97_codec.h.
#define AC97_SLOT_SPDIF_LEFT2 10 |
Definition at line 123 of file ac97_codec.h.
#define AC97_SLOT_SPDIF_RIGHT 8 |
Definition at line 118 of file ac97_codec.h.
#define AC97_SLOT_SPDIF_RIGHT1 9 |
Definition at line 120 of file ac97_codec.h.
#define AC97_SLOT_SPDIF_RIGHT2 11 |
Definition at line 126 of file ac97_codec.h.
#define AC97_SLOT_TAG 0 |
Definition at line 104 of file ac97_codec.h.
#define AC97_SPDIF 0x3a /* S/PDIF control */ |
Definition at line 72 of file ac97_codec.h.
Definition at line 395 of file ac97_codec.h.
#define AC97_SURROUND_MASTER 0x38 /* Surround (Rear) Master Volume */ |
Definition at line 71 of file ac97_codec.h.
#define AC97_VENDOR_ID1 0x7c /* Vendor ID1 */ |
Definition at line 89 of file ac97_codec.h.
#define AC97_VENDOR_ID2 0x7e /* Vendor ID2 / revision */ |
Definition at line 90 of file ac97_codec.h.
#define AC97_VIDEO 0x14 /* Video Volume (optional) */ |
Definition at line 52 of file ac97_codec.h.
#define AC97_WM9704_RMIXER_VOL 0x74 |
Definition at line 370 of file ac97_codec.h.
#define AC97_WM9704_RPCM_VOL 0x70 |
Definition at line 372 of file ac97_codec.h.
#define AC97_WM9704_TEST 0x5a |
Definition at line 371 of file ac97_codec.h.
#define AC97_WM9711_OUT3VOL 0x16 |
Definition at line 373 of file ac97_codec.h.
#define AC97_WM97XX_FMIXER_VOL 0x72 |
Definition at line 369 of file ac97_codec.h.
#define AC97_YMF7X3_3D_MODE_SEL 0x68 /* 3D Mode Select */ |
Definition at line 360 of file ac97_codec.h.
#define AC97_YMF7X3_DIT_CTRL 0x66 /* DIT Control (YMF743) / 2 (YMF753) */ |
Definition at line 359 of file ac97_codec.h.
Definition at line 536 of file ac97_codec.h.
anonymous enum |
AC97_TUNE_DEFAULT | |
AC97_TUNE_NONE | |
AC97_TUNE_HP_ONLY | |
AC97_TUNE_SWAP_HP | |
AC97_TUNE_SWAP_SURROUND | |
AC97_TUNE_AD_SHARING | |
AC97_TUNE_ALC_JACK | |
AC97_TUNE_INV_EAPD | |
AC97_TUNE_MUTE_LED | |
AC97_TUNE_HP_MUTE_LED |
Definition at line 589 of file ac97_codec.h.
enum ac97_pcm_cfg |
AC97_PCM_CFG_FRONT | |
AC97_PCM_CFG_REAR | |
AC97_PCM_CFG_LFE | |
AC97_PCM_CFG_40 | |
AC97_PCM_CFG_51 | |
AC97_PCM_CFG_SPDIF |
Definition at line 618 of file ac97_codec.h.
int snd_ac97_bus | ( | struct snd_card * | card, |
int | num, | ||
struct snd_ac97_bus_ops * | ops, | ||
void * | private_data, | ||
struct snd_ac97_bus ** | rbus | ||
) |
snd_ac97_bus - create an AC97 bus component : the card instance : the bus number : the bus callbacks table : private data pointer for the new instance : the pointer to store the new AC97 bus instance.
Creates an AC97 bus component. An struct snd_ac97_bus instance is newly allocated and initialized.
The ops table must include valid callbacks (at least read and write). The other callbacks, wait and reset, are not mandatory.
The clock is set to 48000. If another clock is needed, set (*rbus)->clock manually.
The AC97 bus instance is registered as a low-level device, so you don't have to release it manually.
Returns zero if successful, or a negative error code on failure.
Definition at line 1915 of file ac97_codec.c.
snd_ac97_get_short_name - retrieve codec name : the codec instance
Returns the short identifying name of the codec.
Definition at line 1841 of file ac97_codec.c.
int snd_ac97_mixer | ( | struct snd_ac97_bus * | bus, |
struct snd_ac97_template * | template, | ||
struct snd_ac97 ** | rac97 | ||
) |
snd_ac97_mixer - create an Codec97 component : the AC97 bus which codec is attached to : the template of ac97, including index, callbacks and the private data. : the pointer to store the new ac97 instance.
Creates an Codec97 component. An struct snd_ac97 instance is newly allocated and initialized from the template. The codec is then initialized by the standard procedure.
The template must include the codec number (num) and address (addr), and the private data (private_data).
The ac97 instance is registered as a low-level device, so you don't have to release it manually.
Returns zero if successful, or a negative error code on failure.
Definition at line 2011 of file ac97_codec.c.
int snd_ac97_pcm_assign | ( | struct snd_ac97_bus * | bus, |
unsigned short | pcms_count, | ||
const struct ac97_pcm * | pcms | ||
) |
snd_ac97_pcm_assign - assign AC97 slots to given PCM streams : the ac97 bus instance : count of PCMs to be assigned : PCMs to be assigned
It assigns available AC97 slots for given PCMs. If none or only some slots are available, pcm->xxx.slots and pcm->xxx.rslots[] members are reduced and might be zero.
Definition at line 444 of file ac97_pcm.c.
snd_ac97_pcm_close - closes the given AC97 pcm : the ac97 pcm instance
It frees the locked AC97 slots.
Definition at line 648 of file ac97_pcm.c.
int snd_ac97_pcm_double_rate_rules | ( | struct snd_pcm_runtime * | runtime | ) |
int snd_ac97_pcm_open | ( | struct ac97_pcm * | pcm, |
unsigned int | rate, | ||
enum ac97_pcm_cfg | cfg, | ||
unsigned short | slots | ||
) |
snd_ac97_pcm_open - opens the given AC97 pcm : the ac97 pcm instance : rate in Hz, if codec does not support VRA, this value must be 48000Hz : output stream characteristics : a subset of allocated slots (snd_ac97_pcm_assign) for this pcm
It locks the specified slots and sets the given rate to AC97 registers.
Definition at line 566 of file ac97_pcm.c.
snd_ac97_set_rate - change the rate of the given input/output. : the ac97 instance : the register to change : the sample rate to set
Changes the rate of the given input/output on the codec. If the codec doesn't support VAR, the rate must be 48000 (except for SPDIF).
The valid registers are AC97_PMC_MIC_ADC_RATE, AC97_PCM_FRONT_DAC_RATE, AC97_PCM_LR_ADC_RATE. AC97_PCM_SURR_DAC_RATE and AC97_PCM_LFE_DAC_RATE are accepted if the codec supports them. AC97_SPDIF is accepted as a pseudo register to modify the SPDIF status bits.
Returns zero if successful, or a negative error code on failure.
Definition at line 258 of file ac97_pcm.c.
int snd_ac97_tune_hardware | ( | struct snd_ac97 * | ac97, |
struct ac97_quirk * | quirk, | ||
const char * | override | ||
) |
snd_ac97_tune_hardware - tune up the hardware : the ac97 instance : quirk list : explicit quirk value (overrides the list if non-NULL)
Do some workaround for each pci device, such as renaming of the headphone (true line-out) control as "Master". The quirk-list must be terminated with a zero-filled entry.
Returns zero if successful, or a negative error code on failure.
Definition at line 2891 of file ac97_codec.c.
snd_ac97_update - update the value on the given register : the ac97 instance : the register to change : the value to set
Compares the value with the register cache and updates the value only when the value is changed.
Returns 1 if the value is changed, 0 if no change, or a negative code on failure.
Definition at line 358 of file ac97_codec.c.
int snd_ac97_update_bits | ( | struct snd_ac97 * | ac97, |
unsigned short | reg, | ||
unsigned short | mask, | ||
unsigned short | value | ||
) |
snd_ac97_update_bits - update the bits on the given register : the ac97 instance : the register to change : the bit-mask to change : the value to set
Updates the masked-bits on the given register only when the value is changed.
Returns 1 if the bits are changed, 0 if no change, or a negative code on failure.
Definition at line 390 of file ac97_codec.c.
snd_ac97_write - write a value on the given register : the ac97 instance : the register to change : the value to set
Writes a value on the given register. This will invoke the write callback directly after the register check. This function doesn't change the register cache unlike #snd_ca97_write_cache(), so use this only when you don't want to reflect the change to the suspend/resume state.
Definition at line 279 of file ac97_codec.c.
snd_ac97_write_cache - write a value on the given register and update the cache : the ac97 instance : the register to change : the value to set
Writes a value on the given register and updates the register cache. The cached values are used for the cached-read and the suspend/resume.
Definition at line 333 of file ac97_codec.c.
Definition at line 52 of file ac97_bus.c.