Lines Matching refs:vortex
89 static void vortex_mixer_en_sr(vortex_t * vortex, int channel) in vortex_mixer_en_sr() argument
91 hwwrite(vortex->mmio, VORTEX_MIXER_SR, in vortex_mixer_en_sr()
92 hwread(vortex->mmio, VORTEX_MIXER_SR) | (0x1 << channel)); in vortex_mixer_en_sr()
94 static void vortex_mixer_dis_sr(vortex_t * vortex, int channel) in vortex_mixer_dis_sr() argument
96 hwwrite(vortex->mmio, VORTEX_MIXER_SR, in vortex_mixer_dis_sr()
97 hwread(vortex->mmio, VORTEX_MIXER_SR) & ~(0x1 << channel)); in vortex_mixer_dis_sr()
102 vortex_mix_muteinputgain(vortex_t * vortex, unsigned char mix,
105 hwwrite(vortex->mmio, VORTEX_MIX_INVOL_A + ((mix << 5) + channel),
107 hwwrite(vortex->mmio, VORTEX_MIX_INVOL_B + ((mix << 5) + channel),
111 static int vortex_mix_getvolume(vortex_t * vortex, unsigned char mix)
114 a = hwread(vortex->mmio, VORTEX_MIX_VOL_A + (mix << 2)) & 0xff;
120 vortex_mix_getinputvolume(vortex_t * vortex, unsigned char mix,
126 a = hwread(vortex->mmio,
143 static void vortex_mix_rampvolume(vortex_t * vortex, int mix)
151 a = hwread(vortex->mmio,
155 hwwrite(vortex->mmio,
158 hwwrite(vortex->mmio,
162 vortex_mix_killinput(vortex, mix, ch);
167 vortex_mix_getenablebit(vortex_t * vortex, unsigned char mix, int mixin)
175 temp = hwread(vortex->mmio, VORTEX_MIX_ENIN + addr);
180 vortex_mix_setvolumebyte(vortex_t * vortex, unsigned char mix, in vortex_mix_setvolumebyte() argument
184 hwwrite(vortex->mmio, VORTEX_MIX_VOL_A + (mix << 2), vol); in vortex_mix_setvolumebyte()
186 temp = hwread(vortex->mmio, VORTEX_MIX_VOL_B + (mix << 2)); in vortex_mix_setvolumebyte()
190 hwwrite(vortex->mmio, VORTEX_MIX_VOL_B + (mix << 2), vol); in vortex_mix_setvolumebyte()
194 vortex_mix_setinputvolumebyte(vortex_t * vortex, unsigned char mix, in vortex_mix_setinputvolumebyte() argument
199 hwwrite(vortex->mmio, in vortex_mix_setinputvolumebyte()
203 hwread(vortex->mmio, in vortex_mix_setinputvolumebyte()
208 hwwrite(vortex->mmio, in vortex_mix_setinputvolumebyte()
213 vortex_mix_setenablebit(vortex_t * vortex, unsigned char mix, int mixin, int en) in vortex_mix_setenablebit() argument
222 temp = hwread(vortex->mmio, VORTEX_MIX_ENIN + addr); in vortex_mix_setenablebit()
228 hwwrite(vortex->mmio, in vortex_mix_setenablebit()
231 hwwrite(vortex->mmio, VORTEX_MIX_SMP + (mixin << 2), 0x0); in vortex_mix_setenablebit()
232 hwwrite(vortex->mmio, VORTEX_MIX_SMP + 4 + (mixin << 2), 0x0); in vortex_mix_setenablebit()
234 hwwrite(vortex->mmio, VORTEX_MIX_ENIN + addr, temp); in vortex_mix_setenablebit()
238 vortex_mix_killinput(vortex_t * vortex, unsigned char mix, int mixin) in vortex_mix_killinput() argument
241 vortex_mix_setinputvolumebyte(vortex, mix, mixin, 0x80); in vortex_mix_killinput()
243 vortex_mix_setenablebit(vortex, mix, mixin, 0); in vortex_mix_killinput()
247 vortex_mix_enableinput(vortex_t * vortex, unsigned char mix, int mixin) in vortex_mix_enableinput() argument
249 vortex_mix_killinput(vortex, mix, mixin); in vortex_mix_enableinput()
251 vortex_mix_setinputvolumebyte(vortex, mix, mixin, 0x80); /*0x80 : mute */ in vortex_mix_enableinput()
254 vortex_mix_setenablebit(vortex, mix, mixin, 1); in vortex_mix_enableinput()
258 vortex_mix_disableinput(vortex_t * vortex, unsigned char mix, int channel, in vortex_mix_disableinput() argument
265 vortex_mix_killinput(vortex, mix, channel); in vortex_mix_disableinput()
267 vortex_mix_killinput(vortex, mix, channel); in vortex_mix_disableinput()
271 vortex_mixer_addWTD(vortex_t * vortex, unsigned char mix, unsigned char ch) in vortex_mixer_addWTD() argument
275 temp = hwread(vortex->mmio, VORTEX_MIXER_SR); in vortex_mixer_addWTD()
277 hwwrite(vortex->mmio, VORTEX_MIXER_CHNBASE + (ch << 2), mix); in vortex_mixer_addWTD()
278 vortex_mixer_en_sr(vortex, ch); in vortex_mixer_addWTD()
282 temp = hwread(vortex->mmio, prev); in vortex_mixer_addWTD()
285 temp = hwread(vortex->mmio, prev); in vortex_mixer_addWTD()
288 dev_err(vortex->card->dev, in vortex_mixer_addWTD()
293 hwwrite(vortex->mmio, VORTEX_MIXER_RTBASE + ((temp & 0xf) << 2), mix); in vortex_mixer_addWTD()
294 hwwrite(vortex->mmio, prev, (temp & 0xf) | 0x10); in vortex_mixer_addWTD()
299 vortex_mixer_delWTD(vortex_t * vortex, unsigned char mix, unsigned char ch) in vortex_mixer_delWTD() argument
304 eax = hwread(vortex->mmio, VORTEX_MIXER_SR); in vortex_mixer_delWTD()
306 dev_err(vortex->card->dev, "mix ALARM %x\n", eax); in vortex_mixer_delWTD()
310 esp18 = hwread(vortex->mmio, ebp); in vortex_mixer_delWTD()
315 edx = hwread(vortex->mmio, ebx); in vortex_mixer_delWTD()
317 hwwrite(vortex->mmio, ebp, edx); in vortex_mixer_delWTD()
318 hwwrite(vortex->mmio, ebx, 0); in vortex_mixer_delWTD()
322 hwread(vortex->mmio, in vortex_mixer_delWTD()
327 dev_err(vortex->card->dev, in vortex_mixer_delWTD()
335 hwread(vortex->mmio, in vortex_mixer_delWTD()
344 edx = hwread(vortex->mmio, ebx); in vortex_mixer_delWTD()
346 hwwrite(vortex->mmio, in vortex_mixer_delWTD()
348 hwwrite(vortex->mmio, ebx, 0); in vortex_mixer_delWTD()
353 hwwrite(vortex->mmio, in vortex_mixer_delWTD()
358 hwwrite(vortex->mmio, in vortex_mixer_delWTD()
363 hwwrite(vortex->mmio, in vortex_mixer_delWTD()
371 vortex_mixer_dis_sr(vortex, ch); in vortex_mixer_delWTD()
372 hwwrite(vortex->mmio, ebp, 0); in vortex_mixer_delWTD()
377 static void vortex_mixer_init(vortex_t * vortex) in vortex_mixer_init() argument
388 hwwrite(vortex->mmio, addr, 0); in vortex_mixer_init()
393 hwwrite(vortex->mmio, addr, 0); in vortex_mixer_init()
398 hwwrite(vortex->mmio, addr, 0); in vortex_mixer_init()
403 hwwrite(vortex->mmio, addr, 0x80); in vortex_mixer_init()
408 hwwrite(vortex->mmio, addr, 0x80); in vortex_mixer_init()
413 hwwrite(vortex->mmio, addr, 0x80); in vortex_mixer_init()
418 hwwrite(vortex->mmio, addr, 0x80); in vortex_mixer_init()
423 hwwrite(vortex->mmio, addr, 0x0); in vortex_mixer_init()
426 hwwrite(vortex->mmio, VORTEX_MIXER_SR, 0); in vortex_mixer_init()
443 static void vortex_src_en_sr(vortex_t * vortex, int channel) in vortex_src_en_sr() argument
445 hwwrite(vortex->mmio, VORTEX_SRCBLOCK_SR, in vortex_src_en_sr()
446 hwread(vortex->mmio, VORTEX_SRCBLOCK_SR) | (0x1 << channel)); in vortex_src_en_sr()
449 static void vortex_src_dis_sr(vortex_t * vortex, int channel) in vortex_src_dis_sr() argument
451 hwwrite(vortex->mmio, VORTEX_SRCBLOCK_SR, in vortex_src_dis_sr()
452 hwread(vortex->mmio, VORTEX_SRCBLOCK_SR) & ~(0x1 << channel)); in vortex_src_dis_sr()
455 static void vortex_src_flushbuffers(vortex_t * vortex, unsigned char src) in vortex_src_flushbuffers() argument
460 hwwrite(vortex->mmio, in vortex_src_flushbuffers()
462 hwwrite(vortex->mmio, VORTEX_SRC_DATA + (src << 3), 0); in vortex_src_flushbuffers()
463 hwwrite(vortex->mmio, VORTEX_SRC_DATA + (src << 3) + 4, 0); in vortex_src_flushbuffers()
466 static void vortex_src_cleardrift(vortex_t * vortex, unsigned char src) in vortex_src_cleardrift() argument
468 hwwrite(vortex->mmio, VORTEX_SRC_DRIFT0 + (src << 2), 0); in vortex_src_cleardrift()
469 hwwrite(vortex->mmio, VORTEX_SRC_DRIFT1 + (src << 2), 0); in vortex_src_cleardrift()
470 hwwrite(vortex->mmio, VORTEX_SRC_DRIFT2 + (src << 2), 1); in vortex_src_cleardrift()
474 vortex_src_set_throttlesource(vortex_t * vortex, unsigned char src, int en) in vortex_src_set_throttlesource() argument
478 temp = hwread(vortex->mmio, VORTEX_SRC_SOURCE); in vortex_src_set_throttlesource()
483 hwwrite(vortex->mmio, VORTEX_SRC_SOURCE, temp); in vortex_src_set_throttlesource()
487 vortex_src_persist_convratio(vortex_t * vortex, unsigned char src, int ratio) in vortex_src_persist_convratio() argument
492 hwwrite(vortex->mmio, VORTEX_SRC_CONVRATIO + (src << 2), ratio); in vortex_src_persist_convratio()
493 temp = hwread(vortex->mmio, VORTEX_SRC_CONVRATIO + (src << 2)); in vortex_src_persist_convratio()
495 dev_err(vortex->card->dev, "Src cvr fail\n"); in vortex_src_persist_convratio()
504 static void vortex_src_slowlock(vortex_t * vortex, unsigned char src)
508 hwwrite(vortex->mmio, VORTEX_SRC_DRIFT2 + (src << 2), 1);
509 hwwrite(vortex->mmio, VORTEX_SRC_DRIFT0 + (src << 2), 0);
510 temp = hwread(vortex->mmio, VORTEX_SRC_U0 + (src << 2));
512 hwwrite(vortex->mmio, VORTEX_SRC_U0 + (src << 2),
517 vortex_src_change_convratio(vortex_t * vortex, unsigned char src, int ratio)
528 temp = hwread(vortex->mmio, VORTEX_SRC_U0 + (src << 2));
530 hwwrite(vortex->mmio, VORTEX_SRC_U0 + (src << 2),
533 vortex_src_persist_convratio(vortex, src, ratio);
537 vortex_src_checkratio(vortex_t * vortex, unsigned char src,
542 hw_ratio = hwread(vortex->mmio, VORTEX_SRC_CONVRATIO + (src << 2));
545 hwwrite(vortex->mmio, VORTEX_SRC_CONVRATIO + (src << 2), desired_ratio);
640 static void vortex_srcblock_init(vortex_t * vortex) in vortex_srcblock_init() argument
644 hwwrite(vortex->mmio, VORTEX_SRC_SOURCESIZE, 0x1ff); in vortex_srcblock_init()
654 hwwrite(vortex->mmio, addr, 0); in vortex_srcblock_init()
661 hwwrite(vortex->mmio, addr, 0); in vortex_srcblock_init()
667 vortex_src_addWTD(vortex_t * vortex, unsigned char src, unsigned char ch) in vortex_src_addWTD() argument
672 temp = hwread(vortex->mmio, VORTEX_SRCBLOCK_SR); in vortex_src_addWTD()
674 hwwrite(vortex->mmio, VORTEX_SRC_CHNBASE + (ch << 2), src); in vortex_src_addWTD()
675 vortex_src_en_sr(vortex, ch); in vortex_src_addWTD()
679 temp = hwread(vortex->mmio, prev); in vortex_src_addWTD()
684 temp = hwread(vortex->mmio, prev); in vortex_src_addWTD()
687 dev_err(vortex->card->dev, in vortex_src_addWTD()
692 hwwrite(vortex->mmio, VORTEX_SRC_RTBASE + ((temp & 0xf) << 2), src); in vortex_src_addWTD()
694 hwwrite(vortex->mmio, prev, (temp & 0xf) | 0x10); in vortex_src_addWTD()
699 vortex_src_delWTD(vortex_t * vortex, unsigned char src, unsigned char ch) in vortex_src_delWTD() argument
704 eax = hwread(vortex->mmio, VORTEX_SRCBLOCK_SR); in vortex_src_delWTD()
706 dev_err(vortex->card->dev, "src alarm\n"); in vortex_src_delWTD()
710 esp18 = hwread(vortex->mmio, ebp); in vortex_src_delWTD()
715 edx = hwread(vortex->mmio, ebx); in vortex_src_delWTD()
717 hwwrite(vortex->mmio, ebp, edx); in vortex_src_delWTD()
718 hwwrite(vortex->mmio, ebx, 0); in vortex_src_delWTD()
722 hwread(vortex->mmio, in vortex_src_delWTD()
727 dev_warn(vortex->card->dev, in vortex_src_delWTD()
735 hwread(vortex->mmio, in vortex_src_delWTD()
744 edx = hwread(vortex->mmio, ebx); in vortex_src_delWTD()
746 hwwrite(vortex->mmio, in vortex_src_delWTD()
748 hwwrite(vortex->mmio, ebx, 0); in vortex_src_delWTD()
753 hwwrite(vortex->mmio, in vortex_src_delWTD()
758 hwwrite(vortex->mmio, in vortex_src_delWTD()
763 hwwrite(vortex->mmio, in vortex_src_delWTD()
770 vortex_src_dis_sr(vortex, ch); in vortex_src_delWTD()
771 hwwrite(vortex->mmio, ebp, 0); in vortex_src_delWTD()
779 vortex_fifo_clearadbdata(vortex_t * vortex, int fifo, int x) in vortex_fifo_clearadbdata() argument
782 hwwrite(vortex->mmio, in vortex_fifo_clearadbdata()
788 static void vortex_fifo_adbinitialize(vortex_t * vortex, int fifo, int j)
790 vortex_fifo_clearadbdata(vortex, fifo, FIFO_SIZE);
792 hwwrite(vortex->mmio, VORTEX_FIFO_ADBCTRL + (fifo << 2),
795 hwwrite(vortex->mmio, VORTEX_FIFO_ADBCTRL + (fifo << 2),
800 static void vortex_fifo_setadbvalid(vortex_t * vortex, int fifo, int en) in vortex_fifo_setadbvalid() argument
802 hwwrite(vortex->mmio, VORTEX_FIFO_ADBCTRL + (fifo << 2), in vortex_fifo_setadbvalid()
803 (hwread(vortex->mmio, VORTEX_FIFO_ADBCTRL + (fifo << 2)) & in vortex_fifo_setadbvalid()
808 vortex_fifo_setadbctrl(vortex_t * vortex, int fifo, int stereo, int priority, in vortex_fifo_setadbctrl() argument
820 temp = hwread(vortex->mmio, VORTEX_FIFO_ADBCTRL + (fifo << 2)); in vortex_fifo_setadbctrl()
822 dev_err(vortex->card->dev, in vortex_fifo_setadbctrl()
834 vortex_fifo_clearadbdata(vortex, fifo, FIFO_SIZE); // this_4 in vortex_fifo_setadbctrl()
872 vortex_fifo_clearadbdata(vortex, fifo, FIFO_SIZE); in vortex_fifo_setadbctrl()
874 hwwrite(vortex->mmio, VORTEX_FIFO_ADBCTRL + (fifo << 2), temp); in vortex_fifo_setadbctrl()
875 hwread(vortex->mmio, VORTEX_FIFO_ADBCTRL + (fifo << 2)); in vortex_fifo_setadbctrl()
879 static void vortex_fifo_clearwtdata(vortex_t * vortex, int fifo, int x) in vortex_fifo_clearwtdata() argument
884 hwwrite(vortex->mmio, in vortex_fifo_clearwtdata()
889 static void vortex_fifo_wtinitialize(vortex_t * vortex, int fifo, int j) in vortex_fifo_wtinitialize() argument
891 vortex_fifo_clearwtdata(vortex, fifo, FIFO_SIZE); in vortex_fifo_wtinitialize()
893 hwwrite(vortex->mmio, VORTEX_FIFO_WTCTRL + (fifo << 2), in vortex_fifo_wtinitialize()
896 hwwrite(vortex->mmio, VORTEX_FIFO_WTCTRL + (fifo << 2), in vortex_fifo_wtinitialize()
901 static void vortex_fifo_setwtvalid(vortex_t * vortex, int fifo, int en) in vortex_fifo_setwtvalid() argument
903 hwwrite(vortex->mmio, VORTEX_FIFO_WTCTRL + (fifo << 2), in vortex_fifo_setwtvalid()
904 (hwread(vortex->mmio, VORTEX_FIFO_WTCTRL + (fifo << 2)) & in vortex_fifo_setwtvalid()
909 vortex_fifo_setwtctrl(vortex_t * vortex, int fifo, int ctrl, int priority, in vortex_fifo_setwtctrl() argument
916 temp = hwread(vortex->mmio, VORTEX_FIFO_WTCTRL + (fifo << 2)); in vortex_fifo_setwtctrl()
918 dev_err(vortex->card->dev, in vortex_fifo_setwtctrl()
927 vortex_fifo_clearwtdata(vortex, fifo, FIFO_SIZE); // this_4 in vortex_fifo_setwtctrl()
965 vortex_fifo_clearwtdata(vortex, fifo, FIFO_SIZE); in vortex_fifo_setwtctrl()
967 hwwrite(vortex->mmio, VORTEX_FIFO_WTCTRL + (fifo << 2), temp); in vortex_fifo_setwtctrl()
968 hwread(vortex->mmio, VORTEX_FIFO_WTCTRL + (fifo << 2)); in vortex_fifo_setwtctrl()
1036 static void vortex_fifo_init(vortex_t * vortex) in vortex_fifo_init() argument
1044 hwwrite(vortex->mmio, addr, (FIFO_U0 | FIFO_U1)); in vortex_fifo_init()
1045 if (hwread(vortex->mmio, addr) != (FIFO_U0 | FIFO_U1)) in vortex_fifo_init()
1046 dev_err(vortex->card->dev, "bad adb fifo reset!"); in vortex_fifo_init()
1047 vortex_fifo_clearadbdata(vortex, x, FIFO_SIZE); in vortex_fifo_init()
1055 hwwrite(vortex->mmio, addr, FIFO_U0); in vortex_fifo_init()
1056 if (hwread(vortex->mmio, addr) != FIFO_U0) in vortex_fifo_init()
1057 dev_err(vortex->card->dev, in vortex_fifo_init()
1059 addr, hwread(vortex->mmio, addr)); in vortex_fifo_init()
1060 vortex_fifo_clearwtdata(vortex, x, FIFO_SIZE); in vortex_fifo_init()
1066 hwwrite(vortex->mmio, 0xf8c0, 0xd03); //0x0843 0xd6b in vortex_fifo_init()
1069 hwwrite(vortex->mmio, 0x17000, 0x61); /* wt a */ in vortex_fifo_init()
1070 hwwrite(vortex->mmio, 0x17004, 0x61); /* wt b */ in vortex_fifo_init()
1072 hwwrite(vortex->mmio, 0x17008, 0x61); /* adb */ in vortex_fifo_init()
1078 static void vortex_adbdma_init(vortex_t * vortex) in vortex_adbdma_init() argument
1082 static void vortex_adbdma_setfirstbuffer(vortex_t * vortex, int adbdma) in vortex_adbdma_setfirstbuffer() argument
1084 stream_t *dma = &vortex->dma_adb[adbdma]; in vortex_adbdma_setfirstbuffer()
1086 hwwrite(vortex->mmio, VORTEX_ADBDMA_CTRL + (adbdma << 2), in vortex_adbdma_setfirstbuffer()
1090 static void vortex_adbdma_setstartbuffer(vortex_t * vortex, int adbdma, int sb) in vortex_adbdma_setstartbuffer() argument
1092 stream_t *dma = &vortex->dma_adb[adbdma]; in vortex_adbdma_setstartbuffer()
1094 hwwrite(vortex->mmio, VORTEX_ADBDMA_START + (adbdma << 2), in vortex_adbdma_setstartbuffer()
1100 vortex_adbdma_setbuffers(vortex_t * vortex, int adbdma, in vortex_adbdma_setbuffers() argument
1103 stream_t *dma = &vortex->dma_adb[adbdma]; in vortex_adbdma_setbuffers()
1115 hwwrite(vortex->mmio, in vortex_adbdma_setbuffers()
1122 hwwrite(vortex->mmio, in vortex_adbdma_setbuffers()
1128 hwwrite(vortex->mmio, in vortex_adbdma_setbuffers()
1134 hwwrite(vortex->mmio, in vortex_adbdma_setbuffers()
1143 hwwrite(vortex->mmio, VORTEX_ADBDMA_BUFCFG0 + (adbdma << 3), dma->cfg0); in vortex_adbdma_setbuffers()
1144 hwwrite(vortex->mmio, VORTEX_ADBDMA_BUFCFG1 + (adbdma << 3), dma->cfg1); in vortex_adbdma_setbuffers()
1146 vortex_adbdma_setfirstbuffer(vortex, adbdma); in vortex_adbdma_setbuffers()
1147 vortex_adbdma_setstartbuffer(vortex, adbdma, 0); in vortex_adbdma_setbuffers()
1151 vortex_adbdma_setmode(vortex_t * vortex, int adbdma, int ie, int dir, in vortex_adbdma_setmode() argument
1154 stream_t *dma = &vortex->dma_adb[adbdma]; in vortex_adbdma_setmode()
1168 hwwrite(vortex->mmio, VORTEX_ADBDMA_CTRL + (adbdma << 2), in vortex_adbdma_setmode()
1170 hwread(vortex->mmio, VORTEX_ADBDMA_CTRL + (adbdma << 2)); in vortex_adbdma_setmode()
1173 static int vortex_adbdma_bufshift(vortex_t * vortex, int adbdma) in vortex_adbdma_bufshift() argument
1175 stream_t *dma = &vortex->dma_adb[adbdma]; in vortex_adbdma_bufshift()
1179 (hwread(vortex->mmio, VORTEX_ADBDMA_STAT + (adbdma << 2)) & in vortex_adbdma_bufshift()
1203 hwwrite(vortex->mmio, in vortex_adbdma_bufshift()
1208 hwread(vortex->mmio, VORTEX_ADBDMA_BUFBASE + in vortex_adbdma_bufshift()
1217 dev_info(vortex->card->dev, in vortex_adbdma_bufshift()
1225 static void vortex_adbdma_resetup(vortex_t *vortex, int adbdma) { in vortex_adbdma_resetup() argument
1226 stream_t *dma = &vortex->dma_adb[adbdma]; in vortex_adbdma_resetup()
1245 hwwrite(vortex->mmio, in vortex_adbdma_resetup()
1250 hwread(vortex->mmio, VORTEX_ADBDMA_BUFBASE + (((adbdma << 2)+pp) << 2)); in vortex_adbdma_resetup()
1254 static inline int vortex_adbdma_getlinearpos(vortex_t * vortex, int adbdma) in vortex_adbdma_getlinearpos() argument
1256 stream_t *dma = &vortex->dma_adb[adbdma]; in vortex_adbdma_getlinearpos()
1259 temp = hwread(vortex->mmio, VORTEX_ADBDMA_STAT + (adbdma << 2)); in vortex_adbdma_getlinearpos()
1272 static void vortex_adbdma_startfifo(vortex_t * vortex, int adbdma) in vortex_adbdma_startfifo() argument
1275 stream_t *dma = &vortex->dma_adb[adbdma]; in vortex_adbdma_startfifo()
1279 vortex_fifo_setadbvalid(vortex, adbdma, in vortex_adbdma_startfifo()
1284 hwwrite(vortex->mmio, VORTEX_ADBDMA_CTRL + (adbdma << 2), in vortex_adbdma_startfifo()
1286 vortex_fifo_setadbctrl(vortex, adbdma, dma->dma_unknown, in vortex_adbdma_startfifo()
1291 vortex_fifo_setadbctrl(vortex, adbdma, dma->dma_unknown, in vortex_adbdma_startfifo()
1299 static void vortex_adbdma_resumefifo(vortex_t * vortex, int adbdma) in vortex_adbdma_resumefifo() argument
1301 stream_t *dma = &vortex->dma_adb[adbdma]; in vortex_adbdma_resumefifo()
1306 hwwrite(vortex->mmio, VORTEX_ADBDMA_CTRL + (adbdma << 2), in vortex_adbdma_resumefifo()
1308 vortex_fifo_setadbctrl(vortex, adbdma, dma->dma_unknown, in vortex_adbdma_resumefifo()
1313 vortex_fifo_setadbctrl(vortex, adbdma, dma->dma_unknown, in vortex_adbdma_resumefifo()
1321 static void vortex_adbdma_pausefifo(vortex_t * vortex, int adbdma) in vortex_adbdma_pausefifo() argument
1323 stream_t *dma = &vortex->dma_adb[adbdma]; in vortex_adbdma_pausefifo()
1328 vortex_fifo_setadbctrl(vortex, adbdma, dma->dma_unknown, in vortex_adbdma_pausefifo()
1332 hwwrite(vortex->mmio, VORTEX_ADBDMA_CTRL + (adbdma << 2), in vortex_adbdma_pausefifo()
1334 vortex_fifo_setadbctrl(vortex, adbdma, dma->dma_unknown, in vortex_adbdma_pausefifo()
1341 static void vortex_adbdma_stopfifo(vortex_t * vortex, int adbdma) in vortex_adbdma_stopfifo() argument
1343 stream_t *dma = &vortex->dma_adb[adbdma]; in vortex_adbdma_stopfifo()
1347 vortex_fifo_setadbctrl(vortex, adbdma, dma->dma_unknown, in vortex_adbdma_stopfifo()
1358 static void vortex_wtdma_setfirstbuffer(vortex_t * vortex, int wtdma) in vortex_wtdma_setfirstbuffer() argument
1361 stream_t *dma = &vortex->dma_wt[wtdma]; in vortex_wtdma_setfirstbuffer()
1363 hwwrite(vortex->mmio, VORTEX_WTDMA_CTRL + (wtdma << 2), dma->dma_ctrl); in vortex_wtdma_setfirstbuffer()
1366 static void vortex_wtdma_setstartbuffer(vortex_t * vortex, int wtdma, int sb) in vortex_wtdma_setstartbuffer() argument
1368 stream_t *dma = &vortex->dma_wt[wtdma]; in vortex_wtdma_setstartbuffer()
1370 hwwrite(vortex->mmio, VORTEX_WTDMA_START + (wtdma << 2), in vortex_wtdma_setstartbuffer()
1376 vortex_wtdma_setbuffers(vortex_t * vortex, int wtdma, in vortex_wtdma_setbuffers() argument
1379 stream_t *dma = &vortex->dma_wt[wtdma]; in vortex_wtdma_setbuffers()
1391 hwwrite(vortex->mmio, VORTEX_WTDMA_BUFBASE + (wtdma << 4) + 0xc, in vortex_wtdma_setbuffers()
1397 hwwrite(vortex->mmio, VORTEX_WTDMA_BUFBASE + (wtdma << 4) + 0x8, in vortex_wtdma_setbuffers()
1402 hwwrite(vortex->mmio, VORTEX_WTDMA_BUFBASE + (wtdma << 4) + 0x4, in vortex_wtdma_setbuffers()
1407 hwwrite(vortex->mmio, VORTEX_WTDMA_BUFBASE + (wtdma << 4), in vortex_wtdma_setbuffers()
1411 hwwrite(vortex->mmio, VORTEX_WTDMA_BUFCFG0 + (wtdma << 3), dma->cfg0); in vortex_wtdma_setbuffers()
1412 hwwrite(vortex->mmio, VORTEX_WTDMA_BUFCFG1 + (wtdma << 3), dma->cfg1); in vortex_wtdma_setbuffers()
1414 vortex_wtdma_setfirstbuffer(vortex, wtdma); in vortex_wtdma_setbuffers()
1415 vortex_wtdma_setstartbuffer(vortex, wtdma, 0); in vortex_wtdma_setbuffers()
1419 vortex_wtdma_setmode(vortex_t * vortex, int wtdma, int ie, int fmt, int d, in vortex_wtdma_setmode() argument
1422 stream_t *dma = &vortex->dma_wt[wtdma]; in vortex_wtdma_setmode()
1438 hwwrite(vortex->mmio, VORTEX_WTDMA_CTRL + (wtdma << 2), dma->dma_ctrl); in vortex_wtdma_setmode()
1441 static int vortex_wtdma_bufshift(vortex_t * vortex, int wtdma) in vortex_wtdma_bufshift() argument
1443 stream_t *dma = &vortex->dma_wt[wtdma]; in vortex_wtdma_bufshift()
1447 (hwread(vortex->mmio, VORTEX_WTDMA_STAT + (wtdma << 2)) & in vortex_wtdma_bufshift()
1471 hwwrite(vortex->mmio, in vortex_wtdma_bufshift()
1477 hwread(vortex->mmio, VORTEX_WTDMA_BUFBASE + in vortex_wtdma_bufshift()
1487 dev_warn(vortex->card->dev, "wt virt = %d, delta = %d\n", in vortex_wtdma_bufshift()
1495 vortex_wtdma_getposition(vortex_t * vortex, int wtdma, int *subbuf, int *pos)
1498 temp = hwread(vortex->mmio, VORTEX_WTDMA_STAT + (wtdma << 2));
1503 static int vortex_wtdma_getcursubuffer(vortex_t * vortex, int wtdma)
1505 return ((hwread(vortex->mmio, VORTEX_WTDMA_STAT + (wtdma << 2)) >>
1509 static inline int vortex_wtdma_getlinearpos(vortex_t * vortex, int wtdma) in vortex_wtdma_getlinearpos() argument
1511 stream_t *dma = &vortex->dma_wt[wtdma]; in vortex_wtdma_getlinearpos()
1514 temp = hwread(vortex->mmio, VORTEX_WTDMA_STAT + (wtdma << 2)); in vortex_wtdma_getlinearpos()
1519 static void vortex_wtdma_startfifo(vortex_t * vortex, int wtdma) in vortex_wtdma_startfifo() argument
1521 stream_t *dma = &vortex->dma_wt[wtdma]; in vortex_wtdma_startfifo()
1526 vortex_fifo_setwtvalid(vortex, wtdma, in vortex_wtdma_startfifo()
1531 hwwrite(vortex->mmio, VORTEX_WTDMA_CTRL + (wtdma << 2), in vortex_wtdma_startfifo()
1533 vortex_fifo_setwtctrl(vortex, wtdma, dma->dma_unknown, in vortex_wtdma_startfifo()
1538 vortex_fifo_setwtctrl(vortex, wtdma, dma->dma_unknown, in vortex_wtdma_startfifo()
1546 static void vortex_wtdma_resumefifo(vortex_t * vortex, int wtdma) in vortex_wtdma_resumefifo() argument
1548 stream_t *dma = &vortex->dma_wt[wtdma]; in vortex_wtdma_resumefifo()
1553 hwwrite(vortex->mmio, VORTEX_WTDMA_CTRL + (wtdma << 2), in vortex_wtdma_resumefifo()
1555 vortex_fifo_setwtctrl(vortex, wtdma, dma->dma_unknown, in vortex_wtdma_resumefifo()
1560 vortex_fifo_setwtctrl(vortex, wtdma, dma->dma_unknown, in vortex_wtdma_resumefifo()
1568 static void vortex_wtdma_pausefifo(vortex_t * vortex, int wtdma) in vortex_wtdma_pausefifo() argument
1570 stream_t *dma = &vortex->dma_wt[wtdma]; in vortex_wtdma_pausefifo()
1575 vortex_fifo_setwtctrl(vortex, wtdma, dma->dma_unknown, in vortex_wtdma_pausefifo()
1579 hwwrite(vortex->mmio, VORTEX_WTDMA_CTRL + (wtdma << 2), in vortex_wtdma_pausefifo()
1581 vortex_fifo_setwtctrl(vortex, wtdma, dma->dma_unknown, in vortex_wtdma_pausefifo()
1588 static void vortex_wtdma_stopfifo(vortex_t * vortex, int wtdma) in vortex_wtdma_stopfifo() argument
1590 stream_t *dma = &vortex->dma_wt[wtdma]; in vortex_wtdma_stopfifo()
1594 vortex_fifo_setwtctrl(vortex, wtdma, dma->dma_unknown, in vortex_wtdma_stopfifo()
1606 static void vortex_adb_init(vortex_t * vortex) in vortex_adb_init() argument
1611 hwwrite(vortex->mmio, VORTEX_ADB_SR, 0); in vortex_adb_init()
1613 hwwrite(vortex->mmio, VORTEX_ADB_RTBASE + (i << 2), in vortex_adb_init()
1614 hwread(vortex->mmio, in vortex_adb_init()
1617 hwwrite(vortex->mmio, VORTEX_ADB_CHNBASE + (i << 2), in vortex_adb_init()
1618 hwread(vortex->mmio, in vortex_adb_init()
1623 static void vortex_adb_en_sr(vortex_t * vortex, int channel) in vortex_adb_en_sr() argument
1625 hwwrite(vortex->mmio, VORTEX_ADB_SR, in vortex_adb_en_sr()
1626 hwread(vortex->mmio, VORTEX_ADB_SR) | (0x1 << channel)); in vortex_adb_en_sr()
1629 static void vortex_adb_dis_sr(vortex_t * vortex, int channel) in vortex_adb_dis_sr() argument
1631 hwwrite(vortex->mmio, VORTEX_ADB_SR, in vortex_adb_dis_sr()
1632 hwread(vortex->mmio, VORTEX_ADB_SR) & ~(0x1 << channel)); in vortex_adb_dis_sr()
1636 vortex_adb_addroutes(vortex_t * vortex, unsigned char channel, in vortex_adb_addroutes() argument
1645 hwwrite(vortex->mmio, in vortex_adb_addroutes()
1649 hwwrite(vortex->mmio, in vortex_adb_addroutes()
1656 hwread(vortex->mmio, in vortex_adb_addroutes()
1660 hwwrite(vortex->mmio, VORTEX_ADB_CHNBASE + (channel << 2), in vortex_adb_addroutes()
1662 vortex_adb_en_sr(vortex, channel); in vortex_adb_addroutes()
1669 hwread(vortex->mmio, in vortex_adb_addroutes()
1672 dev_err(vortex->card->dev, in vortex_adb_addroutes()
1679 hwwrite(vortex->mmio, VORTEX_ADB_RTBASE + (prev << 2), route[0]); in vortex_adb_addroutes()
1683 vortex_adb_delroutes(vortex_t * vortex, unsigned char channel, in vortex_adb_delroutes() argument
1690 hwread(vortex->mmio, in vortex_adb_delroutes()
1694 hwread(vortex->mmio, in vortex_adb_delroutes()
1697 vortex_adb_dis_sr(vortex, channel); in vortex_adb_delroutes()
1698 hwwrite(vortex->mmio, VORTEX_ADB_CHNBASE + (channel << 2), in vortex_adb_delroutes()
1705 hwread(vortex->mmio, in vortex_adb_delroutes()
1708 dev_err(vortex->card->dev, in vortex_adb_delroutes()
1715 temp = hwread(vortex->mmio, VORTEX_ADB_RTBASE + (temp << 2)); in vortex_adb_delroutes()
1717 temp = hwread(vortex->mmio, VORTEX_ADB_RTBASE + (temp << 2)); in vortex_adb_delroutes()
1719 hwwrite(vortex->mmio, VORTEX_ADB_RTBASE + (prev << 2), temp); in vortex_adb_delroutes()
1723 vortex_route(vortex_t * vortex, int en, unsigned char channel, in vortex_route() argument
1730 vortex_adb_addroutes(vortex, channel, &route, 1); in vortex_route()
1733 vortex_src_addWTD(vortex, (source - OFFSET_SRCOUT), in vortex_route()
1737 vortex_mixer_addWTD(vortex, in vortex_route()
1740 vortex_adb_delroutes(vortex, channel, route, route); in vortex_route()
1743 vortex_src_delWTD(vortex, (source - OFFSET_SRCOUT), in vortex_route()
1747 vortex_mixer_delWTD(vortex, in vortex_route()
1754 vortex_routes(vortex_t * vortex, int en, unsigned char channel,
1763 vortex_adb_addroutes(vortex, channel, route, 2);
1766 vortex_src_addWTD(vortex, (source - OFFSET_SRCOUT),
1770 vortex_mixer_addWTD(vortex,
1773 vortex_adb_delroutes(vortex, channel, route[0], route[1]);
1776 vortex_src_delWTD(vortex, (source - OFFSET_SRCOUT),
1780 vortex_mixer_delWTD(vortex,
1788 vortex_routeLRT(vortex_t * vortex, int en, unsigned char ch, in vortex_routeLRT() argument
1801 vortex_adb_addroutes(vortex, ch, route, 2); in vortex_routeLRT()
1804 vortex_src_addWTD(vortex, in vortex_routeLRT()
1806 vortex_src_addWTD(vortex, in vortex_routeLRT()
1810 vortex_mixer_addWTD(vortex, in vortex_routeLRT()
1812 vortex_mixer_addWTD(vortex, in vortex_routeLRT()
1816 vortex_adb_delroutes(vortex, ch, route[0], route[1]); in vortex_routeLRT()
1819 vortex_src_delWTD(vortex, in vortex_routeLRT()
1821 vortex_src_delWTD(vortex, in vortex_routeLRT()
1825 vortex_mixer_delWTD(vortex, in vortex_routeLRT()
1827 vortex_mixer_delWTD(vortex, in vortex_routeLRT()
1837 vortex_connection_adbdma_src(vortex_t * vortex, int en, unsigned char ch, in vortex_connection_adbdma_src() argument
1840 vortex_route(vortex, en, ch, ADB_DMA(adbdma), ADB_SRCIN(src)); in vortex_connection_adbdma_src()
1845 vortex_connection_src_mixin(vortex_t * vortex, int en, in vortex_connection_src_mixin() argument
1849 vortex_route(vortex, en, channel, ADB_SRCOUT(src), ADB_MIXIN(mixin)); in vortex_connection_src_mixin()
1854 vortex_connection_mixin_mix(vortex_t * vortex, int en, unsigned char mixin, in vortex_connection_mixin_mix() argument
1858 vortex_mix_enableinput(vortex, mix, mixin); in vortex_connection_mixin_mix()
1859 vortex_mix_setinputvolumebyte(vortex, mix, mixin, MIX_DEFIGAIN); // added to original code. in vortex_connection_mixin_mix()
1861 vortex_mix_disableinput(vortex, mix, mixin, a); in vortex_connection_mixin_mix()
1866 vortex_connection_adb_mixin(vortex_t * vortex, int en, in vortex_connection_adb_mixin() argument
1870 vortex_route(vortex, en, channel, source, ADB_MIXIN(mixin)); in vortex_connection_adb_mixin()
1874 vortex_connection_src_adbdma(vortex_t * vortex, int en, unsigned char ch, in vortex_connection_src_adbdma() argument
1877 vortex_route(vortex, en, ch, ADB_SRCOUT(src), ADB_DMA(adbdma)); in vortex_connection_src_adbdma()
1881 vortex_connection_src_src_adbdma(vortex_t * vortex, int en, in vortex_connection_src_src_adbdma() argument
1886 vortex_routeLRT(vortex, en, ch, ADB_SRCOUT(src0), ADB_SRCOUT(src1), in vortex_connection_src_src_adbdma()
1892 vortex_connection_mix_adb(vortex_t * vortex, int en, unsigned char ch, in vortex_connection_mix_adb() argument
1895 vortex_route(vortex, en, ch, ADB_MIXOUT(mix), dest); in vortex_connection_mix_adb()
1896 vortex_mix_setvolumebyte(vortex, mix, MIX_DEFOGAIN); // added to original code. in vortex_connection_mix_adb()
1901 vortex_connection_mix_src(vortex_t * vortex, int en, unsigned char ch, in vortex_connection_mix_src() argument
1904 vortex_route(vortex, en, ch, ADB_MIXOUT(mix), ADB_SRCIN(src)); in vortex_connection_mix_src()
1905 vortex_mix_setvolumebyte(vortex, mix, MIX_DEFOGAIN); // added to original code. in vortex_connection_mix_src()
1910 vortex_connection_adbdma_src_src(vortex_t * vortex, int en,
1915 vortex_routes(vortex, en, channel, ADB_DMA(adbdma),
1921 vortex_connection_mix_mix_adbdma(vortex_t * vortex, int en,
1935 vortex_adb_addroutes(vortex, ch, routes, 0x2);
1936 vortex_mixer_addWTD(vortex, mix0, ch);
1937 vortex_mixer_addWTD(vortex, mix1, ch);
1939 vortex_adb_delroutes(vortex, ch, routes[0], routes[1]);
1940 vortex_mixer_delWTD(vortex, mix0, ch);
1941 vortex_mixer_delWTD(vortex, mix1, ch);
1949 vortex_connect_codecplay(vortex_t * vortex, int en, unsigned char mixers[]) in vortex_connect_codecplay() argument
1952 vortex_connection_mix_adb(vortex, en, 0x11, mixers[0], ADB_CODECOUT(0)); in vortex_connect_codecplay()
1953 vortex_connection_mix_adb(vortex, en, 0x11, mixers[1], ADB_CODECOUT(1)); in vortex_connect_codecplay()
1957 vortex_connection_mix_adb(vortex, en, 0x11, mixers[0], ADB_EQIN(0)); in vortex_connect_codecplay()
1958 vortex_connection_mix_adb(vortex, en, 0x11, mixers[1], ADB_EQIN(1)); in vortex_connect_codecplay()
1960 vortex_mix_setvolumebyte(vortex, mixers[0], 0); in vortex_connect_codecplay()
1961 vortex_mix_setvolumebyte(vortex, mixers[1], 0); in vortex_connect_codecplay()
1962 vortex_route(vortex, en, 0x11, ADB_EQOUT(0), ADB_CODECOUT(0)); in vortex_connect_codecplay()
1963 vortex_route(vortex, en, 0x11, ADB_EQOUT(1), ADB_CODECOUT(1)); in vortex_connect_codecplay()
1966 if (VORTEX_IS_QUAD(vortex)) { in vortex_connect_codecplay()
1968 vortex_connection_mix_adb(vortex, en, 0x11, mixers[2], in vortex_connect_codecplay()
1970 vortex_connection_mix_adb(vortex, en, 0x11, mixers[3], in vortex_connect_codecplay()
1976 vortex_connection_mix_adb(vortex, en, 0x11, mixers[0], ADB_CODECOUT(0)); in vortex_connect_codecplay()
1977 vortex_connection_mix_adb(vortex, en, 0x11, mixers[1], ADB_CODECOUT(1)); in vortex_connect_codecplay()
1983 vortex_connect_codecrec(vortex_t * vortex, int en, unsigned char mixin0, in vortex_connect_codecrec() argument
1992 vortex_connection_adb_mixin(vortex, en, 0x11, ADB_CODECIN(0), mixin0); in vortex_connect_codecrec()
1993 vortex_connection_adb_mixin(vortex, en, 0x11, ADB_CODECIN(1), mixin1); in vortex_connect_codecrec()
2009 vortex_adb_checkinout(vortex_t * vortex, int resmap[], int out, int restype) in vortex_adb_checkinout() argument
2016 resinuse |= vortex->dma_adb[i].resources[restype]; in vortex_adb_checkinout()
2018 resinuse |= vortex->fixed_res[restype]; in vortex_adb_checkinout()
2025 vortex->dma_adb[i].resources[restype] |= (1 << i); in vortex_adb_checkinout()
2050 dev_err(vortex->card->dev, in vortex_adb_checkinout()
2058 static void vortex_connect_default(vortex_t * vortex, int en) in vortex_connect_default() argument
2061 vortex->mixplayb[0] = vortex_adb_checkinout(vortex, vortex->fixed_res, en, in vortex_connect_default()
2063 vortex->mixplayb[1] = vortex_adb_checkinout(vortex, vortex->fixed_res, en, in vortex_connect_default()
2065 if (VORTEX_IS_QUAD(vortex)) { in vortex_connect_default()
2066 vortex->mixplayb[2] = vortex_adb_checkinout(vortex, vortex->fixed_res, en, in vortex_connect_default()
2068 vortex->mixplayb[3] = vortex_adb_checkinout(vortex, vortex->fixed_res, en, in vortex_connect_default()
2071 vortex_connect_codecplay(vortex, en, vortex->mixplayb); in vortex_connect_default()
2073 vortex->mixcapt[0] = vortex_adb_checkinout(vortex, vortex->fixed_res, en, in vortex_connect_default()
2075 vortex->mixcapt[1] = vortex_adb_checkinout(vortex, vortex->fixed_res, en, in vortex_connect_default()
2077 vortex_connect_codecrec(vortex, en, MIX_CAPT(0), MIX_CAPT(1)); in vortex_connect_default()
2081 vortex->mixspdif[0] = vortex_adb_checkinout(vortex, vortex->fixed_res, en, in vortex_connect_default()
2083 vortex->mixspdif[1] = vortex_adb_checkinout(vortex, vortex->fixed_res, en, in vortex_connect_default()
2085 vortex_connection_mix_adb(vortex, en, 0x14, vortex->mixspdif[0], in vortex_connect_default()
2087 vortex_connection_mix_adb(vortex, en, 0x14, vortex->mixspdif[1], in vortex_connect_default()
2092 vortex_wt_connect(vortex, en); in vortex_connect_default()
2096 vortex_Vort3D_connect(vortex, en); in vortex_connect_default()
2116 vortex_adb_allocroute(vortex_t *vortex, int dma, int nr_ch, int dir, in vortex_adb_allocroute() argument
2125 vortex_adb_checkinout(vortex, in vortex_adb_allocroute()
2126 vortex->dma_adb[dma].resources, en, in vortex_adb_allocroute()
2131 vortex_adb_checkinout(vortex, NULL, en, in vortex_adb_allocroute()
2136 stream = &vortex->dma_adb[dma]; in vortex_adb_allocroute()
2150 if ((src[i] = vortex_adb_checkinout(vortex, in vortex_adb_allocroute()
2159 if ((mix[i] = vortex_adb_checkinout(vortex, in vortex_adb_allocroute()
2174 vortex_adb_checkinout(vortex, in vortex_adb_allocroute()
2180 dev_err(vortex->card->dev, in vortex_adb_allocroute()
2185 vortex_Vort3D_InitializeSource(&vortex->a3d[a3d], en, in vortex_adb_allocroute()
2186 vortex); in vortex_adb_allocroute()
2190 vortex_route(vortex, 0, 0x14, in vortex_adb_allocroute()
2191 ADB_MIXOUT(vortex->mixspdif[0]), in vortex_adb_allocroute()
2193 vortex_route(vortex, 0, 0x14, in vortex_adb_allocroute()
2194 ADB_MIXOUT(vortex->mixspdif[1]), in vortex_adb_allocroute()
2201 vortex_connection_adbdma_src(vortex, en, in vortex_adb_allocroute()
2205 vortex_connection_src_mixin(vortex, en, in vortex_adb_allocroute()
2208 vortex_connection_mixin_mix(vortex, en, in vortex_adb_allocroute()
2212 vortex_connection_mixin_mix(vortex, en, in vortex_adb_allocroute()
2215 vortex_mix_setinputvolumebyte(vortex, in vortex_adb_allocroute()
2223 vortex_connection_adbdma_src(vortex, en, in vortex_adb_allocroute()
2227 vortex_route(vortex, en, 0x11, ADB_SRCOUT(src[i]), ADB_A3DIN(a3d)); in vortex_adb_allocroute()
2233 vortex_route(vortex, en, 0x14, in vortex_adb_allocroute()
2239 ch_top = (VORTEX_IS_QUAD(vortex) ? 4 : 2); in vortex_adb_allocroute()
2241 vortex_connection_mixin_mix(vortex, en, in vortex_adb_allocroute()
2245 vortex_connection_mixin_mix(vortex, en, in vortex_adb_allocroute()
2249 vortex_mix_setinputvolumebyte(vortex, in vortex_adb_allocroute()
2256 p = &vortex->pcm_vol[subdev]; in vortex_adb_allocroute()
2267 vortex_route(vortex, en, 0x14, in vortex_adb_allocroute()
2273 vortex_route(vortex, 1, 0x14, in vortex_adb_allocroute()
2274 ADB_MIXOUT(vortex->mixspdif[0]), in vortex_adb_allocroute()
2276 vortex_route(vortex, 1, 0x14, in vortex_adb_allocroute()
2277 ADB_MIXOUT(vortex->mixspdif[1]), in vortex_adb_allocroute()
2288 vortex_adb_checkinout(vortex, in vortex_adb_allocroute()
2298 vortex_adb_checkinout(vortex, in vortex_adb_allocroute()
2309 vortex_connection_mixin_mix(vortex, en, MIX_CAPT(0), mix[0], 0); in vortex_adb_allocroute()
2310 vortex_connection_mix_src(vortex, en, 0x11, mix[0], src[0]); in vortex_adb_allocroute()
2312 vortex_connection_mixin_mix(vortex, en, in vortex_adb_allocroute()
2314 vortex_connection_src_adbdma(vortex, en, in vortex_adb_allocroute()
2318 vortex_connection_mixin_mix(vortex, en, in vortex_adb_allocroute()
2320 vortex_connection_mix_src(vortex, en, 0x11, mix[1], in vortex_adb_allocroute()
2322 vortex_connection_src_src_adbdma(vortex, en, in vortex_adb_allocroute()
2327 vortex->dma_adb[dma].nr_ch = nr_ch; in vortex_adb_allocroute()
2333 snd_ac97_write_cache(vortex->codec, in vortex_adb_allocroute()
2335 snd_ac97_read(vortex->codec, in vortex_adb_allocroute()
2340 snd_ac97_write_cache(vortex->codec, in vortex_adb_allocroute()
2342 snd_ac97_read(vortex->codec, in vortex_adb_allocroute()
2355 vortex_adb_setsrc(vortex_t * vortex, int adbdma, unsigned int rate, int dir) in vortex_adb_setsrc() argument
2357 stream_t *stream = &(vortex->dma_adb[adbdma]); in vortex_adb_setsrc()
2369 vortex_src_setupchannel(vortex, i, cvrt, 0, 0, i, dir, 1, cvrt, dir); in vortex_adb_setsrc()
2375 static void vortex_settimer(vortex_t * vortex, int period) in vortex_settimer() argument
2378 hwwrite(vortex->mmio, VORTEX_IRQ_STAT, period); in vortex_settimer()
2412 vortex_t *vortex = dev_id; in vortex_interrupt() local
2417 if (!(hwread(vortex->mmio, VORTEX_STAT) & 0x1)) in vortex_interrupt()
2421 if (!(hwread(vortex->mmio, VORTEX_CTRL) & CTRL_IRQ_ENABLE)) in vortex_interrupt()
2424 source = hwread(vortex->mmio, VORTEX_IRQ_SOURCE); in vortex_interrupt()
2426 hwwrite(vortex->mmio, VORTEX_IRQ_SOURCE, source); in vortex_interrupt()
2427 hwread(vortex->mmio, VORTEX_IRQ_SOURCE); in vortex_interrupt()
2430 dev_err(vortex->card->dev, "missing irq source\n"); in vortex_interrupt()
2438 dev_err(vortex->card->dev, "IRQ fatal error\n"); in vortex_interrupt()
2441 dev_err(vortex->card->dev, "IRQ parity error\n"); in vortex_interrupt()
2444 dev_err(vortex->card->dev, "IRQ reg error\n"); in vortex_interrupt()
2447 dev_err(vortex->card->dev, "IRQ fifo error\n"); in vortex_interrupt()
2450 dev_err(vortex->card->dev, "IRQ dma error\n"); in vortex_interrupt()
2456 spin_lock(&vortex->lock); in vortex_interrupt()
2458 if (vortex->dma_adb[i].fifo_status == FIFO_START) { in vortex_interrupt()
2459 if (!vortex_adbdma_bufshift(vortex, i)) in vortex_interrupt()
2461 spin_unlock(&vortex->lock); in vortex_interrupt()
2462 snd_pcm_period_elapsed(vortex->dma_adb[i]. in vortex_interrupt()
2464 spin_lock(&vortex->lock); in vortex_interrupt()
2469 if (vortex->dma_wt[i].fifo_status == FIFO_START) { in vortex_interrupt()
2475 vortex_wtdma_bufshift(vortex, i); in vortex_interrupt()
2476 spin_unlock(&vortex->lock); in vortex_interrupt()
2477 snd_pcm_period_elapsed(vortex->dma_wt[i]. in vortex_interrupt()
2479 spin_lock(&vortex->lock); in vortex_interrupt()
2483 spin_unlock(&vortex->lock); in vortex_interrupt()
2488 hwread(vortex->mmio, VORTEX_IRQ_STAT); in vortex_interrupt()
2491 if ((source & IRQ_MIDI) && vortex->rmidi) { in vortex_interrupt()
2492 snd_mpu401_uart_interrupt(vortex->irq, in vortex_interrupt()
2493 vortex->rmidi->private_data); in vortex_interrupt()
2498 dev_err(vortex->card->dev, "unknown irq source %x\n", source); in vortex_interrupt()
2506 static void vortex_codec_init(vortex_t * vortex) in vortex_codec_init() argument
2512 hwwrite(vortex->mmio, (VORTEX_CODEC_CHN + (i << 2)), -i); in vortex_codec_init()
2516 hwwrite(vortex->mmio, VORTEX_CODEC_CTRL, 0x8068); in vortex_codec_init()
2518 hwwrite(vortex->mmio, VORTEX_CODEC_CTRL, 0x00e8); in vortex_codec_init()
2521 hwwrite(vortex->mmio, VORTEX_CODEC_CTRL, 0x00a8); in vortex_codec_init()
2523 hwwrite(vortex->mmio, VORTEX_CODEC_CTRL, 0x80a8); in vortex_codec_init()
2525 hwwrite(vortex->mmio, VORTEX_CODEC_CTRL, 0x80e8); in vortex_codec_init()
2527 hwwrite(vortex->mmio, VORTEX_CODEC_CTRL, 0x80a8); in vortex_codec_init()
2529 hwwrite(vortex->mmio, VORTEX_CODEC_CTRL, 0x00a8); in vortex_codec_init()
2531 hwwrite(vortex->mmio, VORTEX_CODEC_CTRL, 0x00e8); in vortex_codec_init()
2534 hwwrite(vortex->mmio, (VORTEX_CODEC_CHN + (i << 2)), -i); in vortex_codec_init()
2537 hwwrite(vortex->mmio, VORTEX_CODEC_CTRL, 0xe8); in vortex_codec_init()
2540 hwwrite(vortex->mmio, VORTEX_CODEC_EN, in vortex_codec_init()
2541 hwread(vortex->mmio, VORTEX_CODEC_EN) | EN_CODEC); in vortex_codec_init()
2608 static void vortex_spdif_init(vortex_t * vortex, int spdif_sr, int spdif_mode) in vortex_spdif_init() argument
2613 hwwrite(vortex->mmio, VORTEX_SPDIF_FLAGS, in vortex_spdif_init()
2614 hwread(vortex->mmio, VORTEX_SPDIF_FLAGS) & 0xfff3fffd); in vortex_spdif_init()
2617 hwwrite(vortex->mmio, VORTEX_SPDIF_CFG1 + (i << 2), 0); in vortex_spdif_init()
2619 hwwrite(vortex->mmio, VORTEX_CODEC_EN, in vortex_spdif_init()
2620 hwread(vortex->mmio, VORTEX_CODEC_EN) | EN_SPDIF); in vortex_spdif_init()
2636 vortex_src_setupchannel(vortex, this_04, edi, 0, 1, in vortex_spdif_init()
2638 vortex_src_setupchannel(vortex, this_08, edi, 0, 1, in vortex_spdif_init()
2683 hwwrite(vortex->mmio, VORTEX_SPDIF_CFG0, this_38 & 0xffff); in vortex_spdif_init()
2684 hwwrite(vortex->mmio, VORTEX_SPDIF_CFG1, this_38 >> 0x10); in vortex_spdif_init()
2685 hwwrite(vortex->mmio, VORTEX_SPDIF_SMPRATE, spdif_sr); in vortex_spdif_init()
2690 static int vortex_core_init(vortex_t *vortex) in vortex_core_init() argument
2693 dev_info(vortex->card->dev, "init started\n"); in vortex_core_init()
2695 hwwrite(vortex->mmio, VORTEX_CTRL, 0xffffffff); in vortex_core_init()
2697 hwwrite(vortex->mmio, VORTEX_CTRL, in vortex_core_init()
2698 hwread(vortex->mmio, VORTEX_CTRL) & 0xffdfffff); in vortex_core_init()
2701 hwwrite(vortex->mmio, VORTEX_IRQ_SOURCE, 0xffffffff); in vortex_core_init()
2702 hwread(vortex->mmio, VORTEX_IRQ_STAT); in vortex_core_init()
2704 vortex_codec_init(vortex); in vortex_core_init()
2707 hwwrite(vortex->mmio, VORTEX_CTRL, in vortex_core_init()
2708 hwread(vortex->mmio, VORTEX_CTRL) | 0x1000000); in vortex_core_init()
2712 vortex_adbdma_init(vortex); in vortex_core_init()
2713 hwwrite(vortex->mmio, VORTEX_ENGINE_CTRL, 0x0); //, 0xc83c7e58, 0xc5f93e58 in vortex_core_init()
2714 vortex_adb_init(vortex); in vortex_core_init()
2716 vortex_fifo_init(vortex); in vortex_core_init()
2717 vortex_mixer_init(vortex); in vortex_core_init()
2718 vortex_srcblock_init(vortex); in vortex_core_init()
2720 vortex_eq_init(vortex); in vortex_core_init()
2721 vortex_spdif_init(vortex, 48000, 1); in vortex_core_init()
2722 vortex_Vort3D_enable(vortex); in vortex_core_init()
2725 vortex_wt_init(vortex); in vortex_core_init()
2730 vortex_settimer(vortex, 0x90); in vortex_core_init()
2738 dev_info(vortex->card->dev, "init.... done.\n"); in vortex_core_init()
2739 spin_lock_init(&vortex->lock); in vortex_core_init()
2744 static int vortex_core_shutdown(vortex_t * vortex) in vortex_core_shutdown() argument
2747 dev_info(vortex->card->dev, "shutdown started\n"); in vortex_core_shutdown()
2749 vortex_eq_free(vortex); in vortex_core_shutdown()
2750 vortex_Vort3D_disable(vortex); in vortex_core_shutdown()
2753 vortex_disable_int(vortex); in vortex_core_shutdown()
2754 vortex_connect_default(vortex, 0); in vortex_core_shutdown()
2756 vortex_fifo_init(vortex); in vortex_core_shutdown()
2758 vortex_adb_init(vortex); in vortex_core_shutdown()
2764 hwwrite(vortex->mmio, VORTEX_IRQ_CTRL, 0); in vortex_core_shutdown()
2765 hwwrite(vortex->mmio, VORTEX_CTRL, 0); in vortex_core_shutdown()
2767 hwwrite(vortex->mmio, VORTEX_IRQ_SOURCE, 0xffff); in vortex_core_shutdown()
2769 dev_info(vortex->card->dev, "shutdown.... done.\n"); in vortex_core_shutdown()
2822 vortex_translateformat(vortex_t * vortex, char bits, char nch, int encod)
2862 static void vortex_cdmacore_setformat(vortex_t * vortex, int bits, int nch)