this 1049 dev/pci/azalia.c azalia_codec_init(codec_t *this) this 1055 dev/pci/azalia.c this->comresp = azalia_codec_comresp; this 1056 dev/pci/azalia.c addr = this->address; this 1058 dev/pci/azalia.c XNAME(this->az), addr)); this 1060 dev/pci/azalia.c err = this->comresp(this, CORB_NID_ROOT, CORB_GET_PARAMETER, this 1064 dev/pci/azalia.c err = this->comresp(this, CORB_NID_ROOT, CORB_GET_PARAMETER, this 1068 dev/pci/azalia.c this->vid = id; this 1069 dev/pci/azalia.c this->subid = this->az->subid; this 1070 dev/pci/azalia.c azalia_codec_init_vtbl(this); this 1072 dev/pci/azalia.c printf("%s: codec:", XNAME(this->az)); this 1073 dev/pci/azalia.c if (this->name == NULL) { this 1080 dev/pci/azalia.c printf(" %s", this->name); this 1086 dev/pci/azalia.c err = this->comresp(this, CORB_NID_ROOT, CORB_GET_PARAMETER, this 1090 dev/pci/azalia.c this->nfunctions = COP_NSUBNODES(result); this 1092 dev/pci/azalia.c printf("%s: No function groups\n", XNAME(this->az)); this 1098 dev/pci/azalia.c __func__, n, this->nfunctions)); this 1099 dev/pci/azalia.c this->audiofunc = -1; this 1100 dev/pci/azalia.c for (i = 0; i < this->nfunctions; i++) { this 1101 dev/pci/azalia.c err = this->comresp(this, n + i, CORB_GET_PARAMETER, this 1107 dev/pci/azalia.c this->audiofunc = n + i; this 1111 dev/pci/azalia.c XNAME(this->az), addr); this 1114 dev/pci/azalia.c if (this->audiofunc < 0) { this 1116 dev/pci/azalia.c XNAME(this->az), addr); this 1121 dev/pci/azalia.c this->comresp(this, this->audiofunc, CORB_SET_POWER_STATE, CORB_PS_D0, &result); this 1125 dev/pci/azalia.c err = this->comresp(this, this->audiofunc, this 1131 dev/pci/azalia.c this->wstart = COP_START_NID(result); this 1132 dev/pci/azalia.c if (this->wstart < 2) { this 1133 dev/pci/azalia.c printf("%s: invalid node structure\n", XNAME(this->az)); this 1136 dev/pci/azalia.c this->wend = this->wstart + COP_NSUBNODES(result); this 1137 dev/pci/azalia.c this->w = malloc(sizeof(widget_t) * this->wend, M_DEVBUF, M_NOWAIT); this 1138 dev/pci/azalia.c if (this->w == NULL) { this 1139 dev/pci/azalia.c printf("%s: out of memory\n", XNAME(this->az)); this 1142 dev/pci/azalia.c bzero(this->w, sizeof(widget_t) * this->wend); this 1145 dev/pci/azalia.c this->comresp(this, this->audiofunc, CORB_GET_PARAMETER, this 1147 dev/pci/azalia.c this->w[this->audiofunc].d.audio.encodings = result; this 1148 dev/pci/azalia.c this->comresp(this, this->audiofunc, CORB_GET_PARAMETER, this 1150 dev/pci/azalia.c this->w[this->audiofunc].d.audio.bits_rates = result; this 1151 dev/pci/azalia.c this->comresp(this, this->audiofunc, CORB_GET_PARAMETER, this 1153 dev/pci/azalia.c this->w[this->audiofunc].inamp_cap = result; this 1154 dev/pci/azalia.c this->comresp(this, this->audiofunc, CORB_GET_PARAMETER, this 1156 dev/pci/azalia.c this->w[this->audiofunc].outamp_cap = result; this 1158 dev/pci/azalia.c azalia_widget_print_audio(&this->w[this->audiofunc], "\t"); this 1159 dev/pci/azalia.c result = this->w[this->audiofunc].inamp_cap; this 1163 dev/pci/azalia.c result = this->w[this->audiofunc].outamp_cap; this 1169 dev/pci/azalia.c strlcpy(this->w[CORB_NID_ROOT].name, "root", this 1170 dev/pci/azalia.c sizeof(this->w[CORB_NID_ROOT].name)); this 1171 dev/pci/azalia.c strlcpy(this->w[this->audiofunc].name, "hdaudio", this 1172 dev/pci/azalia.c sizeof(this->w[this->audiofunc].name)); this 1173 dev/pci/azalia.c FOR_EACH_WIDGET(this, i) { this 1174 dev/pci/azalia.c err = azalia_widget_init(&this->w[i], this, i); this 1179 dev/pci/azalia.c err = this->init_dacgroup(this); this 1183 dev/pci/azalia.c for (i = 0; i < this->dacs.ngroups; i++) { this 1185 dev/pci/azalia.c for (n = 0; n < this->dacs.groups[i].nconv; n++) { this 1186 dev/pci/azalia.c DPRINTF((" %2.2x", this->dacs.groups[i].conv[n])); this 1193 dev/pci/azalia.c this->dacs.cur = -1; this 1194 dev/pci/azalia.c this->adcs.cur = -1; this 1195 dev/pci/azalia.c err = azalia_codec_construct_format(this, 0, 0); this 1199 dev/pci/azalia.c return this->mixer_init(this); this 1203 dev/pci/azalia.c azalia_codec_delete(codec_t *this) this 1205 dev/pci/azalia.c if (this->mixer_delete != NULL) this 1206 dev/pci/azalia.c this->mixer_delete(this); this 1207 dev/pci/azalia.c if (this->formats != NULL) { this 1208 dev/pci/azalia.c free(this->formats, M_DEVBUF); this 1209 dev/pci/azalia.c this->formats = NULL; this 1212 dev/pci/azalia.c auconv_delete_encodings(this->encodings); this 1213 dev/pci/azalia.c this->encodings = NULL; this 1218 dev/pci/azalia.c azalia_codec_construct_format(codec_t *this, int newdac, int newadc) this 1227 dev/pci/azalia.c prev_dac = this->dacs.cur; this 1228 dev/pci/azalia.c this->dacs.cur = newdac; this 1229 dev/pci/azalia.c group = &this->dacs.groups[this->dacs.cur]; this 1230 dev/pci/azalia.c bits_rates = this->w[group->conv[0]].d.audio.bits_rates; this 1244 dev/pci/azalia.c XNAME(this->az), __FILE__, __LINE__, bits_rates); this 1249 dev/pci/azalia.c prev_adc = this->adcs.cur; this 1250 dev/pci/azalia.c this->adcs.cur = newadc; this 1251 dev/pci/azalia.c group = &this->adcs.groups[this->adcs.cur]; this 1252 dev/pci/azalia.c bits_rates = this->w[group->conv[0]].d.audio.bits_rates; this 1266 dev/pci/azalia.c XNAME(this->az), __FILE__, __LINE__, bits_rates); this 1271 dev/pci/azalia.c if (this->formats != NULL) this 1272 dev/pci/azalia.c free(this->formats, M_DEVBUF); this 1273 dev/pci/azalia.c this->nformats = 0; this 1274 dev/pci/azalia.c this->formats = malloc(sizeof(struct audio_format) * this 1276 dev/pci/azalia.c if (this->formats == NULL) { this 1278 dev/pci/azalia.c XNAME(this->az), __func__); this 1281 dev/pci/azalia.c bzero(this->formats, sizeof(struct audio_format) * this 1285 dev/pci/azalia.c group = &this->dacs.groups[this->dacs.cur]; this 1288 dev/pci/azalia.c bits_rates = this->w[nid].d.audio.bits_rates; this 1291 dev/pci/azalia.c chan += WIDGET_CHANNELS(&this->w[group->conv[c]]); this 1292 dev/pci/azalia.c azalia_codec_add_bits(this, chan, bits_rates, AUMODE_PLAY); this 1296 dev/pci/azalia.c group = &this->adcs.groups[this->adcs.cur]; this 1299 dev/pci/azalia.c bits_rates = this->w[nid].d.audio.bits_rates; this 1302 dev/pci/azalia.c chan += WIDGET_CHANNELS(&this->w[group->conv[c]]); this 1303 dev/pci/azalia.c azalia_codec_add_bits(this, chan, bits_rates, AUMODE_RECORD); this 1306 dev/pci/azalia.c err = azalia_create_encodings(this->formats, this->nformats, this 1307 dev/pci/azalia.c &this->encodings); this 1314 dev/pci/azalia.c azalia_codec_add_bits(codec_t *this, int chan, uint32_t bits_rates, int mode) this 1317 dev/pci/azalia.c azalia_codec_add_format(this, chan, 8, 16, bits_rates, mode); this 1319 dev/pci/azalia.c azalia_codec_add_format(this, chan, 16, 16, bits_rates, mode); this 1321 dev/pci/azalia.c azalia_codec_add_format(this, chan, 20, 32, bits_rates, mode); this 1323 dev/pci/azalia.c azalia_codec_add_format(this, chan, 24, 32, bits_rates, mode); this 1325 dev/pci/azalia.c azalia_codec_add_format(this, chan, 32, 32, bits_rates, mode); this 1329 dev/pci/azalia.c azalia_codec_add_format(codec_t *this, int chan, int valid, int prec, this 1334 dev/pci/azalia.c f = &this->formats[this->nformats++]; this 1401 dev/pci/azalia.c azalia_codec_connect_stream(codec_t *this, int dir, uint16_t fmt, int number) this 1411 dev/pci/azalia.c group = &this->adcs.groups[this->adcs.cur]; this 1413 dev/pci/azalia.c group = &this->dacs.groups[this->dacs.cur]; this 1415 dev/pci/azalia.c (WIDGET_CHANNELS(&this->w[group->conv[0]]) == 2) && this 1416 dev/pci/azalia.c (WIDGET_CHANNELS(&this->w[group->conv[1]]) == 2) && this 1417 dev/pci/azalia.c (WIDGET_CHANNELS(&this->w[group->conv[2]]) == 2); this 1430 dev/pci/azalia.c err = this->comresp(this, nid, CORB_SET_CONVERTER_FORMAT, fmt, NULL); this 1433 dev/pci/azalia.c err = this->comresp(this, nid, CORB_SET_CONVERTER_STREAM_CHANNEL, this 1438 dev/pci/azalia.c startchan += WIDGET_CHANNELS(&this->w[nid]); this 1456 dev/pci/azalia.c azalia_widget_init(widget_t *this, const codec_t *codec, nid_t nid) this 1465 dev/pci/azalia.c this->nid = nid; this 1466 dev/pci/azalia.c this->widgetcap = result; this 1467 dev/pci/azalia.c this->type = COP_AWCAP_TYPE(result); this 1469 dev/pci/azalia.c if (this->widgetcap & COP_AWCAP_POWER) { this 1473 dev/pci/azalia.c switch (this->type) { this 1475 dev/pci/azalia.c snprintf(this->name, sizeof(this->name), "dac%2.2x", nid); this 1476 dev/pci/azalia.c DPRINTF(("%s wcap=%b\n", this->name, this 1477 dev/pci/azalia.c this->widgetcap, WIDGETCAP_BITS)); this 1478 dev/pci/azalia.c azalia_widget_init_audio(this, codec); this 1481 dev/pci/azalia.c snprintf(this->name, sizeof(this->name), "adc%2.2x", nid); this 1482 dev/pci/azalia.c DPRINTF(("%s wcap=%b\n", this->name, this 1483 dev/pci/azalia.c this->widgetcap, WIDGETCAP_BITS)); this 1484 dev/pci/azalia.c azalia_widget_init_audio(this, codec); this 1487 dev/pci/azalia.c snprintf(this->name, sizeof(this->name), "mix%2.2x", nid); this 1488 dev/pci/azalia.c DPRINTF(("%s wcap=%b\n", this->name, this 1489 dev/pci/azalia.c this->widgetcap, WIDGETCAP_BITS)); this 1492 dev/pci/azalia.c snprintf(this->name, sizeof(this->name), "sel%2.2x", nid); this 1493 dev/pci/azalia.c DPRINTF(("%s wcap=%b\n", this->name, this 1494 dev/pci/azalia.c this->widgetcap, WIDGETCAP_BITS)); this 1497 dev/pci/azalia.c azalia_widget_init_pin(this, codec); this 1498 dev/pci/azalia.c snprintf(this->name, sizeof(this->name), "%s%2.2x", this 1499 dev/pci/azalia.c pin_colors[this->d.pin.color], nid); this 1500 dev/pci/azalia.c DPRINTF(("%s wcap=%b\n", this->name, this 1501 dev/pci/azalia.c this->widgetcap, WIDGETCAP_BITS)); this 1502 dev/pci/azalia.c azalia_widget_print_pin(this); this 1505 dev/pci/azalia.c snprintf(this->name, sizeof(this->name), "pow%2.2x", nid); this 1506 dev/pci/azalia.c DPRINTF(("%s wcap=%b\n", this->name, this 1507 dev/pci/azalia.c this->widgetcap, WIDGETCAP_BITS)); this 1510 dev/pci/azalia.c snprintf(this->name, sizeof(this->name), "volume%2.2x", nid); this 1511 dev/pci/azalia.c DPRINTF(("%s wcap=%b\n", this->name, this 1512 dev/pci/azalia.c this->widgetcap, WIDGETCAP_BITS)); this 1516 dev/pci/azalia.c this->d.volume.cap = result; this 1523 dev/pci/azalia.c snprintf(this->name, sizeof(this->name), "beep%2.2x", nid); this 1524 dev/pci/azalia.c DPRINTF(("%s wcap=%b\n", this->name, this 1525 dev/pci/azalia.c this->widgetcap, WIDGETCAP_BITS)); this 1528 dev/pci/azalia.c snprintf(this->name, sizeof(this->name), "widget%2.2x", nid); this 1529 dev/pci/azalia.c DPRINTF(("%s wcap=%b\n", this->name, this 1530 dev/pci/azalia.c this->widgetcap, WIDGETCAP_BITS)); this 1533 dev/pci/azalia.c azalia_widget_init_connection(this, codec); this 1536 dev/pci/azalia.c if (this->widgetcap & COP_AWCAP_INAMP) { this 1537 dev/pci/azalia.c if (this->widgetcap & COP_AWCAP_AMPOV) this 1539 dev/pci/azalia.c COP_INPUT_AMPCAP, &this->inamp_cap); this 1541 dev/pci/azalia.c this->inamp_cap = codec->w[codec->audiofunc].inamp_cap; this 1543 dev/pci/azalia.c (this->inamp_cap & COP_AMPCAP_MUTE) != 0, this 1544 dev/pci/azalia.c COP_AMPCAP_STEPSIZE(this->inamp_cap), this 1545 dev/pci/azalia.c COP_AMPCAP_NUMSTEPS(this->inamp_cap), this 1546 dev/pci/azalia.c COP_AMPCAP_OFFSET(this->inamp_cap))); this 1548 dev/pci/azalia.c if (this->widgetcap & COP_AWCAP_OUTAMP) { this 1549 dev/pci/azalia.c if (this->widgetcap & COP_AWCAP_AMPOV) this 1551 dev/pci/azalia.c COP_OUTPUT_AMPCAP, &this->outamp_cap); this 1553 dev/pci/azalia.c this->outamp_cap = codec->w[codec->audiofunc].outamp_cap; this 1555 dev/pci/azalia.c (this->outamp_cap & COP_AMPCAP_MUTE) != 0, this 1556 dev/pci/azalia.c COP_AMPCAP_STEPSIZE(this->outamp_cap), this 1557 dev/pci/azalia.c COP_AMPCAP_NUMSTEPS(this->outamp_cap), this 1558 dev/pci/azalia.c COP_AMPCAP_OFFSET(this->outamp_cap))); this 1561 dev/pci/azalia.c codec->init_widget(codec, this, nid); this 1566 dev/pci/azalia.c azalia_widget_init_audio(widget_t *this, const codec_t *codec) this 1572 dev/pci/azalia.c if (this->widgetcap & COP_AWCAP_FORMATOV) { this 1573 dev/pci/azalia.c err = codec->comresp(codec, this->nid, this 1577 dev/pci/azalia.c this->d.audio.encodings = result; this 1580 dev/pci/azalia.c this->d.audio.encodings = this 1582 dev/pci/azalia.c this->d.audio.bits_rates = this 1587 dev/pci/azalia.c XNAME(codec->az), this->name, result); this 1590 dev/pci/azalia.c err = codec->comresp(codec, this->nid, CORB_GET_PARAMETER, this 1594 dev/pci/azalia.c this->d.audio.bits_rates = result; this 1596 dev/pci/azalia.c this->d.audio.bits_rates = result; this 1598 dev/pci/azalia.c this->d.audio.encodings = this 1600 dev/pci/azalia.c this->d.audio.bits_rates = this 1604 dev/pci/azalia.c azalia_widget_print_audio(this, "\t"); this 1616 dev/pci/azalia.c azalia_widget_print_audio(const widget_t *this, const char *lead) this 1618 dev/pci/azalia.c printf("%sencodings=%b\n", lead, this->d.audio.encodings, this 1620 dev/pci/azalia.c printf("%sPCM formats=%b\n", lead, this->d.audio.bits_rates, this 1626 dev/pci/azalia.c azalia_widget_init_pin(widget_t *this, const codec_t *codec) this 1631 dev/pci/azalia.c err = codec->comresp(codec, this->nid, CORB_GET_CONFIGURATION_DEFAULT, this 1635 dev/pci/azalia.c this->d.pin.config = result; this 1636 dev/pci/azalia.c this->d.pin.sequence = CORB_CD_SEQUENCE(result); this 1637 dev/pci/azalia.c this->d.pin.association = CORB_CD_ASSOCIATION(result); this 1638 dev/pci/azalia.c this->d.pin.color = CORB_CD_COLOR(result); this 1639 dev/pci/azalia.c this->d.pin.device = CORB_CD_DEVICE(result); this 1641 dev/pci/azalia.c err = codec->comresp(codec, this->nid, CORB_GET_PARAMETER, this 1645 dev/pci/azalia.c this->d.pin.cap = result; this 1653 dev/pci/azalia.c azalia_widget_print_pin(const widget_t *this) this 1656 dev/pci/azalia.c pin_devices[this->d.pin.device], pin_colors[this->d.pin.color], this 1657 dev/pci/azalia.c this->d.pin.association, this->d.pin.sequence)); this 1658 dev/pci/azalia.c DPRINTF((" cap=%b\n", this->d.pin.cap, PINCAP_BITS)); this 1663 dev/pci/azalia.c azalia_widget_init_connection(widget_t *this, const codec_t *codec) this 1670 dev/pci/azalia.c this->selected = -1; this 1671 dev/pci/azalia.c if ((this->widgetcap & COP_AWCAP_CONNLIST) == 0) this 1674 dev/pci/azalia.c err = codec->comresp(codec, this->nid, CORB_GET_PARAMETER, this 1682 dev/pci/azalia.c this->nconnections = length; this 1683 dev/pci/azalia.c this->connections = malloc(sizeof(nid_t) * (length + 3), this 1685 dev/pci/azalia.c if (this->connections == NULL) { this 1691 dev/pci/azalia.c err = codec->comresp(codec, this->nid, this 1695 dev/pci/azalia.c this->connections[i++] = CORB_CLE_LONG_0(result); this 1696 dev/pci/azalia.c this->connections[i++] = CORB_CLE_LONG_1(result); this 1700 dev/pci/azalia.c err = codec->comresp(codec, this->nid, this 1704 dev/pci/azalia.c this->connections[i++] = CORB_CLE_SHORT_0(result); this 1705 dev/pci/azalia.c this->connections[i++] = CORB_CLE_SHORT_1(result); this 1706 dev/pci/azalia.c this->connections[i++] = CORB_CLE_SHORT_2(result); this 1707 dev/pci/azalia.c this->connections[i++] = CORB_CLE_SHORT_3(result); this 1711 dev/pci/azalia.c DPRINTF(("\tconnections=0x%x", this->connections[0])); this 1713 dev/pci/azalia.c DPRINTF((",0x%x", this->connections[i])); this 1716 dev/pci/azalia.c err = codec->comresp(codec, this->nid, this 1720 dev/pci/azalia.c this->selected = CORB_CSC_INDEX(result); this 1721 dev/pci/azalia.c DPRINTF(("; selected=0x%x\n", this->connections[result])); this 1731 dev/pci/azalia.c azalia_stream_init(stream_t *this, azalia_t *az, int regindex, int strnum, int dir) this 1735 dev/pci/azalia.c this->az = az; this 1736 dev/pci/azalia.c this->regbase = HDA_SD_BASE + regindex * HDA_SD_SIZE; this 1737 dev/pci/azalia.c this->intr_bit = 1 << regindex; this 1738 dev/pci/azalia.c this->number = strnum; this 1739 dev/pci/azalia.c this->dir = dir; this 1743 dev/pci/azalia.c 128, &this->bdlist); this 1752 dev/pci/azalia.c azalia_stream_delete(stream_t *this, azalia_t *az) this 1754 dev/pci/azalia.c if (this->bdlist.addr == NULL) this 1756 dev/pci/azalia.c azalia_free_dmamem(az, &this->bdlist); this 1761 dev/pci/azalia.c azalia_stream_reset(stream_t *this) this 1768 dev/pci/azalia.c ctl = STR_READ_2(this, CTL); this 1770 dev/pci/azalia.c STR_WRITE_2(this, CTL, ctl); this 1773 dev/pci/azalia.c ctl = STR_READ_2(this, CTL); this 1774 dev/pci/azalia.c STR_WRITE_2(this, CTL, ctl | HDA_SD_CTL_SRST); this 1777 dev/pci/azalia.c ctl = STR_READ_2(this, CTL); this 1782 dev/pci/azalia.c printf("%s: stream reset failure 1\n", XNAME(this->az)); this 1787 dev/pci/azalia.c STR_WRITE_2(this, CTL, ctl & ~HDA_SD_CTL_SRST); this 1790 dev/pci/azalia.c ctl = STR_READ_2(this, CTL); this 1795 dev/pci/azalia.c printf("%s: stream reset failure 2\n", XNAME(this->az)); this 1799 dev/pci/azalia.c sts = STR_READ_1(this, STS); this 1801 dev/pci/azalia.c STR_WRITE_1(this, STS, sts); this 1807 dev/pci/azalia.c azalia_stream_start(stream_t *this, void *start, void *end, int blk, this 1816 dev/pci/azalia.c this->intr = intr; this 1817 dev/pci/azalia.c this->intr_arg = arg; this 1819 dev/pci/azalia.c err = azalia_stream_reset(this); this 1825 dev/pci/azalia.c STR_WRITE_4(this, BDPL, 0); this 1826 dev/pci/azalia.c STR_WRITE_4(this, BDPU, 0); this 1829 dev/pci/azalia.c dmaaddr = AZALIA_DMA_DMAADDR(&this->buffer); this 1831 dev/pci/azalia.c bdlist = (bdlist_entry_t*)this->bdlist.addr; this 1844 dev/pci/azalia.c dmaaddr = AZALIA_DMA_DMAADDR(&this->bdlist); this 1845 dev/pci/azalia.c STR_WRITE_4(this, BDPL, dmaaddr); this 1846 dev/pci/azalia.c STR_WRITE_4(this, BDPU, PTR_UPPER32(dmaaddr)); this 1847 dev/pci/azalia.c STR_WRITE_2(this, LVI, (index - 1) & HDA_SD_LVI_LVI); this 1848 dev/pci/azalia.c ctl2 = STR_READ_1(this, CTL2); this 1849 dev/pci/azalia.c STR_WRITE_1(this, CTL2, this 1850 dev/pci/azalia.c (ctl2 & ~HDA_SD_CTL2_STRM) | (this->number << HDA_SD_CTL2_STRM_SHIFT)); this 1851 dev/pci/azalia.c STR_WRITE_4(this, CBL, ((caddr_t)end - (caddr_t)start)); this 1852 dev/pci/azalia.c STR_WRITE_2(this, FMT, fmt); this 1854 dev/pci/azalia.c err = azalia_codec_connect_stream(&this->az->codecs[this->az->codecno], this 1855 dev/pci/azalia.c this->dir, fmt, this->number); this 1859 dev/pci/azalia.c intctl = AZ_READ_4(this->az, INTCTL); this 1860 dev/pci/azalia.c intctl |= this->intr_bit; this 1861 dev/pci/azalia.c AZ_WRITE_4(this->az, INTCTL, intctl); this 1863 dev/pci/azalia.c STR_WRITE_1(this, CTL, STR_READ_1(this, CTL) | this 1871 dev/pci/azalia.c azalia_stream_halt(stream_t *this) this 1875 dev/pci/azalia.c ctl = STR_READ_2(this, CTL); this 1877 dev/pci/azalia.c STR_WRITE_2(this, CTL, ctl); this 1878 dev/pci/azalia.c AZ_WRITE_4(this->az, INTCTL, this 1879 dev/pci/azalia.c AZ_READ_4(this->az, INTCTL) & ~this->intr_bit); this 1886 dev/pci/azalia.c azalia_stream_intr(stream_t *this, uint32_t intsts) this 1890 dev/pci/azalia.c if ((intsts & this->intr_bit) == 0) this 1893 dev/pci/azalia.c sts = STR_READ_1(this, STS); this 1894 dev/pci/azalia.c STR_WRITE_1(this, STS, sts | this 1898 dev/pci/azalia.c printf("%s: stream %d: sts=%b\n", XNAME(this->az), this 1899 dev/pci/azalia.c this->number, sts, HDA_SD_STS_BITS); this 1901 dev/pci/azalia.c this->intr(this->intr_arg); this 550 dev/pci/azalia.h #define FOR_EACH_WIDGET(this, i) for (i = (this)->wstart; i < (this)->wend; i++) this 117 dev/pci/azalia_codec.c azalia_codec_init_vtbl(codec_t *this) this 122 dev/pci/azalia_codec.c DPRINTF(("%s: vid=%08x subid=%08x\n", __func__, this->vid, this->subid)); this 123 dev/pci/azalia_codec.c this->name = NULL; this 124 dev/pci/azalia_codec.c this->init_dacgroup = azalia_generic_codec_init_dacgroup; this 125 dev/pci/azalia_codec.c this->mixer_init = azalia_generic_mixer_init; this 126 dev/pci/azalia_codec.c this->mixer_delete = azalia_generic_mixer_delete; this 127 dev/pci/azalia_codec.c this->set_port = azalia_generic_set_port; this 128 dev/pci/azalia_codec.c this->get_port = azalia_generic_get_port; this 129 dev/pci/azalia_codec.c switch (this->vid) { this 131 dev/pci/azalia_codec.c this->name = "Realtek ALC260"; this 132 dev/pci/azalia_codec.c this->mixer_init = azalia_alc260_mixer_init; this 133 dev/pci/azalia_codec.c this->init_dacgroup = azalia_alc260_init_dacgroup; this 134 dev/pci/azalia_codec.c this->set_port = azalia_alc260_set_port; this 137 dev/pci/azalia_codec.c this->name = "Realtek ALC880"; this 138 dev/pci/azalia_codec.c this->init_dacgroup = azalia_alc880_init_dacgroup; this 141 dev/pci/azalia_codec.c this->name = "Realtek ALC882"; this 142 dev/pci/azalia_codec.c this->init_dacgroup = azalia_alc882_init_dacgroup; this 143 dev/pci/azalia_codec.c this->mixer_init = azalia_alc882_mixer_init; this 144 dev/pci/azalia_codec.c this->get_port = azalia_alc882_get_port; this 145 dev/pci/azalia_codec.c this->set_port = azalia_alc882_set_port; this 149 dev/pci/azalia_codec.c this->name = "Realtek ALC883"; this 150 dev/pci/azalia_codec.c this->init_dacgroup = azalia_alc883_init_dacgroup; this 151 dev/pci/azalia_codec.c this->mixer_init = azalia_alc883_mixer_init; this 152 dev/pci/azalia_codec.c this->get_port = azalia_alc882_get_port; this 153 dev/pci/azalia_codec.c this->set_port = azalia_alc882_set_port; this 157 dev/pci/azalia_codec.c this->name = "Analog Devices AD1981HD"; this 158 dev/pci/azalia_codec.c this->init_widget = azalia_ad1981hd_init_widget; this 159 dev/pci/azalia_codec.c this->mixer_init = azalia_ad1981hd_mixer_init; this 163 dev/pci/azalia_codec.c this->name = "Analog Devices AD1983"; this 166 dev/pci/azalia_codec.c this->name = "CMedia CMI9880"; this 167 dev/pci/azalia_codec.c this->init_dacgroup = azalia_cmi9880_init_dacgroup; this 168 dev/pci/azalia_codec.c this->mixer_init = azalia_cmi9880_mixer_init; this 171 dev/pci/azalia_codec.c this->name = "Sigmatel STAC9221"; this 172 dev/pci/azalia_codec.c this->init_dacgroup = azalia_stac9221_init_dacgroup; this 173 dev/pci/azalia_codec.c if (this->subid == 0x76808384) { this 174 dev/pci/azalia_codec.c this->init_dacgroup = this 176 dev/pci/azalia_codec.c this->mixer_init = this 182 dev/pci/azalia_codec.c this->name = "Sigmatel STAC9221D"; this 183 dev/pci/azalia_codec.c this->init_dacgroup = azalia_stac9221_init_dacgroup; this 187 dev/pci/azalia_codec.c this->name = "Sigmatel STAC9200"; this 188 dev/pci/azalia_codec.c this->mixer_init = azalia_stac9200_mixer_init; this 189 dev/pci/azalia_codec.c this->unsol_event = azalia_stac9200_unsol_event; this 192 dev/pci/azalia_codec.c this->name = "Sigmatel STAC9200D"; this 195 dev/pci/azalia_codec.c this->name = "Sigmatel 83847661"; this 196 dev/pci/azalia_codec.c this->init_dacgroup = azalia_stac7661_init_dacgroup; this 197 dev/pci/azalia_codec.c this->mixer_init = azalia_stac7661_mixer_init; this 198 dev/pci/azalia_codec.c this->get_port = azalia_stac7661_get_port; this 199 dev/pci/azalia_codec.c this->set_port = azalia_stac7661_set_port; this 210 dev/pci/azalia_codec.c azalia_generic_codec_init_dacgroup(codec_t *this) this 221 dev/pci/azalia_codec.c this->dacs.ngroups = 0; this 223 dev/pci/azalia_codec.c azalia_generic_codec_add_dacgroup(this, assoc, 0); this 224 dev/pci/azalia_codec.c azalia_generic_codec_add_dacgroup(this, assoc, COP_AWCAP_DIGITAL); this 229 dev/pci/azalia_codec.c FOR_EACH_WIDGET(this, i) { this 232 dev/pci/azalia_codec.c if (this->w[i].type != COP_AWTYPE_AUDIO_OUTPUT) this 235 dev/pci/azalia_codec.c for (group = 0; group < this->dacs.ngroups; group++) { this 236 dev/pci/azalia_codec.c for (j = 0; j < this->dacs.groups[group].nconv; j++) { this 237 dev/pci/azalia_codec.c if (i == this->dacs.groups[group].conv[j]) { this 239 dev/pci/azalia_codec.c group = this->dacs.ngroups; this 246 dev/pci/azalia_codec.c if (this->dacs.ngroups >= 32) this 248 dev/pci/azalia_codec.c this->dacs.groups[this->dacs.ngroups].nconv = 1; this 249 dev/pci/azalia_codec.c this->dacs.groups[this->dacs.ngroups].conv[0] = i; this 250 dev/pci/azalia_codec.c this->dacs.ngroups++; this 252 dev/pci/azalia_codec.c this->dacs.cur = 0; this 255 dev/pci/azalia_codec.c this->adcs.ngroups = 0; this 256 dev/pci/azalia_codec.c FOR_EACH_WIDGET(this, i) { this 257 dev/pci/azalia_codec.c if (this->w[i].type != COP_AWTYPE_AUDIO_INPUT) this 259 dev/pci/azalia_codec.c this->adcs.groups[this->adcs.ngroups].nconv = 1; this 260 dev/pci/azalia_codec.c this->adcs.groups[this->adcs.ngroups].conv[0] = i; this 261 dev/pci/azalia_codec.c this->adcs.ngroups++; this 262 dev/pci/azalia_codec.c if (this->adcs.ngroups >= 32) this 265 dev/pci/azalia_codec.c this->adcs.cur = 0; this 270 dev/pci/azalia_codec.c azalia_generic_codec_add_dacgroup(codec_t *this, int assoc, uint32_t digital) this 276 dev/pci/azalia_codec.c i = azalia_generic_codec_find_pin(this, assoc, seq, digital); this 279 dev/pci/azalia_codec.c dac = azalia_generic_codec_find_dac(this, i, 0); this 284 dev/pci/azalia_codec.c if (this->dacs.groups[this->dacs.ngroups].conv[j] == dac) this 289 dev/pci/azalia_codec.c this->dacs.groups[this->dacs.ngroups].conv[n++] = dac; this 291 dev/pci/azalia_codec.c __func__, assoc, seq, this->dacs.ngroups, n-1)); this 295 dev/pci/azalia_codec.c this->dacs.groups[this->dacs.ngroups].nconv = n; this 298 dev/pci/azalia_codec.c for (i = 0; i < this->dacs.ngroups; i++) { this 299 dev/pci/azalia_codec.c if (n != this->dacs.groups[i].nconv) this 302 dev/pci/azalia_codec.c if (this->dacs.groups[this->dacs.ngroups].conv[j] != this 303 dev/pci/azalia_codec.c this->dacs.groups[i].conv[j]) this 310 dev/pci/azalia_codec.c this->dacs.ngroups++; this 315 dev/pci/azalia_codec.c azalia_generic_codec_find_pin(const codec_t *this, int assoc, int seq, uint32_t digital) this 319 dev/pci/azalia_codec.c FOR_EACH_WIDGET(this, i) { this 320 dev/pci/azalia_codec.c if (this->w[i].type != COP_AWTYPE_PIN_COMPLEX) this 322 dev/pci/azalia_codec.c if ((this->w[i].d.pin.cap & COP_PINCAP_OUTPUT) == 0) this 324 dev/pci/azalia_codec.c if ((this->w[i].widgetcap & COP_AWCAP_DIGITAL) != digital) this 326 dev/pci/azalia_codec.c if (this->w[i].d.pin.association != assoc) this 328 dev/pci/azalia_codec.c if (this->w[i].d.pin.sequence == seq) { this 336 dev/pci/azalia_codec.c azalia_generic_codec_find_dac(const codec_t *this, int index, int depth) this 341 dev/pci/azalia_codec.c w = &this->w[index]; this 352 dev/pci/azalia_codec.c if (VALID_WIDGET_NID(j, this)) { this 353 dev/pci/azalia_codec.c ret = azalia_generic_codec_find_dac(this, j, depth); this 363 dev/pci/azalia_codec.c if (!VALID_WIDGET_NID(j, this)) this 365 dev/pci/azalia_codec.c ret = azalia_generic_codec_find_dac(this, j, depth); this 380 dev/pci/azalia_codec.c azalia_generic_mixer_init(codec_t *this) this 392 dev/pci/azalia_codec.c this->maxmixers = 10; this 393 dev/pci/azalia_codec.c this->nmixers = 0; this 394 dev/pci/azalia_codec.c this->mixers = malloc(sizeof(mixer_item_t) * this->maxmixers, this 396 dev/pci/azalia_codec.c if (this->mixers == NULL) { this 397 dev/pci/azalia_codec.c printf("%s: out of memory in %s\n", XNAME(this), __func__); this 400 dev/pci/azalia_codec.c bzero(this->mixers, sizeof(mixer_item_t) * this->maxmixers); this 404 dev/pci/azalia_codec.c m = &this->mixers[AZ_CLASS_INPUT]; this 414 dev/pci/azalia_codec.c m = &this->mixers[AZ_CLASS_OUTPUT]; this 424 dev/pci/azalia_codec.c m = &this->mixers[AZ_CLASS_RECORD]; this 434 dev/pci/azalia_codec.c this->nmixers = AZ_CLASS_RECORD + 1; this 438 dev/pci/azalia_codec.c err = azalia_generic_mixer_ensure_capacity(this, this->nmixers + 1); \ this 441 dev/pci/azalia_codec.c m = &this->mixers[this->nmixers]; \ this 445 dev/pci/azalia_codec.c FOR_EACH_WIDGET(this, i) { this 448 dev/pci/azalia_codec.c w = &this->w[i]; this 465 dev/pci/azalia_codec.c if (!VALID_WIDGET_NID(w->connections[j], this)) this 468 dev/pci/azalia_codec.c this->w[w->connections[j]].name)); this 471 dev/pci/azalia_codec.c this->w[w->connections[j]].name, this 476 dev/pci/azalia_codec.c this->nmixers++; this 503 dev/pci/azalia_codec.c this->nmixers++; this 532 dev/pci/azalia_codec.c this->nmixers++; this 559 dev/pci/azalia_codec.c this->nmixers++; this 563 dev/pci/azalia_codec.c if (!VALID_WIDGET_NID(w->connections[j], this)) this 566 dev/pci/azalia_codec.c w->name, this->w[w->connections[j]].name)); this 569 dev/pci/azalia_codec.c this->w[w->connections[j]].name); this 585 dev/pci/azalia_codec.c this->nmixers++; this 617 dev/pci/azalia_codec.c this->nmixers++; this 621 dev/pci/azalia_codec.c if (!VALID_WIDGET_NID(w->connections[j], this)) this 624 dev/pci/azalia_codec.c w->name, this->w[w->connections[j]].name)); this 627 dev/pci/azalia_codec.c this->w[w->connections[j]].name); this 646 dev/pci/azalia_codec.c this->nmixers++; this 669 dev/pci/azalia_codec.c this->nmixers++; this 689 dev/pci/azalia_codec.c this->nmixers++; this 705 dev/pci/azalia_codec.c this->nmixers++; this 710 dev/pci/azalia_codec.c if (this->dacs.ngroups > 1) { this 717 dev/pci/azalia_codec.c for (i = 0; i < this->dacs.ngroups && i < 32; i++) { this 719 dev/pci/azalia_codec.c for (j = 0; j < this->dacs.groups[i].nconv; j++) { this 724 dev/pci/azalia_codec.c this->dacs.groups[i].conv[j]); this 728 dev/pci/azalia_codec.c this->nmixers++; this 732 dev/pci/azalia_codec.c if (this->adcs.ngroups > 1) { this 739 dev/pci/azalia_codec.c for (i = 0; i < this->adcs.ngroups && i < 32; i++) { this 741 dev/pci/azalia_codec.c for (j = 0; j < this->adcs.groups[i].nconv; j++) { this 746 dev/pci/azalia_codec.c this->adcs.groups[i].conv[j]); this 750 dev/pci/azalia_codec.c this->nmixers++; this 753 dev/pci/azalia_codec.c azalia_generic_mixer_fix_indexes(this); this 754 dev/pci/azalia_codec.c azalia_generic_mixer_default(this); this 759 dev/pci/azalia_codec.c azalia_generic_mixer_ensure_capacity(codec_t *this, size_t newsize) this 764 dev/pci/azalia_codec.c if (this->maxmixers >= newsize) this 766 dev/pci/azalia_codec.c newmax = this->maxmixers + 10; this 771 dev/pci/azalia_codec.c printf("%s: out of memory in %s\n", XNAME(this), __func__); this 775 dev/pci/azalia_codec.c bcopy(this->mixers, newbuf, this->maxmixers * sizeof(mixer_item_t)); this 776 dev/pci/azalia_codec.c free(this->mixers, M_DEVBUF); this 777 dev/pci/azalia_codec.c this->mixers = newbuf; this 778 dev/pci/azalia_codec.c this->maxmixers = newmax; this 783 dev/pci/azalia_codec.c azalia_generic_mixer_fix_indexes(codec_t *this) this 788 dev/pci/azalia_codec.c for (i = 0; i < this->nmixers; i++) { this 789 dev/pci/azalia_codec.c d = &this->mixers[i].devinfo; this 805 dev/pci/azalia_codec.c azalia_generic_mixer_default(codec_t *this) this 811 dev/pci/azalia_codec.c for (i = 0; i < this->nmixers; i++) { this 814 dev/pci/azalia_codec.c m = &this->mixers[i]; this 823 dev/pci/azalia_codec.c azalia_generic_mixer_set(this, m->nid, m->target, &mc); this 832 dev/pci/azalia_codec.c for (i = 0; i < this->nmixers; i++) { this 835 dev/pci/azalia_codec.c m = &this->mixers[i]; this 840 dev/pci/azalia_codec.c switch (this->w[m->nid].d.pin.device) { this 852 dev/pci/azalia_codec.c azalia_generic_mixer_set(this, m->nid, m->target, &mc); this 857 dev/pci/azalia_codec.c for (i = 0; i < this->nmixers; i++) { this 860 dev/pci/azalia_codec.c m = &this->mixers[i]; this 872 dev/pci/azalia_codec.c WIDGET_CHANNELS(&this->w[m->nid]) == 2) { this 876 dev/pci/azalia_codec.c azalia_generic_mixer_set(this, m->nid, m->target, &mc); this 883 dev/pci/azalia_codec.c azalia_generic_mixer_delete(codec_t *this) this 885 dev/pci/azalia_codec.c if (this->mixers == NULL) this 887 dev/pci/azalia_codec.c free(this->mixers, M_DEVBUF); this 888 dev/pci/azalia_codec.c this->mixers = NULL; this 896 dev/pci/azalia_codec.c azalia_generic_mixer_get(const codec_t *this, nid_t nid, int target, mixer_ctrl_t *mc) this 904 dev/pci/azalia_codec.c err = this->comresp(this, nid, CORB_GET_AMPLIFIER_GAIN_MUTE, this 914 dev/pci/azalia_codec.c err = this->comresp(this, nid, CORB_GET_AMPLIFIER_GAIN_MUTE, this 919 dev/pci/azalia_codec.c mc->un.value.level[0] = azalia_generic_mixer_from_device_value(this, this 921 dev/pci/azalia_codec.c if (this->w[nid].type == COP_AWTYPE_AUDIO_SELECTOR || this 922 dev/pci/azalia_codec.c this->w[nid].type == COP_AWTYPE_AUDIO_MIXER) { this 923 dev/pci/azalia_codec.c n = this->w[nid].connections[MI_TARGET_INAMP(target)]; this 925 dev/pci/azalia_codec.c if (!VALID_WIDGET_NID(n, this)) { this 927 dev/pci/azalia_codec.c __func__, nid, this->w[nid].nconnections, this 934 dev/pci/azalia_codec.c mc->un.value.num_channels = WIDGET_CHANNELS(&this->w[n]); this 936 dev/pci/azalia_codec.c err = this->comresp(this, nid, this 943 dev/pci/azalia_codec.c (this, nid, target, CORB_GAGM_GAIN(result)); this 949 dev/pci/azalia_codec.c err = this->comresp(this, nid, CORB_GET_AMPLIFIER_GAIN_MUTE, this 958 dev/pci/azalia_codec.c err = this->comresp(this, nid, CORB_GET_AMPLIFIER_GAIN_MUTE, this 962 dev/pci/azalia_codec.c mc->un.value.level[0] = azalia_generic_mixer_from_device_value(this, this 964 dev/pci/azalia_codec.c mc->un.value.num_channels = WIDGET_CHANNELS(&this->w[nid]); this 966 dev/pci/azalia_codec.c err = this->comresp(this, nid, this 972 dev/pci/azalia_codec.c (this, nid, target, CORB_GAGM_GAIN(result)); this 978 dev/pci/azalia_codec.c err = this->comresp(this, nid, this 983 dev/pci/azalia_codec.c if (!VALID_WIDGET_NID(this->w[nid].connections[result], this)) this 991 dev/pci/azalia_codec.c err = this->comresp(this, nid, this 1000 dev/pci/azalia_codec.c err = this->comresp(this, nid, this 1009 dev/pci/azalia_codec.c mc->un.ord = this->dacs.cur; this 1014 dev/pci/azalia_codec.c mc->un.ord = this->adcs.cur; this 1019 dev/pci/azalia_codec.c err = this->comresp(this, nid, CORB_GET_VOLUME_KNOB, this 1023 dev/pci/azalia_codec.c mc->un.value.level[0] = azalia_generic_mixer_from_device_value(this, this 1030 dev/pci/azalia_codec.c XNAME(this), __func__, target); this 1037 dev/pci/azalia_codec.c azalia_generic_mixer_set(codec_t *this, nid_t nid, int target, const mixer_ctrl_t *mc) this 1045 dev/pci/azalia_codec.c err = this->comresp(this, nid, CORB_GET_AMPLIFIER_GAIN_MUTE, this 1055 dev/pci/azalia_codec.c err = this->comresp(this, nid, CORB_SET_AMPLIFIER_GAIN_MUTE, this 1059 dev/pci/azalia_codec.c if (WIDGET_CHANNELS(&this->w[nid]) == 2) { this 1060 dev/pci/azalia_codec.c err = this->comresp(this, nid, this 1071 dev/pci/azalia_codec.c err = this->comresp(this, nid, this 1082 dev/pci/azalia_codec.c if (!azalia_generic_mixer_validate_value(this, nid, target, this 1085 dev/pci/azalia_codec.c err = this->comresp(this, nid, CORB_GET_AMPLIFIER_GAIN_MUTE, this 1090 dev/pci/azalia_codec.c value = azalia_generic_mixer_to_device_value(this, nid, target, this 1096 dev/pci/azalia_codec.c err = this->comresp(this, nid, CORB_SET_AMPLIFIER_GAIN_MUTE, this 1101 dev/pci/azalia_codec.c WIDGET_CHANNELS(&this->w[nid]) == 2) { this 1102 dev/pci/azalia_codec.c if (!azalia_generic_mixer_validate_value(this, nid, target, this 1105 dev/pci/azalia_codec.c err = this->comresp(this, nid, this 1111 dev/pci/azalia_codec.c value = azalia_generic_mixer_to_device_value(this, nid, target, this 1117 dev/pci/azalia_codec.c err = this->comresp(this, nid, this 1126 dev/pci/azalia_codec.c err = this->comresp(this, nid, CORB_GET_AMPLIFIER_GAIN_MUTE, this 1133 dev/pci/azalia_codec.c err = this->comresp(this, nid, CORB_SET_AMPLIFIER_GAIN_MUTE, this 1137 dev/pci/azalia_codec.c if (WIDGET_CHANNELS(&this->w[nid]) == 2) { this 1138 dev/pci/azalia_codec.c err = this->comresp(this, nid, this 1147 dev/pci/azalia_codec.c err = this->comresp(this, nid, this 1158 dev/pci/azalia_codec.c if (!azalia_generic_mixer_validate_value(this, nid, target, this 1161 dev/pci/azalia_codec.c err = this->comresp(this, nid, CORB_GET_AMPLIFIER_GAIN_MUTE, this 1165 dev/pci/azalia_codec.c value = azalia_generic_mixer_to_device_value(this, nid, target, this 1170 dev/pci/azalia_codec.c err = this->comresp(this, nid, CORB_SET_AMPLIFIER_GAIN_MUTE, this 1175 dev/pci/azalia_codec.c WIDGET_CHANNELS(&this->w[nid]) == 2) { this 1176 dev/pci/azalia_codec.c if (!azalia_generic_mixer_validate_value(this, nid, target, this 1179 dev/pci/azalia_codec.c err = this->comresp(this, nid, this 1184 dev/pci/azalia_codec.c value = azalia_generic_mixer_to_device_value(this, nid, target, this 1189 dev/pci/azalia_codec.c err = this->comresp(this, nid, this 1199 dev/pci/azalia_codec.c mc->un.ord >= this->w[nid].nconnections || this 1200 dev/pci/azalia_codec.c !VALID_WIDGET_NID(this->w[nid].connections[mc->un.ord], this)) this 1202 dev/pci/azalia_codec.c err = this->comresp(this, nid, this 1212 dev/pci/azalia_codec.c err = this->comresp(this, nid, this 1223 dev/pci/azalia_codec.c err = this->comresp(this, nid, this 1233 dev/pci/azalia_codec.c err = this->comresp(this, nid, this 1242 dev/pci/azalia_codec.c err = this->comresp(this, nid, this 1250 dev/pci/azalia_codec.c if (this->running) this 1252 dev/pci/azalia_codec.c if (mc->un.ord >= this->dacs.ngroups) this 1254 dev/pci/azalia_codec.c return azalia_codec_construct_format(this, this 1255 dev/pci/azalia_codec.c mc->un.ord, this->adcs.cur); this 1260 dev/pci/azalia_codec.c if (this->running) this 1262 dev/pci/azalia_codec.c if (mc->un.ord >= this->adcs.ngroups) this 1264 dev/pci/azalia_codec.c return azalia_codec_construct_format(this, this 1265 dev/pci/azalia_codec.c this->dacs.cur, mc->un.ord); this 1272 dev/pci/azalia_codec.c if (!azalia_generic_mixer_validate_value(this, nid, this 1275 dev/pci/azalia_codec.c value = azalia_generic_mixer_to_device_value(this, nid, target, this 1277 dev/pci/azalia_codec.c err = this->comresp(this, nid, CORB_SET_VOLUME_KNOB, this 1285 dev/pci/azalia_codec.c XNAME(this), __func__, target); this 1292 dev/pci/azalia_codec.c azalia_generic_mixer_pinctrl(codec_t *this, nid_t nid, uint32_t value) this 1297 dev/pci/azalia_codec.c err = this->comresp(this, nid, CORB_GET_PIN_WIDGET_CONTROL, 0, &result); this 1302 dev/pci/azalia_codec.c return this->comresp(this, nid, this 1307 dev/pci/azalia_codec.c azalia_generic_mixer_from_device_value(const codec_t *this, nid_t nid, int target, this 1314 dev/pci/azalia_codec.c dmax = COP_AMPCAP_NUMSTEPS(this->w[nid].inamp_cap); this 1316 dev/pci/azalia_codec.c dmax = COP_AMPCAP_NUMSTEPS(this->w[nid].outamp_cap); this 1318 dev/pci/azalia_codec.c dmax = COP_VKCAP_NUMSTEPS(this->w[nid].d.volume.cap); this 1334 dev/pci/azalia_codec.c azalia_generic_mixer_to_device_value(const codec_t *this, nid_t nid, int target, this 1341 dev/pci/azalia_codec.c dmax = COP_AMPCAP_NUMSTEPS(this->w[nid].inamp_cap); this 1343 dev/pci/azalia_codec.c dmax = COP_AMPCAP_NUMSTEPS(this->w[nid].outamp_cap); this 1345 dev/pci/azalia_codec.c dmax = COP_VKCAP_NUMSTEPS(this->w[nid].d.volume.cap); this 1361 dev/pci/azalia_codec.c azalia_generic_mixer_max(const codec_t *this, nid_t nid, int target) this 1369 dev/pci/azalia_codec.c dmax = COP_AMPCAP_NUMSTEPS(this->w[nid].inamp_cap); this 1371 dev/pci/azalia_codec.c dmax = COP_AMPCAP_NUMSTEPS(this->w[nid].outamp_cap); this 1373 dev/pci/azalia_codec.c dmax = COP_VKCAP_NUMSTEPS(this->w[nid].d.volume.cap); this 1379 dev/pci/azalia_codec.c azalia_generic_mixer_validate_value(const codec_t *this, nid_t nid, int target, this 1385 dev/pci/azalia_codec.c return uv <= generic_mixer_max(this, nid, target); this 1390 dev/pci/azalia_codec.c azalia_generic_set_port(codec_t *this, mixer_ctrl_t *mc) this 1394 dev/pci/azalia_codec.c if (mc->dev >= this->nmixers) this 1396 dev/pci/azalia_codec.c m = &this->mixers[mc->dev]; this 1401 dev/pci/azalia_codec.c return azalia_generic_mixer_set(this, m->nid, m->target, mc); this 1405 dev/pci/azalia_codec.c azalia_generic_get_port(codec_t *this, mixer_ctrl_t *mc) this 1409 dev/pci/azalia_codec.c if (mc->dev >= this->nmixers) this 1411 dev/pci/azalia_codec.c m = &this->mixers[mc->dev]; this 1415 dev/pci/azalia_codec.c return azalia_generic_mixer_get(this, m->nid, m->target, mc); this 1563 dev/pci/azalia_codec.c azalia_alc260_mixer_init(codec_t *this) this 1568 dev/pci/azalia_codec.c switch (this->subid) { this 1570 dev/pci/azalia_codec.c this->nmixers = sizeof(alc260_loox_mixer_items) / sizeof(mixer_item_t); this 1574 dev/pci/azalia_codec.c this->nmixers = sizeof(alc260_mixer_items) / sizeof(mixer_item_t); this 1577 dev/pci/azalia_codec.c this->mixers = malloc(sizeof(mixer_item_t) * this->nmixers, this 1579 dev/pci/azalia_codec.c if (this->mixers == NULL) { this 1580 dev/pci/azalia_codec.c printf("%s: out of memory in %s\n", XNAME(this), __func__); this 1583 dev/pci/azalia_codec.c bzero(this->mixers, sizeof(mixer_item_t) * this->nmixers); this 1584 dev/pci/azalia_codec.c memcpy(this->mixers, mi, sizeof(mixer_item_t) * this->nmixers); this 1585 dev/pci/azalia_codec.c azalia_generic_mixer_fix_indexes(this); this 1586 dev/pci/azalia_codec.c azalia_generic_mixer_default(this); this 1591 dev/pci/azalia_codec.c azalia_generic_mixer_set(this, 0x0f, MI_TARGET_PINDIR, &mc); /* lineout */ this 1592 dev/pci/azalia_codec.c azalia_generic_mixer_set(this, 0x10, MI_TARGET_PINDIR, &mc); /* headphones */ this 1594 dev/pci/azalia_codec.c azalia_generic_mixer_set(this, 0x12, MI_TARGET_PINDIR, &mc); /* mic1 */ this 1595 dev/pci/azalia_codec.c azalia_generic_mixer_set(this, 0x13, MI_TARGET_PINDIR, &mc); /* mic2 */ this 1596 dev/pci/azalia_codec.c azalia_generic_mixer_set(this, 0x14, MI_TARGET_PINDIR, &mc); /* line1 */ this 1597 dev/pci/azalia_codec.c azalia_generic_mixer_set(this, 0x15, MI_TARGET_PINDIR, &mc); /* line2 */ this 1599 dev/pci/azalia_codec.c azalia_generic_mixer_set(this, 0x08, MI_TARGET_INAMP(0), &mc); this 1600 dev/pci/azalia_codec.c azalia_generic_mixer_set(this, 0x08, MI_TARGET_INAMP(1), &mc); this 1601 dev/pci/azalia_codec.c azalia_generic_mixer_set(this, 0x09, MI_TARGET_INAMP(0), &mc); this 1602 dev/pci/azalia_codec.c azalia_generic_mixer_set(this, 0x09, MI_TARGET_INAMP(1), &mc); this 1603 dev/pci/azalia_codec.c azalia_generic_mixer_set(this, 0x0a, MI_TARGET_INAMP(0), &mc); this 1604 dev/pci/azalia_codec.c azalia_generic_mixer_set(this, 0x0a, MI_TARGET_INAMP(1), &mc); this 1605 dev/pci/azalia_codec.c if (this->subid == ALC260_FUJITSU_ID) { this 1607 dev/pci/azalia_codec.c azalia_generic_mixer_set(this, 0x14, MI_TARGET_PINDIR, &mc); /* line1 */ this 1609 dev/pci/azalia_codec.c azalia_generic_mixer_set(this, 0x05, MI_TARGET_CONNLIST, &mc); this 1615 dev/pci/azalia_codec.c azalia_alc260_init_dacgroup(codec_t *this) this 1627 dev/pci/azalia_codec.c this->dacs = dacs; this 1628 dev/pci/azalia_codec.c this->adcs = adcs; this 1633 dev/pci/azalia_codec.c azalia_alc260_set_port(codec_t *this, mixer_ctrl_t *mc) this 1639 dev/pci/azalia_codec.c if (mc->dev >= this->nmixers) this 1641 dev/pci/azalia_codec.c m = &this->mixers[mc->dev]; this 1648 dev/pci/azalia_codec.c err = azalia_generic_mixer_set(this, m->nid, m->target, mc); this 1650 dev/pci/azalia_codec.c azalia_generic_mixer_set(this, 0x09, m->target, mc); this 1655 dev/pci/azalia_codec.c azalia_generic_mixer_set(this, 0x0a, m->target, &mc2); this 1660 dev/pci/azalia_codec.c err = azalia_generic_mixer_set(this, m->nid, m->target, mc); this 1662 dev/pci/azalia_codec.c azalia_generic_mixer_set(this, 0x09, m->target, mc); this 1663 dev/pci/azalia_codec.c azalia_generic_mixer_set(this, 0x0a, m->target, mc); this 1677 dev/pci/azalia_codec.c return azalia_generic_mixer_set(this, m->nid, m->target, mc); this 1685 dev/pci/azalia_codec.c azalia_alc880_init_dacgroup(codec_t *this) this 1696 dev/pci/azalia_codec.c this->dacs = dacs; this 1697 dev/pci/azalia_codec.c this->adcs = adcs; this 1823 dev/pci/azalia_codec.c azalia_alc882_mixer_init(codec_t *this) this 1827 dev/pci/azalia_codec.c this->nmixers = sizeof(alc882_mixer_items) / sizeof(mixer_item_t); this 1828 dev/pci/azalia_codec.c this->mixers = malloc(sizeof(mixer_item_t) * this->nmixers, this 1830 dev/pci/azalia_codec.c if (this->mixers == NULL) { this 1831 dev/pci/azalia_codec.c printf("%s: out of memory in %s\n", XNAME(this), __func__); this 1834 dev/pci/azalia_codec.c bzero(this->mixers, sizeof(mixer_item_t) * this->maxmixers); this 1835 dev/pci/azalia_codec.c memcpy(this->mixers, alc882_mixer_items, this 1836 dev/pci/azalia_codec.c sizeof(mixer_item_t) * this->nmixers); this 1837 dev/pci/azalia_codec.c azalia_generic_mixer_fix_indexes(this); this 1838 dev/pci/azalia_codec.c azalia_generic_mixer_default(this); this 1843 dev/pci/azalia_codec.c azalia_generic_mixer_set(this, 0x14, MI_TARGET_PINDIR, &mc); this 1844 dev/pci/azalia_codec.c azalia_generic_mixer_set(this, 0x1b, MI_TARGET_PINDIR, &mc); this 1845 dev/pci/azalia_codec.c azalia_generic_mixer_set(this, 0x15, MI_TARGET_PINDIR, &mc); this 1846 dev/pci/azalia_codec.c azalia_generic_mixer_set(this, 0x16, MI_TARGET_PINDIR, &mc); this 1847 dev/pci/azalia_codec.c azalia_generic_mixer_set(this, 0x17, MI_TARGET_PINDIR, &mc); this 1849 dev/pci/azalia_codec.c azalia_generic_mixer_set(this, 0x14, MI_TARGET_CONNLIST, &mc); this 1850 dev/pci/azalia_codec.c azalia_generic_mixer_set(this, 0x1b, MI_TARGET_CONNLIST, &mc); this 1852 dev/pci/azalia_codec.c azalia_generic_mixer_set(this, 0x15, MI_TARGET_CONNLIST, &mc); this 1854 dev/pci/azalia_codec.c azalia_generic_mixer_set(this, 0x16, MI_TARGET_CONNLIST, &mc); this 1856 dev/pci/azalia_codec.c azalia_generic_mixer_set(this, 0x17, MI_TARGET_CONNLIST, &mc); this 1859 dev/pci/azalia_codec.c azalia_generic_mixer_set(this, 0x18, MI_TARGET_PINDIR, &mc); this 1860 dev/pci/azalia_codec.c azalia_generic_mixer_set(this, 0x19, MI_TARGET_PINDIR, &mc); this 1861 dev/pci/azalia_codec.c azalia_generic_mixer_set(this, 0x1a, MI_TARGET_PINDIR, &mc); this 1865 dev/pci/azalia_codec.c azalia_generic_mixer_set(this, 0x24, MI_TARGET_INAMP(0), &mc); this 1866 dev/pci/azalia_codec.c azalia_generic_mixer_set(this, 0x23, MI_TARGET_INAMP(1), &mc); this 1867 dev/pci/azalia_codec.c azalia_generic_mixer_set(this, 0x22, MI_TARGET_INAMP(2), &mc); this 1872 dev/pci/azalia_codec.c azalia_alc882_init_dacgroup(codec_t *this) this 1891 dev/pci/azalia_codec.c this->dacs = dacs; this 1892 dev/pci/azalia_codec.c this->adcs = adcs; this 1897 dev/pci/azalia_codec.c azalia_alc882_set_port(codec_t *this, mixer_ctrl_t *mc) this 1904 dev/pci/azalia_codec.c if (mc->dev >= this->nmixers) this 1906 dev/pci/azalia_codec.c m = &this->mixers[mc->dev]; this 1918 dev/pci/azalia_codec.c for (i = 0; i < this->w[m->nid].nconnections && i < 32; i++) { this 1920 dev/pci/azalia_codec.c err = azalia_generic_mixer_set(this, m->nid, this 1928 dev/pci/azalia_codec.c return azalia_generic_mixer_set(this, m->nid, m->target, mc); this 1932 dev/pci/azalia_codec.c azalia_alc882_get_port(codec_t *this, mixer_ctrl_t *mc) this 1938 dev/pci/azalia_codec.c if (mc->dev >= this->nmixers) this 1940 dev/pci/azalia_codec.c m = &this->mixers[mc->dev]; this 1949 dev/pci/azalia_codec.c for (i = 0; i < this->w[m->nid].nconnections && i < 32; i++) { this 1950 dev/pci/azalia_codec.c err = this->comresp(this, m->nid, CORB_GET_AMPLIFIER_GAIN_MUTE, this 1962 dev/pci/azalia_codec.c return azalia_generic_mixer_get(this, m->nid, m->target, mc); this 1971 dev/pci/azalia_codec.c azalia_alc883_init_dacgroup(codec_t *this) this 1983 dev/pci/azalia_codec.c this->dacs = dacs; this 1984 dev/pci/azalia_codec.c this->adcs = adcs; this 2089 dev/pci/azalia_codec.c azalia_alc883_mixer_init(codec_t *this) this 2093 dev/pci/azalia_codec.c this->nmixers = sizeof(alc883_mixer_items) / sizeof(mixer_item_t); this 2094 dev/pci/azalia_codec.c this->mixers = malloc(sizeof(mixer_item_t) * this->nmixers, this 2096 dev/pci/azalia_codec.c if (this->mixers == NULL) { this 2097 dev/pci/azalia_codec.c printf("%s: out of memory in %s\n", XNAME(this), __func__); this 2100 dev/pci/azalia_codec.c bzero(this->mixers, sizeof(mixer_item_t) * this->maxmixers); this 2101 dev/pci/azalia_codec.c memcpy(this->mixers, alc883_mixer_items, this 2102 dev/pci/azalia_codec.c sizeof(mixer_item_t) * this->nmixers); this 2103 dev/pci/azalia_codec.c azalia_generic_mixer_fix_indexes(this); this 2104 dev/pci/azalia_codec.c azalia_generic_mixer_default(this); this 2109 dev/pci/azalia_codec.c azalia_generic_mixer_set(this, 0x14, MI_TARGET_PINDIR, &mc); this 2110 dev/pci/azalia_codec.c azalia_generic_mixer_set(this, 0x1b, MI_TARGET_PINDIR, &mc); this 2111 dev/pci/azalia_codec.c azalia_generic_mixer_set(this, 0x15, MI_TARGET_PINDIR, &mc); this 2112 dev/pci/azalia_codec.c azalia_generic_mixer_set(this, 0x16, MI_TARGET_PINDIR, &mc); this 2113 dev/pci/azalia_codec.c azalia_generic_mixer_set(this, 0x17, MI_TARGET_PINDIR, &mc); this 2115 dev/pci/azalia_codec.c azalia_generic_mixer_set(this, 0x14, MI_TARGET_CONNLIST, &mc); this 2116 dev/pci/azalia_codec.c azalia_generic_mixer_set(this, 0x1b, MI_TARGET_CONNLIST, &mc); this 2118 dev/pci/azalia_codec.c azalia_generic_mixer_set(this, 0x15, MI_TARGET_CONNLIST, &mc); this 2120 dev/pci/azalia_codec.c azalia_generic_mixer_set(this, 0x16, MI_TARGET_CONNLIST, &mc); this 2122 dev/pci/azalia_codec.c azalia_generic_mixer_set(this, 0x17, MI_TARGET_CONNLIST, &mc); this 2125 dev/pci/azalia_codec.c azalia_generic_mixer_set(this, 0x18, MI_TARGET_PINDIR, &mc); this 2126 dev/pci/azalia_codec.c azalia_generic_mixer_set(this, 0x19, MI_TARGET_PINDIR, &mc); this 2127 dev/pci/azalia_codec.c azalia_generic_mixer_set(this, 0x1a, MI_TARGET_PINDIR, &mc); this 2131 dev/pci/azalia_codec.c azalia_generic_mixer_set(this, 0x23, MI_TARGET_INAMP(1), &mc); this 2132 dev/pci/azalia_codec.c azalia_generic_mixer_set(this, 0x22, MI_TARGET_INAMP(2), &mc); this 2144 dev/pci/azalia_codec.c azalia_ad1981hd_init_widget(const codec_t *this, widget_t *w, nid_t nid) this 2182 dev/pci/azalia_codec.c azalia_ad1981hd_mixer_init(codec_t *this) this 2187 dev/pci/azalia_codec.c err = azalia_generic_mixer_init(this); this 2190 dev/pci/azalia_codec.c if (this->subid == AD1981HD_THINKPAD) { this 2194 dev/pci/azalia_codec.c azalia_generic_mixer_set(this, 0x09, MI_TARGET_PINDIR, &mc); this 2243 dev/pci/azalia_codec.c azalia_cmi9880_mixer_init(codec_t *this) this 2247 dev/pci/azalia_codec.c this->nmixers = sizeof(cmi9880_mixer_items) / sizeof(mixer_item_t); this 2248 dev/pci/azalia_codec.c this->mixers = malloc(sizeof(mixer_item_t) * this->nmixers, this 2250 dev/pci/azalia_codec.c if (this->mixers == NULL) { this 2251 dev/pci/azalia_codec.c printf("%s: out of memory in %s\n", XNAME(this), __func__); this 2254 dev/pci/azalia_codec.c bzero(this->mixers, sizeof(mixer_item_t) * this->maxmixers); this 2255 dev/pci/azalia_codec.c memcpy(this->mixers, cmi9880_mixer_items, this 2256 dev/pci/azalia_codec.c sizeof(mixer_item_t) * this->nmixers); this 2257 dev/pci/azalia_codec.c azalia_generic_mixer_fix_indexes(this); this 2258 dev/pci/azalia_codec.c azalia_generic_mixer_default(this); this 2263 dev/pci/azalia_codec.c azalia_generic_mixer_set(this, 0x08, MI_TARGET_CONNLIST, &mc); this 2265 dev/pci/azalia_codec.c azalia_generic_mixer_set(this, 0x09, MI_TARGET_CONNLIST, &mc); this 2267 dev/pci/azalia_codec.c azalia_generic_mixer_set(this, 0x0b, MI_TARGET_PINDIR, &mc); this 2268 dev/pci/azalia_codec.c azalia_generic_mixer_set(this, 0x0c, MI_TARGET_PINDIR, &mc); this 2269 dev/pci/azalia_codec.c azalia_generic_mixer_set(this, 0x0d, MI_TARGET_PINDIR, &mc); this 2270 dev/pci/azalia_codec.c azalia_generic_mixer_set(this, 0x0e, MI_TARGET_PINDIR, &mc); this 2271 dev/pci/azalia_codec.c azalia_generic_mixer_set(this, 0x0f, MI_TARGET_PINDIR, &mc); this 2273 dev/pci/azalia_codec.c azalia_generic_mixer_set(this, 0x0f, MI_TARGET_CONNLIST, &mc); this 2275 dev/pci/azalia_codec.c azalia_generic_mixer_set(this, 0x10, MI_TARGET_PINDIR, &mc); /* mic */ this 2276 dev/pci/azalia_codec.c azalia_generic_mixer_set(this, 0x13, MI_TARGET_PINDIR, &mc); /* SPDIF-in */ this 2277 dev/pci/azalia_codec.c azalia_generic_mixer_set(this, 0x1f, MI_TARGET_PINDIR, &mc); /* line1 */ this 2278 dev/pci/azalia_codec.c azalia_generic_mixer_set(this, 0x20, MI_TARGET_PINDIR, &mc); /* line2 */ this 2283 dev/pci/azalia_codec.c azalia_cmi9880_init_dacgroup(codec_t *this) this 2294 dev/pci/azalia_codec.c this->dacs = dacs; this 2295 dev/pci/azalia_codec.c this->adcs = adcs; this 2304 dev/pci/azalia_codec.c azalia_stac9221_init_dacgroup(codec_t *this) this 2316 dev/pci/azalia_codec.c this->dacs = dacs; this 2317 dev/pci/azalia_codec.c this->adcs = adcs; this 2374 dev/pci/azalia_codec.c azalia_stac9200_mixer_init(codec_t *this) this 2378 dev/pci/azalia_codec.c this->nmixers = sizeof(stac9200_mixer_items) / sizeof(mixer_item_t); this 2379 dev/pci/azalia_codec.c this->mixers = malloc(sizeof(mixer_item_t) * this->nmixers, this 2381 dev/pci/azalia_codec.c if (this->mixers == NULL) { this 2382 dev/pci/azalia_codec.c printf("%s: out of memory in %s\n", XNAME(this), __func__); this 2385 dev/pci/azalia_codec.c bzero(this->mixers, sizeof(mixer_item_t) * this->maxmixers); this 2386 dev/pci/azalia_codec.c memcpy(this->mixers, stac9200_mixer_items, this 2387 dev/pci/azalia_codec.c sizeof(mixer_item_t) * this->nmixers); this 2388 dev/pci/azalia_codec.c azalia_generic_mixer_fix_indexes(this); this 2389 dev/pci/azalia_codec.c azalia_generic_mixer_default(this); this 2394 dev/pci/azalia_codec.c azalia_generic_mixer_set(this, 0x0d, MI_TARGET_PINDIR, &mc); /* headphones */ this 2395 dev/pci/azalia_codec.c azalia_generic_mixer_set(this, 0x0e, MI_TARGET_PINDIR, &mc); /* speaker */ this 2397 dev/pci/azalia_codec.c azalia_generic_mixer_set(this, 0x0f, MI_TARGET_PINDIR, &mc); /* mic2 */ this 2398 dev/pci/azalia_codec.c azalia_generic_mixer_set(this, 0x10, MI_TARGET_PINDIR, &mc); /* mic1 */ this 2401 dev/pci/azalia_codec.c mc.un.value.level[0] = azalia_generic_mixer_max(this, 0x0c, MI_TARGET_OUTAMP); this 2403 dev/pci/azalia_codec.c azalia_generic_mixer_set(this, 0x0c, MI_TARGET_OUTAMP, &mc); this 2410 dev/pci/azalia_codec.c this->comresp(this, STAC9200_NID_HP, this 2414 dev/pci/azalia_codec.c azalia_stac9200_unsol_event(this, STAC9200_EVENT_HP); this 2419 dev/pci/azalia_codec.c azalia_stac9200_unsol_event(codec_t *this, int tag) this 2426 dev/pci/azalia_codec.c err = this->comresp(this, STAC9200_NID_HP, this 2432 dev/pci/azalia_codec.c azalia_generic_mixer_pinctrl(this, this 2436 dev/pci/azalia_codec.c azalia_generic_mixer_pinctrl(this, this 2447 dev/pci/azalia_codec.c azalia_stac9221_apple_init_dacgroup(codec_t *this) this 2458 dev/pci/azalia_codec.c this->dacs = dacs; this 2459 dev/pci/azalia_codec.c this->adcs = adcs; this 2493 dev/pci/azalia_codec.c azalia_stac9221_apple_mixer_init(codec_t *this) this 2497 dev/pci/azalia_codec.c this->nmixers = sizeof(stac9221_apple_mixer_items) / sizeof(mixer_item_t); this 2498 dev/pci/azalia_codec.c this->mixers = malloc(sizeof(mixer_item_t) * this->nmixers, this 2500 dev/pci/azalia_codec.c if (this->mixers == NULL) { this 2501 dev/pci/azalia_codec.c printf("%s: out of memory in %s\n", XNAME(this), __func__); this 2504 dev/pci/azalia_codec.c bzero(this->mixers, sizeof(mixer_item_t) * this->maxmixers); this 2505 dev/pci/azalia_codec.c memcpy(this->mixers, stac9221_apple_mixer_items, this 2506 dev/pci/azalia_codec.c sizeof(mixer_item_t) * this->nmixers); this 2507 dev/pci/azalia_codec.c azalia_generic_mixer_fix_indexes(this); this 2508 dev/pci/azalia_codec.c azalia_generic_mixer_default(this); this 2513 dev/pci/azalia_codec.c azalia_generic_mixer_set(this, 0x0a, MI_TARGET_PINDIR, &mc); /* headphones */ this 2514 dev/pci/azalia_codec.c azalia_generic_mixer_set(this, 0x0b, MI_TARGET_PINDIR, &mc); /* mic, set to output */ this 2515 dev/pci/azalia_codec.c azalia_generic_mixer_set(this, 0x0c, MI_TARGET_PINDIR, &mc); /* speaker */ this 2516 dev/pci/azalia_codec.c azalia_generic_mixer_set(this, 0x0d, MI_TARGET_PINDIR, &mc); /* line out */ this 2517 dev/pci/azalia_codec.c azalia_generic_mixer_set(this, 0x0f, MI_TARGET_PINDIR, &mc); /* another line out */ this 2522 dev/pci/azalia_codec.c mc.un.value.level[0] = azalia_generic_mixer_max(this, 0x02, MI_TARGET_OUTAMP); this 2524 dev/pci/azalia_codec.c azalia_generic_mixer_set(this, 0x02, MI_TARGET_OUTAMP, &mc); this 2526 dev/pci/azalia_codec.c mc.un.value.level[0] = azalia_generic_mixer_max(this, 0x03, MI_TARGET_OUTAMP); this 2528 dev/pci/azalia_codec.c azalia_generic_mixer_set(this, 0x03, MI_TARGET_OUTAMP, &mc); this 2530 dev/pci/azalia_codec.c mc.un.value.level[0] = azalia_generic_mixer_max(this, 0x04, MI_TARGET_OUTAMP); this 2532 dev/pci/azalia_codec.c azalia_generic_mixer_set(this, 0x04, MI_TARGET_OUTAMP, &mc); this 2534 dev/pci/azalia_codec.c mc.un.value.level[0] = azalia_generic_mixer_max(this, 0x05, MI_TARGET_OUTAMP); this 2536 dev/pci/azalia_codec.c azalia_generic_mixer_set(this, 0x05, MI_TARGET_OUTAMP, &mc); this 2538 dev/pci/azalia_codec.c azalia_stac9221_gpio_unmute(this, 0); this 2539 dev/pci/azalia_codec.c azalia_stac9221_gpio_unmute(this, 1); this 2545 dev/pci/azalia_codec.c azalia_stac9221_gpio_unmute(codec_t *this, int pin) this 2549 dev/pci/azalia_codec.c this->comresp(this, this->audiofunc, CORB_GET_GPIO_DATA, 0, &data); this 2550 dev/pci/azalia_codec.c this->comresp(this, this->audiofunc, CORB_GET_GPIO_ENABLE_MASK, 0, &mask); this 2551 dev/pci/azalia_codec.c this->comresp(this, this->audiofunc, CORB_GET_GPIO_DIRECTION, 0, &dir); this 2557 dev/pci/azalia_codec.c this->comresp(this, this->audiofunc, 0x7e7, 0, NULL); this 2558 dev/pci/azalia_codec.c this->comresp(this, this->audiofunc, CORB_SET_GPIO_ENABLE_MASK, mask, NULL); this 2559 dev/pci/azalia_codec.c this->comresp(this, this->audiofunc, CORB_SET_GPIO_DIRECTION, dir, NULL); this 2561 dev/pci/azalia_codec.c this->comresp(this, this->audiofunc, CORB_SET_GPIO_DATA, data, NULL); this 2571 dev/pci/azalia_codec.c azalia_stac7661_init_dacgroup(codec_t *this) this 2581 dev/pci/azalia_codec.c this->dacs = dacs; this 2582 dev/pci/azalia_codec.c this->adcs = adcs; this 2621 dev/pci/azalia_codec.c azalia_stac7661_mixer_init(codec_t *this) this 2625 dev/pci/azalia_codec.c this->nmixers = sizeof(stac7661_mixer_items) / sizeof(mixer_item_t); this 2626 dev/pci/azalia_codec.c this->mixers = malloc(sizeof(mixer_item_t) * this->nmixers, this 2628 dev/pci/azalia_codec.c if (this->mixers == NULL) { this 2629 dev/pci/azalia_codec.c printf("%s: out of memory in %s\n", XNAME(this), __func__); this 2632 dev/pci/azalia_codec.c bzero(this->mixers, sizeof(mixer_item_t) * this->maxmixers); this 2633 dev/pci/azalia_codec.c memcpy(this->mixers, stac7661_mixer_items, this 2634 dev/pci/azalia_codec.c sizeof(mixer_item_t) * this->nmixers); this 2635 dev/pci/azalia_codec.c azalia_generic_mixer_fix_indexes(this); this 2636 dev/pci/azalia_codec.c azalia_generic_mixer_default(this); this 2640 dev/pci/azalia_codec.c azalia_generic_mixer_set(this, 0x0a, MI_TARGET_PINDIR, &mc); /* headphones */ this 2641 dev/pci/azalia_codec.c azalia_generic_mixer_set(this, 0x0f, MI_TARGET_PINDIR, &mc); /* speaker */ this 2642 dev/pci/azalia_codec.c azalia_generic_mixer_set(this, 0x09, MI_TARGET_INAMP(0), &mc); /* mute input */ this 2644 dev/pci/azalia_codec.c azalia_generic_mixer_set(this, 0x0d, MI_TARGET_PINDIR, &mc); /* mic */ this 2645 dev/pci/azalia_codec.c azalia_generic_mixer_set(this, 0x14, MI_TARGET_PINDIR, &mc); /* internal mic */ this 2647 dev/pci/azalia_codec.c azalia_generic_mixer_set(this, 0x15, MI_TARGET_CONNLIST, &mc); this 2650 dev/pci/azalia_codec.c mc.un.value.level[0] = azalia_generic_mixer_max(this, 0x17, MI_TARGET_VOLUME); this 2651 dev/pci/azalia_codec.c azalia_generic_mixer_set(this, 0x17, MI_TARGET_VOLUME, &mc); this 2657 dev/pci/azalia_codec.c azalia_stac7661_set_port(codec_t *this, mixer_ctrl_t *mc) this 2662 dev/pci/azalia_codec.c if (mc->dev >= this->nmixers) this 2664 dev/pci/azalia_codec.c m = &this->mixers[mc->dev]; this 2670 dev/pci/azalia_codec.c err = azalia_generic_mixer_set(this, STAC7661_DAC_HP, this 2672 dev/pci/azalia_codec.c err = azalia_generic_mixer_set(this, STAC7661_DAC_SPEAKER, this 2676 dev/pci/azalia_codec.c return azalia_generic_mixer_set(this, m->nid, m->target, mc); this 2679 dev/pci/azalia_codec.c azalia_stac7661_get_port(codec_t *this, mixer_ctrl_t *mc) this 2683 dev/pci/azalia_codec.c if (mc->dev >= this->nmixers) this 2685 dev/pci/azalia_codec.c m = &this->mixers[mc->dev]; this 2690 dev/pci/azalia_codec.c return azalia_generic_mixer_get(this, m->nid, this 2692 dev/pci/azalia_codec.c return azalia_generic_mixer_get(this, m->nid, m->target, mc); this 548 dev/usb/usbdi.c XXX should we do this? this 256 lib/libz/infback.c code this; /* current decoding table entry */ this 404 lib/libz/infback.c this = state->lencode[BITS(state->lenbits)]; this 405 lib/libz/infback.c if ((unsigned)(this.bits) <= bits) break; this 408 lib/libz/infback.c if (this.val < 16) { this 409 lib/libz/infback.c NEEDBITS(this.bits); this 410 lib/libz/infback.c DROPBITS(this.bits); this 411 lib/libz/infback.c state->lens[state->have++] = this.val; this 414 lib/libz/infback.c if (this.val == 16) { this 415 lib/libz/infback.c NEEDBITS(this.bits + 2); this 416 lib/libz/infback.c DROPBITS(this.bits); this 426 lib/libz/infback.c else if (this.val == 17) { this 427 lib/libz/infback.c NEEDBITS(this.bits + 3); this 428 lib/libz/infback.c DROPBITS(this.bits); this 434 lib/libz/infback.c NEEDBITS(this.bits + 7); this 435 lib/libz/infback.c DROPBITS(this.bits); this 491 lib/libz/infback.c this = state->lencode[BITS(state->lenbits)]; this 492 lib/libz/infback.c if ((unsigned)(this.bits) <= bits) break; this 495 lib/libz/infback.c if (this.op && (this.op & 0xf0) == 0) { this 496 lib/libz/infback.c last = this; this 498 lib/libz/infback.c this = state->lencode[last.val + this 500 lib/libz/infback.c if ((unsigned)(last.bits + this.bits) <= bits) break; this 505 lib/libz/infback.c DROPBITS(this.bits); this 506 lib/libz/infback.c state->length = (unsigned)this.val; this 509 lib/libz/infback.c if (this.op == 0) { this 510 lib/libz/infback.c Tracevv((stderr, this.val >= 0x20 && this.val < 0x7f ? this 512 lib/libz/infback.c "inflate: literal 0x%02x\n", this.val)); this 521 lib/libz/infback.c if (this.op & 32) { this 528 lib/libz/infback.c if (this.op & 64) { this 535 lib/libz/infback.c state->extra = (unsigned)(this.op) & 15; this 545 lib/libz/infback.c this = state->distcode[BITS(state->distbits)]; this 546 lib/libz/infback.c if ((unsigned)(this.bits) <= bits) break; this 549 lib/libz/infback.c if ((this.op & 0xf0) == 0) { this 550 lib/libz/infback.c last = this; this 552 lib/libz/infback.c this = state->distcode[last.val + this 554 lib/libz/infback.c if ((unsigned)(last.bits + this.bits) <= bits) break; this 559 lib/libz/infback.c DROPBITS(this.bits); this 560 lib/libz/infback.c if (this.op & 64) { this 565 lib/libz/infback.c state->offset = (unsigned)this.val; this 568 lib/libz/infback.c state->extra = (unsigned)(this.op) & 15; this 91 lib/libz/inffast.c code this; /* retrieved table entry */ this 128 lib/libz/inffast.c this = lcode[hold & lmask]; this 130 lib/libz/inffast.c op = (unsigned)(this.bits); this 133 lib/libz/inffast.c op = (unsigned)(this.op); this 135 lib/libz/inffast.c Tracevv((stderr, this.val >= 0x20 && this.val < 0x7f ? this 137 lib/libz/inffast.c "inflate: literal 0x%02x\n", this.val)); this 138 lib/libz/inffast.c PUP(out) = (unsigned char)(this.val); this 141 lib/libz/inffast.c len = (unsigned)(this.val); this 159 lib/libz/inffast.c this = dcode[hold & dmask]; this 161 lib/libz/inffast.c op = (unsigned)(this.bits); this 164 lib/libz/inffast.c op = (unsigned)(this.op); this 166 lib/libz/inffast.c dist = (unsigned)(this.val); this 267 lib/libz/inffast.c this = dcode[this.val + (hold & ((1U << op) - 1))]; this 281 lib/libz/inffast.c this = lcode[this.val + (hold & ((1U << op) - 1))]; this 568 lib/libz/inflate.c code this; /* current decoding table entry */ this 923 lib/libz/inflate.c this = state->lencode[BITS(state->lenbits)]; this 924 lib/libz/inflate.c if ((unsigned)(this.bits) <= bits) break; this 927 lib/libz/inflate.c if (this.val < 16) { this 928 lib/libz/inflate.c NEEDBITS(this.bits); this 929 lib/libz/inflate.c DROPBITS(this.bits); this 930 lib/libz/inflate.c state->lens[state->have++] = this.val; this 933 lib/libz/inflate.c if (this.val == 16) { this 934 lib/libz/inflate.c NEEDBITS(this.bits + 2); this 935 lib/libz/inflate.c DROPBITS(this.bits); this 949 lib/libz/inflate.c else if (this.val == 17) { this 950 lib/libz/inflate.c NEEDBITS(this.bits + 3); this 951 lib/libz/inflate.c DROPBITS(this.bits); this 957 lib/libz/inflate.c NEEDBITS(this.bits + 7); this 958 lib/libz/inflate.c DROPBITS(this.bits); this 1020 lib/libz/inflate.c this = state->lencode[BITS(state->lenbits)]; this 1021 lib/libz/inflate.c if ((unsigned)(this.bits) <= bits) break; this 1024 lib/libz/inflate.c if (this.op && (this.op & 0xf0) == 0) { this 1025 lib/libz/inflate.c last = this; this 1027 lib/libz/inflate.c this = state->lencode[last.val + this 1029 lib/libz/inflate.c if ((unsigned)(last.bits + this.bits) <= bits) break; this 1034 lib/libz/inflate.c DROPBITS(this.bits); this 1035 lib/libz/inflate.c state->length = (unsigned)this.val; this 1036 lib/libz/inflate.c if ((int)(this.op) == 0) { this 1037 lib/libz/inflate.c Tracevv((stderr, this.val >= 0x20 && this.val < 0x7f ? this 1039 lib/libz/inflate.c "inflate: literal 0x%02x\n", this.val)); this 1043 lib/libz/inflate.c if (this.op & 32) { this 1048 lib/libz/inflate.c if (this.op & 64) { this 1057 lib/libz/inflate.c state->extra = (unsigned)(this.op) & 15; this 1069 lib/libz/inflate.c this = state->distcode[BITS(state->distbits)]; this 1070 lib/libz/inflate.c if ((unsigned)(this.bits) <= bits) break; this 1073 lib/libz/inflate.c if ((this.op & 0xf0) == 0) { this 1074 lib/libz/inflate.c last = this; this 1076 lib/libz/inflate.c this = state->distcode[last.val + this 1078 lib/libz/inflate.c if ((unsigned)(last.bits + this.bits) <= bits) break; this 1083 lib/libz/inflate.c DROPBITS(this.bits); this 1084 lib/libz/inflate.c if (this.op & 64) { this 1093 lib/libz/inflate.c state->offset = (unsigned)this.val; this 1094 lib/libz/inflate.c state->extra = (unsigned)(this.op) & 15; this 54 lib/libz/inftrees.c code this; /* table entry for duplication */ this 119 lib/libz/inftrees.c this.op = (unsigned char)64; /* invalid code marker */ this 120 lib/libz/inftrees.c this.bits = (unsigned char)1; this 121 lib/libz/inftrees.c this.val = (unsigned short)0; this 122 lib/libz/inftrees.c *(*table)++ = this; /* make a table to force an error */ this 123 lib/libz/inftrees.c *(*table)++ = this; this 219 lib/libz/inftrees.c this.bits = (unsigned char)(len - drop); this 221 lib/libz/inftrees.c this.op = (unsigned char)0; this 222 lib/libz/inftrees.c this.val = work[sym]; this 225 lib/libz/inftrees.c this.op = (unsigned char)(extra[work[sym]]); this 226 lib/libz/inftrees.c this.val = base[work[sym]]; this 229 lib/libz/inftrees.c this.op = (unsigned char)(32 + 64); /* end of block */ this 230 lib/libz/inftrees.c this.val = 0; this 239 lib/libz/inftrees.c next[(huff >> drop) + fill] = this; this 299 lib/libz/inftrees.c this.op = (unsigned char)64; /* invalid code marker */ this 300 lib/libz/inftrees.c this.bits = (unsigned char)(len - drop); this 301 lib/libz/inftrees.c this.val = (unsigned short)0; this 308 lib/libz/inftrees.c this.bits = (unsigned char)len; this 312 lib/libz/inftrees.c next[huff >> drop] = this;