Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Functions
maestro3.c File Reference
#include <asm/io.h>
#include <linux/delay.h>
#include <linux/interrupt.h>
#include <linux/init.h>
#include <linux/pci.h>
#include <linux/dma-mapping.h>
#include <linux/slab.h>
#include <linux/vmalloc.h>
#include <linux/module.h>
#include <linux/firmware.h>
#include <linux/input.h>
#include <sound/core.h>
#include <sound/info.h>
#include <sound/control.h>
#include <sound/pcm.h>
#include <sound/mpu401.h>
#include <sound/ac97_codec.h>
#include <sound/initval.h>
#include <asm/byteorder.h>

Go to the source code of this file.

Data Structures

struct  m3_list
 
struct  m3_dma
 
struct  m3_dma::assp_instance
 
struct  snd_m3
 
struct  play_vals
 
struct  rec_vals
 

Macros

#define CARD_NAME   "ESS Maestro3/Allegro/Canyon3D-2"
 
#define DRIVER_NAME   "Maestro3"
 
#define MAX_PLAYBACKS   2
 
#define MAX_CAPTURES   1
 
#define NR_DSPS   (MAX_PLAYBACKS + MAX_CAPTURES)
 
#define PCI_LEGACY_AUDIO_CTRL   0x40
 
#define SOUND_BLASTER_ENABLE   0x00000001
 
#define FM_SYNTHESIS_ENABLE   0x00000002
 
#define GAME_PORT_ENABLE   0x00000004
 
#define MPU401_IO_ENABLE   0x00000008
 
#define MPU401_IRQ_ENABLE   0x00000010
 
#define ALIAS_10BIT_IO   0x00000020
 
#define SB_DMA_MASK   0x000000C0
 
#define SB_DMA_0   0x00000040
 
#define SB_DMA_1   0x00000040
 
#define SB_DMA_R   0x00000080
 
#define SB_DMA_3   0x000000C0
 
#define SB_IRQ_MASK   0x00000700
 
#define SB_IRQ_5   0x00000000
 
#define SB_IRQ_7   0x00000100
 
#define SB_IRQ_9   0x00000200
 
#define SB_IRQ_10   0x00000300
 
#define MIDI_IRQ_MASK   0x00003800
 
#define SERIAL_IRQ_ENABLE   0x00004000
 
#define DISABLE_LEGACY   0x00008000
 
#define PCI_ALLEGRO_CONFIG   0x50
 
#define SB_ADDR_240   0x00000004
 
#define MPU_ADDR_MASK   0x00000018
 
#define MPU_ADDR_330   0x00000000
 
#define MPU_ADDR_300   0x00000008
 
#define MPU_ADDR_320   0x00000010
 
#define MPU_ADDR_340   0x00000018
 
#define USE_PCI_TIMING   0x00000040
 
#define POSTED_WRITE_ENABLE   0x00000080
 
#define DMA_POLICY_MASK   0x00000700
 
#define DMA_DDMA   0x00000000
 
#define DMA_TDMA   0x00000100
 
#define DMA_PCPCI   0x00000200
 
#define DMA_WBDMA16   0x00000400
 
#define DMA_WBDMA4   0x00000500
 
#define DMA_WBDMA2   0x00000600
 
#define DMA_WBDMA1   0x00000700
 
#define DMA_SAFE_GUARD   0x00000800
 
#define HI_PERF_GP_ENABLE   0x00001000
 
#define PIC_SNOOP_MODE_0   0x00002000
 
#define PIC_SNOOP_MODE_1   0x00004000
 
#define SOUNDBLASTER_IRQ_MASK   0x00008000
 
#define RING_IN_ENABLE   0x00010000
 
#define SPDIF_TEST_MODE   0x00020000
 
#define CLK_MULT_MODE_SELECT_2   0x00040000
 
#define EEPROM_WRITE_ENABLE   0x00080000
 
#define CODEC_DIR_IN   0x00100000
 
#define HV_BUTTON_FROM_GD   0x00200000
 
#define REDUCED_DEBOUNCE   0x00400000
 
#define HV_CTRL_ENABLE   0x00800000
 
#define SPDIF_ENABLE   0x01000000
 
#define CLK_DIV_SELECT   0x06000000
 
#define CLK_DIV_BY_48   0x00000000
 
#define CLK_DIV_BY_49   0x02000000
 
#define CLK_DIV_BY_50   0x04000000
 
#define CLK_DIV_RESERVED   0x06000000
 
#define PM_CTRL_ENABLE   0x08000000
 
#define CLK_MULT_MODE_SELECT   0x30000000
 
#define CLK_MULT_MODE_SHIFT   28
 
#define CLK_MULT_MODE_0   0x00000000
 
#define CLK_MULT_MODE_1   0x10000000
 
#define CLK_MULT_MODE_2   0x20000000
 
#define CLK_MULT_MODE_3   0x30000000
 
#define INT_CLK_SELECT   0x40000000
 
#define INT_CLK_MULT_RESET   0x80000000
 
#define INT_CLK_SRC_NOT_PCI   0x00100000
 
#define INT_CLK_MULT_ENABLE   0x80000000
 
#define PCI_ACPI_CONTROL   0x54
 
#define PCI_ACPI_D0   0x00000000
 
#define PCI_ACPI_D1   0xB4F70000
 
#define PCI_ACPI_D2   0xB4F7B4F7
 
#define PCI_USER_CONFIG   0x58
 
#define EXT_PCI_MASTER_ENABLE   0x00000001
 
#define SPDIF_OUT_SELECT   0x00000002
 
#define TEST_PIN_DIR_CTRL   0x00000004
 
#define AC97_CODEC_TEST   0x00000020
 
#define TRI_STATE_BUFFER   0x00000080
 
#define IN_CLK_12MHZ_SELECT   0x00000100
 
#define MULTI_FUNC_DISABLE   0x00000200
 
#define EXT_MASTER_PAIR_SEL   0x00000400
 
#define PCI_MASTER_SUPPORT   0x00000800
 
#define STOP_CLOCK_ENABLE   0x00001000
 
#define EAPD_DRIVE_ENABLE   0x00002000
 
#define REQ_TRI_STATE_ENABLE   0x00004000
 
#define REQ_LOW_ENABLE   0x00008000
 
#define MIDI_1_ENABLE   0x00010000
 
#define MIDI_2_ENABLE   0x00020000
 
#define SB_AUDIO_SYNC   0x00040000
 
#define HV_CTRL_TEST   0x00100000
 
#define SOUNDBLASTER_TEST   0x00400000
 
#define PCI_USER_CONFIG_C   0x5C
 
#define PCI_DDMA_CTRL   0x60
 
#define DDMA_ENABLE   0x00000001
 
#define HOST_INT_CTRL   0x18
 
#define SB_INT_ENABLE   0x0001
 
#define MPU401_INT_ENABLE   0x0002
 
#define ASSP_INT_ENABLE   0x0010
 
#define RING_INT_ENABLE   0x0020
 
#define HV_INT_ENABLE   0x0040
 
#define CLKRUN_GEN_ENABLE   0x0100
 
#define HV_CTRL_TO_PME   0x0400
 
#define SOFTWARE_RESET_ENABLE   0x8000
 
#define REGB_ENABLE_RESET   0x01
 
#define REGB_STOP_CLOCK   0x10
 
#define HOST_INT_STATUS   0x1A
 
#define SB_INT_PENDING   0x01
 
#define MPU401_INT_PENDING   0x02
 
#define ASSP_INT_PENDING   0x10
 
#define RING_INT_PENDING   0x20
 
#define HV_INT_PENDING   0x40
 
#define HARDWARE_VOL_CTRL   0x1B
 
#define SHADOW_MIX_REG_VOICE   0x1C
 
#define HW_VOL_COUNTER_VOICE   0x1D
 
#define SHADOW_MIX_REG_MASTER   0x1E
 
#define HW_VOL_COUNTER_MASTER   0x1F
 
#define CODEC_COMMAND   0x30
 
#define CODEC_READ_B   0x80
 
#define CODEC_STATUS   0x30
 
#define CODEC_BUSY_B   0x01
 
#define CODEC_DATA   0x32
 
#define RING_BUS_CTRL_A   0x36
 
#define RAC_PME_ENABLE   0x0100
 
#define RAC_SDFS_ENABLE   0x0200
 
#define LAC_PME_ENABLE   0x0400
 
#define LAC_SDFS_ENABLE   0x0800
 
#define SERIAL_AC_LINK_ENABLE   0x1000
 
#define IO_SRAM_ENABLE   0x2000
 
#define IIS_INPUT_ENABLE   0x8000
 
#define RING_BUS_CTRL_B   0x38
 
#define SECOND_CODEC_ID_MASK   0x0003
 
#define SPDIF_FUNC_ENABLE   0x0010
 
#define SECOND_AC_ENABLE   0x0020
 
#define SB_MODULE_INTF_ENABLE   0x0040
 
#define SSPE_ENABLE   0x0040
 
#define M3I_DOCK_ENABLE   0x0080
 
#define SDO_OUT_DEST_CTRL   0x3A
 
#define COMMAND_ADDR_OUT   0x0003
 
#define PCM_LR_OUT_LOCAL   0x0000
 
#define PCM_LR_OUT_REMOTE   0x0004
 
#define PCM_LR_OUT_MUTE   0x0008
 
#define PCM_LR_OUT_BOTH   0x000C
 
#define LINE1_DAC_OUT_LOCAL   0x0000
 
#define LINE1_DAC_OUT_REMOTE   0x0010
 
#define LINE1_DAC_OUT_MUTE   0x0020
 
#define LINE1_DAC_OUT_BOTH   0x0030
 
#define PCM_CLS_OUT_LOCAL   0x0000
 
#define PCM_CLS_OUT_REMOTE   0x0040
 
#define PCM_CLS_OUT_MUTE   0x0080
 
#define PCM_CLS_OUT_BOTH   0x00C0
 
#define PCM_RLF_OUT_LOCAL   0x0000
 
#define PCM_RLF_OUT_REMOTE   0x0100
 
#define PCM_RLF_OUT_MUTE   0x0200
 
#define PCM_RLF_OUT_BOTH   0x0300
 
#define LINE2_DAC_OUT_LOCAL   0x0000
 
#define LINE2_DAC_OUT_REMOTE   0x0400
 
#define LINE2_DAC_OUT_MUTE   0x0800
 
#define LINE2_DAC_OUT_BOTH   0x0C00
 
#define HANDSET_OUT_LOCAL   0x0000
 
#define HANDSET_OUT_REMOTE   0x1000
 
#define HANDSET_OUT_MUTE   0x2000
 
#define HANDSET_OUT_BOTH   0x3000
 
#define IO_CTRL_OUT_LOCAL   0x0000
 
#define IO_CTRL_OUT_REMOTE   0x4000
 
#define IO_CTRL_OUT_MUTE   0x8000
 
#define IO_CTRL_OUT_BOTH   0xC000
 
#define SDO_IN_DEST_CTRL   0x3C
 
#define STATUS_ADDR_IN   0x0003
 
#define PCM_LR_IN_LOCAL   0x0000
 
#define PCM_LR_IN_REMOTE   0x0004
 
#define PCM_LR_RESERVED   0x0008
 
#define PCM_LR_IN_BOTH   0x000C
 
#define LINE1_ADC_IN_LOCAL   0x0000
 
#define LINE1_ADC_IN_REMOTE   0x0010
 
#define LINE1_ADC_IN_MUTE   0x0020
 
#define MIC_ADC_IN_LOCAL   0x0000
 
#define MIC_ADC_IN_REMOTE   0x0040
 
#define MIC_ADC_IN_MUTE   0x0080
 
#define LINE2_DAC_IN_LOCAL   0x0000
 
#define LINE2_DAC_IN_REMOTE   0x0400
 
#define LINE2_DAC_IN_MUTE   0x0800
 
#define HANDSET_IN_LOCAL   0x0000
 
#define HANDSET_IN_REMOTE   0x1000
 
#define HANDSET_IN_MUTE   0x2000
 
#define IO_STATUS_IN_LOCAL   0x0000
 
#define IO_STATUS_IN_REMOTE   0x4000
 
#define SPDIF_IN_CTRL   0x3E
 
#define SPDIF_IN_ENABLE   0x0001
 
#define GPIO_DATA   0x60
 
#define GPIO_DATA_MASK   0x0FFF
 
#define GPIO_HV_STATUS   0x3000
 
#define GPIO_PME_STATUS   0x4000
 
#define GPIO_MASK   0x64
 
#define GPIO_DIRECTION   0x68
 
#define GPO_PRIMARY_AC97   0x0001
 
#define GPI_LINEOUT_SENSE   0x0004
 
#define GPO_SECONDARY_AC97   0x0008
 
#define GPI_VOL_DOWN   0x0010
 
#define GPI_VOL_UP   0x0020
 
#define GPI_IIS_CLK   0x0040
 
