FreeBSD kernel sound device code
ich.c File Reference
Include dependency graph for ich.c:

Go to the source code of this file.

Data Structures

struct  ich_type
 
struct  ich_desc
 
struct  sc_chinfo
 
struct  sc_info
 

Macros

#define ICH_TIMEOUT   1000 /* semaphore timeout polling count */
 
#define ICH_DTBL_LENGTH   32
 
#define ICH_DEFAULT_BUFSZ   16384
 
#define ICH_MAX_BUFSZ   65536
 
#define ICH_MIN_BUFSZ   4096
 
#define ICH_DEFAULT_BLKCNT   2
 
#define ICH_MAX_BLKCNT   32
 
#define ICH_MIN_BLKCNT   2
 
#define ICH_MIN_BLKSZ   64
 
#define INTEL_VENDORID   0x8086
 
#define SIS_VENDORID   0x1039
 
#define NVIDIA_VENDORID   0x10de
 
#define AMD_VENDORID   0x1022
 
#define INTEL_82440MX   0x7195
 
#define INTEL_82801AA   0x2415
 
#define INTEL_82801AB   0x2425
 
#define INTEL_82801BA   0x2445
 
#define INTEL_82801CA   0x2485
 
#define INTEL_82801DB   0x24c5 /* ICH4 needs special handling */
 
#define INTEL_82801EB   0x24d5 /* ICH5 needs to be treated as ICH4 */
 
#define INTEL_6300ESB   0x25a6 /* 6300ESB needs to be treated as ICH4 */
 
#define INTEL_82801FB   0x266e /* ICH6 needs to be treated as ICH4 */
 
#define INTEL_82801GB   0x27de /* ICH7 needs to be treated as ICH4 */
 
#define SIS_7012   0x7012 /* SiS 7012 needs special handling */
 
#define NVIDIA_NFORCE   0x01b1
 
#define NVIDIA_NFORCE2   0x006a
 
#define NVIDIA_NFORCE2_400   0x008a
 
#define NVIDIA_NFORCE3   0x00da
 
#define NVIDIA_NFORCE3_250   0x00ea
 
#define NVIDIA_NFORCE4   0x0059
 
#define NVIDIA_NFORCE_410_MCP   0x026b
 
#define NVIDIA_NFORCE4_MCP   0x003a
 
#define AMD_768   0x7445
 
#define AMD_8111   0x746d
 
#define ICH_LOCK(sc)   snd_mtxlock((sc)->ich_lock)
 
#define ICH_UNLOCK(sc)   snd_mtxunlock((sc)->ich_lock)
 
#define ICH_LOCK_ASSERT(sc)   snd_mtxassert((sc)->ich_lock)
 
#define ICH_DEBUG(...)
 
#define ICH_CALIBRATE_DONE   (1 << 0)
 
#define ICH_IGNORE_PCR   (1 << 1)
 
#define ICH_IGNORE_RESET   (1 << 2)
 
#define ICH_FIXED_RATE   (1 << 3)
 
#define ICH_DMA_NOCACHE   (1 << 4)
 
#define ICH_HIGH_LATENCY   (1 << 5)
 
#define PROBE_LOW   0x01
 

Functions

 SND_DECLARE_FILE ("$FreeBSD$")
 
static __inline uint32_t ich_rd (struct sc_info *sc, int regno, int size)
 
static __inline void ich_wr (struct sc_info *sc, int regno, uint32_t data, int size)
 
static int ich_waitcd (void *devinfo)
 
static int ich_rdcd (kobj_t obj, void *devinfo, int regno)
 
static int ich_wrcd (kobj_t obj, void *devinfo, int regno, uint32_t data)
 
 AC97_DECLARE (ich_ac97)
 
static void ich_filldtbl (struct sc_chinfo *ch)
 
static int ich_resetchan (struct sc_info *sc, int num)
 
static void * ichchan_init (kobj_t obj, void *devinfo, struct snd_dbuf *b, struct pcm_channel *c, int dir)
 
static int ichchan_setformat (kobj_t obj, void *data, uint32_t format)
 
static uint32_t ichchan_setspeed (kobj_t obj, void *data, uint32_t speed)
 
static uint32_t ichchan_setblocksize (kobj_t obj, void *data, uint32_t blocksize)
 
