Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Enumerations | Functions
atiixp_modem.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/slab.h>
#include <linux/module.h>
#include <linux/mutex.h>
#include <sound/core.h>
#include <sound/pcm.h>
#include <sound/pcm_params.h>
#include <sound/info.h>
#include <sound/ac97_codec.h>
#include <sound/initval.h>

Go to the source code of this file.

Data Structures

struct  atiixp_dma_desc
 
struct  atiixp_dma_ops
 
struct  atiixp_dma
 
struct  atiixp_modem
 

Macros

#define ATI_REG_ISR   0x00 /* interrupt source */
 
#define ATI_REG_ISR_MODEM_IN_XRUN   (1U<<0)
 
#define ATI_REG_ISR_MODEM_IN_STATUS   (1U<<1)
 
#define ATI_REG_ISR_MODEM_OUT1_XRUN   (1U<<2)
 
#define ATI_REG_ISR_MODEM_OUT1_STATUS   (1U<<3)
 
#define ATI_REG_ISR_MODEM_OUT2_XRUN   (1U<<4)
 
#define ATI_REG_ISR_MODEM_OUT2_STATUS   (1U<<5)
 
#define ATI_REG_ISR_MODEM_OUT3_XRUN   (1U<<6)
 
#define ATI_REG_ISR_MODEM_OUT3_STATUS   (1U<<7)
 
#define ATI_REG_ISR_PHYS_INTR   (1U<<8)
 
#define ATI_REG_ISR_PHYS_MISMATCH   (1U<<9)
 
#define ATI_REG_ISR_CODEC0_NOT_READY   (1U<<10)
 
#define ATI_REG_ISR_CODEC1_NOT_READY   (1U<<11)
 
#define ATI_REG_ISR_CODEC2_NOT_READY   (1U<<12)
 
#define ATI_REG_ISR_NEW_FRAME   (1U<<13)
 
#define ATI_REG_ISR_MODEM_GPIO_DATA   (1U<<14)
 
#define ATI_REG_IER   0x04 /* interrupt enable */
 
#define ATI_REG_IER_MODEM_IN_XRUN_EN   (1U<<0)
 
#define ATI_REG_IER_MODEM_STATUS_EN   (1U<<1)
 
#define ATI_REG_IER_MODEM_OUT1_XRUN_EN   (1U<<2)
 
#define ATI_REG_IER_MODEM_OUT2_XRUN_EN   (1U<<4)
 
#define ATI_REG_IER_MODEM_OUT3_XRUN_EN   (1U<<6)
 
#define ATI_REG_IER_PHYS_INTR_EN   (1U<<8)
 
#define ATI_REG_IER_PHYS_MISMATCH_EN   (1U<<9)
 
#define ATI_REG_IER_CODEC0_INTR_EN   (1U<<10)
 
#define ATI_REG_IER_CODEC1_INTR_EN   (1U<<11)
 
#define ATI_REG_IER_CODEC2_INTR_EN   (1U<<12)
 
#define ATI_REG_IER_NEW_FRAME_EN   (1U<<13) /* (RO */
 
#define ATI_REG_IER_MODEM_GPIO_DATA_EN   (1U<<14) /* (WO) modem is running */
 
#define ATI_REG_IER_MODEM_SET_BUS_BUSY   (1U<<15)
 
#define ATI_REG_CMD   0x08 /* command */
 
#define ATI_REG_CMD_POWERDOWN   (1U<<0)
 
#define ATI_REG_CMD_MODEM_RECEIVE_EN   (1U<<1) /* modem only */
 
#define ATI_REG_CMD_MODEM_SEND1_EN   (1U<<2) /* modem only */
 
#define ATI_REG_CMD_MODEM_SEND2_EN   (1U<<3) /* modem only */
 
#define ATI_REG_CMD_MODEM_SEND3_EN   (1U<<4) /* modem only */
 
#define ATI_REG_CMD_MODEM_STATUS_MEM   (1U<<5) /* modem only */
 
#define ATI_REG_CMD_MODEM_IN_DMA_EN   (1U<<8) /* modem only */
 
#define ATI_REG_CMD_MODEM_OUT_DMA1_EN   (1U<<9) /* modem only */
 