#define GPI_IIS_LRCLK   0x0080
 
#define GPI_IIS_DATA   0x0100
 
#define GPI_DOCKING_STATUS   0x0100
 
#define GPI_HEADPHONE_SENSE   0x0200
 
#define GPO_EXT_AMP_SHUTDOWN   0x1000
 
#define GPO_EXT_AMP_M3   1 /* default m3 amp */
 
#define GPO_EXT_AMP_ALLEGRO   8 /* default allegro amp */
 
#define GPO_M3_EXT_AMP_SHUTDN   0x0002
 
#define ASSP_INDEX_PORT   0x80
 
#define ASSP_MEMORY_PORT   0x82
 
#define ASSP_DATA_PORT   0x84
 
#define MPU401_DATA_PORT   0x98
 
#define MPU401_STATUS_PORT   0x99
 
#define CLK_MULT_DATA_PORT   0x9C
 
#define ASSP_CONTROL_A   0xA2
 
#define ASSP_0_WS_ENABLE   0x01
 
#define ASSP_CTRL_A_RESERVED1   0x02
 
#define ASSP_CTRL_A_RESERVED2   0x04
 
#define ASSP_CLK_49MHZ_SELECT   0x08
 
#define FAST_PLU_ENABLE   0x10
 
#define ASSP_CTRL_A_RESERVED3   0x20
 
#define DSP_CLK_36MHZ_SELECT   0x40
 
#define ASSP_CONTROL_B   0xA4
 
#define RESET_ASSP   0x00
 
#define RUN_ASSP   0x01
 
#define ENABLE_ASSP_CLOCK   0x00
 
#define STOP_ASSP_CLOCK   0x10
 
#define RESET_TOGGLE   0x40
 
#define ASSP_CONTROL_C   0xA6
 
#define ASSP_HOST_INT_ENABLE   0x01
 
#define FM_ADDR_REMAP_DISABLE   0x02
 
#define HOST_WRITE_PORT_ENABLE   0x08
 
#define ASSP_HOST_INT_STATUS   0xAC
 
#define DSP2HOST_REQ_PIORECORD   0x01
 
#define DSP2HOST_REQ_I2SRATE   0x02
 
#define DSP2HOST_REQ_TIMER   0x04
 
#define DSP_PORT_TIMER_COUNT   0x06
 
#define DSP_PORT_MEMORY_INDEX   0x80
 
#define DSP_PORT_MEMORY_TYPE   0x82
 
#define MEMTYPE_INTERNAL_CODE   0x0002
 
#define MEMTYPE_INTERNAL_DATA   0x0003
 
#define MEMTYPE_MASK   0x0003
 
#define DSP_PORT_MEMORY_DATA   0x84
 
#define DSP_PORT_CONTROL_REG_A   0xA2
 
#define DSP_PORT_CONTROL_REG_B   0xA4
 
#define DSP_PORT_CONTROL_REG_C   0xA6
 
#define REV_A_CODE_MEMORY_BEGIN   0x0000
 
#define REV_A_CODE_MEMORY_END   0x0FFF
 
#define REV_A_CODE_MEMORY_UNIT_LENGTH   0x0040
 
#define REV_A_CODE_MEMORY_LENGTH   (REV_A_CODE_MEMORY_END - REV_A_CODE_MEMORY_BEGIN + 1)
 
#define REV_B_CODE_MEMORY_BEGIN   0x0000
 
#define REV_B_CODE_MEMORY_END   0x0BFF
 
#define REV_B_CODE_MEMORY_UNIT_LENGTH   0x0040
 
#define REV_B_CODE_MEMORY_LENGTH   (REV_B_CODE_MEMORY_END - REV_B_CODE_MEMORY_BEGIN + 1)
 
#define REV_A_DATA_MEMORY_BEGIN   0x1000
 
#define REV_A_DATA_MEMORY_END   0x2FFF
 
#define REV_A_DATA_MEMORY_UNIT_LENGTH   0x0080
 
#define REV_A_DATA_MEMORY_LENGTH   (REV_A_DATA_MEMORY_END - REV_A_DATA_MEMORY_BEGIN + 1)
 
#define REV_B_DATA_MEMORY_BEGIN   0x1000
 
#define REV_B_DATA_MEMORY_END   0x2BFF
 
#define REV_B_DATA_MEMORY_UNIT_LENGTH   0x0080
 
#define REV_B_DATA_MEMORY_LENGTH   (REV_B_DATA_MEMORY_END - REV_B_DATA_MEMORY_BEGIN + 1)
 
#define NUM_UNITS_KERNEL_CODE   16
 
#define NUM_UNITS_KERNEL_DATA   2
 
#define NUM_UNITS_KERNEL_CODE_WITH_HSP   16
 
#define NUM_UNITS_KERNEL_DATA_WITH_HSP   5
 
#define DP_SHIFT_COUNT   7
 
#define KDATA_BASE_ADDR   0x1000
 
#define KDATA_BASE_ADDR2   0x1080
 
#define KDATA_TASK0   (KDATA_BASE_ADDR + 0x0000)
 
#define KDATA_TASK1   (KDATA_BASE_ADDR + 0x0001)
 
#define KDATA_TASK2   (KDATA_BASE_ADDR + 0x0002)
 
#define KDATA_TASK3   (KDATA_BASE_ADDR + 0x0003)
 
#define KDATA_TASK4   (KDATA_BASE_ADDR + 0x0004)
 
#define KDATA_TASK5   (KDATA_BASE_ADDR + 0x0005)
 
#define KDATA_TASK6   (KDATA_BASE_ADDR + 0x0006)
 
#define KDATA_TASK7   (KDATA_BASE_ADDR + 0x0007)
 
#define KDATA_TASK_ENDMARK   (KDATA_BASE_ADDR + 0x0008)
 
#define KDATA_CURRENT_TASK   (KDATA_BASE_ADDR + 0x0009)
 
#define KDATA_TASK_SWITCH   (KDATA_BASE_ADDR + 0x000A)
 
#define KDATA_INSTANCE0_POS3D   (KDATA_BASE_ADDR + 0x000B)
 
#define KDATA_INSTANCE1_POS3D   (KDATA_BASE_ADDR + 0x000C)
 
#define KDATA_INSTANCE2_POS3D   (KDATA_BASE_ADDR + 0x000D)
 
#define KDATA_INSTANCE3_POS3D   (KDATA_BASE_ADDR + 0x000E)
 
#define KDATA_INSTANCE4_POS3D   (KDATA_BASE_ADDR + 0x000F)
 
#define KDATA_INSTANCE5_POS3D   (KDATA_BASE_ADDR + 0x0010)
 
#define KDATA_INSTANCE6_POS3D   (KDATA_BASE_ADDR + 0x0011)
 
#define KDATA_INSTANCE7_POS3D   (KDATA_BASE_ADDR + 0x0012)
 
#define KDATA_INSTANCE8_POS3D   (KDATA_BASE_ADDR + 0x0013)
 
#define KDATA_INSTANCE_POS3D_ENDMARK   (KDATA_BASE_ADDR + 0x0014)
 
#define KDATA_INSTANCE0_SPKVIRT   (KDATA_BASE_ADDR + 0x0015)
 
#define KDATA_INSTANCE_SPKVIRT_ENDMARK   (KDATA_BASE_ADDR + 0x0016)
 
#define KDATA_INSTANCE0_SPDIF   (KDATA_BASE_ADDR + 0x0017)
 
#define KDATA_INSTANCE_SPDIF_ENDMARK   (KDATA_BASE_ADDR + 0x0018)
 
#define KDATA_INSTANCE0_MODEM   (KDATA_BASE_ADDR + 0x0019)
 
#define KDATA_INSTANCE_MODEM_ENDMARK   (KDATA_BASE_ADDR + 0x001A)
 
#define KDATA_INSTANCE0_SRC   (KDATA_BASE_ADDR + 0x001B)
 
#define KDATA_INSTANCE1_SRC   (KDATA_BASE_ADDR + 0x001C)
 
#define KDATA_INSTANCE_SRC_ENDMARK   (KDATA_BASE_ADDR + 0x001D)
 
#define KDATA_INSTANCE0_MINISRC   (KDATA_BASE_ADDR + 0x001E)
 
#define KDATA_INSTANCE1_MINISRC   (KDATA_BASE_ADDR + 0x001F)
 
#define KDATA_INSTANCE2_MINISRC   (KDATA_BASE_ADDR + 0x0020)
 
#define KDATA_INSTANCE3_MINISRC   (KDATA_BASE_ADDR + 0x0021)
 
#define KDATA_INSTANCE_MINISRC_ENDMARK   (KDATA_BASE_ADDR + 0x0022)
 
#define KDATA_INSTANCE0_CPYTHRU   (KDATA_BASE_ADDR + 0x0023)
 
#define KDATA_INSTANCE1_CPYTHRU   (KDATA_BASE_ADDR + 0x0024)
 
#define KDATA_INSTANCE_CPYTHRU_ENDMARK   (KDATA_BASE_ADDR + 0x0025)
 
#define KDATA_CURRENT_DMA   (KDATA_BASE_ADDR + 0x0026)
 
#define KDATA_DMA_SWITCH   (KDATA_BASE_ADDR + 0x0027)
 
#define KDATA_DMA_ACTIVE   (KDATA_BASE_ADDR + 0x0028)
 
#define KDATA_DMA_XFER0   (KDATA_BASE_ADDR + 0x0029)
 
#define KDATA_DMA_XFER1   (KDATA_BASE_ADDR + 0x002A)
 
#define KDATA_DMA_XFER2   (KDATA_BASE_ADDR + 0x002B)
 
#define KDATA_DMA_XFER3   (KDATA_BASE_ADDR + 0x002C)
 
#define KDATA_DMA_XFER4   (KDATA_BASE_ADDR + 0x002D)
 
#define KDATA_DMA_XFER5   (KDATA_BASE_ADDR + 0x002E)
 
#define KDATA_DMA_XFER6   (KDATA_BASE_ADDR + 0x002F)
 
#define KDATA_DMA_XFER7   (KDATA_BASE_ADDR + 0x0030)
 
#define KDATA_DMA_XFER8   (KDATA_BASE_ADDR + 0x0031)
 
#define KDATA_DMA_XFER_ENDMARK   (KDATA_BASE_ADDR + 0x0032)
 
#define KDATA_I2S_SAMPLE_COUNT   (KDATA_BASE_ADDR + 0x0033)
 
#define KDATA_I2S_INT_METER   (KDATA_BASE_ADDR + 0x0034)
 
#define KDATA_I2S_ACTIVE   (KDATA_BASE_ADDR + 0x0035)
 
#define KDATA_TIMER_COUNT_RELOAD   (KDATA_BASE_ADDR + 0x0036)
 
#define KDATA_TIMER_COUNT_CURRENT   (KDATA_BASE_ADDR + 0x0037)
 
#define KDATA_HALT_SYNCH_CLIENT   (KDATA_BASE_ADDR + 0x0038)
 
#define KDATA_HALT_SYNCH_DMA   (KDATA_BASE_ADDR + 0x0039)
 
#define KDATA_HALT_ACKNOWLEDGE   (KDATA_BASE_ADDR + 0x003A)
 
#define KDATA_ADC1_XFER0   (KDATA_BASE_ADDR + 0x003B)
 
#define KDATA_ADC1_XFER_ENDMARK   (KDATA_BASE_ADDR + 0x003C)
 
#define KDATA_ADC1_LEFT_VOLUME   (KDATA_BASE_ADDR + 0x003D)
 
#define KDATA_ADC1_RIGHT_VOLUME   (KDATA_BASE_ADDR + 0x003E)
 
#define KDATA_ADC1_LEFT_SUR_VOL   (KDATA_BASE_ADDR + 0x003F)
 
#define KDATA_ADC1_RIGHT_SUR_VOL   (KDATA_BASE_ADDR + 0x0040)
 
#define KDATA_ADC2_XFER0   (KDATA_BASE_ADDR + 0x0041)
 
#define KDATA_ADC2_XFER_ENDMARK   (KDATA_BASE_ADDR + 0x0042)
 
#define KDATA_ADC2_LEFT_VOLUME   (KDATA_BASE_ADDR + 0x0043)
 
#define KDATA_ADC2_RIGHT_VOLUME   (KDATA_BASE_ADDR + 0x0044)
 
#define KDATA_ADC2_LEFT_SUR_VOL   (KDATA_BASE_ADDR + 0x0045)
 
#define KDATA_ADC2_RIGHT_SUR_VOL   (KDATA_BASE_ADDR + 0x0046)
 
#define KDATA_CD_XFER0   (KDATA_BASE_ADDR + 0x0047)
 
#define KDATA_CD_XFER_ENDMARK   (KDATA_BASE_ADDR + 0x0048)
 
#define KDATA_CD_LEFT_VOLUME   (KDATA_BASE_ADDR + 0x0049)
 