static int ichchan_trigger (kobj_t obj, void *data, int go)
 
static uint32_t ichchan_getptr (kobj_t obj, void *data)
 
static struct pcmchan_capsichchan_getcaps (kobj_t obj, void *data)
 
 CHANNEL_DECLARE (ichchan)
 
static void ich_intr (void *p)
 
static int ich_initsys (struct sc_info *sc)
 
static void ich_setstatus (struct sc_info *sc)
 
static void ich_calibrate (void *arg)
 
static void ich_setmap (void *arg, bus_dma_segment_t *segs, int nseg, int error)
 
static int ich_init (struct sc_info *sc)
 
static int ich_pci_probe (device_t dev)
 
static int ich_pci_attach (device_t dev)
 
static int ich_pci_detach (device_t dev)
 
static void ich_pci_codec_reset (struct sc_info *sc)
 
static int ich_pci_suspend (device_t dev)
 
static int ich_pci_resume (device_t dev)
 
 DRIVER_MODULE (snd_ich, pci, ich_driver, pcm_devclass, 0, 0)
 
 MODULE_DEPEND (snd_ich, sound, SOUND_MINVER, SOUND_PREFVER, SOUND_MAXVER)
 
 MODULE_VERSION (snd_ich, 1)
 

Variables

static const struct ich_type ich_devs []
 
static uint32_t ich_fmt []
 
static struct pcmchan_caps ich_vrcaps = {8000, 48000, ich_fmt, 0}
 
static struct pcmchan_caps ich_caps = {48000, 48000, ich_fmt, 0}
 
static kobj_method_t ich_ac97_methods []
 
static kobj_method_t ichchan_methods []
 
static device_method_t ich_methods []
 
static driver_t ich_driver
 

Macro Definition Documentation

◆ AMD_768

#define AMD_768   0x7445

Definition at line 79 of file ich.c.

◆ AMD_8111

#define AMD_8111   0x746d

Definition at line 80 of file ich.c.

◆ AMD_VENDORID

#define AMD_VENDORID   0x1022

Definition at line 58 of file ich.c.

◆ ICH_CALIBRATE_DONE

#define ICH_CALIBRATE_DONE   (1 << 0)

Definition at line 94 of file ich.c.

◆ ICH_DEBUG

#define ICH_DEBUG (   ...)

Definition at line 91 of file ich.c.

◆ ICH_DEFAULT_BLKCNT

#define ICH_DEFAULT_BLKCNT   2

Definition at line 50 of file ich.c.

◆ ICH_DEFAULT_BUFSZ

#define ICH_DEFAULT_BUFSZ   16384

Definition at line 47 of file ich.c.

◆ ICH_DMA_NOCACHE

#define ICH_DMA_NOCACHE   (1 << 4)

Definition at line 98 of file ich.c.

◆ ICH_DTBL_LENGTH

#define ICH_DTBL_LENGTH   32

Definition at line 46 of file ich.c.

◆ ICH_FIXED_RATE

#define ICH_FIXED_RATE   (1 << 3)

Definition at line 97 of file ich.c.

◆ ICH_HIGH_LATENCY

#define ICH_HIGH_LATENCY   (1 << 5)

Definition at line 99 of file ich.c.

◆ ICH_IGNORE_PCR

#define ICH_IGNORE_PCR   (1 << 1)

Definition at line 95 of file ich.c.

◆ ICH_IGNORE_RESET

#define ICH_IGNORE_RESET   (1 << 2)

Definition at line 96 of file ich.c.

◆ ICH_LOCK

#define ICH_LOCK (   sc)    snd_mtxlock((sc)->ich_lock)

Definition at line 82 of file ich.c.

◆ ICH_LOCK_ASSERT

#define ICH_LOCK_ASSERT (   sc)    snd_mtxassert((sc)->ich_lock)

Definition at line 84 of file ich.c.

◆ ICH_MAX_BLKCNT

#define ICH_MAX_BLKCNT   32

Definition at line 51 of file ich.c.

◆ ICH_MAX_BUFSZ

#define ICH_MAX_BUFSZ   65536

Definition at line 48 of file ich.c.

◆ ICH_MIN_BLKCNT

#define ICH_MIN_BLKCNT   2

Definition at line 52 of file ich.c.

◆ ICH_MIN_BLKSZ

#define ICH_MIN_BLKSZ   64