#define ATI_REG_CMD_MODEM_OUT_DMA2_EN   (1U<<10) /* modem only */
 
#define ATI_REG_CMD_MODEM_OUT_DMA3_EN   (1U<<11) /* modem only */
 
#define ATI_REG_CMD_AUDIO_PRESENT   (1U<<20)
 
#define ATI_REG_CMD_MODEM_GPIO_THRU_DMA   (1U<<22) /* modem only */
 
#define ATI_REG_CMD_LOOPBACK_EN   (1U<<23)
 
#define ATI_REG_CMD_PACKED_DIS   (1U<<24)
 
#define ATI_REG_CMD_BURST_EN   (1U<<25)
 
#define ATI_REG_CMD_PANIC_EN   (1U<<26)
 
#define ATI_REG_CMD_MODEM_PRESENT   (1U<<27)
 
#define ATI_REG_CMD_ACLINK_ACTIVE   (1U<<28)
 
#define ATI_REG_CMD_AC_SOFT_RESET   (1U<<29)
 
#define ATI_REG_CMD_AC_SYNC   (1U<<30)
 
#define ATI_REG_CMD_AC_RESET   (1U<<31)
 
#define ATI_REG_PHYS_OUT_ADDR   0x0c
 
#define ATI_REG_PHYS_OUT_CODEC_MASK   (3U<<0)
 
#define ATI_REG_PHYS_OUT_RW   (1U<<2)
 
#define ATI_REG_PHYS_OUT_ADDR_EN   (1U<<8)
 
#define ATI_REG_PHYS_OUT_ADDR_SHIFT   9
 
#define ATI_REG_PHYS_OUT_DATA_SHIFT   16
 
#define ATI_REG_PHYS_IN_ADDR   0x10
 
#define ATI_REG_PHYS_IN_READ_FLAG   (1U<<8)
 
#define ATI_REG_PHYS_IN_ADDR_SHIFT   9
 
#define ATI_REG_PHYS_IN_DATA_SHIFT   16
 
#define ATI_REG_SLOTREQ   0x14
 
#define ATI_REG_COUNTER   0x18
 
#define ATI_REG_COUNTER_SLOT   (3U<<0) /* slot # */
 
#define ATI_REG_COUNTER_BITCLOCK   (31U<<8)
 
#define ATI_REG_IN_FIFO_THRESHOLD   0x1c
 
#define ATI_REG_MODEM_IN_DMA_LINKPTR   0x20
 
#define ATI_REG_MODEM_IN_DMA_DT_START   0x24 /* RO */
 
#define ATI_REG_MODEM_IN_DMA_DT_NEXT   0x28 /* RO */
 
#define ATI_REG_MODEM_IN_DMA_DT_CUR   0x2c /* RO */
 
#define ATI_REG_MODEM_IN_DMA_DT_SIZE   0x30
 
#define ATI_REG_MODEM_OUT_FIFO   0x34 /* output threshold */
 
#define ATI_REG_MODEM_OUT1_DMA_THRESHOLD_MASK   (0xf<<16)
 
#define ATI_REG_MODEM_OUT1_DMA_THRESHOLD_SHIFT   16
 
#define ATI_REG_MODEM_OUT_DMA1_LINKPTR   0x38
 
#define ATI_REG_MODEM_OUT_DMA2_LINKPTR   0x3c
 
#define ATI_REG_MODEM_OUT_DMA3_LINKPTR   0x40
 
#define ATI_REG_MODEM_OUT_DMA1_DT_START   0x44
 
#define ATI_REG_MODEM_OUT_DMA1_DT_NEXT   0x48
 
#define ATI_REG_MODEM_OUT_DMA1_DT_CUR   0x4c
 
#define ATI_REG_MODEM_OUT_DMA2_DT_START   0x50
 
#define ATI_REG_MODEM_OUT_DMA2_DT_NEXT   0x54
 
#define ATI_REG_MODEM_OUT_DMA2_DT_CUR   0x58
 
#define ATI_REG_MODEM_OUT_DMA3_DT_START   0x5c
 
#define ATI_REG_MODEM_OUT_DMA3_DT_NEXT   0x60
 