#define KDATA_CD_RIGHT_VOLUME   (KDATA_BASE_ADDR + 0x004A)
 
#define KDATA_CD_LEFT_SUR_VOL   (KDATA_BASE_ADDR + 0x004B)
 
#define KDATA_CD_RIGHT_SUR_VOL   (KDATA_BASE_ADDR + 0x004C)
 
#define KDATA_MIC_XFER0   (KDATA_BASE_ADDR + 0x004D)
 
#define KDATA_MIC_XFER_ENDMARK   (KDATA_BASE_ADDR + 0x004E)
 
#define KDATA_MIC_VOLUME   (KDATA_BASE_ADDR + 0x004F)
 
#define KDATA_MIC_SUR_VOL   (KDATA_BASE_ADDR + 0x0050)
 
#define KDATA_I2S_XFER0   (KDATA_BASE_ADDR + 0x0051)
 
#define KDATA_I2S_XFER_ENDMARK   (KDATA_BASE_ADDR + 0x0052)
 
#define KDATA_CHI_XFER0   (KDATA_BASE_ADDR + 0x0053)
 
#define KDATA_CHI_XFER_ENDMARK   (KDATA_BASE_ADDR + 0x0054)
 
#define KDATA_SPDIF_XFER   (KDATA_BASE_ADDR + 0x0055)
 
#define KDATA_SPDIF_CURRENT_FRAME   (KDATA_BASE_ADDR + 0x0056)
 
#define KDATA_SPDIF_FRAME0   (KDATA_BASE_ADDR + 0x0057)
 
#define KDATA_SPDIF_FRAME1   (KDATA_BASE_ADDR + 0x0058)
 
#define KDATA_SPDIF_FRAME2   (KDATA_BASE_ADDR + 0x0059)
 
#define KDATA_SPDIF_REQUEST   (KDATA_BASE_ADDR + 0x005A)
 
#define KDATA_SPDIF_TEMP   (KDATA_BASE_ADDR + 0x005B)
 
#define KDATA_SPDIFIN_XFER0   (KDATA_BASE_ADDR + 0x005C)
 
#define KDATA_SPDIFIN_XFER_ENDMARK   (KDATA_BASE_ADDR + 0x005D)
 
#define KDATA_SPDIFIN_INT_METER   (KDATA_BASE_ADDR + 0x005E)
 
#define KDATA_DSP_RESET_COUNT   (KDATA_BASE_ADDR + 0x005F)
 
#define KDATA_DEBUG_OUTPUT   (KDATA_BASE_ADDR + 0x0060)
 
#define KDATA_KERNEL_ISR_LIST   (KDATA_BASE_ADDR + 0x0061)
 
#define KDATA_KERNEL_ISR_CBSR1   (KDATA_BASE_ADDR + 0x0062)
 
#define KDATA_KERNEL_ISR_CBER1   (KDATA_BASE_ADDR + 0x0063)
 
#define KDATA_KERNEL_ISR_CBCR   (KDATA_BASE_ADDR + 0x0064)
 
#define KDATA_KERNEL_ISR_AR0   (KDATA_BASE_ADDR + 0x0065)
 
#define KDATA_KERNEL_ISR_AR1   (KDATA_BASE_ADDR + 0x0066)
 
#define KDATA_KERNEL_ISR_AR2   (KDATA_BASE_ADDR + 0x0067)
 
#define KDATA_KERNEL_ISR_AR3   (KDATA_BASE_ADDR + 0x0068)
 
#define KDATA_KERNEL_ISR_AR4   (KDATA_BASE_ADDR + 0x0069)
 
#define KDATA_KERNEL_ISR_AR5   (KDATA_BASE_ADDR + 0x006A)
 
#define KDATA_KERNEL_ISR_BRCR   (KDATA_BASE_ADDR + 0x006B)
 
#define KDATA_KERNEL_ISR_PASR   (KDATA_BASE_ADDR + 0x006C)
 
#define KDATA_KERNEL_ISR_PAER   (KDATA_BASE_ADDR + 0x006D)
 
#define KDATA_CLIENT_SCRATCH0   (KDATA_BASE_ADDR + 0x006E)
 
#define KDATA_CLIENT_SCRATCH1   (KDATA_BASE_ADDR + 0x006F)
 
#define KDATA_KERNEL_SCRATCH   (KDATA_BASE_ADDR + 0x0070)
 
#define KDATA_KERNEL_ISR_SCRATCH   (KDATA_BASE_ADDR + 0x0071)
 
#define KDATA_OUEUE_LEFT   (KDATA_BASE_ADDR + 0x0072)
 
#define KDATA_QUEUE_RIGHT   (KDATA_BASE_ADDR + 0x0073)
 
#define KDATA_ADC1_REQUEST   (KDATA_BASE_ADDR + 0x0074)
 
#define KDATA_ADC2_REQUEST   (KDATA_BASE_ADDR + 0x0075)
 
#define KDATA_CD_REQUEST   (KDATA_BASE_ADDR + 0x0076)
 
#define KDATA_MIC_REQUEST   (KDATA_BASE_ADDR + 0x0077)
 
#define KDATA_ADC1_MIXER_REQUEST   (KDATA_BASE_ADDR + 0x0078)
 
#define KDATA_ADC2_MIXER_REQUEST   (KDATA_BASE_ADDR + 0x0079)
 
#define KDATA_CD_MIXER_REQUEST   (KDATA_BASE_ADDR + 0x007A)
 
#define KDATA_MIC_MIXER_REQUEST   (KDATA_BASE_ADDR + 0x007B)
 
#define KDATA_MIC_SYNC_COUNTER   (KDATA_BASE_ADDR + 0x007C)
 
#define KDATA_MIXER_WORD0   (KDATA_BASE_ADDR2 + 0x0000)
 
#define KDATA_MIXER_WORD1   (KDATA_BASE_ADDR2 + 0x0001)
 
#define KDATA_MIXER_WORD2   (KDATA_BASE_ADDR2 + 0x0002)
 
#define KDATA_MIXER_WORD3   (KDATA_BASE_ADDR2 + 0x0003)
 
#define KDATA_MIXER_WORD4   (KDATA_BASE_ADDR2 + 0x0004)
 
#define KDATA_MIXER_WORD5   (KDATA_BASE_ADDR2 + 0x0005)
 
#define KDATA_MIXER_WORD6   (KDATA_BASE_ADDR2 + 0x0006)
 
#define KDATA_MIXER_WORD7   (KDATA_BASE_ADDR2 + 0x0007)
 
#define KDATA_MIXER_WORD8   (KDATA_BASE_ADDR2 + 0x0008)
 
#define KDATA_MIXER_WORD9   (KDATA_BASE_ADDR2 + 0x0009)
 
#define KDATA_MIXER_WORDA   (KDATA_BASE_ADDR2 + 0x000A)
 
#define KDATA_MIXER_WORDB   (KDATA_BASE_ADDR2 + 0x000B)
 
#define KDATA_MIXER_WORDC   (KDATA_BASE_ADDR2 + 0x000C)
 
#define KDATA_MIXER_WORDD   (KDATA_BASE_ADDR2 + 0x000D)
 
#define KDATA_MIXER_WORDE   (KDATA_BASE_ADDR2 + 0x000E)
 
#define KDATA_MIXER_WORDF   (KDATA_BASE_ADDR2 + 0x000F)
 
#define KDATA_MIXER_XFER0   (KDATA_BASE_ADDR2 + 0x0010)
 
#define KDATA_MIXER_XFER1   (KDATA_BASE_ADDR2 + 0x0011)
 
#define KDATA_MIXER_XFER2   (KDATA_BASE_ADDR2 + 0x0012)
 
#define KDATA_MIXER_XFER3   (KDATA_BASE_ADDR2 + 0x0013)
 
#define KDATA_MIXER_XFER4   (KDATA_BASE_ADDR2 + 0x0014)
 
#define KDATA_MIXER_XFER5   (KDATA_BASE_ADDR2 + 0x0015)
 
#define KDATA_MIXER_XFER6   (KDATA_BASE_ADDR2 + 0x0016)
 
#define KDATA_MIXER_XFER7   (KDATA_BASE_ADDR2 + 0x0017)
 
#define KDATA_MIXER_XFER8   (KDATA_BASE_ADDR2 + 0x0018)
 
#define KDATA_MIXER_XFER9   (KDATA_BASE_ADDR2 + 0x0019)
 
#define KDATA_MIXER_XFER_ENDMARK   (KDATA_BASE_ADDR2 + 0x001A)
 
#define KDATA_MIXER_TASK_NUMBER   (KDATA_BASE_ADDR2 + 0x001B)
 
#define KDATA_CURRENT_MIXER   (KDATA_BASE_ADDR2 + 0x001C)
 
#define KDATA_MIXER_ACTIVE   (KDATA_BASE_ADDR2 + 0x001D)
 
#define KDATA_MIXER_BANK_STATUS   (KDATA_BASE_ADDR2 + 0x001E)
 
#define KDATA_DAC_LEFT_VOLUME   (KDATA_BASE_ADDR2 + 0x001F)
 
#define KDATA_DAC_RIGHT_VOLUME   (KDATA_BASE_ADDR2 + 0x0020)
 
#define MAX_INSTANCE_MINISRC   (KDATA_INSTANCE_MINISRC_ENDMARK - KDATA_INSTANCE0_MINISRC)
 
#define MAX_VIRTUAL_DMA_CHANNELS   (KDATA_DMA_XFER_ENDMARK - KDATA_DMA_XFER0)
 
#define MAX_VIRTUAL_MIXER_CHANNELS   (KDATA_MIXER_XFER_ENDMARK - KDATA_MIXER_XFER0)
 
#define MAX_VIRTUAL_ADC1_CHANNELS   (KDATA_ADC1_XFER_ENDMARK - KDATA_ADC1_XFER0)
 
#define CDATA_INSTANCE_READY   0x00
 
#define CDATA_HOST_SRC_ADDRL   0x01
 
#define CDATA_HOST_SRC_ADDRH   0x02
 
#define CDATA_HOST_SRC_END_PLUS_1L   0x03
 
#define CDATA_HOST_SRC_END_PLUS_1H   0x04
 
#define CDATA_HOST_SRC_CURRENTL   0x05
 
#define CDATA_HOST_SRC_CURRENTH   0x06
 
#define CDATA_IN_BUF_CONNECT   0x07
 
#define CDATA_OUT_BUF_CONNECT   0x08
 
#define CDATA_IN_BUF_BEGIN   0x09
 
#define CDATA_IN_BUF_END_PLUS_1   0x0A
 
#define CDATA_IN_BUF_HEAD   0x0B
 
#define CDATA_IN_BUF_TAIL   0x0C
 
#define CDATA_OUT_BUF_BEGIN   0x0D
 
#define CDATA_OUT_BUF_END_PLUS_1   0x0E
 
#define CDATA_OUT_BUF_HEAD   0x0F
 
#define CDATA_OUT_BUF_TAIL   0x10
 
#define CDATA_DMA_CONTROL   0x11
 
#define CDATA_RESERVED   0x12
 
#define CDATA_FREQUENCY   0x13
 
#define CDATA_LEFT_VOLUME   0x14
 
#define CDATA_RIGHT_VOLUME   0x15
 
#define CDATA_LEFT_SUR_VOL   0x16
 
#define CDATA_RIGHT_SUR_VOL   0x17
 
#define CDATA_HEADER_LEN   0x18
 
#define SRC3_DIRECTION_OFFSET   CDATA_HEADER_LEN
 
#define SRC3_MODE_OFFSET   (CDATA_HEADER_LEN + 1)
 
#define SRC3_WORD_LENGTH_OFFSET   (CDATA_HEADER_LEN + 2)
 
#define SRC3_PARAMETER_OFFSET   (CDATA_HEADER_LEN + 3)
 
#define SRC3_COEFF_ADDR_OFFSET   (CDATA_HEADER_LEN + 8)
 
#define SRC3_FILTAP_ADDR_OFFSET   (CDATA_HEADER_LEN + 10)
 
#define SRC3_TEMP_INBUF_ADDR_OFFSET   (CDATA_HEADER_LEN + 16)
 
#define SRC3_TEMP_OUTBUF_ADDR_OFFSET   (CDATA_HEADER_LEN + 17)
 
#define MINISRC_IN_BUFFER_SIZE   ( 0x50 * 2 )
 
#define MINISRC_OUT_BUFFER_SIZE   ( 0x50 * 2 * 2)
 
#define MINISRC_TMP_BUFFER_SIZE   ( 112 + ( MINISRC_BIQUAD_STAGE * 3 + 4 ) * 2 * 2 )
 
#define MINISRC_BIQUAD_STAGE   2
 
#define MINISRC_COEF_LOC   0x175
 
#define DMACONTROL_BLOCK_MASK   0x000F
 
#define DMAC_BLOCK0_SELECTOR   0x0000
 
#define DMAC_BLOCK1_SELECTOR   0x0001
 