Definition at line 53 of file ich.c.

◆ ICH_MIN_BUFSZ

#define ICH_MIN_BUFSZ   4096

Definition at line 49 of file ich.c.

◆ ICH_TIMEOUT

#define ICH_TIMEOUT   1000 /* semaphore timeout polling count */

Definition at line 45 of file ich.c.

◆ ICH_UNLOCK

#define ICH_UNLOCK (   sc)    snd_mtxunlock((sc)->ich_lock)

Definition at line 83 of file ich.c.

◆ INTEL_6300ESB

#define INTEL_6300ESB   0x25a6 /* 6300ESB needs to be treated as ICH4 */

Definition at line 67 of file ich.c.

◆ INTEL_82440MX

#define INTEL_82440MX   0x7195

Definition at line 60 of file ich.c.

◆ INTEL_82801AA

#define INTEL_82801AA   0x2415

Definition at line 61 of file ich.c.

◆ INTEL_82801AB

#define INTEL_82801AB   0x2425

Definition at line 62 of file ich.c.

◆ INTEL_82801BA

#define INTEL_82801BA   0x2445

Definition at line 63 of file ich.c.

◆ INTEL_82801CA

#define INTEL_82801CA   0x2485

Definition at line 64 of file ich.c.

◆ INTEL_82801DB

#define INTEL_82801DB   0x24c5 /* ICH4 needs special handling */

Definition at line 65 of file ich.c.

◆ INTEL_82801EB

#define INTEL_82801EB   0x24d5 /* ICH5 needs to be treated as ICH4 */

Definition at line 66 of file ich.c.

◆ INTEL_82801FB

#define INTEL_82801FB   0x266e /* ICH6 needs to be treated as ICH4 */

Definition at line 68 of file ich.c.

◆ INTEL_82801GB

#define INTEL_82801GB   0x27de /* ICH7 needs to be treated as ICH4 */

Definition at line 69 of file ich.c.

◆ INTEL_VENDORID

#define INTEL_VENDORID   0x8086

Definition at line 55 of file ich.c.

◆ NVIDIA_NFORCE

#define NVIDIA_NFORCE   0x01b1

Definition at line 71 of file ich.c.

◆ NVIDIA_NFORCE2

#define NVIDIA_NFORCE2   0x006a

Definition at line 72 of file ich.c.

◆ NVIDIA_NFORCE2_400

#define NVIDIA_NFORCE2_400   0x008a

Definition at line 73 of file ich.c.

◆ NVIDIA_NFORCE3

#define NVIDIA_NFORCE3   0x00da

Definition at line 74 of file ich.c.

◆ NVIDIA_NFORCE3_250

#define NVIDIA_NFORCE3_250   0x00ea

Definition at line 75 of file ich.c.

◆ NVIDIA_NFORCE4

#define NVIDIA_NFORCE4   0x0059

Definition at line 76 of file ich.c.

◆ NVIDIA_NFORCE4_MCP

#define NVIDIA_NFORCE4_MCP   0x003a

Definition at line 78 of file ich.c.

◆ NVIDIA_NFORCE_410_MCP

#define NVIDIA_NFORCE_410_MCP   0x026b

Definition at line 77 of file ich.c.

◆ NVIDIA_VENDORID

#define NVIDIA_VENDORID   0x10de

Definition at line 57 of file ich.c.

◆ PROBE_LOW

#define PROBE_LOW   0x01

Definition at line 105 of file ich.c.

◆ SIS_7012

#define SIS_7012   0x7012 /* SiS 7012 needs special handling */

Definition at line 70 of file ich.c.

◆ SIS_VENDORID

#define SIS_VENDORID   0x1039

Definition at line 56 of file ich.c.

Function Documentation

◆ AC97_DECLARE()

AC97_DECLARE ( ich_ac97  )

◆ CHANNEL_DECLARE()

CHANNEL_DECLARE ( ichchan  )

◆ DRIVER_MODULE()

DRIVER_MODULE ( snd_ich  ,
pci  ,
ich_driver  ,
pcm_devclass  ,
,
 
)

◆ ich_calibrate()

◆ ich_filldtbl()

static void ich_filldtbl ( struct sc_chinfo ch)
static

◆ ich_init()

static int ich_init ( struct sc_info sc)
static

◆ ich_initsys()