#define ATI_REG_MODEM_OUT_DMA3_DT_CUR   0x64
 
#define ATI_REG_MODEM_OUT_DMA12_DT_SIZE   0x68
 
#define ATI_REG_MODEM_OUT_DMA3_DT_SIZE   0x6c
 
#define ATI_REG_MODEM_OUT_FIFO_USED   0x70
 
#define ATI_REG_MODEM_OUT_GPIO   0x74
 
#define ATI_REG_MODEM_OUT_GPIO_EN   1
 
#define ATI_REG_MODEM_OUT_GPIO_DATA_SHIFT   5
 
#define ATI_REG_MODEM_IN_GPIO   0x78
 
#define ATI_REG_MODEM_MIRROR   0x7c
 
#define ATI_REG_AUDIO_MIRROR   0x80
 
#define ATI_REG_MODEM_FIFO_FLUSH   0x88
 
#define ATI_REG_MODEM_FIFO_OUT1_FLUSH   (1U<<0)
 
#define ATI_REG_MODEM_FIFO_OUT2_FLUSH   (1U<<1)
 
#define ATI_REG_MODEM_FIFO_OUT3_FLUSH   (1U<<2)
 
#define ATI_REG_MODEM_FIFO_IN_FLUSH   (1U<<3)
 
#define ATI_REG_LINKPTR_EN   (1U<<0)
 
#define ATI_MAX_DESCRIPTORS   256 /* max number of descriptor packets */
 
#define NUM_ATI_CODECS   3
 
#define atiixp_write(chip, reg, value)   writel(value, chip->remap_addr + ATI_REG_##reg)
 
#define atiixp_read(chip, reg)   readl(chip->remap_addr + ATI_REG_##reg)
 
#define atiixp_update(chip, reg, mask, val)   snd_atiixp_update_bits(chip, ATI_REG_##reg, mask, val)
 
#define ATI_DESC_LIST_SIZE   PAGE_ALIGN(ATI_MAX_DESCRIPTORS * sizeof(struct atiixp_dma_desc))
 
#define ALL_CODEC_NOT_READY
 
#define CODEC_CHECK_BITS   (ALL_CODEC_NOT_READY|ATI_REG_ISR_NEW_FRAME)
 
#define SND_ATIIXP_PM_OPS   NULL
 
#define snd_atiixp_proc_init(chip)
 

Enumerations

enum  { ATI_DMA_PLAYBACK, ATI_DMA_CAPTURE, NUM_ATI_DMAS }
 
enum  { ATI_PCM_OUT, ATI_PCM_IN, NUM_ATI_PCMS }
 
enum  { ATI_PCMDEV_ANALOG, NUM_ATI_PCMDEVS }
 

Functions

 MODULE_AUTHOR ("Takashi Iwai <[email protected]>")
 
 MODULE_DESCRIPTION ("ATI IXP MC97 controller")
 
 MODULE_LICENSE ("GPL")
 
 MODULE_SUPPORTED_DEVICE ("{{ATI,IXP150/200/250}}")
 
 module_param (index, int, 0444)
 
 MODULE_PARM_DESC (index,"Index value for ATI IXP controller.")
 
 module_param (id, charp, 0444)
 
 MODULE_PARM_DESC (id,"ID string for ATI IXP controller.")
 
 module_param (ac97_clock, int, 0444)
 
 MODULE_PARM_DESC (ac97_clock,"AC'97 codec clock (default 48000Hz).")
 
 module_param (enable, bool, 0444)
 
 MODULE_DEVICE_TABLE (pci, snd_atiixp_ids)
 
 module_pci_driver (atiixp_modem_driver)
 

Macro Definition Documentation

#define ALL_CODEC_NOT_READY
Value:
ATI_REG_ISR_CODEC1_NOT_READY |\
ATI_REG_ISR_CODEC2_NOT_READY)

Definition at line 534 of file atiixp_modem.c.

#define ATI_DESC_LIST_SIZE   PAGE_ALIGN(ATI_MAX_DESCRIPTORS * sizeof(struct atiixp_dma_desc))

Definition at line 312 of file atiixp_modem.c.

#define ATI_MAX_DESCRIPTORS   256 /* max number of descriptor packets */

Definition at line 176 of file atiixp_modem.c.