#define DMAC_BLOCK2_SELECTOR   0x0002
 
#define DMAC_BLOCK3_SELECTOR   0x0003
 
#define DMAC_BLOCK4_SELECTOR   0x0004
 
#define DMAC_BLOCK5_SELECTOR   0x0005
 
#define DMAC_BLOCK6_SELECTOR   0x0006
 
#define DMAC_BLOCK7_SELECTOR   0x0007
 
#define DMAC_BLOCK8_SELECTOR   0x0008
 
#define DMAC_BLOCK9_SELECTOR   0x0009
 
#define DMAC_BLOCKA_SELECTOR   0x000A
 
#define DMAC_BLOCKB_SELECTOR   0x000B
 
#define DMAC_BLOCKC_SELECTOR   0x000C
 
#define DMAC_BLOCKD_SELECTOR   0x000D
 
#define DMAC_BLOCKE_SELECTOR   0x000E
 
#define DMAC_BLOCKF_SELECTOR   0x000F
 
#define DMACONTROL_PAGE_MASK   0x00F0
 
#define DMAC_PAGE0_SELECTOR   0x0030
 
#define DMAC_PAGE1_SELECTOR   0x0020
 
#define DMAC_PAGE2_SELECTOR   0x0010
 
#define DMAC_PAGE3_SELECTOR   0x0000
 
#define DMACONTROL_AUTOREPEAT   0x1000
 
#define DMACONTROL_STOPPED   0x2000
 
#define DMACONTROL_DIRECTION   0x0100
 
#define ARB_VOLUME   ( 0x6800 )
 
#define LO(x)   ((x) & 0xffff)
 
#define HI(x)   LO((x) >> 16)
 
#define MINISRC_LPF_LEN   10
 
#define M3_PM_OPS   NULL
 

Functions

 MODULE_AUTHOR ("Zach Brown <[email protected]>, Takashi Iwai <[email protected]>")
 
 MODULE_DESCRIPTION ("ESS Maestro3 PCI")
 
 MODULE_LICENSE ("GPL")
 
 MODULE_SUPPORTED_DEVICE ("{{ESS,Maestro3 PCI},""{ESS,ES1988},""{ESS,Allegro PCI},""{ESS,Allegro-1 PCI},""{ESS,Canyon3D-2/LE PCI}}")
 
 MODULE_FIRMWARE ("ess/maestro3_assp_kernel.fw")
 
 MODULE_FIRMWARE ("ess/maestro3_assp_minisrc.fw")
 
 module_param_array (index, int, NULL, 0444)
 
 MODULE_PARM_DESC (index,"Index value for "CARD_NAME" soundcard.")
 
 module_param_array (id, charp, NULL, 0444)
 
 MODULE_PARM_DESC (id,"ID string for "CARD_NAME" soundcard.")
 
 module_param_array (enable, bool, NULL, 0444)
 
 MODULE_PARM_DESC (enable,"Enable this soundcard.")
 
 module_param_array (external_amp, bool, NULL, 0444)
 
 MODULE_PARM_DESC (external_amp,"Enable external amp for "CARD_NAME" soundcard.")
 
 module_param_array (amp_gpio, int, NULL, 0444)
 
 MODULE_PARM_DESC (amp_gpio,"GPIO pin number for external amp. (default = -1)")
 
 MODULE_DEVICE_TABLE (pci, snd_m3_ids)
 
 module_pci_driver (m3_driver)
 

Macro Definition Documentation

#define AC97_CODEC_TEST   0x00000020

Definition at line 172 of file maestro3.c.

#define ALIAS_10BIT_IO   0x00000020

Definition at line 98 of file maestro3.c.

#define ARB_VOLUME   ( 0x6800 )

Definition at line 701 of file maestro3.c.

#define ASSP_0_WS_ENABLE   0x01

Definition at line 339 of file maestro3.c.

#define ASSP_CLK_49MHZ_SELECT   0x08

Definition at line 342 of file maestro3.c.

#define ASSP_CONTROL_A   0xA2

Definition at line 338 of file maestro3.c.

#define ASSP_CONTROL_B   0xA4

Definition at line 347 of file maestro3.c.

#define ASSP_CONTROL_C   0xA6

Definition at line 354 of file maestro3.c.

#define ASSP_CTRL_A_RESERVED1   0x02

Definition at line 340 of file maestro3.c.

#define ASSP_CTRL_A_RESERVED2   0x04

Definition at line 341 of file maestro3.c.

#define ASSP_CTRL_A_RESERVED3   0x20

Definition at line 344 of file maestro3.c.

#define ASSP_DATA_PORT   0x84

Definition at line 331 of file maestro3.c.

#define ASSP_HOST_INT_ENABLE   0x01

Definition at line 355 of file maestro3.c.

#define ASSP_HOST_INT_STATUS   0xAC

Definition at line 359 of file maestro3.c.

#define ASSP_INDEX_PORT   0x80

Definition at line 329 of file maestro3.c.

#define ASSP_INT_ENABLE   0x0010

Definition at line 198 of file maestro3.c.

#define ASSP_INT_PENDING   0x10

Definition at line 214 of file maestro3.c.

#define ASSP_MEMORY_PORT   0x82

Definition at line 330 of file maestro3.c.

#define CARD_NAME   "ESS Maestro3/Allegro/Canyon3D-2"

Definition at line 31 of file maestro3.c.

#define CDATA_DMA_CONTROL   0x11

Definition at line 643 of file maestro3.c.

#define CDATA_FREQUENCY   0x13

Definition at line 646 of file maestro3.c.

#define CDATA_HEADER_LEN   0x18

Definition at line 652 of file maestro3.c.

#define CDATA_HOST_SRC_ADDRH   0x02

Definition at line 625 of file maestro3.c.

#define CDATA_HOST_SRC_ADDRL   0x01

Definition at line 624 of file maestro3.c.

#define CDATA_HOST_SRC_CURRENTH   0x06

Definition at line 629 of file maestro3.c.

#define CDATA_HOST_SRC_CURRENTL   0x05

Definition at line 628 of file maestro3.c.

#define CDATA_HOST_SRC_END_PLUS_1H   0x04

Definition at line 627 of file maestro3.c.

#define CDATA_HOST_SRC_END_PLUS_1L   0x03

Definition at line 626 of file maestro3.c.

#define CDATA_IN_BUF_BEGIN   0x09

Definition at line 634 of file maestro3.c.

#define CDATA_IN_BUF_CONNECT   0x07

Definition at line 631 of file maestro3.c.

#define CDATA_IN_BUF_END_PLUS_1   0x0A

Definition at line 635 of file maestro3.c.

#define CDATA_IN_BUF_HEAD   0x0B

Definition at line 636 of file maestro3.c.

#define CDATA_IN_BUF_TAIL   0x0C

Definition at line 637 of file maestro3.c.

#define CDATA_INSTANCE_READY   0x00

Definition at line 622 of file maestro3.c.

#define CDATA_LEFT_SUR_VOL   0x16

Definition at line 649 of file maestro3.c.

#define CDATA_LEFT_VOLUME   0x14

Definition at line 647 of file maestro3.c.

#define CDATA_OUT_BUF_BEGIN   0x0D

Definition at line 638 of file maestro3.c.

#define CDATA_OUT_BUF_CONNECT   0x08

Definition at line 632 of file maestro3.c.

#define CDATA_OUT_BUF_END_PLUS_1   0x0E

Definition at line 639 of file maestro3.c.

#define CDATA_OUT_BUF_HEAD   0x0F

Definition at line 640 of file maestro3.c.

#define CDATA_OUT_BUF_TAIL   0x10

Definition at line 641 of file maestro3.c.

#define CDATA_RESERVED   0x12

Definition at line 644 of file maestro3.c.

#define CDATA_RIGHT_SUR_VOL   0x17

Definition at line 650 of file maestro3.c.

#define CDATA_RIGHT_VOLUME   0x15

Definition at line 648 of file maestro3.c.

#define CLK_DIV_BY_48   0x00000000

Definition at line 145 of file maestro3.c.

#define CLK_DIV_BY_49   0x02000000

Definition at line 146 of file maestro3.c.

#define CLK_DIV_BY_50   0x04000000

Definition at line 147 of file maestro3.c.

#define CLK_DIV_RESERVED   0x06000000

Definition at line 148 of file maestro3.c.

#define CLK_DIV_SELECT   0x06000000

Definition at line 144 of file maestro3.c.

#define CLK_MULT_DATA_PORT   0x9C

Definition at line 336 of file maestro3.c.

#define CLK_MULT_MODE_0   0x00000000

Definition at line 152 of file maestro3.c.

#define CLK_MULT_MODE_1   0x10000000

Definition at line 153 of file maestro3.c.

#define CLK_MULT_MODE_2   0x20000000

Definition at line 154 of file maestro3.c.

#define CLK_MULT_MODE_3   0x30000000

Definition at line 155 of file maestro3.c.

#define CLK_MULT_MODE_SELECT   0x30000000

Definition at line 150 of file maestro3.c.

#define CLK_MULT_MODE_SELECT_2   0x00040000

Definition at line 137 of file maestro3.c.

#define CLK_MULT_MODE_SHIFT   28

Definition at line 151 of file maestro3.c.

#define CLKRUN_GEN_ENABLE   0x0100

Definition at line 201 of file maestro3.c.

#define CODEC_BUSY_B   0x01

Definition at line 228 of file maestro3.c.

#define CODEC_COMMAND   0x30

Definition at line 224 of file maestro3.c.

#define CODEC_DATA   0x32

Definition at line 230 of file maestro3.c.

#define CODEC_DIR_IN   0x00100000

Definition at line 139 of file maestro3.c.

#define CODEC_READ_B   0x80

Definition at line 225 of file maestro3.c.

#define CODEC_STATUS   0x30

Definition at line 227 of file maestro3.c.

#define COMMAND_ADDR_OUT   0x0003

Definition at line 250 of file maestro3.c.

#define DDMA_ENABLE   0x00000001

Definition at line 191 of file maestro3.c.

#define DISABLE_LEGACY   0x00008000

Definition at line 111 of file maestro3.c.

#define DMA_DDMA   0x00000000

Definition at line 123 of file maestro3.c.

#define DMA_PCPCI   0x00000200

Definition at line 125 of file maestro3.c.

#define DMA_POLICY_MASK   0x00000700

Definition at line 122 of file maestro3.c.

#define DMA_SAFE_GUARD   0x00000800

Definition at line 130 of file maestro3.c.

#define DMA_TDMA   0x00000100

Definition at line 124 of file maestro3.c.

#define DMA_WBDMA1   0x00000700

Definition at line 129 of file maestro3.c.

#define DMA_WBDMA16   0x00000400

Definition at line 126 of file maestro3.c.

#define DMA_WBDMA2   0x00000600

Definition at line 128 of file maestro3.c.

#define DMA_WBDMA4   0x00000500

Definition at line 127 of file maestro3.c.

#define DMAC_BLOCK0_SELECTOR   0x0000

Definition at line 670 of file maestro3.c.

#define DMAC_BLOCK1_SELECTOR   0x0001

Definition at line 671 of file maestro3.c.

#define DMAC_BLOCK2_SELECTOR   0x0002

Definition at line 672 of file maestro3.c.

#define DMAC_BLOCK3_SELECTOR   0x0003

Definition at line 673 of file maestro3.c.

#define DMAC_BLOCK4_SELECTOR   0x0004

Definition at line 674 of file maestro3.c.

#define DMAC_BLOCK5_SELECTOR   0x0005

Definition at line 675 of file maestro3.c.

#define DMAC_BLOCK6_SELECTOR   0x0006

Definition at line 676 of file maestro3.c.

#define DMAC_BLOCK7_SELECTOR   0x0007

Definition at line 677 of file maestro3.c.

#define DMAC_BLOCK8_SELECTOR   0x0008

Definition at line 678 of file maestro3.c.

#define DMAC_BLOCK9_SELECTOR   0x0009

Definition at line 679 of file maestro3.c.

#define DMAC_BLOCKA_SELECTOR   0x000A

Definition at line 680 of file maestro3.c.

#define DMAC_BLOCKB_SELECTOR   0x000B

Definition at line 681 of file maestro3.c.

#define DMAC_BLOCKC_SELECTOR   0x000C

Definition at line 682 of file maestro3.c.

#define DMAC_BLOCKD_SELECTOR   0x000D

Definition at line 683 of file maestro3.c.

#define DMAC_BLOCKE_SELECTOR   0x000E

Definition at line 684 of file maestro3.c.

#define DMAC_BLOCKF_SELECTOR   0x000F

Definition at line 685 of file maestro3.c.

#define DMAC_PAGE0_SELECTOR   0x0030

Definition at line 687 of file maestro3.c.

#define DMAC_PAGE1_SELECTOR   0x0020

Definition at line 688 of file maestro3.c.

#define DMAC_PAGE2_SELECTOR   0x0010