static int ich_initsys ( struct sc_info sc)
static

Definition at line 671 of file ich.c.

References sc_info::ac97rate, and sc_info::dev.

Referenced by ich_pci_attach().

Here is the caller graph for this function:

◆ ich_intr()

◆ ich_pci_attach()

static int ich_pci_attach ( device_t  dev)
static

Definition at line 883 of file ich.c.

References AC97_CAP_MICCHANNEL, AC97_CREATE, ac97_destroy(), AC97_EXTCAP_VRA, AC97_EXTCAP_VRM, AC97_F_EAPD_INV, ac97_getcaps(), ac97_getextcaps(), ac97_getflags(), ac97_getmixerclass(), ac97_setextmode(), ac97_setflags(), sc_info::blkcnt, sc_info::bufsz, sc_info::chan_dmat, sc_info::codec, sc_info::dev, dev, devid, sc_info::devid, sc_info::dmat, sc_info::dtbl, sc_info::dtbl_size, sc_info::dtmap, sc_info::flags, free, sc_info::hasmic, sc_info::hasvra, sc_info::hasvrm, ich_calibrate(), ICH_CALIBRATE_DONE, ICH_DEFAULT_BLKCNT, ICH_DEFAULT_BUFSZ, ICH_DMA_NOCACHE, ICH_DTBL_LENGTH, ICH_FIXED_RATE, ICH_HIGH_LATENCY, ich_init(), ich_initsys(), ich_intr(), ICH_LEGACY_ENABLE, sc_info::ich_lock, ICH_MAX_BLKCNT, ICH_MAX_BUFSZ, ICH_MIN_BLKCNT, ICH_MIN_BLKSZ, ICH_MIN_BUFSZ, ich_setmap(), ich_setstatus(), sc_info::ih, INTEL_6300ESB, INTEL_82440MX, INTEL_82801DB, INTEL_82801EB, INTEL_82801FB, INTEL_82801GB, INTEL_VENDORID, sc_info::intrhook, sc_info::irq, sc_info::irqid, mixer_init(), sc_info::nabmbar, sc_info::nabmbarh, sc_info::nabmbarid, sc_info::nabmbart, sc_info::nambar, sc_info::nambarh, sc_info::nambarid, sc_info::nambart, PCIR_ICH_LEGACY, PCIR_MBBAR, PCIR_MMBAR, PCIR_NABMBAR, PCIR_NAMBAR, pcm_addchan(), pcm_getbuffersize(), pcm_register(), PCMDIR_PLAY, PCMDIR_REC, sc_info::regtype, sc_info::sample_size, SIS_7012, SIS_VENDORID, snd_mtxcreate(), snd_mtxfree(), snd_setup_intr(), sc_info::swap_reg, vendor, and sc_info::vendor.

Here is the call graph for this function:

◆ ich_pci_codec_reset()

static void ich_pci_codec_reset ( struct sc_info sc)
static

Definition at line 1147 of file ich.c.

References ICH_GLOB_CTL_COLD, ICH_GLOB_CTL_SHUT, ICH_GLOB_CTL_WARM, ICH_GLOB_STA_PCR, ich_rd(), ICH_REG_GLOB_CNT, ICH_REG_GLOB_STA, and ich_wr().

Referenced by ich_pci_resume().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ich_pci_detach()

static int ich_pci_detach ( device_t  dev)
static

◆ ich_pci_probe()

static int ich_pci_probe ( device_t  dev)
static

Definition at line 862 of file ich.c.

References dev, devid, ich_devs, name, PROBE_LOW, and vendor.

◆ ich_pci_resume()

◆ ich_pci_suspend()

static int ich_pci_suspend ( device_t  dev)
static

Definition at line 1169 of file ich.c.

References sc_info::ch, dev, ICH_LOCK, ICH_UNLOCK, ichchan_trigger(), pcm_getdevinfo(), PCMTRIG_ABORT, sc_chinfo::run, and sc_chinfo::run_save.

Here is the call graph for this function:

◆ ich_rd()

static __inline uint32_t ich_rd ( struct sc_info sc,
int  regno,
int  size 
)
static

Definition at line 216 of file ich.c.

References sc_info::nabmbarh, sc_info::nabmbart, regno, and size.