#define ATI_REG_AUDIO_MIRROR   0x80

Definition at line 165 of file atiixp_modem.c.

#define ATI_REG_CMD   0x08 /* command */

Definition at line 93 of file atiixp_modem.c.

#define ATI_REG_CMD_AC_RESET   (1U<<31)

Definition at line 114 of file atiixp_modem.c.

#define ATI_REG_CMD_AC_SOFT_RESET   (1U<<29)

Definition at line 112 of file atiixp_modem.c.

#define ATI_REG_CMD_AC_SYNC   (1U<<30)

Definition at line 113 of file atiixp_modem.c.

#define ATI_REG_CMD_ACLINK_ACTIVE   (1U<<28)

Definition at line 111 of file atiixp_modem.c.

#define ATI_REG_CMD_AUDIO_PRESENT   (1U<<20)

Definition at line 104 of file atiixp_modem.c.

#define ATI_REG_CMD_BURST_EN   (1U<<25)

Definition at line 108 of file atiixp_modem.c.

#define ATI_REG_CMD_LOOPBACK_EN   (1U<<23)

Definition at line 106 of file atiixp_modem.c.

#define ATI_REG_CMD_MODEM_GPIO_THRU_DMA   (1U<<22) /* modem only */

Definition at line 105 of file atiixp_modem.c.

#define ATI_REG_CMD_MODEM_IN_DMA_EN   (1U<<8) /* modem only */

Definition at line 100 of file atiixp_modem.c.

#define ATI_REG_CMD_MODEM_OUT_DMA1_EN   (1U<<9) /* modem only */

Definition at line 101 of file atiixp_modem.c.

#define ATI_REG_CMD_MODEM_OUT_DMA2_EN   (1U<<10) /* modem only */

Definition at line 102 of file atiixp_modem.c.

#define ATI_REG_CMD_MODEM_OUT_DMA3_EN   (1U<<11) /* modem only */

Definition at line 103 of file atiixp_modem.c.

#define ATI_REG_CMD_MODEM_PRESENT   (1U<<27)

Definition at line 110 of file atiixp_modem.c.

#define ATI_REG_CMD_MODEM_RECEIVE_EN   (1U<<1) /* modem only */

Definition at line 95 of file atiixp_modem.c.

#define ATI_REG_CMD_MODEM_SEND1_EN   (1U<<2) /* modem only */

Definition at line 96 of file atiixp_modem.c.

#define ATI_REG_CMD_MODEM_SEND2_EN   (1U<<3) /* modem only */

Definition at line 97 of file atiixp_modem.c.

#define ATI_REG_CMD_MODEM_SEND3_EN   (1U<<4) /* modem only */

Definition at line 98 of file atiixp_modem.c.

#define ATI_REG_CMD_MODEM_STATUS_MEM   (1U<<5) /* modem only */

Definition at line 99 of file atiixp_modem.c.

#define ATI_REG_CMD_PACKED_DIS   (1U<<24)

Definition at line 107 of file atiixp_modem.c.

#define ATI_REG_CMD_PANIC_EN   (1U<<26)

Definition at line 109 of file atiixp_modem.c.

#define ATI_REG_CMD_POWERDOWN   (1U<<0)

Definition at line 94 of file atiixp_modem.c.

#define ATI_REG_COUNTER   0x18

Definition at line 130 of file atiixp_modem.c.

#define ATI_REG_COUNTER_BITCLOCK   (31U<<8)

Definition at line 132 of file atiixp_modem.c.

#define ATI_REG_COUNTER_SLOT   (3U<<0) /* slot # */

Definition at line 131 of file atiixp_modem.c.

#define ATI_REG_IER   0x04 /* interrupt enable */

Definition at line 78 of file atiixp_modem.c.

#define ATI_REG_IER_CODEC0_INTR_EN   (1U<<10)

Definition at line 86 of file atiixp_modem.c.

#define ATI_REG_IER_CODEC1_INTR_EN   (1U<<11)

Definition at line 87 of file atiixp_modem.c.

#define ATI_REG_IER_CODEC2_INTR_EN   (1U<<12)

Definition at line 88 of file atiixp_modem.c.

