Lines Matching refs:vortex
25 static void vortex_fifo_setwtvalid(vortex_t * vortex, int fifo, int en);
26 static void vortex_connection_adb_mixin(vortex_t * vortex, int en,
30 static void vortex_connection_mixin_mix(vortex_t * vortex, int en,
33 static void vortex_fifo_wtinitialize(vortex_t * vortex, int fifo, int j);
34 static int vortex_wt_SetReg(vortex_t * vortex, unsigned char reg, int wt,
40 static void vortex_wt_setstereo(vortex_t * vortex, u32 wt, u32 stereo) in vortex_wt_setstereo() argument
45 temp = hwread(vortex->mmio, WT_STEREO(wt)); in vortex_wt_setstereo()
48 hwwrite(vortex->mmio, WT_STEREO(wt), temp); in vortex_wt_setstereo()
52 static void vortex_wt_setdsout(vortex_t * vortex, u32 wt, int en) in vortex_wt_setdsout() argument
57 temp = hwread(vortex->mmio, WT_DSREG((wt >= 0x20) ? 1 : 0)); in vortex_wt_setdsout()
62 hwwrite(vortex->mmio, WT_DSREG((wt >= 0x20) ? 1 : 0), temp); in vortex_wt_setdsout()
66 static int vortex_wt_allocroute(vortex_t * vortex, int wt, int nr_ch) in vortex_wt_allocroute() argument
68 wt_voice_t *voice = &(vortex->wt_voice[wt]); in vortex_wt_allocroute()
73 vortex_fifo_wtinitialize(vortex, wt, 1); in vortex_wt_allocroute()
74 vortex_fifo_setwtvalid(vortex, wt, 1); in vortex_wt_allocroute()
75 vortex_wt_setstereo(vortex, wt, nr_ch - 1); in vortex_wt_allocroute()
77 vortex_fifo_setwtvalid(vortex, wt, 0); in vortex_wt_allocroute()
80 vortex_wt_setdsout(vortex, wt, 1); in vortex_wt_allocroute()
82 hwwrite(vortex->mmio, WT_SRAMP(0), 0x880000); in vortex_wt_allocroute()
85 hwwrite(vortex->mmio, WT_SRAMP(1), 0x880000); in vortex_wt_allocroute()
88 hwwrite(vortex->mmio, WT_PARM(wt, 0), 0); in vortex_wt_allocroute()
89 hwwrite(vortex->mmio, WT_PARM(wt, 1), 0); in vortex_wt_allocroute()
90 hwwrite(vortex->mmio, WT_PARM(wt, 2), 0); in vortex_wt_allocroute()
92 temp = hwread(vortex->mmio, WT_PARM(wt, 3)); in vortex_wt_allocroute()
93 dev_dbg(vortex->card->dev, "WT PARM3: %x\n", temp); in vortex_wt_allocroute()
96 hwwrite(vortex->mmio, WT_DELAY(wt, 0), 0); in vortex_wt_allocroute()
97 hwwrite(vortex->mmio, WT_DELAY(wt, 1), 0); in vortex_wt_allocroute()
98 hwwrite(vortex->mmio, WT_DELAY(wt, 2), 0); in vortex_wt_allocroute()
99 hwwrite(vortex->mmio, WT_DELAY(wt, 3), 0); in vortex_wt_allocroute()
101 dev_dbg(vortex->card->dev, "WT GMODE: %x\n", in vortex_wt_allocroute()
102 hwread(vortex->mmio, WT_GMODE(wt))); in vortex_wt_allocroute()
104 hwwrite(vortex->mmio, WT_PARM(wt, 2), 0xffffffff); in vortex_wt_allocroute()
105 hwwrite(vortex->mmio, WT_PARM(wt, 3), 0xcff1c810); in vortex_wt_allocroute()
108 hwwrite(vortex->mmio, WT_PARM(wt, 0), voice->parm0); in vortex_wt_allocroute()
109 hwwrite(vortex->mmio, WT_PARM(wt, 1), voice->parm1); in vortex_wt_allocroute()
110 dev_dbg(vortex->card->dev, "WT GMODE 2 : %x\n", in vortex_wt_allocroute()
111 hwread(vortex->mmio, WT_GMODE(wt))); in vortex_wt_allocroute()
116 static void vortex_wt_connect(vortex_t * vortex, int en) in vortex_wt_connect() argument
130 vortex_adb_checkinout(vortex, in vortex_wt_connect()
131 vortex->fixed_res, en, in vortex_wt_connect()
133 vortex->mixwt[(i * NR_WTROUTES) + ii] = mix; in vortex_wt_connect()
135 vortex_route(vortex, en, 0x11, in vortex_wt_connect()
138 vortex_connection_mixin_mix(vortex, en, mix, in vortex_wt_connect()
139 vortex->mixplayb[ii % 2], 0); in vortex_wt_connect()
140 if (VORTEX_IS_QUAD(vortex)) in vortex_wt_connect()
141 vortex_connection_mixin_mix(vortex, en, in vortex_wt_connect()
143 vortex->mixplayb[2 + in vortex_wt_connect()
148 hwwrite(vortex->mmio, WT_RUN(i), 1); in vortex_wt_connect()
154 static int vortex_wt_GetReg(vortex_t * vortex, char reg, int wt)
159 return hwread(vortex->mmio, WT_PARM(wt, 3));
162 return hwread(vortex->mmio, WT_GMODE(wt));
170 vortex_wt_SetReg2(vortex_t * vortex, unsigned char reg, int wt,
194 vortex_wt_SetReg(vortex_t * vortex, unsigned char reg, int wt, in vortex_wt_SetReg() argument
201 dev_warn(vortex->card->dev, in vortex_wt_SetReg()
208 dev_err(vortex->card->dev, in vortex_wt_SetReg()
223 hwwrite(vortex->mmio, WT_RUN(wt), val); in vortex_wt_SetReg()
230 hwwrite(vortex->mmio, WT_PARM(wt, 0), val); in vortex_wt_SetReg()
237 hwwrite(vortex->mmio, WT_PARM(wt, 1), val); in vortex_wt_SetReg()
244 hwwrite(vortex->mmio, WT_PARM(wt, 2), val); in vortex_wt_SetReg()
251 hwwrite(vortex->mmio, WT_PARM(wt, 3), val); in vortex_wt_SetReg()
258 hwwrite(vortex->mmio, WT_MUTE(wt), val); in vortex_wt_SetReg()
266 hwwrite(vortex->mmio, WT_DELAY(wt, 3), val); in vortex_wt_SetReg()
267 hwwrite(vortex->mmio, WT_DELAY(wt, 2), val); in vortex_wt_SetReg()
268 hwwrite(vortex->mmio, WT_DELAY(wt, 1), val); in vortex_wt_SetReg()
269 hwwrite(vortex->mmio, WT_DELAY(wt, 0), val); in vortex_wt_SetReg()
293 hwwrite(vortex->mmio, ecx, val); in vortex_wt_SetReg()
297 static void vortex_wt_init(vortex_t * vortex) in vortex_wt_init() argument
316 vortex_wt_SetReg(vortex, 0xc, edi, 0); /* ds_reg */ in vortex_wt_init()
317 vortex_wt_SetReg(vortex, 0xa, edi, var10); /* ctrl */ in vortex_wt_init()
318 vortex_wt_SetReg(vortex, 0x9, edi, var4); /* mramp */ in vortex_wt_init()
319 vortex_wt_SetReg(vortex, 0x8, edi, varc); /* aramp */ in vortex_wt_init()
320 vortex_wt_SetReg(vortex, 0x5, edi, var8); /* sramp */ in vortex_wt_init()
324 vortex_wt_SetReg(vortex, 0x4, edi, 0); /* param 3 0x20c */ in vortex_wt_init()
325 vortex_wt_SetReg(vortex, 0x3, edi, 0); /* param 2 0x208 */ in vortex_wt_init()
326 vortex_wt_SetReg(vortex, 0x2, edi, 0); /* param 1 0x204 */ in vortex_wt_init()
327 vortex_wt_SetReg(vortex, 0x1, edi, 0); /* param 0 0x200 */ in vortex_wt_init()
328 vortex_wt_SetReg(vortex, 0xb, edi, 0); /* delay 0x400 - 0x40c */ in vortex_wt_init()
332 vortex_wt_SetReg(vortex, 0xa, edi, var10); /* ctrl */ in vortex_wt_init()
337 static void vortex_wt_SetVolume(vortex_t * vortex, int wt, int vol[])
339 wt_voice_t *voice = &(vortex->wt_voice[wt]);
349 hwwrite(vortex, WT_PARM(wt, 0), voice->parm0);
350 hwwrite(vortex, WT_PARM(wt, 1), voice->parm0);
366 hwwrite(vortex, WT_PARM(wt, 3), voice->parm3);
370 static void vortex_wt_SetFrequency(vortex_t * vortex, int wt, unsigned int sr)
372 wt_voice_t *voice = &(vortex->wt_voice[wt]);
407 hwwrite(vortex->mmio, WT_PARM(wt, 0), voice->parm0);
408 hwwrite(vortex->mmio, WT_PARM(wt, 1), voice->parm1);