Referenced by ich_calibrate(), ich_init(), ich_intr(), ich_pci_codec_reset(), ich_resetchan(), ich_waitcd(), and ichchan_getptr().

Here is the caller graph for this function:

◆ ich_rdcd()

static int ich_rdcd ( kobj_t  obj,
void *  devinfo,
int  regno 
)
static

Definition at line 267 of file ich.c.

References devinfo, ich_waitcd(), sc_info::nambarh, sc_info::nambart, and regno.

Here is the call graph for this function:

◆ ich_resetchan()

static int ich_resetchan ( struct sc_info sc,
int  num 
)
static

Definition at line 324 of file ich.c.

References sc_info::dev, sc_info::flags, ICH_IGNORE_RESET, ich_rd(), ICH_REG_MC_BASE, ICH_REG_PI_BASE, ICH_REG_PO_BASE, ICH_REG_X_CR, ICH_TIMEOUT, ich_wr(), ICH_X_CR_RR, NVIDIA_VENDORID, and sc_info::vendor.

Referenced by ich_init(), and ichchan_trigger().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ich_setmap()

static void ich_setmap ( void *  arg,
bus_dma_segment_t *  segs,
int  nseg,
int  error 
)
static

Definition at line 820 of file ich.c.

References sc_info::desc_addr.

Referenced by ich_pci_attach().

Here is the caller graph for this function:

◆ ich_setstatus()

static void ich_setstatus ( struct sc_info sc)
static

Definition at line 686 of file ich.c.

References sc_info::bufsz, sc_info::dev, sc_info::flags, ICH_DMA_NOCACHE, sc_info::irq, sc_info::nabmbar, sc_info::nambar, PCM_KLDSTRING, pcm_setstatus(), SND_STATUSLEN, and status.

Referenced by ich_calibrate(), and ich_pci_attach().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ich_waitcd()

static int ich_waitcd ( void *  devinfo)
static

Definition at line 248 of file ich.c.

References data, sc_info::dev, devinfo, sc_info::flags, ICH_IGNORE_PCR, ich_rd(), ICH_REG_ACC_SEMA, and ICH_TIMEOUT.

Referenced by ich_rdcd(), and ich_wrcd().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ich_wr()

static __inline void ich_wr ( struct sc_info sc,
int  regno,
uint32_t  data,
int  size 
)
static

Definition at line 231 of file ich.c.

References data, sc_info::nabmbarh, sc_info::nabmbart, regno, and size.

Referenced by ich_calibrate(), ich_init(), ich_intr(), ich_pci_codec_reset(), ich_resetchan(), ichchan_init(), ichchan_setblocksize(), and ichchan_trigger().

Here is the caller graph for this function:

◆ ich_wrcd()

static int ich_wrcd ( kobj_t  obj,
void *  devinfo,
int  regno,
uint32_t  data 
)
static

Definition at line 278 of file ich.c.

References data, devinfo, ich_waitcd(), sc_info::nambarh, sc_info::nambart, and regno.

Here is the call graph for this function:

◆ ichchan_getcaps()

static struct pcmchan_caps * ichchan_getcaps ( kobj_t  obj,
void *  data 
)
static

◆ ichchan_getptr()

static uint32_t ichchan_getptr ( kobj_t  obj,
void *  data 
)
static

◆ ichchan_init()

◆ ichchan_setblocksize()

static uint32_t ichchan_setblocksize ( kobj_t  obj,
void *  data,
uint32_t  blocksize 
)
static

◆ ichchan_setformat()

static int ichchan_setformat ( kobj_t  obj,
void *  data,
uint32_t  format 
)
static

◆ ichchan_setspeed()

static uint32_t ichchan_setspeed ( kobj_t  obj,
void *  data,
uint32_t  speed 
)
static

Definition at line 449 of file ich.c.

References ac97_setrate(), sc_info::ac97rate, sc_info::ch, sc_info::codec, data, sc_info::dev, sc_info::flags, ICH_CALIBRATE_DONE, ICH_DEBUG, ICH_LOCK, ICH_UNLOCK, sc_chinfo::parent, r, sc_chinfo::spd, sc_chinfo::spdreg, and speed.

Referenced by ich_pci_resume().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ichchan_trigger()

static int ichchan_trigger ( kobj_t  obj,
void *  data,
int  go 
)
static

◆ MODULE_DEPEND()