#define ATI_REG_IER_MODEM_GPIO_DATA_EN   (1U<<14) /* (WO) modem is running */

Definition at line 90 of file atiixp_modem.c.

#define ATI_REG_IER_MODEM_IN_XRUN_EN   (1U<<0)

Definition at line 79 of file atiixp_modem.c.

#define ATI_REG_IER_MODEM_OUT1_XRUN_EN   (1U<<2)

Definition at line 81 of file atiixp_modem.c.

#define ATI_REG_IER_MODEM_OUT2_XRUN_EN   (1U<<4)

Definition at line 82 of file atiixp_modem.c.

#define ATI_REG_IER_MODEM_OUT3_XRUN_EN   (1U<<6)

Definition at line 83 of file atiixp_modem.c.

#define ATI_REG_IER_MODEM_SET_BUS_BUSY   (1U<<15)

Definition at line 91 of file atiixp_modem.c.

#define ATI_REG_IER_MODEM_STATUS_EN   (1U<<1)

Definition at line 80 of file atiixp_modem.c.

#define ATI_REG_IER_NEW_FRAME_EN   (1U<<13) /* (RO */

Definition at line 89 of file atiixp_modem.c.

#define ATI_REG_IER_PHYS_INTR_EN   (1U<<8)

Definition at line 84 of file atiixp_modem.c.

#define ATI_REG_IER_PHYS_MISMATCH_EN   (1U<<9)

Definition at line 85 of file atiixp_modem.c.

#define ATI_REG_IN_FIFO_THRESHOLD   0x1c

Definition at line 134 of file atiixp_modem.c.

#define ATI_REG_ISR   0x00 /* interrupt source */

Definition at line 61 of file atiixp_modem.c.

#define ATI_REG_ISR_CODEC0_NOT_READY   (1U<<10)

Definition at line 72 of file atiixp_modem.c.

#define ATI_REG_ISR_CODEC1_NOT_READY   (1U<<11)

Definition at line 73 of file atiixp_modem.c.

#define ATI_REG_ISR_CODEC2_NOT_READY   (1U<<12)

Definition at line 74 of file atiixp_modem.c.

#define ATI_REG_ISR_MODEM_GPIO_DATA   (1U<<14)

Definition at line 76 of file atiixp_modem.c.

#define ATI_REG_ISR_MODEM_IN_STATUS   (1U<<1)

Definition at line 63 of file atiixp_modem.c.

#define ATI_REG_ISR_MODEM_IN_XRUN   (1U<<0)

Definition at line 62 of file atiixp_modem.c.

#define ATI_REG_ISR_MODEM_OUT1_STATUS   (1U<<3)

Definition at line 65 of file atiixp_modem.c.

#define ATI_REG_ISR_MODEM_OUT1_XRUN   (1U<<2)

Definition at line 64 of file atiixp_modem.c.

#define ATI_REG_ISR_MODEM_OUT2_STATUS   (1U<<5)

Definition at line 67 of file atiixp_modem.c.

#define ATI_REG_ISR_MODEM_OUT2_XRUN   (1U<<4)

Definition at line 66 of file atiixp_modem.c.

#define ATI_REG_ISR_MODEM_OUT3_STATUS   (1U<<7)

Definition at line 69 of file atiixp_modem.c.

#define ATI_REG_ISR_MODEM_OUT3_XRUN   (1U<<6)

Definition at line 68 of file atiixp_modem.c.

#define ATI_REG_ISR_NEW_FRAME   (1U<<13)

Definition at line 75 of file atiixp_modem.c.

#define ATI_REG_ISR_PHYS_INTR   (1U<<8)

Definition at line 70 of file atiixp_modem.c.

#define ATI_REG_ISR_PHYS_MISMATCH   (1U<<9)

Definition at line 71 of file atiixp_modem.c.

#define ATI_REG_LINKPTR_EN   (1U<<0)

Definition at line 174 of file atiixp_modem.c.

#define ATI_REG_MODEM_FIFO_FLUSH   0x88

Definition at line 167 of file atiixp_modem.c.

#define ATI_REG_MODEM_FIFO_IN_FLUSH   (1U<<3)

Definition at line 171 of file atiixp_modem.c.