Definition at line 689 of file maestro3.c.

#define DMAC_PAGE3_SELECTOR   0x0000

Definition at line 690 of file maestro3.c.

#define DMACONTROL_AUTOREPEAT   0x1000

Definition at line 691 of file maestro3.c.

#define DMACONTROL_BLOCK_MASK   0x000F

Definition at line 669 of file maestro3.c.

#define DMACONTROL_DIRECTION   0x0100

Definition at line 693 of file maestro3.c.

#define DMACONTROL_PAGE_MASK   0x00F0

Definition at line 686 of file maestro3.c.

#define DMACONTROL_STOPPED   0x2000

Definition at line 692 of file maestro3.c.

#define DP_SHIFT_COUNT   7

Definition at line 413 of file maestro3.c.

#define DRIVER_NAME   "Maestro3"

Definition at line 32 of file maestro3.c.

#define DSP2HOST_REQ_I2SRATE   0x02

Definition at line 361 of file maestro3.c.

#define DSP2HOST_REQ_PIORECORD   0x01

Definition at line 360 of file maestro3.c.

#define DSP2HOST_REQ_TIMER   0x04

Definition at line 362 of file maestro3.c.

#define DSP_CLK_36MHZ_SELECT   0x40

Definition at line 345 of file maestro3.c.

#define DSP_PORT_CONTROL_REG_A   0xA2

Definition at line 378 of file maestro3.c.

#define DSP_PORT_CONTROL_REG_B   0xA4

Definition at line 379 of file maestro3.c.

#define DSP_PORT_CONTROL_REG_C   0xA6

Definition at line 380 of file maestro3.c.

#define DSP_PORT_MEMORY_DATA   0x84

Definition at line 376 of file maestro3.c.

#define DSP_PORT_MEMORY_INDEX   0x80

Definition at line 369 of file maestro3.c.

#define DSP_PORT_MEMORY_TYPE   0x82

Definition at line 371 of file maestro3.c.

#define DSP_PORT_TIMER_COUNT   0x06

Definition at line 367 of file maestro3.c.

#define EAPD_DRIVE_ENABLE   0x00002000

Definition at line 179 of file maestro3.c.

#define EEPROM_WRITE_ENABLE   0x00080000

Definition at line 138 of file maestro3.c.

#define ENABLE_ASSP_CLOCK   0x00

Definition at line 350 of file maestro3.c.

#define EXT_MASTER_PAIR_SEL   0x00000400

Definition at line 176 of file maestro3.c.

#define EXT_PCI_MASTER_ENABLE   0x00000001

Definition at line 169 of file maestro3.c.

#define FAST_PLU_ENABLE   0x10

Definition at line 343 of file maestro3.c.

#define FM_ADDR_REMAP_DISABLE   0x02

Definition at line 356 of file maestro3.c.

#define FM_SYNTHESIS_ENABLE   0x00000002

Definition at line 94 of file maestro3.c.

#define GAME_PORT_ENABLE   0x00000004

Definition at line 95 of file maestro3.c.

#define GPI_DOCKING_STATUS   0x0100

Definition at line 319 of file maestro3.c.

#define GPI_HEADPHONE_SENSE   0x0200

Definition at line 320 of file maestro3.c.

#define GPI_IIS_CLK   0x0040

Definition at line 316 of file maestro3.c.

#define GPI_IIS_DATA   0x0100

Definition at line 318 of file maestro3.c.

#define GPI_IIS_LRCLK   0x0080

Definition at line 317 of file maestro3.c.

#define GPI_LINEOUT_SENSE   0x0004

Definition at line 312 of file maestro3.c.

#define GPI_VOL_DOWN   0x0010

Definition at line 314 of file maestro3.c.

#define GPI_VOL_UP   0x0020

Definition at line 315 of file maestro3.c.

#define GPIO_DATA   0x60

Definition at line 304 of file maestro3.c.

#define GPIO_DATA_MASK   0x0FFF

Definition at line 305 of file maestro3.c.

#define GPIO_DIRECTION   0x68

Definition at line 310 of file maestro3.c.

#define GPIO_HV_STATUS   0x3000

Definition at line 306 of file maestro3.c.

#define GPIO_MASK   0x64

Definition at line 309 of file maestro3.c.

#define GPIO_PME_STATUS   0x4000

Definition at line 307 of file maestro3.c.

#define GPO_EXT_AMP_ALLEGRO   8 /* default allegro amp */

Definition at line 324 of file maestro3.c.

#define GPO_EXT_AMP_M3   1 /* default m3 amp */

Definition at line 323 of file maestro3.c.

#define GPO_EXT_AMP_SHUTDOWN   0x1000

Definition at line 321 of file maestro3.c.

#define GPO_M3_EXT_AMP_SHUTDN   0x0002

Definition at line 327 of file maestro3.c.

#define GPO_PRIMARY_AC97   0x0001

Definition at line 311 of file maestro3.c.

#define GPO_SECONDARY_AC97   0x0008

Definition at line 313 of file maestro3.c.

#define HANDSET_IN_LOCAL   0x0000

Definition at line 295 of file maestro3.c.

#define HANDSET_IN_MUTE   0x2000

Definition at line 297 of file maestro3.c.

#define HANDSET_IN_REMOTE   0x1000

Definition at line 296 of file maestro3.c.

#define HANDSET_OUT_BOTH   0x3000

Definition at line 274 of file maestro3.c.

#define HANDSET_OUT_LOCAL   0x0000

Definition at line 271 of file maestro3.c.

#define HANDSET_OUT_MUTE   0x2000

Definition at line 273 of file maestro3.c.

#define HANDSET_OUT_REMOTE   0x1000

Definition at line 272 of file maestro3.c.

#define HARDWARE_VOL_CTRL   0x1B

Definition at line 218 of file maestro3.c.

#define HI (   x)    LO((x) >> 16)
#define HI_PERF_GP_ENABLE   0x00001000

Definition at line 131 of file maestro3.c.

#define HOST_INT_CTRL   0x18

Definition at line 195 of file maestro3.c.

#define HOST_INT_STATUS   0x1A

Definition at line 211 of file maestro3.c.

#define HOST_WRITE_PORT_ENABLE   0x08

Definition at line 357 of file maestro3.c.

#define HV_BUTTON_FROM_GD   0x00200000

Definition at line 140 of file maestro3.c.

#define HV_CTRL_ENABLE   0x00800000

Definition at line 142 of file maestro3.c.

#define HV_CTRL_TEST   0x00100000

Definition at line 185 of file maestro3.c.

#define HV_CTRL_TO_PME   0x0400

Definition at line 202 of file maestro3.c.

#define HV_INT_ENABLE   0x0040

Definition at line 200 of file maestro3.c.

#define HV_INT_PENDING   0x40

Definition at line 216 of file maestro3.c.

#define HW_VOL_COUNTER_MASTER   0x1F

Definition at line 222 of file maestro3.c.

#define HW_VOL_COUNTER_VOICE   0x1D

Definition at line 220 of file maestro3.c.

#define IIS_INPUT_ENABLE   0x8000

Definition at line 239 of file maestro3.c.

#define IN_CLK_12MHZ_SELECT   0x00000100

Definition at line 174 of file maestro3.c.

#define INT_CLK_MULT_ENABLE   0x80000000

Definition at line 161 of file maestro3.c.

#define INT_CLK_MULT_RESET   0x80000000

Definition at line 157 of file maestro3.c.

#define INT_CLK_SELECT   0x40000000

Definition at line 156 of file maestro3.c.

#define INT_CLK_SRC_NOT_PCI   0x00100000

Definition at line 160 of file maestro3.c.

#define IO_CTRL_OUT_BOTH   0xC000

Definition at line 278 of file maestro3.c.

#define IO_CTRL_OUT_LOCAL   0x0000

Definition at line 275 of file maestro3.c.

#define IO_CTRL_OUT_MUTE   0x8000

Definition at line 277 of file maestro3.c.

#define IO_CTRL_OUT_REMOTE   0x4000

Definition at line 276 of file maestro3.c.

#define IO_SRAM_ENABLE   0x2000

Definition at line 238 of file maestro3.c.

#define IO_STATUS_IN_LOCAL   0x0000

Definition at line 298 of file maestro3.c.

#define IO_STATUS_IN_REMOTE   0x4000

Definition at line 299 of file maestro3.c.

#define KDATA_ADC1_LEFT_SUR_VOL   (KDATA_BASE_ADDR + 0x003F)

Definition at line 495 of file maestro3.c.

#define KDATA_ADC1_LEFT_VOLUME   (KDATA_BASE_ADDR + 0x003D)

Definition at line 493 of file maestro3.c.

#define KDATA_ADC1_MIXER_REQUEST   (KDATA_BASE_ADDR + 0x0078)

Definition at line 567 of file maestro3.c.

#define KDATA_ADC1_REQUEST   (KDATA_BASE_ADDR + 0x0074)

Definition at line 562 of file maestro3.c.

#define KDATA_ADC1_RIGHT_SUR_VOL   (KDATA_BASE_ADDR + 0x0040)

Definition at line 496 of file maestro3.c.

#define KDATA_ADC1_RIGHT_VOLUME   (KDATA_BASE_ADDR + 0x003E)

Definition at line 494 of file maestro3.c.

#define KDATA_ADC1_XFER0   (KDATA_BASE_ADDR + 0x003B)

Definition at line 491 of file maestro3.c.

#define KDATA_ADC1_XFER_ENDMARK   (KDATA_BASE_ADDR + 0x003C)

Definition at line 492 of file maestro3.c.

#define KDATA_ADC2_LEFT_SUR_VOL   (KDATA_BASE_ADDR + 0x0045)

Definition at line 502 of file maestro3.c.

#define KDATA_ADC2_LEFT_VOLUME   (KDATA_BASE_ADDR + 0x0043)

Definition at line 500 of file maestro3.c.

#define KDATA_ADC2_MIXER_REQUEST   (KDATA_BASE_ADDR + 0x0079)

Definition at line 568 of file maestro3.c.

#define KDATA_ADC2_REQUEST   (KDATA_BASE_ADDR + 0x0075)

Definition at line 563 of file maestro3.c.

#define KDATA_ADC2_RIGHT_SUR_VOL   (KDATA_BASE_ADDR + 0x0046)

Definition at line 503 of file maestro3.c.

#define KDATA_ADC2_RIGHT_VOLUME   (KDATA_BASE_ADDR + 0x0044)

Definition at line 501 of file maestro3.c.

#define KDATA_ADC2_XFER0   (KDATA_BASE_ADDR + 0x0041)

Definition at line 498 of file maestro3.c.

#define KDATA_ADC2_XFER_ENDMARK   (KDATA_BASE_ADDR + 0x0042)

Definition at line 499 of file maestro3.c.

#define KDATA_BASE_ADDR   0x1000

Definition at line 415 of file maestro3.c.

#define KDATA_BASE_ADDR2   0x1080

Definition at line 416 of file maestro3.c.

#define KDATA_CD_LEFT_SUR_VOL   (KDATA_BASE_ADDR + 0x004B)

Definition at line 509 of file maestro3.c.

#define KDATA_CD_LEFT_VOLUME   (KDATA_BASE_ADDR + 0x0049)

Definition at line 507 of file maestro3.c.

#define KDATA_CD_MIXER_REQUEST   (KDATA_BASE_ADDR + 0x007A)

Definition at line 569 of file maestro3.c.

#define KDATA_CD_REQUEST   (KDATA_BASE_ADDR + 0x0076)

Definition at line 564 of file maestro3.c.

#define KDATA_CD_RIGHT_SUR_VOL   (KDATA_BASE_ADDR + 0x004C)

Definition at line 510 of file maestro3.c.

#define KDATA_CD_RIGHT_VOLUME   (KDATA_BASE_ADDR + 0x004A)

Definition at line 508 of file maestro3.c.

#define KDATA_CD_XFER0   (KDATA_BASE_ADDR + 0x0047)

Definition at line 505 of file maestro3.c.

#define KDATA_CD_XFER_ENDMARK   (KDATA_BASE_ADDR + 0x0048)

Definition at line 506 of file maestro3.c.

#define KDATA_CHI_XFER0   (KDATA_BASE_ADDR + 0x0053)

Definition at line 520 of file maestro3.c.

#define KDATA_CHI_XFER_ENDMARK   (KDATA_BASE_ADDR + 0x0054)

Definition at line 521 of file maestro3.c.

#define KDATA_CLIENT_SCRATCH0   (KDATA_BASE_ADDR + 0x006E)

Definition at line 554 of file maestro3.c.

#define KDATA_CLIENT_SCRATCH1   (KDATA_BASE_ADDR + 0x006F)

Definition at line 555 of file maestro3.c.

#define KDATA_CURRENT_DMA   (KDATA_BASE_ADDR + 0x0026)

Definition at line 465 of file maestro3.c.