MODULE_DEPEND ( snd_ich  ,
sound  ,
SOUND_MINVER  ,
SOUND_PREFVER  ,
SOUND_MAXVER   
)

◆ MODULE_VERSION()

MODULE_VERSION ( snd_ich  ,
 
)

◆ SND_DECLARE_FILE()

SND_DECLARE_FILE ( "$FreeBSD$"  )

Variable Documentation

◆ ich_ac97_methods

kobj_method_t ich_ac97_methods[]
static
Initial value:
= {
KOBJMETHOD(ac97_read, ich_rdcd),
KOBJMETHOD(ac97_write, ich_wrcd),
}
static int ich_rdcd(kobj_t obj, void *devinfo, int regno)
Definition: ich.c:267
static int ich_wrcd(kobj_t obj, void *devinfo, int regno, uint32_t data)
Definition: ich.c:278
#define KOBJMETHOD_END
Definition: midi.c:76

Definition at line 289 of file ich.c.

◆ ich_caps

struct pcmchan_caps ich_caps = {48000, 48000, ich_fmt, 0}
static

Definition at line 211 of file ich.c.

Referenced by ichchan_getcaps().

◆ ich_devs

const struct ich_type ich_devs[]
static

Referenced by ich_pci_probe().

◆ ich_driver

driver_t ich_driver
static
Initial value:
= {
"pcm",
}
static device_method_t ich_methods[]
Definition: ich.c:1224
#define PCM_SOFTC_SIZE
Definition: sound.h:96

Definition at line 1234 of file ich.c.

◆ ich_fmt

uint32_t ich_fmt[]
static
Initial value:
= {
SND_FORMAT(AFMT_S16_LE, 2, 0),
0
}
#define SND_FORMAT(f, c, e)
Definition: sound.h:238

Definition at line 206 of file ich.c.

◆ ich_methods

device_method_t ich_methods[]
static
Initial value:
= {
DEVMETHOD(device_probe, ich_pci_probe),
DEVMETHOD(device_attach, ich_pci_attach),
DEVMETHOD(device_detach, ich_pci_detach),
DEVMETHOD(device_suspend, ich_pci_suspend),
DEVMETHOD(device_resume, ich_pci_resume),
{ 0, 0 }
}
static int ich_pci_attach(device_t dev)
Definition: ich.c:883
static int ich_pci_suspend(device_t dev)
Definition: ich.c:1169
static int ich_pci_resume(device_t dev)
Definition: ich.c:1189
static int ich_pci_detach(device_t dev)
Definition: ich.c:1123
static int ich_pci_probe(device_t dev)
Definition: ich.c:862

Definition at line 1224 of file ich.c.

◆ ich_vrcaps

struct pcmchan_caps ich_vrcaps = {8000, 48000, ich_fmt, 0}
static

Definition at line 210 of file ich.c.

Referenced by ichchan_getcaps().

◆ ichchan_methods

kobj_method_t ichchan_methods[]
static
Initial value:
= {
KOBJMETHOD(channel_init, ichchan_init),
KOBJMETHOD(channel_setformat, ichchan_setformat),
KOBJMETHOD(channel_setspeed, ichchan_setspeed),
KOBJMETHOD(channel_setblocksize, ichchan_setblocksize),
KOBJMETHOD(channel_trigger, ichchan_trigger),
KOBJMETHOD(channel_getptr, ichchan_getptr),
KOBJMETHOD(channel_getcaps, ichchan_getcaps),
}
static void * ichchan_init(kobj_t obj, void *devinfo, struct snd_dbuf *b, struct pcm_channel *c, int dir)
Definition: ich.c:370
static int ichchan_setformat(kobj_t obj, void *data, uint32_t format)
Definition: ich.c:433
static uint32_t ichchan_setspeed(kobj_t obj, void *data, uint32_t speed)
Definition: ich.c:449
static uint32_t ichchan_setblocksize(kobj_t obj, void *data, uint32_t blocksize)
Definition: ich.c:483
static int ichchan_trigger(kobj_t obj, void *data, int go)
Definition: ich.c:511
static uint32_t ichchan_getptr(kobj_t obj, void *data)
Definition: ich.c:545
static struct pcmchan_caps * ichchan_getcaps(kobj_t obj, void *data)
Definition: ich.c:568

Definition at line 584 of file ich.c.