#define ATI_REG_MODEM_FIFO_OUT1_FLUSH   (1U<<0)

Definition at line 168 of file atiixp_modem.c.

#define ATI_REG_MODEM_FIFO_OUT2_FLUSH   (1U<<1)

Definition at line 169 of file atiixp_modem.c.

#define ATI_REG_MODEM_FIFO_OUT3_FLUSH   (1U<<2)

Definition at line 170 of file atiixp_modem.c.

#define ATI_REG_MODEM_IN_DMA_DT_CUR   0x2c /* RO */

Definition at line 139 of file atiixp_modem.c.

#define ATI_REG_MODEM_IN_DMA_DT_NEXT   0x28 /* RO */

Definition at line 138 of file atiixp_modem.c.

#define ATI_REG_MODEM_IN_DMA_DT_SIZE   0x30

Definition at line 140 of file atiixp_modem.c.

#define ATI_REG_MODEM_IN_DMA_DT_START   0x24 /* RO */

Definition at line 137 of file atiixp_modem.c.

#define ATI_REG_MODEM_IN_DMA_LINKPTR   0x20

Definition at line 136 of file atiixp_modem.c.

#define ATI_REG_MODEM_IN_GPIO   0x78

Definition at line 162 of file atiixp_modem.c.

#define ATI_REG_MODEM_MIRROR   0x7c

Definition at line 164 of file atiixp_modem.c.

#define ATI_REG_MODEM_OUT1_DMA_THRESHOLD_MASK   (0xf<<16)

Definition at line 142 of file atiixp_modem.c.

#define ATI_REG_MODEM_OUT1_DMA_THRESHOLD_SHIFT   16

Definition at line 143 of file atiixp_modem.c.

#define ATI_REG_MODEM_OUT_DMA12_DT_SIZE   0x68

Definition at line 156 of file atiixp_modem.c.

#define ATI_REG_MODEM_OUT_DMA1_DT_CUR   0x4c

Definition at line 149 of file atiixp_modem.c.

#define ATI_REG_MODEM_OUT_DMA1_DT_NEXT   0x48

Definition at line 148 of file atiixp_modem.c.

#define ATI_REG_MODEM_OUT_DMA1_DT_START   0x44

Definition at line 147 of file atiixp_modem.c.

#define ATI_REG_MODEM_OUT_DMA1_LINKPTR   0x38

Definition at line 144 of file atiixp_modem.c.

#define ATI_REG_MODEM_OUT_DMA2_DT_CUR   0x58

Definition at line 152 of file atiixp_modem.c.

#define ATI_REG_MODEM_OUT_DMA2_DT_NEXT   0x54

Definition at line 151 of file atiixp_modem.c.

#define ATI_REG_MODEM_OUT_DMA2_DT_START   0x50

Definition at line 150 of file atiixp_modem.c.

#define ATI_REG_MODEM_OUT_DMA2_LINKPTR   0x3c

Definition at line 145 of file atiixp_modem.c.

#define ATI_REG_MODEM_OUT_DMA3_DT_CUR   0x64

Definition at line 155 of file atiixp_modem.c.

#define ATI_REG_MODEM_OUT_DMA3_DT_NEXT   0x60

Definition at line 154 of file atiixp_modem.c.

#define ATI_REG_MODEM_OUT_DMA3_DT_SIZE   0x6c

Definition at line 157 of file atiixp_modem.c.

#define ATI_REG_MODEM_OUT_DMA3_DT_START   0x5c

Definition at line 153 of file atiixp_modem.c.

#define ATI_REG_MODEM_OUT_DMA3_LINKPTR   0x40

Definition at line 146 of file atiixp_modem.c.

#define ATI_REG_MODEM_OUT_FIFO   0x34 /* output threshold */

Definition at line 141 of file atiixp_modem.c.

#define ATI_REG_MODEM_OUT_FIFO_USED   0x70

Definition at line 158 of file atiixp_modem.c.

#define ATI_REG_MODEM_OUT_GPIO   0x74

Definition at line 159 of file atiixp_modem.c.

#define ATI_REG_MODEM_OUT_GPIO_DATA_SHIFT   5

Definition at line 161 of file atiixp_modem.c.