#define KDATA_CURRENT_MIXER   (KDATA_BASE_ADDR2 + 0x001C)

Definition at line 608 of file maestro3.c.

#define KDATA_CURRENT_TASK   (KDATA_BASE_ADDR + 0x0009)

Definition at line 428 of file maestro3.c.

#define KDATA_DAC_LEFT_VOLUME   (KDATA_BASE_ADDR2 + 0x001F)

Definition at line 611 of file maestro3.c.

#define KDATA_DAC_RIGHT_VOLUME   (KDATA_BASE_ADDR2 + 0x0020)

Definition at line 612 of file maestro3.c.

#define KDATA_DEBUG_OUTPUT   (KDATA_BASE_ADDR + 0x0060)

Definition at line 537 of file maestro3.c.

#define KDATA_DMA_ACTIVE   (KDATA_BASE_ADDR + 0x0028)

Definition at line 467 of file maestro3.c.

#define KDATA_DMA_SWITCH   (KDATA_BASE_ADDR + 0x0027)

Definition at line 466 of file maestro3.c.

#define KDATA_DMA_XFER0   (KDATA_BASE_ADDR + 0x0029)

Definition at line 469 of file maestro3.c.

#define KDATA_DMA_XFER1   (KDATA_BASE_ADDR + 0x002A)

Definition at line 470 of file maestro3.c.

#define KDATA_DMA_XFER2   (KDATA_BASE_ADDR + 0x002B)

Definition at line 471 of file maestro3.c.

#define KDATA_DMA_XFER3   (KDATA_BASE_ADDR + 0x002C)

Definition at line 472 of file maestro3.c.

#define KDATA_DMA_XFER4   (KDATA_BASE_ADDR + 0x002D)

Definition at line 473 of file maestro3.c.

#define KDATA_DMA_XFER5   (KDATA_BASE_ADDR + 0x002E)

Definition at line 474 of file maestro3.c.

#define KDATA_DMA_XFER6   (KDATA_BASE_ADDR + 0x002F)

Definition at line 475 of file maestro3.c.

#define KDATA_DMA_XFER7   (KDATA_BASE_ADDR + 0x0030)

Definition at line 476 of file maestro3.c.

#define KDATA_DMA_XFER8   (KDATA_BASE_ADDR + 0x0031)

Definition at line 477 of file maestro3.c.

#define KDATA_DMA_XFER_ENDMARK   (KDATA_BASE_ADDR + 0x0032)

Definition at line 478 of file maestro3.c.

#define KDATA_DSP_RESET_COUNT   (KDATA_BASE_ADDR + 0x005F)

Definition at line 536 of file maestro3.c.

#define KDATA_HALT_ACKNOWLEDGE   (KDATA_BASE_ADDR + 0x003A)

Definition at line 489 of file maestro3.c.

#define KDATA_HALT_SYNCH_CLIENT   (KDATA_BASE_ADDR + 0x0038)

Definition at line 487 of file maestro3.c.

#define KDATA_HALT_SYNCH_DMA   (KDATA_BASE_ADDR + 0x0039)

Definition at line 488 of file maestro3.c.

#define KDATA_I2S_ACTIVE   (KDATA_BASE_ADDR + 0x0035)

Definition at line 482 of file maestro3.c.

#define KDATA_I2S_INT_METER   (KDATA_BASE_ADDR + 0x0034)

Definition at line 481 of file maestro3.c.

#define KDATA_I2S_SAMPLE_COUNT   (KDATA_BASE_ADDR + 0x0033)

Definition at line 480 of file maestro3.c.

#define KDATA_I2S_XFER0   (KDATA_BASE_ADDR + 0x0051)

Definition at line 517 of file maestro3.c.

#define KDATA_I2S_XFER_ENDMARK   (KDATA_BASE_ADDR + 0x0052)

Definition at line 518 of file maestro3.c.

#define KDATA_INSTANCE0_CPYTHRU   (KDATA_BASE_ADDR + 0x0023)

Definition at line 461 of file maestro3.c.

#define KDATA_INSTANCE0_MINISRC   (KDATA_BASE_ADDR + 0x001E)

Definition at line 455 of file maestro3.c.

#define KDATA_INSTANCE0_MODEM   (KDATA_BASE_ADDR + 0x0019)

Definition at line 448 of file maestro3.c.

#define KDATA_INSTANCE0_POS3D   (KDATA_BASE_ADDR + 0x000B)

Definition at line 431 of file maestro3.c.

#define KDATA_INSTANCE0_SPDIF   (KDATA_BASE_ADDR + 0x0017)

Definition at line 445 of file maestro3.c.

#define KDATA_INSTANCE0_SPKVIRT   (KDATA_BASE_ADDR + 0x0015)

Definition at line 442 of file maestro3.c.

#define KDATA_INSTANCE0_SRC   (KDATA_BASE_ADDR + 0x001B)

Definition at line 451 of file maestro3.c.

#define KDATA_INSTANCE1_CPYTHRU   (KDATA_BASE_ADDR + 0x0024)

Definition at line 462 of file maestro3.c.

#define KDATA_INSTANCE1_MINISRC   (KDATA_BASE_ADDR + 0x001F)

Definition at line 456 of file maestro3.c.

#define KDATA_INSTANCE1_POS3D   (KDATA_BASE_ADDR + 0x000C)

Definition at line 432 of file maestro3.c.

#define KDATA_INSTANCE1_SRC   (KDATA_BASE_ADDR + 0x001C)

Definition at line 452 of file maestro3.c.

#define KDATA_INSTANCE2_MINISRC   (KDATA_BASE_ADDR + 0x0020)

Definition at line 457 of file maestro3.c.

#define KDATA_INSTANCE2_POS3D   (KDATA_BASE_ADDR + 0x000D)

Definition at line 433 of file maestro3.c.

#define KDATA_INSTANCE3_MINISRC   (KDATA_BASE_ADDR + 0x0021)

Definition at line 458 of file maestro3.c.

#define KDATA_INSTANCE3_POS3D   (KDATA_BASE_ADDR + 0x000E)

Definition at line 434 of file maestro3.c.

#define KDATA_INSTANCE4_POS3D   (KDATA_BASE_ADDR + 0x000F)

Definition at line 435 of file maestro3.c.

#define KDATA_INSTANCE5_POS3D   (KDATA_BASE_ADDR + 0x0010)

Definition at line 436 of file maestro3.c.

#define KDATA_INSTANCE6_POS3D   (KDATA_BASE_ADDR + 0x0011)

Definition at line 437 of file maestro3.c.

#define KDATA_INSTANCE7_POS3D   (KDATA_BASE_ADDR + 0x0012)

Definition at line 438 of file maestro3.c.

#define KDATA_INSTANCE8_POS3D   (KDATA_BASE_ADDR + 0x0013)

Definition at line 439 of file maestro3.c.

#define KDATA_INSTANCE_CPYTHRU_ENDMARK   (KDATA_BASE_ADDR + 0x0025)

Definition at line 463 of file maestro3.c.

#define KDATA_INSTANCE_MINISRC_ENDMARK   (KDATA_BASE_ADDR + 0x0022)

Definition at line 459 of file maestro3.c.

#define KDATA_INSTANCE_MODEM_ENDMARK   (KDATA_BASE_ADDR + 0x001A)

Definition at line 449 of file maestro3.c.

#define KDATA_INSTANCE_POS3D_ENDMARK   (KDATA_BASE_ADDR + 0x0014)

Definition at line 440 of file maestro3.c.

#define KDATA_INSTANCE_SPDIF_ENDMARK   (KDATA_BASE_ADDR + 0x0018)

Definition at line 446 of file maestro3.c.

#define KDATA_INSTANCE_SPKVIRT_ENDMARK   (KDATA_BASE_ADDR + 0x0016)

Definition at line 443 of file maestro3.c.

#define KDATA_INSTANCE_SRC_ENDMARK   (KDATA_BASE_ADDR + 0x001D)

Definition at line 453 of file maestro3.c.

#define KDATA_KERNEL_ISR_AR0   (KDATA_BASE_ADDR + 0x0065)

Definition at line 544 of file maestro3.c.

#define KDATA_KERNEL_ISR_AR1   (KDATA_BASE_ADDR + 0x0066)

Definition at line 545 of file maestro3.c.

#define KDATA_KERNEL_ISR_AR2   (KDATA_BASE_ADDR + 0x0067)

Definition at line 546 of file maestro3.c.

#define KDATA_KERNEL_ISR_AR3   (KDATA_BASE_ADDR + 0x0068)

Definition at line 547 of file maestro3.c.

#define KDATA_KERNEL_ISR_AR4   (KDATA_BASE_ADDR + 0x0069)

Definition at line 548 of file maestro3.c.

#define KDATA_KERNEL_ISR_AR5   (KDATA_BASE_ADDR + 0x006A)

Definition at line 549 of file maestro3.c.

#define KDATA_KERNEL_ISR_BRCR   (KDATA_BASE_ADDR + 0x006B)

Definition at line 550 of file maestro3.c.

#define KDATA_KERNEL_ISR_CBCR   (KDATA_BASE_ADDR + 0x0064)

Definition at line 543 of file maestro3.c.

#define KDATA_KERNEL_ISR_CBER1   (KDATA_BASE_ADDR + 0x0063)

Definition at line 542 of file maestro3.c.

#define KDATA_KERNEL_ISR_CBSR1   (KDATA_BASE_ADDR + 0x0062)

Definition at line 541 of file maestro3.c.

#define KDATA_KERNEL_ISR_LIST   (KDATA_BASE_ADDR + 0x0061)

Definition at line 539 of file maestro3.c.

#define KDATA_KERNEL_ISR_PAER   (KDATA_BASE_ADDR + 0x006D)

Definition at line 552 of file maestro3.c.

#define KDATA_KERNEL_ISR_PASR   (KDATA_BASE_ADDR + 0x006C)

Definition at line 551 of file maestro3.c.

#define KDATA_KERNEL_ISR_SCRATCH   (KDATA_BASE_ADDR + 0x0071)

Definition at line 557 of file maestro3.c.

#define KDATA_KERNEL_SCRATCH   (KDATA_BASE_ADDR + 0x0070)

Definition at line 556 of file maestro3.c.

#define KDATA_MIC_MIXER_REQUEST   (KDATA_BASE_ADDR + 0x007B)

Definition at line 570 of file maestro3.c.

#define KDATA_MIC_REQUEST   (KDATA_BASE_ADDR + 0x0077)

Definition at line 565 of file maestro3.c.

#define KDATA_MIC_SUR_VOL   (KDATA_BASE_ADDR + 0x0050)

Definition at line 515 of file maestro3.c.

#define KDATA_MIC_SYNC_COUNTER   (KDATA_BASE_ADDR + 0x007C)

Definition at line 571 of file maestro3.c.

#define KDATA_MIC_VOLUME   (KDATA_BASE_ADDR + 0x004F)

Definition at line 514 of file maestro3.c.

#define KDATA_MIC_XFER0   (KDATA_BASE_ADDR + 0x004D)

Definition at line 512 of file maestro3.c.

#define KDATA_MIC_XFER_ENDMARK   (KDATA_BASE_ADDR + 0x004E)

Definition at line 513 of file maestro3.c.

#define KDATA_MIXER_ACTIVE   (KDATA_BASE_ADDR2 + 0x001D)

Definition at line 609 of file maestro3.c.

#define KDATA_MIXER_BANK_STATUS   (KDATA_BASE_ADDR2 + 0x001E)

Definition at line 610 of file maestro3.c.

#define KDATA_MIXER_TASK_NUMBER   (KDATA_BASE_ADDR2 + 0x001B)

Definition at line 607 of file maestro3.c.

#define KDATA_MIXER_WORD0   (KDATA_BASE_ADDR2 + 0x0000)

Definition at line 578 of file maestro3.c.

#define KDATA_MIXER_WORD1   (KDATA_BASE_ADDR2 + 0x0001)

Definition at line 579 of file maestro3.c.

#define KDATA_MIXER_WORD2   (KDATA_BASE_ADDR2 + 0x0002)

Definition at line 580 of file maestro3.c.

#define KDATA_MIXER_WORD3   (KDATA_BASE_ADDR2 + 0x0003)

Definition at line 581 of file maestro3.c.

#define KDATA_MIXER_WORD4   (KDATA_BASE_ADDR2 + 0x0004)

Definition at line 582 of file maestro3.c.

#define KDATA_MIXER_WORD5   (KDATA_BASE_ADDR2 + 0x0005)

Definition at line 583 of file maestro3.c.

#define KDATA_MIXER_WORD6   (KDATA_BASE_ADDR2 + 0x0006)

Definition at line 584 of file maestro3.c.

#define KDATA_MIXER_WORD7   (KDATA_BASE_ADDR2 + 0x0007)

Definition at line 585 of file maestro3.c.

#define KDATA_MIXER_WORD8   (KDATA_BASE_ADDR2 + 0x0008)

