FreeBSD kernel sound device code
|
#include <dev/sound/pcm/sound.h>
#include <dev/pci/pcireg.h>
#include <dev/pci/pcivar.h>
#include <sys/ctype.h>
#include <sys/endian.h>
#include <sys/taskqueue.h>
#include <dev/sound/pci/hda/hdac_private.h>
#include <dev/sound/pci/hda/hdac_reg.h>
#include <dev/sound/pci/hda/hda_reg.h>
#include <dev/sound/pci/hda/hdac.h>
Go to the source code of this file.
Macros | |
#define | HDA_DRV_TEST_REV "20120126_0002" |
#define | hdac_lock(sc) snd_mtxlock((sc)->lock) |
#define | hdac_unlock(sc) snd_mtxunlock((sc)->lock) |
#define | hdac_lockassert(sc) snd_mtxassert((sc)->lock) |
#define | HDAC_QUIRK_64BIT (1 << 0) |
#define | HDAC_QUIRK_DMAPOS (1 << 1) |
#define | HDAC_QUIRK_MSI (1 << 2) |
Functions | |
SND_DECLARE_FILE ("$FreeBSD$") | |
MALLOC_DEFINE (M_HDAC, "hdac", "HDA Controller") | |
static void | hdac_intr_handler (void *) |
static int | hdac_reset (struct hdac_softc *, bool) |
static int | hdac_get_capabilities (struct hdac_softc *) |
static void | hdac_dma_cb (void *, bus_dma_segment_t *, int, int) |
static int | hdac_dma_alloc (struct hdac_softc *, struct hdac_dma *, bus_size_t) |
static void | hdac_dma_free (struct hdac_softc *, struct hdac_dma *) |
static int | hdac_mem_alloc (struct hdac_softc *) |
static void | hdac_mem_free (struct hdac_softc *) |
static int | hdac_irq_alloc (struct hdac_softc *) |
static void | hdac_irq_free (struct hdac_softc *) |
static void | hdac_corb_init (struct hdac_softc *) |
static void | hdac_rirb_init (struct hdac_softc *) |
static void | hdac_corb_start (struct hdac_softc *) |
static void | hdac_rirb_start (struct hdac_softc *) |
static void | hdac_attach2 (void *) |
static uint32_t | hdac_send_command (struct hdac_softc *, nid_t, uint32_t) |
static int | hdac_probe (device_t) |
static int | hdac_attach (device_t) |
static int | hdac_detach (device_t) |
static int | hdac_suspend (device_t) |
static int | hdac_resume (device_t) |
static int | hdac_rirb_flush (struct hdac_softc *sc) |
static int | hdac_unsolq_flush (struct hdac_softc *sc) |
static void | hdac_config_fetch (struct hdac_softc *sc, uint32_t *on, uint32_t *off) |
static void | hdac_one_intr (struct hdac_softc *sc, uint32_t intsts) |
static void | hdac_poll_callback (void *arg) |
static void | hdac_unsolq_task (void *context, int pending) |
static int | sysctl_hdac_pindump (SYSCTL_HANDLER_ARGS) |
static int | hdac_mdata_rate (uint16_t fmt) |
static int | hdac_bdata_rate (uint16_t fmt, int output) |
static void | hdac_poll_reinit (struct hdac_softc *sc) |
static int | sysctl_hdac_polling (SYSCTL_HANDLER_ARGS) |
static bus_dma_tag_t | hdac_get_dma_tag (device_t dev, device_t child) |
static int | hdac_print_child (device_t dev, device_t child) |
static int | hdac_child_location (device_t dev, device_t child, struct sbuf *sb) |
static int | hdac_child_pnpinfo_method (device_t dev, device_t child, struct sbuf *sb) |
static int | hdac_read_ivar (device_t dev, device_t child, int which, uintptr_t *result) |
static struct mtx * | hdac_get_mtx (device_t dev, device_t child) |
static uint32_t | hdac_codec_command (device_t dev, device_t child, uint32_t verb) |
static int | hdac_find_stream (struct hdac_softc *sc, int dir, int stream) |
static int | hdac_stream_alloc (device_t dev, device_t child, int dir, int format, int stripe, uint32_t **dmapos) |
static void | hdac_stream_free (device_t dev, device_t child, int dir, int stream) |
static int | hdac_stream_start (device_t dev, device_t child, int dir, int stream, bus_addr_t buf, int blksz, int blkcnt) |
static void | hdac_stream_stop (device_t dev, device_t child, int dir, int stream) |
static void | hdac_stream_reset (device_t dev, device_t child, int dir, int stream) |
static uint32_t | hdac_stream_getptr (device_t dev, device_t child, int dir, int stream) |
static int | hdac_unsol_alloc (device_t dev, device_t child, int tag) |
static void | hdac_unsol_free (device_t dev, device_t child, int tag) |
DRIVER_MODULE (snd_hda, pci, hdac_driver, hdac_devclass, NULL, NULL) | |
Variables | |
struct { | |
const char * key | |
uint32_t value | |
} | hdac_quirks_tab [] |
struct { | |
uint32_t model | |
const char * desc | |
char quirks_on | |
char quirks_off | |
} | hdac_devices [] |
struct { | |
uint16_t vendor | |
uint8_t reg | |
uint8_t mask | |
uint8_t enable | |
} | hdac_pcie_snoop [] |
static device_method_t | hdac_methods [] |
static driver_t | hdac_driver |
static devclass_t | hdac_devclass |
#define hdac_lock | ( | sc | ) | snd_mtxlock((sc)->lock) |
#define hdac_lockassert | ( | sc | ) | snd_mtxassert((sc)->lock) |
#define hdac_unlock | ( | sc | ) | snd_mtxunlock((sc)->lock) |
DRIVER_MODULE | ( | snd_hda | , |
pci | , | ||
hdac_driver | , | ||
hdac_devclass | , | ||
NULL | , | ||
NULL | |||
) |
|
static |
Definition at line 1125 of file hdac.c.
References addr, hdac_stream::bdl, hdac_softc::chan_dmat, hdac_softc::codecs, hdac_softc::corb_dma, hdac_softc::corb_size, hdac_softc::dev, dev, devid, hdac_dma::dma_paddr, enable, hdac_softc::flags, free, HDA_BDL_MAX, HDA_BOOTHVERBOSE, HDA_BOOTVERBOSE, HDA_BUFSZ_MAX, HDA_DEV_MATCH, HDA_DMA_ALIGNMENT, HDA_DRV_TEST_REV, hdac_attach2(), HDAC_CODEC_MAX, hdac_config_fetch(), hdac_corb_init(), hdac_devices, hdac_dma_alloc(), hdac_dma_free(), HDAC_DPIBLBASE, HDAC_DPIBUBASE, HDAC_DPLBASE_DPLBASE_DMAPBE, HDAC_DPLBASE_DPLBASE_MASK, HDAC_F_DMA_NOCACHE, hdac_get_capabilities(), hdac_irq_alloc(), hdac_irq_free(), hdac_mem_alloc(), hdac_mem_free(), hdac_pcie_snoop, HDAC_QUIRK_DMAPOS, HDAC_QUIRK_MSI, hdac_reset(), hdac_rirb_init(), hdac_unsolq_task(), HDAC_WRITE_4, INTEL_VENDORID, hdac_softc::intrhook, hdac_softc::lock, hdac_softc::mem, model, hdac_softc::num_ss, PCIC_MULTIMEDIA, PCIS_MULTIMEDIA_HDA, hdac_softc::poll_callout, hdac_softc::poll_ival, hdac_softc::polling, hdac_softc::pos_dma, hdac_softc::quirks_off, hdac_softc::quirks_on, reg, hdac_softc::rirb_dma, hdac_softc::rirb_size, snd_mtxcreate(), snd_mtxfree(), hdac_softc::streams, subclass, hdac_softc::support_64bit, hdac_softc::unsolq_task, and vendor.
|
static |
Definition at line 1521 of file hdac.c.
References child, hdac_softc::codecs, hdac_softc::dev, hdac_softc::device_id, HDA_BOOTHVERBOSE, HDA_CMD_GET_PARAMETER, HDA_INVALID, HDA_PARAM_REVISION_ID, HDA_PARAM_REVISION_ID_REVISION_ID, HDA_PARAM_REVISION_ID_STEPPING_ID, HDA_PARAM_VENDOR_ID, HDA_PARAM_VENDOR_ID_DEVICE_ID, HDA_PARAM_VENDOR_ID_VENDOR_ID, HDAC_CODEC_MAX, hdac_corb_start(), HDAC_GCTL, HDAC_GCTL_UNSOL, HDAC_INTCTL, HDAC_INTCTL_CIE, HDAC_INTCTL_GIE, hdac_lock, HDAC_READ_2, HDAC_READ_4, hdac_rirb_start(), hdac_send_command(), HDAC_STATESTS, HDAC_STATESTS_SDIWAKE, hdac_unlock, HDAC_WAKEEN, HDAC_WRITE_2, HDAC_WRITE_4, hdac_softc::intrhook, hdac_softc::mem, hdac_softc::polling, hdac_softc::revision_id, hdac_softc::stepping_id, sysctl_hdac_pindump(), sysctl_hdac_polling(), and hdac_softc::vendor_id.
Referenced by hdac_attach().
|
static |
Definition at line 1429 of file hdac.c.
Referenced by hdac_stream_alloc().
|
static |
|
static |
Definition at line 1797 of file hdac.c.
References child, hdac_softc::codecs, dev, hdac_softc::device_id, hdac_softc::revision_id, hdac_softc::stepping_id, and hdac_softc::vendor_id.
|
static |
|
static |
Definition at line 255 of file hdac.c.
References hdac_softc::dev, HDA_BOOTVERBOSE, hdac_quirks_tab, k, key, and len.
Referenced by hdac_attach().
|
static |
Definition at line 808 of file hdac.c.
References hdac_softc::corb_dma, hdac_softc::corb_size, hdac_softc::corb_wp, hdac_dma::dma_paddr, HDAC_CORBCTL, HDAC_CORBCTL_CMEIE, HDAC_CORBLBASE, HDAC_CORBRP, HDAC_CORBRP_CORBRPRST, HDAC_CORBSIZE, HDAC_CORBSIZE_CORBSIZE, HDAC_CORBSIZE_CORBSIZE_16, HDAC_CORBSIZE_CORBSIZE_2, HDAC_CORBSIZE_CORBSIZE_256, HDAC_CORBUBASE, HDAC_CORBWP, HDAC_WRITE_1, HDAC_WRITE_2, HDAC_WRITE_4, and hdac_softc::mem.
Referenced by hdac_attach(), and hdac_resume().
|
static |
Definition at line 916 of file hdac.c.
References HDAC_CORBCTL, HDAC_CORBCTL_CORBRUN, HDAC_READ_1, HDAC_WRITE_1, and hdac_softc::mem.
Referenced by hdac_attach2(), and hdac_resume().
|
static |
Definition at line 1729 of file hdac.c.
References hdac_stream::bdl, hdac_softc::chan_dmat, hdac_softc::codecs, hdac_softc::corb_dma, hdac_softc::dev, dev, error, free, hdac_dma_free(), hdac_irq_free(), hdac_lock, hdac_mem_free(), hdac_reset(), hdac_unlock, hdac_softc::lock, hdac_softc::num_ss, hdac_softc::pos_dma, hdac_softc::rirb_dma, snd_mtxfree(), hdac_softc::streams, and hdac_softc::unsolq_task.
|
static |
Definition at line 590 of file hdac.c.
References hdac_softc::dev, hdac_dma::dma_map, hdac_dma::dma_paddr, hdac_dma::dma_size, hdac_dma::dma_tag, hdac_dma::dma_vaddr, hdac_softc::flags, HDA_BOOTHVERBOSE, HDA_DMA_ALIGNMENT, hdac_dma_cb(), hdac_dma_free(), HDAC_F_DMA_NOCACHE, size, and hdac_softc::support_64bit.
Referenced by hdac_attach().
|
static |
Definition at line 573 of file hdac.c.
References hdac_dma::dma_paddr, and error.
Referenced by hdac_dma_alloc().
|
static |
Definition at line 672 of file hdac.c.
References hdac_dma::dma_map, hdac_dma::dma_paddr, hdac_dma::dma_size, hdac_dma::dma_tag, and hdac_dma::dma_vaddr.
Referenced by hdac_attach(), hdac_detach(), and hdac_dma_alloc().
|
static |
Definition at line 1866 of file hdac.c.
References dir, hdac_softc::num_bss, hdac_softc::num_iss, hdac_softc::num_oss, stream, hdac_stream::stream, and hdac_softc::streams.
Referenced by hdac_stream_alloc(), hdac_stream_free(), hdac_stream_getptr(), hdac_stream_reset(), hdac_stream_start(), and hdac_stream_stop().
|
static |
Definition at line 505 of file hdac.c.
References hdac_softc::corb_size, hdac_softc::dev, HDA_BOOTVERBOSE, HDAC_CORBSIZE, HDAC_CORBSIZE_CORBSZCAP_16, HDAC_CORBSIZE_CORBSZCAP_2, HDAC_CORBSIZE_CORBSZCAP_256, HDAC_GCAP, HDAC_GCAP_64OK, HDAC_GCAP_BSS, HDAC_GCAP_ISS, HDAC_GCAP_NSDO, HDAC_GCAP_OSS, HDAC_QUIRK_64BIT, HDAC_READ_1, HDAC_READ_2, HDAC_RIRBSIZE, HDAC_RIRBSIZE_RIRBSZCAP_16, HDAC_RIRBSIZE_RIRBSZCAP_2, HDAC_RIRBSIZE_RIRBSZCAP_256, hdac_softc::mem, hdac_softc::num_bss, hdac_softc::num_iss, hdac_softc::num_oss, hdac_softc::num_sdo, hdac_softc::num_ss, hdac_softc::quirks_off, hdac_softc::quirks_on, hdac_softc::rirb_size, and hdac_softc::support_64bit.
Referenced by hdac_attach().
|
static |
Definition at line 1769 of file hdac.c.
References hdac_softc::chan_dmat, and dev.
|
static |
Definition at line 1850 of file hdac.c.
References dev, and hdac_softc::lock.
|
static |
Definition at line 370 of file hdac.c.
References HDAC_INTSTS, HDAC_INTSTS_GIS, hdac_lock, hdac_one_intr(), HDAC_READ_4, hdac_unlock, and hdac_softc::mem.
Referenced by hdac_irq_alloc(), and hdac_poll_callback().
|
static |
Definition at line 741 of file hdac.c.
References hdac_softc::dev, hdac_intr_handler(), hdac_irq_free(), HDAC_QUIRK_MSI, hdac_softc::irq, irq, and hdac_softc::quirks_off.
Referenced by hdac_attach().
|
static |
Definition at line 784 of file hdac.c.
References hdac_softc::dev, hdac_softc::irq, and irq.
Referenced by hdac_attach(), hdac_detach(), and hdac_irq_alloc().
|
static |
Definition at line 1412 of file hdac.c.
Referenced by hdac_poll_reinit().
|
static |
Definition at line 699 of file hdac.c.
References hdac_softc::dev, hdac_softc::mem, hdac_mem::mem_handle, hdac_mem::mem_res, hdac_mem::mem_rid, hdac_mem::mem_tag, and PCIR_BAR.
Referenced by hdac_attach().
|
static |
Definition at line 724 of file hdac.c.
References hdac_softc::dev, hdac_softc::mem, hdac_mem::mem_res, and hdac_mem::mem_rid.
Referenced by hdac_attach(), and hdac_detach().
|
static |
Definition at line 311 of file hdac.c.
References hdac_stream::dev, dev, hdac_stream::dir, HDAC_INTSTS_CIS, HDAC_INTSTS_SIS_MASK, HDAC_READ_1, hdac_rirb_flush(), HDAC_RIRBSTS, HDAC_RIRBSTS_RINTFL, HDAC_SDSTS, HDAC_SDSTS_BCIS, HDAC_SDSTS_DESE, HDAC_SDSTS_FIFOE, HDAC_WRITE_1, hdac_softc::mem, hdac_softc::num_ss, hdac_stream::stream, hdac_softc::streams, hdac_softc::unsolq_rp, hdac_softc::unsolq_task, and hdac_softc::unsolq_wp.
Referenced by hdac_intr_handler().
|
static |
Definition at line 397 of file hdac.c.
References hdac_intr_handler(), hdac_lock, hdac_poll_callback(), hdac_unlock, hdac_softc::poll_callout, hdac_softc::poll_ival, and hdac_softc::polling.
Referenced by hdac_poll_callback(), and hdac_poll_reinit().
|
static |
Definition at line 1444 of file hdac.c.
References hdac_stream::blksz, hdac_stream::format, hdac_mdata_rate(), hdac_poll_callback(), hdac_softc::num_ss, hdac_softc::poll_callout, hdac_softc::poll_ival, hdac_softc::polling, hdac_stream::running, hdac_softc::streams, and hdac_softc::unsol_registered.
Referenced by hdac_resume(), hdac_stream_start(), hdac_stream_stop(), hdac_unsol_alloc(), hdac_unsol_free(), and sysctl_hdac_polling().
|
static |
|
static |
Definition at line 1063 of file hdac.c.
References desc, dev, HDA_DEV_MATCH, hdac_devices, model, PCIC_MULTIMEDIA, PCIS_MULTIMEDIA_HDA, and subclass.
|
static |
Definition at line 1810 of file hdac.c.
References child, hdac_softc::codecs, dev, hdac_softc::device_id, hdac_softc::flags, HDA_IVAR_CODEC_ID, HDA_IVAR_DEVICE_ID, HDA_IVAR_DMA_NOCACHE, HDA_IVAR_REVISION_ID, HDA_IVAR_STEPPING_ID, HDA_IVAR_STRIPES_MASK, HDA_IVAR_SUBDEVICE_ID, HDA_IVAR_SUBVENDOR_ID, HDA_IVAR_VENDOR_ID, HDAC_F_DMA_NOCACHE, hdac_softc::num_sdo, hdac_softc::revision_id, hdac_softc::stepping_id, and hdac_softc::vendor_id.
|
static |
Definition at line 421 of file hdac.c.
References count, hdac_softc::dev, HDAC_BSDCTL, HDAC_CORBCTL, HDAC_DPIBLBASE, HDAC_DPIBUBASE, HDAC_GCTL, HDAC_GCTL_CRST, HDAC_ISDCTL, HDAC_OSDCTL, HDAC_READ_4, HDAC_RIRBCTL, HDAC_WRITE_1, HDAC_WRITE_4, hdac_softc::mem, hdac_softc::num_bss, hdac_softc::num_iss, and hdac_softc::num_oss.
Referenced by hdac_attach(), hdac_detach(), hdac_resume(), and hdac_suspend().
|
static |
Definition at line 1665 of file hdac.c.
References dev, error, HDA_BOOTHVERBOSE, hdac_corb_init(), hdac_corb_start(), HDAC_GCTL, HDAC_GCTL_UNSOL, HDAC_INTCTL, HDAC_INTCTL_CIE, HDAC_INTCTL_GIE, hdac_lock, hdac_poll_reinit(), HDAC_READ_4, hdac_reset(), hdac_rirb_init(), hdac_rirb_start(), HDAC_STATESTS, HDAC_STATESTS_SDIWAKE_MASK, hdac_unlock, HDAC_WAKEEN, HDAC_WRITE_2, HDAC_WRITE_4, and hdac_softc::mem.
Referenced by sysctl_hdac_pindump().
|
static |
Definition at line 941 of file hdac.c.
References hdac_softc::codecs, hdac_softc::dev, hdac_dma::dma_map, hdac_dma::dma_tag, hdac_dma::dma_vaddr, HDAC_READ_1, HDAC_RIRB_RESPONSE_EX_SDATA_IN, HDAC_RIRB_RESPONSE_EX_UNSOLICITED, HDAC_RIRBWP, HDAC_UNSOLQ_MAX, hdac_softc::mem, hdac_softc::pending, resp, hdac_rirb::response, hdac_softc::response, hdac_rirb::response_ex, hdac_softc::rirb_dma, hdac_softc::rirb_rp, hdac_softc::rirb_size, hdac_softc::unsolq, and hdac_softc::unsolq_wp.
Referenced by hdac_one_intr(), and hdac_send_command().
|
static |
Definition at line 859 of file hdac.c.
References hdac_dma::dma_map, hdac_dma::dma_paddr, hdac_dma::dma_tag, HDAC_RINTCNT, HDAC_RIRBCTL, HDAC_RIRBCTL_RINTCTL, HDAC_RIRBCTL_RIRBOIC, HDAC_RIRBLBASE, HDAC_RIRBSIZE, HDAC_RIRBSIZE_RIRBSIZE, HDAC_RIRBSIZE_RIRBSIZE_16, HDAC_RIRBSIZE_RIRBSIZE_2, HDAC_RIRBSIZE_RIRBSIZE_256, HDAC_RIRBUBASE, HDAC_RIRBWP, HDAC_RIRBWP_RIRBWPRST, HDAC_WRITE_1, HDAC_WRITE_2, HDAC_WRITE_4, hdac_softc::mem, hdac_softc::rirb_dma, hdac_softc::rirb_rp, and hdac_softc::rirb_size.
Referenced by hdac_attach(), and hdac_resume().
|
static |
Definition at line 931 of file hdac.c.
References HDAC_READ_1, HDAC_RIRBCTL, HDAC_RIRBCTL_RIRBDMAEN, HDAC_WRITE_1, and hdac_softc::mem.
Referenced by hdac_attach2(), and hdac_resume().
|
static |
Definition at line 1014 of file hdac.c.
References hdac_softc::codecs, hdac_softc::corb_dma, hdac_softc::corb_size, hdac_softc::corb_wp, hdac_softc::dev, hdac_dma::dma_map, hdac_dma::dma_tag, hdac_dma::dma_vaddr, HDA_CMD_CAD_SHIFT, HDA_INVALID, HDAC_CORBWP, hdac_lockassert, hdac_rirb_flush(), HDAC_WRITE_2, hdac_softc::mem, hdac_softc::pending, hdac_softc::response, hdac_softc::unsolq_rp, hdac_softc::unsolq_task, hdac_softc::unsolq_wp, and verb.
Referenced by hdac_attach2(), and hdac_codec_command().
|
static |
Definition at line 1901 of file hdac.c.
References hdac_stream::bw, child, hdac_softc::codecs, hdac_stream::dev, dev, dir, hdac_stream::dir, hdac_dma::dma_vaddr, dmapos, format, hdac_stream::format, HDA_BOOTHVERBOSE, hdac_bdata_rate(), hdac_find_stream(), hdac_softc::num_iss, hdac_softc::num_oss, hdac_softc::num_sdo, hdac_softc::pos_dma, hdac_softc::sdi_bw_used, hdac_softc::sdo_bw_used, stream, hdac_stream::stream, hdac_softc::streams, stripe, and hdac_stream::stripe.
|
static |
Definition at line 1961 of file hdac.c.
References hdac_stream::bw, child, hdac_softc::codecs, hdac_stream::dev, dev, dir, hdac_find_stream(), hdac_softc::sdi_bw_used, hdac_softc::sdo_bw_used, stream, hdac_stream::stream, and hdac_softc::streams.
|
static |
Definition at line 2109 of file hdac.c.
References dev, dir, hdac_find_stream(), HDAC_READ_4, HDAC_SDLPIB, hdac_softc::mem, and stream.
|
static |
Definition at line 2071 of file hdac.c.
References dev, dir, hdac_find_stream(), HDAC_READ_1, HDAC_SDCTL0, HDAC_SDCTL_SRST, HDAC_WRITE_1, hdac_softc::mem, and stream.
|
static |
Definition at line 1979 of file hdac.c.
References addr, hdac_bdle::addrh, hdac_bdle::addrl, hdac_stream::bdl, blkcnt, blksz, hdac_stream::blksz, buf, dev, dir, hdac_dma::dma_map, hdac_dma::dma_paddr, hdac_dma::dma_tag, hdac_dma::dma_vaddr, hdac_stream::format, hdac_find_stream(), HDAC_INTCTL, hdac_poll_reinit(), HDAC_READ_1, HDAC_READ_4, HDAC_SDBDPL, HDAC_SDBDPU, HDAC_SDCBL, HDAC_SDCTL0, HDAC_SDCTL2, HDAC_SDCTL2_DIR, HDAC_SDCTL2_STRIPE_SHIFT, HDAC_SDCTL2_STRM_SHIFT, HDAC_SDCTL_DEIE, HDAC_SDCTL_FEIE, HDAC_SDCTL_IOCE, HDAC_SDCTL_RUN, HDAC_SDFMT, HDAC_SDLVI, HDAC_SDSTS, HDAC_SDSTS_BCIS, HDAC_SDSTS_DESE, HDAC_SDSTS_FIFOE, HDAC_WRITE_1, HDAC_WRITE_2, HDAC_WRITE_4, hdac_bdle::ioc, hdac_bdle::len, hdac_softc::mem, hdac_stream::running, stream, hdac_softc::streams, and hdac_stream::stripe.
|
static |
Definition at line 2043 of file hdac.c.
References hdac_stream::bdl, dev, dir, hdac_dma::dma_map, hdac_dma::dma_tag, hdac_find_stream(), HDAC_INTCTL, hdac_poll_reinit(), HDAC_READ_1, HDAC_READ_4, HDAC_SDCTL0, HDAC_SDCTL_DEIE, HDAC_SDCTL_FEIE, HDAC_SDCTL_IOCE, HDAC_SDCTL_RUN, HDAC_WRITE_1, HDAC_WRITE_4, hdac_softc::mem, hdac_stream::running, stream, and hdac_softc::streams.
|
static |
Definition at line 1635 of file hdac.c.
References dev, HDA_BOOTHVERBOSE, hdac_lock, hdac_reset(), hdac_unlock, hdac_softc::poll_callout, and hdac_softc::unsolq_task.
Referenced by sysctl_hdac_pindump().
|
static |
Definition at line 2123 of file hdac.c.
References dev, hdac_poll_reinit(), tag, and hdac_softc::unsol_registered.
|
static |
Definition at line 2133 of file hdac.c.
References dev, hdac_poll_reinit(), and hdac_softc::unsol_registered.
|
static |
Definition at line 983 of file hdac.c.
References child, hdac_softc::codecs, hdac_softc::dev, HDAC_UNSOLQ_BUSY, HDAC_UNSOLQ_MAX, HDAC_UNSOLQ_READY, resp, hdac_softc::unsolq, hdac_softc::unsolq_rp, hdac_softc::unsolq_st, and hdac_softc::unsolq_wp.
Referenced by hdac_unsolq_task().
|
static |
Definition at line 1106 of file hdac.c.
References hdac_lock, hdac_unlock, and hdac_unsolq_flush().
Referenced by hdac_attach().
MALLOC_DEFINE | ( | M_HDAC | , |
"hdac" | , | ||
"HDA Controller" | |||
) |
SND_DECLARE_FILE | ( | "$FreeBSD$" | ) |
|
static |
Definition at line 1368 of file hdac.c.
References dev, free, hdac_lock, hdac_resume(), hdac_suspend(), hdac_unlock, req, and val.
Referenced by hdac_attach2().
|
static |
Definition at line 1475 of file hdac.c.
References dev, HDAC_INTCTL, HDAC_INTCTL_GIE, hdac_lock, hdac_poll_reinit(), HDAC_READ_4, hdac_unlock, HDAC_WRITE_4, hdac_softc::mem, hdac_softc::poll_callout, hdac_softc::polling, req, and val.
Referenced by hdac_attach2().
const char* desc |
Definition at line 77 of file hdac.c.
Referenced by hdac_probe().
uint8_t enable |
Definition at line 213 of file hdac.c.
Referenced by atiixp_intr(), emu_enastop(), emu_vstop(), hdaa_audio_bind_as(), hdaa_audio_build_tree(), hdaa_dump_gpio(), hdaa_prepare_pcms(), hdaa_sysctl_gpio_state(), hdac_attach(), svpchan_trigger(), svrchan_trigger(), and tr_enaint().
const struct { ... } hdac_devices[] |
Referenced by hdac_attach(), and hdac_probe().
|
static |
|
static |
const struct { ... } hdac_pcie_snoop[] |
Referenced by hdac_attach().
const struct { ... } hdac_quirks_tab[] |
Referenced by hdac_config_fetch().
const char* key |
Definition at line 65 of file hdac.c.
Referenced by hdac_config_fetch().
uint8_t mask |
Definition at line 212 of file hdac.c.
Referenced by ac97_setmixer(), ac97mix_init(), alsmix_set(), burgundy_set_outputs(), change_bits(), cmi_partial_wr4(), cmi_set4(), cs4281_clr4(), cs4281_set4(), cs4281_waitclr(), cs4281_waitset(), davbus_cint(), dsp_oss_getchannelmask(), emu_rdptr(), emu_wrptr(), envy24_checkintr(), envy24_gpiosetmask(), envy24_route(), envy24_updintr(), envy24ht_checkintr(), envy24ht_gpiosetmask(), envy24ht_updintr(), hdaa_audio_ctl_ossmixer_init(), hdaa_audio_ctl_ossmixer_mask2allname(), hdaa_autorecsrc_handler(), hdspemixer_init(), i2c_wr(), i2s_cint(), i2s_set_outputs(), mix_setparentchild(), mss_set_recsrc(), screamer_set_outputs(), spicds_wrcd(), sv_mix_setrecsrc(), tr_intr(), and uaudio_mixer_setrecsrc().
uint32_t model |
Definition at line 76 of file hdac.c.
Referenced by hdac_attach(), and hdac_probe().
char quirks_off |
Definition at line 79 of file hdac.c.
Referenced by hdaa_local_patch(), and hdaa_sysctl_quirks().
char quirks_on |
Definition at line 78 of file hdac.c.
Referenced by hdaa_local_patch().
uint8_t reg |
Definition at line 211 of file hdac.c.
Referenced by _sv_direct_set(), _sv_indirect_set(), ac97_initmixer(), ac97_rdcd(), ac97_setmixer(), ac97_wrcd(), ad1816_read(), ad1816_write(), ad1816chan_setformat(), ad1816chan_trigger(), ad1816mix_set(), ad_read(), ad_write(), ad_write_cnt(), atiixp_dmapos(), atiixp_rdcd(), atiixp_wrcd(), burgundy_write_locked(), cmi_clr4(), cmi_mread(), cmi_mwrite(), cmi_partial_wr4(), cmi_set4(), conf_rd(), conf_wr(), csamidi_mread(), csamidi_mwrite(), davbus_cint(), emu_enastop(), emu_mread(), emu_mwrite(), emu_rd_p16vptr(), emu_rdptr(), emu_vstop(), emu_wr_p16vptr(), emu_wrptr(), envy24_route(), es1371_src_read(), es1371_src_write(), es_poll_channel(), eschan_getptr(), ess_rd(), ess_read(), ess_wr(), ess_write(), gpio_write(), gus_rd(), gus_wr(), hdac_attach(), hdspechan_enable(), i2c_wr(), i2s_setup(), io_rd(), io_wr(), onyx_write(), opti_rd(), opti_read(), opti_wr(), opti_write(), sb_rd(), sb_wr(), sbmix_set(), sbpromix_set(), screamer_write_locked(), snapper_set(), snapper_write(), spicds_wrcd(), sv_channel_gain(), sv_direct_get(), sv_indirect_get(), sv_mix_mute_all(), tr_enaint(), tumbler_set(), tumbler_write(), via_intr(), via_read_codec(), via_write_codec(), and viachan_setspeed().
uint16_t vendor |
Definition at line 210 of file hdac.c.
Referenced by hdac_attach().