#define ATI_REG_MODEM_OUT_GPIO_EN   1

Definition at line 160 of file atiixp_modem.c.

#define ATI_REG_PHYS_IN_ADDR   0x10

Definition at line 123 of file atiixp_modem.c.

#define ATI_REG_PHYS_IN_ADDR_SHIFT   9

Definition at line 125 of file atiixp_modem.c.

#define ATI_REG_PHYS_IN_DATA_SHIFT   16

Definition at line 126 of file atiixp_modem.c.

#define ATI_REG_PHYS_IN_READ_FLAG   (1U<<8)

Definition at line 124 of file atiixp_modem.c.

#define ATI_REG_PHYS_OUT_ADDR   0x0c

Definition at line 116 of file atiixp_modem.c.

#define ATI_REG_PHYS_OUT_ADDR_EN   (1U<<8)

Definition at line 119 of file atiixp_modem.c.

#define ATI_REG_PHYS_OUT_ADDR_SHIFT   9

Definition at line 120 of file atiixp_modem.c.

#define ATI_REG_PHYS_OUT_CODEC_MASK   (3U<<0)

Definition at line 117 of file atiixp_modem.c.

#define ATI_REG_PHYS_OUT_DATA_SHIFT   16

Definition at line 121 of file atiixp_modem.c.

#define ATI_REG_PHYS_OUT_RW   (1U<<2)

Definition at line 118 of file atiixp_modem.c.

#define ATI_REG_SLOTREQ   0x14

Definition at line 128 of file atiixp_modem.c.

#define atiixp_read (   chip,
  reg 
)    readl(chip->remap_addr + ATI_REG_##reg)

Definition at line 300 of file atiixp_modem.c.

#define atiixp_update (   chip,
  reg,
  mask,
  val 
)    snd_atiixp_update_bits(chip, ATI_REG_##reg, mask, val)

Definition at line 302 of file atiixp_modem.c.

#define atiixp_write (   chip,
  reg,
  value 
)    writel(value, chip->remap_addr + ATI_REG_##reg)

Definition at line 298 of file atiixp_modem.c.

#define CODEC_CHECK_BITS   (ALL_CODEC_NOT_READY|ATI_REG_ISR_NEW_FRAME)

Definition at line 538 of file atiixp_modem.c.

#define NUM_ATI_CODECS   3

Definition at line 199 of file atiixp_modem.c.

#define SND_ATIIXP_PM_OPS   NULL

Definition at line 1171 of file atiixp_modem.c.

#define snd_atiixp_proc_init (   chip)

Definition at line 1197 of file atiixp_modem.c.

Enumeration Type Documentation

anonymous enum
Enumerator:
ATI_DMA_PLAYBACK 
ATI_DMA_CAPTURE 
NUM_ATI_DMAS 

Definition at line 195 of file atiixp_modem.c.

anonymous enum
Enumerator:
ATI_PCM_OUT 
ATI_PCM_IN 
NUM_ATI_PCMS 

Definition at line 196 of file atiixp_modem.c.

anonymous enum
Enumerator:
ATI_PCMDEV_ANALOG 
NUM_ATI_PCMDEVS 

Definition at line 197 of file atiixp_modem.c.

Function Documentation

MODULE_AUTHOR ( "Takashi Iwai <[email protected]>"  )
MODULE_DESCRIPTION ( "ATI IXP MC97 controller )
MODULE_DEVICE_TABLE ( pci  ,
snd_atiixp_ids   
)
MODULE_LICENSE ( "GPL"  )
module_param ( index  ,
int  ,
0444   
)
module_param ( id  ,
charp  ,
0444   
)
module_param ( ac97_clock  ,
int  ,
0444   
)
module_param ( enable  ,
bool  ,
0444   
)
MODULE_PARM_DESC ( index  ,
"Index value for ATI IXP controller."   
)
MODULE_PARM_DESC ( id  ,
"ID string for ATI IXP controller."   
)
MODULE_PARM_DESC ( ac97_clock  ,
"AC'97 codec clock (default 48000Hz)."   
)
module_pci_driver ( atiixp_modem_driver  )
MODULE_SUPPORTED_DEVICE ( "{{ATI,IXP150/200/250}}"  )