Lines Matching +full:pwr +full:- +full:ctl

1 // SPDX-License-Identifier: GPL-2.0-only
76 * Fixed-point value in 8.24 format for parameter channel */
82 u16 ctl:1; member
88 u16 czbfs:1; /* Clear Z-Buffers */
95 unsigned int ctl; member
162 return -ENOMEM; in src_get_rsc_ctrl_blk()
178 struct src_rsc_ctrl_blk *ctl = blk; in src_set_state() local
180 set_field(&ctl->ctl, SRCCTL_STATE, state); in src_set_state()
181 ctl->dirty.bf.ctl = 1; in src_set_state()
187 struct src_rsc_ctrl_blk *ctl = blk; in src_set_bm() local
189 set_field(&ctl->ctl, SRCCTL_BM, bm); in src_set_bm()
190 ctl->dirty.bf.ctl = 1; in src_set_bm()
196 struct src_rsc_ctrl_blk *ctl = blk; in src_set_rsr() local
198 set_field(&ctl->ctl, SRCCTL_RSR, rsr); in src_set_rsr()
199 ctl->dirty.bf.ctl = 1; in src_set_rsr()
205 struct src_rsc_ctrl_blk *ctl = blk; in src_set_sf() local
207 set_field(&ctl->ctl, SRCCTL_SF, sf); in src_set_sf()
208 ctl->dirty.bf.ctl = 1; in src_set_sf()
214 struct src_rsc_ctrl_blk *ctl = blk; in src_set_wr() local
216 set_field(&ctl->ctl, SRCCTL_WR, wr); in src_set_wr()
217 ctl->dirty.bf.ctl = 1; in src_set_wr()
223 struct src_rsc_ctrl_blk *ctl = blk; in src_set_pm() local
225 set_field(&ctl->ctl, SRCCTL_PM, pm); in src_set_pm()
226 ctl->dirty.bf.ctl = 1; in src_set_pm()
232 struct src_rsc_ctrl_blk *ctl = blk; in src_set_rom() local
234 set_field(&ctl->ctl, SRCCTL_ROM, rom); in src_set_rom()
235 ctl->dirty.bf.ctl = 1; in src_set_rom()
241 struct src_rsc_ctrl_blk *ctl = blk; in src_set_vo() local
243 set_field(&ctl->ctl, SRCCTL_VO, vo); in src_set_vo()
244 ctl->dirty.bf.ctl = 1; in src_set_vo()
250 struct src_rsc_ctrl_blk *ctl = blk; in src_set_st() local
252 set_field(&ctl->ctl, SRCCTL_ST, st); in src_set_st()
253 ctl->dirty.bf.ctl = 1; in src_set_st()
259 struct src_rsc_ctrl_blk *ctl = blk; in src_set_ie() local
261 set_field(&ctl->ctl, SRCCTL_IE, ie); in src_set_ie()
262 ctl->dirty.bf.ctl = 1; in src_set_ie()
268 struct src_rsc_ctrl_blk *ctl = blk; in src_set_ilsz() local
270 set_field(&ctl->ctl, SRCCTL_ILSZ, ilsz); in src_set_ilsz()
271 ctl->dirty.bf.ctl = 1; in src_set_ilsz()
277 struct src_rsc_ctrl_blk *ctl = blk; in src_set_bp() local
279 set_field(&ctl->ctl, SRCCTL_BP, bp); in src_set_bp()
280 ctl->dirty.bf.ctl = 1; in src_set_bp()
286 struct src_rsc_ctrl_blk *ctl = blk; in src_set_cisz() local
288 set_field(&ctl->ccr, SRCCCR_CISZ, cisz); in src_set_cisz()
289 ctl->dirty.bf.ccr = 1; in src_set_cisz()
295 struct src_rsc_ctrl_blk *ctl = blk; in src_set_ca() local
297 set_field(&ctl->ca, SRCCA_CA, ca); in src_set_ca()
298 ctl->dirty.bf.ca = 1; in src_set_ca()
304 struct src_rsc_ctrl_blk *ctl = blk; in src_set_sa() local
306 set_field(&ctl->sa, SRCSA_SA, sa); in src_set_sa()
307 ctl->dirty.bf.sa = 1; in src_set_sa()
313 struct src_rsc_ctrl_blk *ctl = blk; in src_set_la() local
315 set_field(&ctl->la, SRCLA_LA, la); in src_set_la()
316 ctl->dirty.bf.la = 1; in src_set_la()
322 struct src_rsc_ctrl_blk *ctl = blk; in src_set_pitch() local
324 set_field(&ctl->mpr, MPRLH_PITCH, pitch); in src_set_pitch()
325 ctl->dirty.bf.mpr = 1; in src_set_pitch()
331 ((struct src_rsc_ctrl_blk *)blk)->dirty.bf.czbfs = (clear ? 1 : 0); in src_set_clear_zbufs()
337 ((struct src_rsc_ctrl_blk *)blk)->dirty.data = (flags & 0xffff); in src_set_dirty()
343 ((struct src_rsc_ctrl_blk *)blk)->dirty.data = ~(0x0); in src_set_dirty_all()
355 - AR_PARAM_SRC_OFFSET) % AR_SLOT_SIZE; in src_param_pitch_mixer()
361 struct src_rsc_ctrl_blk *ctl = blk; in src_commit_write() local
364 if (ctl->dirty.bf.czbfs) { in src_commit_write()
365 /* Clear Z-Buffer registers */ in src_commit_write()
375 ctl->dirty.bf.czbfs = 0; in src_commit_write()
377 if (ctl->dirty.bf.mpr) { in src_commit_write()
383 hw_write_20kx(hw, PRING_LO_HI+4*pm_idx, ctl->mpr); in src_commit_write()
386 ctl->dirty.bf.mpr = 0; in src_commit_write()
388 if (ctl->dirty.bf.sa) { in src_commit_write()
389 hw_write_20kx(hw, SRCSA+idx*0x100, ctl->sa); in src_commit_write()
390 ctl->dirty.bf.sa = 0; in src_commit_write()
392 if (ctl->dirty.bf.la) { in src_commit_write()
393 hw_write_20kx(hw, SRCLA+idx*0x100, ctl->la); in src_commit_write()
394 ctl->dirty.bf.la = 0; in src_commit_write()
396 if (ctl->dirty.bf.ca) { in src_commit_write()
397 hw_write_20kx(hw, SRCCA+idx*0x100, ctl->ca); in src_commit_write()
398 ctl->dirty.bf.ca = 0; in src_commit_write()
404 if (ctl->dirty.bf.ccr) { in src_commit_write()
405 hw_write_20kx(hw, SRCCCR+idx*0x100, ctl->ccr); in src_commit_write()
406 ctl->dirty.bf.ccr = 0; in src_commit_write()
408 if (ctl->dirty.bf.ctl) { in src_commit_write()
409 hw_write_20kx(hw, SRCCTL+idx*0x100, ctl->ctl); in src_commit_write()
410 ctl->dirty.bf.ctl = 0; in src_commit_write()
418 struct src_rsc_ctrl_blk *ctl = blk; in src_get_ca() local
420 ctl->ca = hw_read_20kx(hw, SRCCA+idx*0x100); in src_get_ca()
421 ctl->dirty.bf.ca = 0; in src_get_ca()
423 return get_field(ctl->ca, SRCCA_CA); in src_get_ca()
428 return ((struct src_rsc_ctrl_blk *)blk)->dirty.data; in src_get_dirty()
438 ((struct src_mgr_ctrl_blk *)blk)->enbsa = ~(0x0); in src_mgr_enbs_src()
439 ((struct src_mgr_ctrl_blk *)blk)->dirty.bf.enbsa = 1; in src_mgr_enbs_src()
440 ((struct src_mgr_ctrl_blk *)blk)->enb[idx/32] |= (0x1 << (idx%32)); in src_mgr_enbs_src()
446 ((struct src_mgr_ctrl_blk *)blk)->enb[idx/32] |= (0x1 << (idx%32)); in src_mgr_enb_src()
447 ((struct src_mgr_ctrl_blk *)blk)->dirty.data |= (0x1 << (idx/32)); in src_mgr_enb_src()
453 ((struct src_mgr_ctrl_blk *)blk)->enb[idx/32] &= ~(0x1 << (idx%32)); in src_mgr_dsb_src()
454 ((struct src_mgr_ctrl_blk *)blk)->dirty.data |= (0x1 << (idx/32)); in src_mgr_dsb_src()
460 struct src_mgr_ctrl_blk *ctl = blk; in src_mgr_commit_write() local
464 if (ctl->dirty.bf.enbsa) { in src_mgr_commit_write()
468 hw_write_20kx(hw, SRCENBS, ctl->enbsa); in src_mgr_commit_write()
469 ctl->dirty.bf.enbsa = 0; in src_mgr_commit_write()
472 if ((ctl->dirty.data & (0x1 << i))) { in src_mgr_commit_write()
473 hw_write_20kx(hw, SRCENB+(i*0x100), ctl->enb[i]); in src_mgr_commit_write()
474 ctl->dirty.data &= ~(0x1 << i); in src_mgr_commit_write()
488 return -ENOMEM; in src_mgr_get_ctrl_blk()
509 return -ENOMEM; in srcimp_mgr_get_ctrl_blk()
525 struct srcimp_mgr_ctrl_blk *ctl = blk; in srcimp_mgr_set_imaparc() local
527 set_field(&ctl->srcimap.srcaim, SRCAIM_ARC, slot); in srcimp_mgr_set_imaparc()
528 ctl->dirty.bf.srcimap = 1; in srcimp_mgr_set_imaparc()
534 struct srcimp_mgr_ctrl_blk *ctl = blk; in srcimp_mgr_set_imapuser() local
536 set_field(&ctl->srcimap.srcaim, SRCAIM_SRC, user); in srcimp_mgr_set_imapuser()
537 ctl->dirty.bf.srcimap = 1; in srcimp_mgr_set_imapuser()
543 struct srcimp_mgr_ctrl_blk *ctl = blk; in srcimp_mgr_set_imapnxt() local
545 set_field(&ctl->srcimap.srcaim, SRCAIM_NXT, next); in srcimp_mgr_set_imapnxt()
546 ctl->dirty.bf.srcimap = 1; in srcimp_mgr_set_imapnxt()
552 struct srcimp_mgr_ctrl_blk *ctl = blk; in srcimp_mgr_set_imapaddr() local
554 ctl->srcimap.idx = addr; in srcimp_mgr_set_imapaddr()
555 ctl->dirty.bf.srcimap = 1; in srcimp_mgr_set_imapaddr()
561 struct srcimp_mgr_ctrl_blk *ctl = blk; in srcimp_mgr_commit_write() local
563 if (ctl->dirty.bf.srcimap) { in srcimp_mgr_commit_write()
564 hw_write_20kx(hw, SRCIMAP+ctl->srcimap.idx*0x100, in srcimp_mgr_commit_write()
565 ctl->srcimap.srcaim); in srcimp_mgr_commit_write()
566 ctl->dirty.bf.srcimap = 0; in srcimp_mgr_commit_write()
602 struct amixer_rsc_ctrl_blk *ctl = blk; in amixer_set_mode() local
604 set_field(&ctl->amoplo, AMOPLO_M, mode); in amixer_set_mode()
605 ctl->dirty.bf.amoplo = 1; in amixer_set_mode()
617 struct amixer_rsc_ctrl_blk *ctl = blk; in amixer_set_x() local
619 set_field(&ctl->amoplo, AMOPLO_X, x); in amixer_set_x()
620 ctl->dirty.bf.amoplo = 1; in amixer_set_x()
626 struct amixer_rsc_ctrl_blk *ctl = blk; in amixer_set_y() local
628 set_field(&ctl->amoplo, AMOPLO_Y, y); in amixer_set_y()
629 ctl->dirty.bf.amoplo = 1; in amixer_set_y()
635 struct amixer_rsc_ctrl_blk *ctl = blk; in amixer_set_sadr() local
637 set_field(&ctl->amophi, AMOPHI_SADR, sadr); in amixer_set_sadr()
638 ctl->dirty.bf.amophi = 1; in amixer_set_sadr()
644 struct amixer_rsc_ctrl_blk *ctl = blk; in amixer_set_se() local
646 set_field(&ctl->amophi, AMOPHI_SE, se); in amixer_set_se()
647 ctl->dirty.bf.amophi = 1; in amixer_set_se()
653 ((struct amixer_rsc_ctrl_blk *)blk)->dirty.data = (flags & 0xffff); in amixer_set_dirty()
659 ((struct amixer_rsc_ctrl_blk *)blk)->dirty.data = ~(0x0); in amixer_set_dirty_all()
665 struct amixer_rsc_ctrl_blk *ctl = blk; in amixer_commit_write() local
667 if (ctl->dirty.bf.amoplo || ctl->dirty.bf.amophi) { in amixer_commit_write()
668 hw_write_20kx(hw, AMOPLO+idx*8, ctl->amoplo); in amixer_commit_write()
669 ctl->dirty.bf.amoplo = 0; in amixer_commit_write()
670 hw_write_20kx(hw, AMOPHI+idx*8, ctl->amophi); in amixer_commit_write()
671 ctl->dirty.bf.amophi = 0; in amixer_commit_write()
679 struct amixer_rsc_ctrl_blk *ctl = blk; in amixer_get_y() local
681 return get_field(ctl->amoplo, AMOPLO_Y); in amixer_get_y()
686 return ((struct amixer_rsc_ctrl_blk *)blk)->dirty.data; in amixer_get_dirty()
696 return -ENOMEM; in amixer_rsc_get_ctrl_blk()
717 return -ENOMEM; in amixer_mgr_get_ctrl_blk()
826 struct dai_ctrl_blk *ctl = blk; in dai_srt_set_srcr() local
828 set_field(&ctl->srtctl, SRTCTL_SRCR, src); in dai_srt_set_srcr()
829 ctl->dirty.bf.srtctl = 1; in dai_srt_set_srcr()
835 struct dai_ctrl_blk *ctl = blk; in dai_srt_set_srcl() local
837 set_field(&ctl->srtctl, SRTCTL_SRCL, src); in dai_srt_set_srcl()
838 ctl->dirty.bf.srtctl = 1; in dai_srt_set_srcl()
844 struct dai_ctrl_blk *ctl = blk; in dai_srt_set_rsr() local
846 set_field(&ctl->srtctl, SRTCTL_RSR, rsr); in dai_srt_set_rsr()
847 ctl->dirty.bf.srtctl = 1; in dai_srt_set_rsr()
853 struct dai_ctrl_blk *ctl = blk; in dai_srt_set_drat() local
855 set_field(&ctl->srtctl, SRTCTL_DRAT, drat); in dai_srt_set_drat()
856 ctl->dirty.bf.srtctl = 1; in dai_srt_set_drat()
862 struct dai_ctrl_blk *ctl = blk; in dai_srt_set_ec() local
864 set_field(&ctl->srtctl, SRTCTL_EC, ec ? 1 : 0); in dai_srt_set_ec()
865 ctl->dirty.bf.srtctl = 1; in dai_srt_set_ec()
871 struct dai_ctrl_blk *ctl = blk; in dai_srt_set_et() local
873 set_field(&ctl->srtctl, SRTCTL_ET, et ? 1 : 0); in dai_srt_set_et()
874 ctl->dirty.bf.srtctl = 1; in dai_srt_set_et()
880 struct dai_ctrl_blk *ctl = blk; in dai_commit_write() local
882 if (ctl->dirty.bf.srtctl) { in dai_commit_write()
885 hw_write_20kx(hw, SRTSCTL+0x4*idx, ctl->srtctl); in dai_commit_write()
888 hw_write_20kx(hw, SRTICTL, ctl->srtctl); in dai_commit_write()
890 ctl->dirty.bf.srtctl = 0; in dai_commit_write()
903 return -ENOMEM; in dai_get_ctrl_blk()
919 ((struct dao_ctrl_blk *)blk)->spos = spos; in dao_set_spos()
920 ((struct dao_ctrl_blk *)blk)->dirty.bf.spos = 1; in dao_set_spos()
926 struct dao_ctrl_blk *ctl = blk; in dao_commit_write() local
928 if (ctl->dirty.bf.spos) { in dao_commit_write()
931 hw_write_20kx(hw, SPOS+0x4*idx, ctl->spos); in dao_commit_write()
933 ctl->dirty.bf.spos = 0; in dao_commit_write()
941 *spos = ((struct dao_ctrl_blk *)blk)->spos; in dao_get_spos()
952 return -ENOMEM; in dao_get_ctrl_blk()
968 struct daio_mgr_ctrl_blk *ctl = blk; in daio_mgr_enb_dai() local
972 set_field(&ctl->spictl, SPICTL_EN << (idx*8), 1); in daio_mgr_enb_dai()
973 ctl->dirty.bf.spictl |= (0x1 << idx); in daio_mgr_enb_dai()
977 set_field(&ctl->i2sctl, I2SCTL_EI << (idx*8), 1); in daio_mgr_enb_dai()
978 ctl->dirty.bf.i2sictl |= (0x1 << idx); in daio_mgr_enb_dai()
985 struct daio_mgr_ctrl_blk *ctl = blk; in daio_mgr_dsb_dai() local
989 set_field(&ctl->spictl, SPICTL_EN << (idx*8), 0); in daio_mgr_dsb_dai()
990 ctl->dirty.bf.spictl |= (0x1 << idx); in daio_mgr_dsb_dai()
994 set_field(&ctl->i2sctl, I2SCTL_EI << (idx*8), 0); in daio_mgr_dsb_dai()
995 ctl->dirty.bf.i2sictl |= (0x1 << idx); in daio_mgr_dsb_dai()
1002 struct daio_mgr_ctrl_blk *ctl = blk; in daio_mgr_enb_dao() local
1006 set_field(&ctl->spoctl, SPOCTL_OE << (idx*8), 1); in daio_mgr_enb_dao()
1007 ctl->dirty.bf.spoctl |= (0x1 << idx); in daio_mgr_enb_dao()
1011 set_field(&ctl->i2sctl, I2SCTL_EA << (idx*8), 1); in daio_mgr_enb_dao()
1012 ctl->dirty.bf.i2soctl |= (0x1 << idx); in daio_mgr_enb_dao()
1019 struct daio_mgr_ctrl_blk *ctl = blk; in daio_mgr_dsb_dao() local
1023 set_field(&ctl->spoctl, SPOCTL_OE << (idx*8), 0); in daio_mgr_dsb_dao()
1024 ctl->dirty.bf.spoctl |= (0x1 << idx); in daio_mgr_dsb_dao()
1028 set_field(&ctl->i2sctl, I2SCTL_EA << (idx*8), 0); in daio_mgr_dsb_dao()
1029 ctl->dirty.bf.i2soctl |= (0x1 << idx); in daio_mgr_dsb_dao()
1036 struct daio_mgr_ctrl_blk *ctl = blk; in daio_mgr_dao_init() local
1042 set_field(&ctl->spoctl, SPOCTL_SR << (idx*8), 3); in daio_mgr_dao_init()
1045 set_field(&ctl->spoctl, SPOCTL_SR << (idx*8), 0); in daio_mgr_dao_init()
1048 set_field(&ctl->spoctl, SPOCTL_SR << (idx*8), 1); in daio_mgr_dao_init()
1051 set_field(&ctl->spoctl, SPOCTL_SR << (idx*8), 2); in daio_mgr_dao_init()
1056 set_field(&ctl->spoctl, SPOCTL_LIV << (idx*8), in daio_mgr_dao_init()
1057 (conf >> 4) & 0x1); /* Non-audio */ in daio_mgr_dao_init()
1058 set_field(&ctl->spoctl, SPOCTL_RIV << (idx*8), in daio_mgr_dao_init()
1059 (conf >> 4) & 0x1); /* Non-audio */ in daio_mgr_dao_init()
1060 set_field(&ctl->spoctl, SPOCTL_OS << (idx*8), in daio_mgr_dao_init()
1063 ctl->dirty.bf.spoctl |= (0x1 << idx); in daio_mgr_dao_init()
1073 struct daio_mgr_ctrl_blk *ctl = blk; in daio_mgr_set_imaparc() local
1075 set_field(&ctl->daoimap.aim, AIM_ARC, slot); in daio_mgr_set_imaparc()
1076 ctl->dirty.bf.daoimap = 1; in daio_mgr_set_imaparc()
1082 struct daio_mgr_ctrl_blk *ctl = blk; in daio_mgr_set_imapnxt() local
1084 set_field(&ctl->daoimap.aim, AIM_NXT, next); in daio_mgr_set_imapnxt()
1085 ctl->dirty.bf.daoimap = 1; in daio_mgr_set_imapnxt()
1091 struct daio_mgr_ctrl_blk *ctl = blk; in daio_mgr_set_imapaddr() local
1093 ctl->daoimap.idx = addr; in daio_mgr_set_imapaddr()
1094 ctl->dirty.bf.daoimap = 1; in daio_mgr_set_imapaddr()
1100 struct daio_mgr_ctrl_blk *ctl = blk; in daio_mgr_commit_write() local
1103 if (ctl->dirty.bf.i2sictl || ctl->dirty.bf.i2soctl) { in daio_mgr_commit_write()
1105 if ((ctl->dirty.bf.i2sictl & (0x1 << i))) in daio_mgr_commit_write()
1106 ctl->dirty.bf.i2sictl &= ~(0x1 << i); in daio_mgr_commit_write()
1108 if ((ctl->dirty.bf.i2soctl & (0x1 << i))) in daio_mgr_commit_write()
1109 ctl->dirty.bf.i2soctl &= ~(0x1 << i); in daio_mgr_commit_write()
1111 hw_write_20kx(hw, I2SCTL, ctl->i2sctl); in daio_mgr_commit_write()
1114 if (ctl->dirty.bf.spoctl) { in daio_mgr_commit_write()
1116 if ((ctl->dirty.bf.spoctl & (0x1 << i))) in daio_mgr_commit_write()
1117 ctl->dirty.bf.spoctl &= ~(0x1 << i); in daio_mgr_commit_write()
1119 hw_write_20kx(hw, SPOCTL, ctl->spoctl); in daio_mgr_commit_write()
1122 if (ctl->dirty.bf.spictl) { in daio_mgr_commit_write()
1124 if ((ctl->dirty.bf.spictl & (0x1 << i))) in daio_mgr_commit_write()
1125 ctl->dirty.bf.spictl &= ~(0x1 << i); in daio_mgr_commit_write()
1127 hw_write_20kx(hw, SPICTL, ctl->spictl); in daio_mgr_commit_write()
1130 if (ctl->dirty.bf.daoimap) { in daio_mgr_commit_write()
1131 hw_write_20kx(hw, DAOIMAP+ctl->daoimap.idx*4, in daio_mgr_commit_write()
1132 ctl->daoimap.aim); in daio_mgr_commit_write()
1133 ctl->dirty.bf.daoimap = 0; in daio_mgr_commit_write()
1146 return -ENOMEM; in daio_mgr_get_ctrl_blk()
1148 blk->i2sctl = hw_read_20kx(hw, I2SCTL); in daio_mgr_get_ctrl_blk()
1149 blk->spoctl = hw_read_20kx(hw, SPOCTL); in daio_mgr_get_ctrl_blk()
1150 blk->spictl = hw_read_20kx(hw, SPICTL); in daio_mgr_get_ctrl_blk()
1208 /* Read I2S CTL. Keep original value. */ in hw_daio_init()
1210 i2sorg = 0x94040404; /* enable all audio out and I2S-D input */ in hw_daio_init()
1215 /* Enable S/PDIF-out-A in fixed 24-bit data in hw_daio_init()
1221 switch (info->msr) { in hw_daio_init()
1242 /* Enable S/PDIF-in-A in fixed 24-bit data format. */ in hw_daio_init()
1260 if ((~0UL) == info->vm_pgt_phys) { in hw_trn_init()
1261 dev_err(hw->card->dev, in hw_trn_init()
1263 return -1; in hw_trn_init()
1266 trnctl = 0x13; /* 32-bit, 4k-size page */ in hw_trn_init()
1267 ptp_phys_low = (u32)info->vm_pgt_phys; in hw_trn_init()
1268 ptp_phys_high = upper_32_bits(info->vm_pgt_phys); in hw_trn_init()
1321 dev_alert(hw->card->dev, "PLL initialization failed!!!\n"); in hw_pll_init()
1322 return -EBUSY; in hw_pll_init()
1345 dev_alert(hw->card->dev, "Card Auto-init failed!!!\n"); in hw_auto_init()
1346 return -EBUSY; in hw_auto_init()
1367 return -1; in i2c_unlock()
1396 return -1; in hw_reset_dac()
1428 if (hw->model == CTSB055X) { in hw_dac_init()
1445 return -1; in hw_dac_init()
1452 switch (info->msr) { in hw_dac_init()
1530 switch (hw->model) { in hw_is_adc_input_selected()
1573 return -1; in adc_input_select_SB055x()
1590 return -1; in adc_input_select_SBx()
1602 i2c_data = 0x1; /* Mic-in */ in adc_input_select_SBx()
1607 i2c_data = 0x2; /* Line-in */ in adc_input_select_SBx()
1615 return -1; in adc_input_select_SBx()
1640 return -1; in adc_input_select_hendrix()
1652 i2c_data = 0x1; /* Mic-in */ in adc_input_select_hendrix()
1656 i2c_data = 0x2; /* Line-in */ in adc_input_select_hendrix()
1660 return -1; in adc_input_select_hendrix()
1681 switch (hw->model) { in hw_adc_input_select()
1730 return -1; in adc_init_SBx()
1765 if (hw->model == CTSB055X) in hw_adc_init()
1766 return adc_init_SB055x(hw, info->input, info->mic20db); in hw_adc_init()
1768 return adc_init_SBx(hw, info->input, info->mic20db); in hw_adc_init()
1776 cap.digit_io_switch = !(hw->model == CTSB073X || hw->model == CTUAA); in hw_capabilities()
1792 unsigned int cmd, irq, cl_size, l_timer, pwr; in uaa_to_xfi() local
1799 const u32 CTL_ = CTLBITS('C', 'T', 'L', '-'); in uaa_to_xfi()
1810 return -ENOENT; in uaa_to_xfi()
1846 pci_read_config_dword(pci, UAA_CFG_PWRSTATUS, &pwr); in uaa_to_xfi()
1849 /* Set up X-Fi core PCI configuration space. */ in uaa_to_xfi()
1850 /* Switch to X-Fi config space with BAR0 exposed. */ in uaa_to_xfi()
1852 /* Copy UAA's BAR5 into X-Fi BAR0 */ in uaa_to_xfi()
1854 /* Switch to X-Fi config space without BAR0 exposed. */ in uaa_to_xfi()
1863 pci_write_config_dword(pci, UAA_CFG_PWRSTATUS, pwr); in uaa_to_xfi()
1866 /* Switch to X-Fi mode */ in uaa_to_xfi()
1886 if (hw->irq_callback) in ct_20k1_interrupt()
1887 hw->irq_callback(hw->irq_callback_data, status); in ct_20k1_interrupt()
1896 struct pci_dev *pci = hw->pci; in hw_card_start()
1904 if (dma_set_mask_and_coherent(&pci->dev, DMA_BIT_MASK(dma_bits))) in hw_card_start()
1905 dma_set_mask_and_coherent(&pci->dev, DMA_BIT_MASK(32)); in hw_card_start()
1907 if (!hw->io_base) { in hw_card_start()
1912 if (hw->model == CTUAA) in hw_card_start()
1913 hw->io_base = pci_resource_start(pci, 5); in hw_card_start()
1915 hw->io_base = pci_resource_start(pci, 0); in hw_card_start()
1919 /* Switch to X-Fi mode from UAA mode if needed */ in hw_card_start()
1920 if (hw->model == CTUAA) { in hw_card_start()
1927 if (hw->irq < 0) { in hw_card_start()
1928 err = request_irq(pci->irq, ct_20k1_interrupt, IRQF_SHARED, in hw_card_start()
1931 dev_err(hw->card->dev, in hw_card_start()
1932 "XFi: Cannot get irq %d\n", pci->irq); in hw_card_start()
1935 hw->irq = pci->irq; in hw_card_start()
1936 hw->card->sync_irq = hw->irq; in hw_card_start()
1945 hw->io_base = 0; in hw_card_start()
1967 if (hw->irq >= 0) in hw_card_shutdown()
1968 free_irq(hw->irq, hw); in hw_card_shutdown()
1970 hw->irq = -1; in hw_card_shutdown()
1971 iounmap(hw->mem_base); in hw_card_shutdown()
1972 hw->mem_base = NULL; in hw_card_shutdown()
1974 if (hw->io_base) in hw_card_shutdown()
1975 pci_release_regions(hw->pci); in hw_card_shutdown()
1977 hw->io_base = 0; in hw_card_shutdown()
1979 pci_disable_device(hw->pci); in hw_card_shutdown()
2000 err = hw_pll_init(hw, info->rsr); in hw_card_init()
2004 /* kick off auto-init */ in hw_card_init()
2026 switch (hw->model) { in hw_card_init()
2041 trn_info.vm_pgt_phys = info->vm_pgt_phys; in hw_card_init()
2046 daio_info.msr = info->msr; in hw_card_init()
2051 dac_info.msr = info->msr; in hw_card_init()
2056 adc_info.msr = info->msr; in hw_card_init()
2073 struct pci_dev *pci = hw->pci; in hw_suspend()
2077 if (hw->model == CTUAA) { in hw_suspend()
2087 /* Re-initialize card hardware. */ in hw_resume()
2098 &container_of(hw, struct hw20k1, hw)->reg_20k1_lock, flags); in hw_read_20kx()
2099 outl(reg, hw->io_base + 0x0); in hw_read_20kx()
2100 value = inl(hw->io_base + 0x4); in hw_read_20kx()
2102 &container_of(hw, struct hw20k1, hw)->reg_20k1_lock, flags); in hw_read_20kx()
2112 &container_of(hw, struct hw20k1, hw)->reg_20k1_lock, flags); in hw_write_20kx()
2113 outl(reg, hw->io_base + 0x0); in hw_write_20kx()
2114 outl(data, hw->io_base + 0x4); in hw_write_20kx()
2116 &container_of(hw, struct hw20k1, hw)->reg_20k1_lock, flags); in hw_write_20kx()
2126 &container_of(hw, struct hw20k1, hw)->reg_pci_lock, flags); in hw_read_pci()
2127 outl(reg, hw->io_base + 0x10); in hw_read_pci()
2128 value = inl(hw->io_base + 0x14); in hw_read_pci()
2130 &container_of(hw, struct hw20k1, hw)->reg_pci_lock, flags); in hw_read_pci()
2140 &container_of(hw, struct hw20k1, hw)->reg_pci_lock, flags); in hw_write_pci()
2141 outl(reg, hw->io_base + 0x10); in hw_write_pci()
2142 outl(data, hw->io_base + 0x14); in hw_write_pci()
2144 &container_of(hw, struct hw20k1, hw)->reg_pci_lock, flags); in hw_write_pci()
2148 .irq = -1,
2258 return -ENOMEM; in create_20k1_hw_obj()
2260 spin_lock_init(&hw20k1->reg_20k1_lock); in create_20k1_hw_obj()
2261 spin_lock_init(&hw20k1->reg_pci_lock); in create_20k1_hw_obj()
2263 hw20k1->hw = ct20k1_preset; in create_20k1_hw_obj()
2265 *rhw = &hw20k1->hw; in create_20k1_hw_obj()
2272 if (hw->io_base) in destroy_20k1_hw_obj()