Definition at line 586 of file maestro3.c.

#define KDATA_MIXER_WORD9   (KDATA_BASE_ADDR2 + 0x0009)

Definition at line 587 of file maestro3.c.

#define KDATA_MIXER_WORDA   (KDATA_BASE_ADDR2 + 0x000A)

Definition at line 588 of file maestro3.c.

#define KDATA_MIXER_WORDB   (KDATA_BASE_ADDR2 + 0x000B)

Definition at line 589 of file maestro3.c.

#define KDATA_MIXER_WORDC   (KDATA_BASE_ADDR2 + 0x000C)

Definition at line 590 of file maestro3.c.

#define KDATA_MIXER_WORDD   (KDATA_BASE_ADDR2 + 0x000D)

Definition at line 591 of file maestro3.c.

#define KDATA_MIXER_WORDE   (KDATA_BASE_ADDR2 + 0x000E)

Definition at line 592 of file maestro3.c.

#define KDATA_MIXER_WORDF   (KDATA_BASE_ADDR2 + 0x000F)

Definition at line 593 of file maestro3.c.

#define KDATA_MIXER_XFER0   (KDATA_BASE_ADDR2 + 0x0010)

Definition at line 595 of file maestro3.c.

#define KDATA_MIXER_XFER1   (KDATA_BASE_ADDR2 + 0x0011)

Definition at line 596 of file maestro3.c.

#define KDATA_MIXER_XFER2   (KDATA_BASE_ADDR2 + 0x0012)

Definition at line 597 of file maestro3.c.

#define KDATA_MIXER_XFER3   (KDATA_BASE_ADDR2 + 0x0013)

Definition at line 598 of file maestro3.c.

#define KDATA_MIXER_XFER4   (KDATA_BASE_ADDR2 + 0x0014)

Definition at line 599 of file maestro3.c.

#define KDATA_MIXER_XFER5   (KDATA_BASE_ADDR2 + 0x0015)

Definition at line 600 of file maestro3.c.

#define KDATA_MIXER_XFER6   (KDATA_BASE_ADDR2 + 0x0016)

Definition at line 601 of file maestro3.c.

#define KDATA_MIXER_XFER7   (KDATA_BASE_ADDR2 + 0x0017)

Definition at line 602 of file maestro3.c.

#define KDATA_MIXER_XFER8   (KDATA_BASE_ADDR2 + 0x0018)

Definition at line 603 of file maestro3.c.

#define KDATA_MIXER_XFER9   (KDATA_BASE_ADDR2 + 0x0019)

Definition at line 604 of file maestro3.c.

#define KDATA_MIXER_XFER_ENDMARK   (KDATA_BASE_ADDR2 + 0x001A)

Definition at line 605 of file maestro3.c.

#define KDATA_OUEUE_LEFT   (KDATA_BASE_ADDR + 0x0072)

Definition at line 559 of file maestro3.c.

#define KDATA_QUEUE_RIGHT   (KDATA_BASE_ADDR + 0x0073)

Definition at line 560 of file maestro3.c.

#define KDATA_SPDIF_CURRENT_FRAME   (KDATA_BASE_ADDR + 0x0056)

Definition at line 524 of file maestro3.c.

#define KDATA_SPDIF_FRAME0   (KDATA_BASE_ADDR + 0x0057)

Definition at line 525 of file maestro3.c.

#define KDATA_SPDIF_FRAME1   (KDATA_BASE_ADDR + 0x0058)

Definition at line 526 of file maestro3.c.

#define KDATA_SPDIF_FRAME2   (KDATA_BASE_ADDR + 0x0059)

Definition at line 527 of file maestro3.c.

#define KDATA_SPDIF_REQUEST   (KDATA_BASE_ADDR + 0x005A)

Definition at line 529 of file maestro3.c.

#define KDATA_SPDIF_TEMP   (KDATA_BASE_ADDR + 0x005B)

Definition at line 530 of file maestro3.c.

#define KDATA_SPDIF_XFER   (KDATA_BASE_ADDR + 0x0055)

Definition at line 523 of file maestro3.c.

#define KDATA_SPDIFIN_INT_METER   (KDATA_BASE_ADDR + 0x005E)

Definition at line 534 of file maestro3.c.

#define KDATA_SPDIFIN_XFER0   (KDATA_BASE_ADDR + 0x005C)

Definition at line 532 of file maestro3.c.

#define KDATA_SPDIFIN_XFER_ENDMARK   (KDATA_BASE_ADDR + 0x005D)

Definition at line 533 of file maestro3.c.

#define KDATA_TASK0   (KDATA_BASE_ADDR + 0x0000)

Definition at line 418 of file maestro3.c.

#define KDATA_TASK1   (KDATA_BASE_ADDR + 0x0001)

Definition at line 419 of file maestro3.c.

#define KDATA_TASK2   (KDATA_BASE_ADDR + 0x0002)

Definition at line 420 of file maestro3.c.

#define KDATA_TASK3   (KDATA_BASE_ADDR + 0x0003)

Definition at line 421 of file maestro3.c.

#define KDATA_TASK4   (KDATA_BASE_ADDR + 0x0004)

Definition at line 422 of file maestro3.c.

#define KDATA_TASK5   (KDATA_BASE_ADDR + 0x0005)

Definition at line 423 of file maestro3.c.

#define KDATA_TASK6   (KDATA_BASE_ADDR + 0x0006)

Definition at line 424 of file maestro3.c.

#define KDATA_TASK7   (KDATA_BASE_ADDR + 0x0007)

Definition at line 425 of file maestro3.c.

#define KDATA_TASK_ENDMARK   (KDATA_BASE_ADDR + 0x0008)

Definition at line 426 of file maestro3.c.

#define KDATA_TASK_SWITCH   (KDATA_BASE_ADDR + 0x000A)

Definition at line 429 of file maestro3.c.

#define KDATA_TIMER_COUNT_CURRENT   (KDATA_BASE_ADDR + 0x0037)

Definition at line 485 of file maestro3.c.

#define KDATA_TIMER_COUNT_RELOAD   (KDATA_BASE_ADDR + 0x0036)

Definition at line 484 of file maestro3.c.

#define LAC_PME_ENABLE   0x0400

Definition at line 235 of file maestro3.c.

#define LAC_SDFS_ENABLE   0x0800

Definition at line 236 of file maestro3.c.

#define LINE1_ADC_IN_LOCAL   0x0000

Definition at line 286 of file maestro3.c.

#define LINE1_ADC_IN_MUTE   0x0020

Definition at line 288 of file maestro3.c.

#define LINE1_ADC_IN_REMOTE   0x0010

Definition at line 287 of file maestro3.c.

#define LINE1_DAC_OUT_BOTH   0x0030

Definition at line 258 of file maestro3.c.

#define LINE1_DAC_OUT_LOCAL   0x0000

Definition at line 255 of file maestro3.c.

#define LINE1_DAC_OUT_MUTE   0x0020

Definition at line 257 of file maestro3.c.

#define LINE1_DAC_OUT_REMOTE   0x0010

Definition at line 256 of file maestro3.c.

#define LINE2_DAC_IN_LOCAL   0x0000

Definition at line 292 of file maestro3.c.

#define LINE2_DAC_IN_MUTE   0x0800

Definition at line 294 of file maestro3.c.

#define LINE2_DAC_IN_REMOTE   0x0400

Definition at line 293 of file maestro3.c.

#define LINE2_DAC_OUT_BOTH   0x0C00

Definition at line 270 of file maestro3.c.

#define LINE2_DAC_OUT_LOCAL   0x0000

Definition at line 267 of file maestro3.c.

#define LINE2_DAC_OUT_MUTE   0x0800

Definition at line 269 of file maestro3.c.

#define LINE2_DAC_OUT_REMOTE   0x0400

Definition at line 268 of file maestro3.c.

#define LO (   x)    ((x) & 0xffff)
#define M3_PM_OPS   NULL

Definition at line 2487 of file maestro3.c.

#define M3I_DOCK_ENABLE   0x0080

Definition at line 247 of file maestro3.c.

#define MAX_CAPTURES   1

Definition at line 83 of file maestro3.c.

#define MAX_INSTANCE_MINISRC   (KDATA_INSTANCE_MINISRC_ENDMARK - KDATA_INSTANCE0_MINISRC)

Definition at line 614 of file maestro3.c.

#define MAX_PLAYBACKS   2

Definition at line 82 of file maestro3.c.

#define MAX_VIRTUAL_ADC1_CHANNELS   (KDATA_ADC1_XFER_ENDMARK - KDATA_ADC1_XFER0)

Definition at line 617 of file maestro3.c.

#define MAX_VIRTUAL_DMA_CHANNELS   (KDATA_DMA_XFER_ENDMARK - KDATA_DMA_XFER0)

Definition at line 615 of file maestro3.c.

#define MAX_VIRTUAL_MIXER_CHANNELS   (KDATA_MIXER_XFER_ENDMARK - KDATA_MIXER_XFER0)

Definition at line 616 of file maestro3.c.

#define MEMTYPE_INTERNAL_CODE   0x0002

Definition at line 372 of file maestro3.c.

#define MEMTYPE_INTERNAL_DATA   0x0003

Definition at line 373 of file maestro3.c.

#define MEMTYPE_MASK   0x0003

Definition at line 374 of file maestro3.c.

#define MIC_ADC_IN_LOCAL   0x0000

Definition at line 289 of file maestro3.c.

#define MIC_ADC_IN_MUTE   0x0080

Definition at line 291 of file maestro3.c.

#define MIC_ADC_IN_REMOTE   0x0040

Definition at line 290 of file maestro3.c.

#define MIDI_1_ENABLE   0x00010000

Definition at line 182 of file maestro3.c.

#define MIDI_2_ENABLE   0x00020000

Definition at line 183 of file maestro3.c.

#define MIDI_IRQ_MASK   0x00003800

Definition at line 109 of file maestro3.c.

#define MINISRC_BIQUAD_STAGE   2

Definition at line 666 of file maestro3.c.

#define MINISRC_COEF_LOC   0x175

Definition at line 667 of file maestro3.c.

#define MINISRC_IN_BUFFER_SIZE   ( 0x50 * 2 )

Definition at line 663 of file maestro3.c.

#define MINISRC_LPF_LEN   10

Definition at line 2079 of file maestro3.c.

#define MINISRC_OUT_BUFFER_SIZE   ( 0x50 * 2 * 2)

Definition at line 664 of file maestro3.c.

#define MINISRC_TMP_BUFFER_SIZE   ( 112 + ( MINISRC_BIQUAD_STAGE * 3 + 4 ) * 2 * 2 )

Definition at line 665 of file maestro3.c.

#define MPU401_DATA_PORT   0x98

Definition at line 333 of file maestro3.c.

#define MPU401_INT_ENABLE   0x0002

Definition at line 197 of file maestro3.c.

#define MPU401_INT_PENDING   0x02

Definition at line 213 of file maestro3.c.

#define MPU401_IO_ENABLE   0x00000008

Definition at line 96 of file maestro3.c.

#define MPU401_IRQ_ENABLE   0x00000010

Definition at line 97 of file maestro3.c.

#define MPU401_STATUS_PORT   0x99

Definition at line 334 of file maestro3.c.

#define MPU_ADDR_300   0x00000008

Definition at line 117 of file maestro3.c.

#define MPU_ADDR_320   0x00000010

Definition at line 118 of file maestro3.c.

#define MPU_ADDR_330   0x00000000

Definition at line 116 of file maestro3.c.

#define MPU_ADDR_340   0x00000018

Definition at line 119 of file maestro3.c.

#define MPU_ADDR_MASK   0x00000018

Definition at line 115 of file maestro3.c.

#define MULTI_FUNC_DISABLE   0x00000200

Definition at line 175 of file maestro3.c.

#define NR_DSPS   (MAX_PLAYBACKS + MAX_CAPTURES)

Definition at line 84 of file maestro3.c.

#define NUM_UNITS_KERNEL_CODE   16

Definition at line 403 of file maestro3.c.

#define NUM_UNITS_KERNEL_CODE_WITH_HSP   16

Definition at line 406 of file maestro3.c.

#define NUM_UNITS_KERNEL_DATA   2

Definition at line 404 of file maestro3.c.

#define NUM_UNITS_KERNEL_DATA_WITH_HSP   5

Definition at line 407 of file maestro3.c.

#define PCI_ACPI_CONTROL   0x54

Definition at line 163 of file maestro3.c.

#define PCI_ACPI_D0   0x00000000

Definition at line 164 of file maestro3.c.

#define PCI_ACPI_D1   0xB4F70000

Definition at line 165 of file maestro3.c.

#define PCI_ACPI_D2   0xB4F7B4F7

Definition at line 166 of file maestro3.c.

#define PCI_ALLEGRO_CONFIG   0x50

Definition at line 113 of file maestro3.c.

#define PCI_DDMA_CTRL   0x60

Definition at line 190 of file maestro3.c.

#define PCI_LEGACY_AUDIO_CTRL   0x40

Definition at line 92 of file maestro3.c.

#define PCI_MASTER_SUPPORT   0x00000800

Definition at line 177 of file maestro3.c.

#define PCI_USER_CONFIG   0x58

Definition at line 168 of file maestro3.c.

#define PCI_USER_CONFIG_C   0x5C

Definition at line 188 of file maestro3.c.

#define PCM_CLS_OUT_BOTH   0x00C0

Definition at line 262 of file maestro3.c.

#define PCM_CLS_OUT_LOCAL   0x0000

Definition at line 259 of file maestro3.c.

#define PCM_CLS_OUT_MUTE   0x0080

Definition at line 261 of file maestro3.c.

#define PCM_CLS_OUT_REMOTE   0x0040

Definition at line 260 of file maestro3.c.

#define PCM_LR_IN_BOTH   0x000C

Definition at line 285 of file maestro3.c.

#define PCM_LR_IN_LOCAL   0x0000

Definition at line 282 of file maestro3.c.

#define PCM_LR_IN_REMOTE   0x0004

Definition at line 283 of file maestro3.c.

#define PCM_LR_OUT_BOTH   0x000C

Definition at line 254 of file maestro3.c.

#define PCM_LR_OUT_LOCAL   0x0000

Definition at line 251 of file maestro3.c.

#define PCM_LR_OUT_MUTE   0x0008

Definition at line 253 of file maestro3.c.

#define PCM_LR_OUT_REMOTE   0x0004

Definition at line 252 of file maestro3.c.

#define PCM_LR_RESERVED   0x0008

Definition at line 284 of file maestro3.c.

#define PCM_RLF_OUT_BOTH   0x0300

Definition at line 266 of file maestro3.c.

#define PCM_RLF_OUT_LOCAL   0x0000

Definition at line 263 of file maestro3.c.

#define PCM_RLF_OUT_MUTE   0x0200

Definition at line 265 of file maestro3.c.

#define PCM_RLF_OUT_REMOTE   0x0100

Definition at line 264 of file maestro3.c.

#define PIC_SNOOP_MODE_0   0x00002000

Definition at line 132 of file maestro3.c.

#define PIC_SNOOP_MODE_1   0x00004000

Definition at line 133 of file maestro3.c.

#define PM_CTRL_ENABLE   0x08000000

Definition at line 149 of file maestro3.c.

#define POSTED_WRITE_ENABLE   0x00000080

Definition at line 121 of file maestro3.c.

#define RAC_PME_ENABLE   0x0100

Definition at line 233 of file maestro3.c.

#define RAC_SDFS_ENABLE   0x0200

Definition at line 234 of file maestro3.c.

#define REDUCED_DEBOUNCE   0x00400000

Definition at line 141 of file maestro3.c.

#define REGB_ENABLE_RESET   0x01

Definition at line 208 of file maestro3.c.

#define REGB_STOP_CLOCK   0x10

Definition at line 209 of file maestro3.c.

#define REQ_LOW_ENABLE   0x00008000

Definition at line 181 of file maestro3.c.

#define REQ_TRI_STATE_ENABLE   0x00004000

Definition at line 180 of file maestro3.c.

#define RESET_ASSP   0x00

Definition at line 348 of file maestro3.c.

#define RESET_TOGGLE   0x40

Definition at line 352 of file maestro3.c.

#define REV_A_CODE_MEMORY_BEGIN   0x0000

Definition at line 382 of file maestro3.c.

#define REV_A_CODE_MEMORY_END   0x0FFF

Definition at line 383 of file maestro3.c.

#define REV_A_CODE_MEMORY_LENGTH   (REV_A_CODE_MEMORY_END - REV_A_CODE_MEMORY_BEGIN + 1)

Definition at line 385 of file maestro3.c.

#define REV_A_CODE_MEMORY_UNIT_LENGTH   0x0040

Definition at line 384 of file maestro3.c.

#define REV_A_DATA_MEMORY_BEGIN   0x1000

Definition at line 392 of file maestro3.c.

#define REV_A_DATA_MEMORY_END   0x2FFF

Definition at line 393 of file maestro3.c.

#define REV_A_DATA_MEMORY_LENGTH   (REV_A_DATA_MEMORY_END - REV_A_DATA_MEMORY_BEGIN + 1)

Definition at line 395 of file maestro3.c.

#define REV_A_DATA_MEMORY_UNIT_LENGTH   0x0080

Definition at line 394 of file maestro3.c.

#define REV_B_CODE_MEMORY_BEGIN   0x0000

Definition at line 387 of file maestro3.c.

#define REV_B_CODE_MEMORY_END   0x0BFF

Definition at line 388 of file maestro3.c.

#define REV_B_CODE_MEMORY_LENGTH   (REV_B_CODE_MEMORY_END - REV_B_CODE_MEMORY_BEGIN + 1)

Definition at line 390 of file maestro3.c.

#define REV_B_CODE_MEMORY_UNIT_LENGTH   0x0040

Definition at line 389 of file maestro3.c.

#define REV_B_DATA_MEMORY_BEGIN   0x1000

Definition at line 397 of file maestro3.c.

#define REV_B_DATA_MEMORY_END   0x2BFF

Definition at line 398 of file maestro3.c.

#define REV_B_DATA_MEMORY_LENGTH   (REV_B_DATA_MEMORY_END - REV_B_DATA_MEMORY_BEGIN + 1)

Definition at line 400 of file maestro3.c.

#define REV_B_DATA_MEMORY_UNIT_LENGTH   0x0080

Definition at line 399 of file maestro3.c.

#define RING_BUS_CTRL_A   0x36

Definition at line 232 of file maestro3.c.

#define RING_BUS_CTRL_B   0x38

Definition at line 241 of file maestro3.c.

#define RING_IN_ENABLE   0x00010000

Definition at line 135 of file maestro3.c.

#define RING_INT_ENABLE   0x0020

Definition at line 199 of file maestro3.c.

#define RING_INT_PENDING   0x20

Definition at line 215 of file maestro3.c.

#define RUN_ASSP   0x01

Definition at line 349 of file maestro3.c.

#define SB_ADDR_240   0x00000004

Definition at line 114 of file maestro3.c.

#define SB_AUDIO_SYNC   0x00040000

Definition at line 184 of file maestro3.c.

#define SB_DMA_0   0x00000040

Definition at line 100 of file maestro3.c.

#define SB_DMA_1   0x00000040

Definition at line 101 of file maestro3.c.

#define SB_DMA_3   0x000000C0

Definition at line 103 of file maestro3.c.

#define SB_DMA_MASK   0x000000C0

Definition at line 99 of file maestro3.c.

#define SB_DMA_R   0x00000080

Definition at line 102 of file maestro3.c.

#define SB_INT_ENABLE   0x0001

Definition at line 196 of file maestro3.c.

#define SB_INT_PENDING   0x01

Definition at line 212 of file maestro3.c.

#define SB_IRQ_10   0x00000300

Definition at line 108 of file maestro3.c.

#define SB_IRQ_5   0x00000000

Definition at line 105 of file maestro3.c.

#define SB_IRQ_7   0x00000100

Definition at line 106 of file maestro3.c.

#define SB_IRQ_9   0x00000200

Definition at line 107 of file maestro3.c.

#define SB_IRQ_MASK   0x00000700

Definition at line 104 of file maestro3.c.

#define SB_MODULE_INTF_ENABLE   0x0040

Definition at line 245 of file maestro3.c.

#define SDO_IN_DEST_CTRL   0x3C

Definition at line 280 of file maestro3.c.

#define SDO_OUT_DEST_CTRL   0x3A

Definition at line 249 of file maestro3.c.

#define SECOND_AC_ENABLE   0x0020

Definition at line 244 of file maestro3.c.

#define SECOND_CODEC_ID_MASK   0x0003

Definition at line 242 of file maestro3.c.

#define SERIAL_AC_LINK_ENABLE   0x1000

Definition at line 237 of file maestro3.c.

#define SERIAL_IRQ_ENABLE   0x00004000

Definition at line 110 of file maestro3.c.

#define SHADOW_MIX_REG_MASTER   0x1E

Definition at line 221 of file maestro3.c.

#define SHADOW_MIX_REG_VOICE   0x1C

Definition at line 219 of file maestro3.c.

#define SOFTWARE_RESET_ENABLE   0x8000

Definition at line 203 of file maestro3.c.

#define SOUND_BLASTER_ENABLE   0x00000001

Definition at line 93 of file maestro3.c.

#define SOUNDBLASTER_IRQ_MASK   0x00008000

Definition at line 134 of file maestro3.c.

#define SOUNDBLASTER_TEST   0x00400000

Definition at line 186 of file maestro3.c.

#define SPDIF_ENABLE   0x01000000

Definition at line 143 of file maestro3.c.

#define SPDIF_FUNC_ENABLE   0x0010

Definition at line 243 of file maestro3.c.

#define SPDIF_IN_CTRL   0x3E

Definition at line 301 of file maestro3.c.

#define SPDIF_IN_ENABLE   0x0001

Definition at line 302 of file maestro3.c.

#define SPDIF_OUT_SELECT   0x00000002

Definition at line 170 of file maestro3.c.

#define SPDIF_TEST_MODE   0x00020000

Definition at line 136 of file maestro3.c.

#define SRC3_COEFF_ADDR_OFFSET   (CDATA_HEADER_LEN + 8)

Definition at line 658 of file maestro3.c.

#define SRC3_DIRECTION_OFFSET   CDATA_HEADER_LEN

Definition at line 654 of file maestro3.c.

#define SRC3_FILTAP_ADDR_OFFSET   (CDATA_HEADER_LEN + 10)

Definition at line 659 of file maestro3.c.

#define SRC3_MODE_OFFSET   (CDATA_HEADER_LEN + 1)

Definition at line 655 of file maestro3.c.

#define SRC3_PARAMETER_OFFSET   (CDATA_HEADER_LEN + 3)

Definition at line 657 of file maestro3.c.

#define SRC3_TEMP_INBUF_ADDR_OFFSET   (CDATA_HEADER_LEN + 16)

Definition at line 660 of file maestro3.c.

#define SRC3_TEMP_OUTBUF_ADDR_OFFSET   (CDATA_HEADER_LEN + 17)

Definition at line 661 of file maestro3.c.

#define SRC3_WORD_LENGTH_OFFSET   (CDATA_HEADER_LEN + 2)

Definition at line 656 of file maestro3.c.

#define SSPE_ENABLE   0x0040

Definition at line 246 of file maestro3.c.

#define STATUS_ADDR_IN   0x0003

Definition at line 281 of file maestro3.c.

#define STOP_ASSP_CLOCK   0x10

Definition at line 351 of file maestro3.c.

#define STOP_CLOCK_ENABLE   0x00001000

Definition at line 178 of file maestro3.c.

#define TEST_PIN_DIR_CTRL   0x00000004

Definition at line 171 of file maestro3.c.

#define TRI_STATE_BUFFER   0x00000080

Definition at line 173 of file maestro3.c.

#define USE_PCI_TIMING   0x00000040

Definition at line 120 of file maestro3.c.

Function Documentation

MODULE_AUTHOR ( "Zach Brown <[email protected] ,
Takashi Iwai< tiwai @suse.de >"   
)
MODULE_DESCRIPTION ( "ESS Maestro3 PCI )
MODULE_DEVICE_TABLE ( pci  ,
snd_m3_ids   
)
MODULE_FIRMWARE ( "ess/maestro3_assp_kernel.fw )
MODULE_FIRMWARE ( "ess/maestro3_assp_minisrc.fw )
MODULE_LICENSE ( "GPL"  )
module_param_array ( index  ,
int  ,
NULL  ,
0444   
)
module_param_array ( id  ,
charp  ,
NULL  ,
0444   
)
module_param_array ( enable  ,
bool  ,
NULL  ,
0444   
)
module_param_array ( external_amp  ,
bool  ,
NULL  ,
0444   
)
module_param_array ( amp_gpio  ,
int  ,
NULL  ,
0444   
)
MODULE_PARM_DESC ( index  ,
"Index value for "CARD_NAME" soundcard."   
)
MODULE_PARM_DESC ( id  ,
"ID string for "CARD_NAME" soundcard."   
)
MODULE_PARM_DESC ( enable  ,
"Enable this soundcard."   
)
MODULE_PARM_DESC ( external_amp  ,
"Enable external amp for "CARD_NAME" soundcard."   
)
MODULE_PARM_DESC ( amp_gpio  ,
"GPIO pin number for external amp. (default = -1)"   
)
module_pci_driver ( m3_driver  )
MODULE_SUPPORTED_DEVICE ( "{{ESS,Maestro3 PCI},""{ESS,ES1988},""{ESS,Allegro PCI},""{ESS,Allegro-1 PCI},""{ESS,Canyon3D-2/LE PCI}}"  )