Lines Matching refs:emu

21 unsigned int snd_emu10k1_ptr_read(struct snd_emu10k1 * emu, unsigned int reg, unsigned int chn)
27 mask = emu->audigy ? A_PTR_ADDRESS_MASK : PTR_ADDRESS_MASK;
37 spin_lock_irqsave(&emu->emu_lock, flags);
38 outl(regptr, emu->port + PTR);
39 val = inl(emu->port + DATA);
40 spin_unlock_irqrestore(&emu->emu_lock, flags);
44 spin_lock_irqsave(&emu->emu_lock, flags);
45 outl(regptr, emu->port + PTR);
46 val = inl(emu->port + DATA);
47 spin_unlock_irqrestore(&emu->emu_lock, flags);
54 void snd_emu10k1_ptr_write(struct snd_emu10k1 *emu, unsigned int reg, unsigned int chn, unsigned int data)
60 if (snd_BUG_ON(!emu))
62 mask = emu->audigy ? A_PTR_ADDRESS_MASK : PTR_ADDRESS_MASK;
73 spin_lock_irqsave(&emu->emu_lock, flags);
74 outl(regptr, emu->port + PTR);
75 data |= inl(emu->port + DATA) & ~mask;
76 outl(data, emu->port + DATA);
77 spin_unlock_irqrestore(&emu->emu_lock, flags);
79 spin_lock_irqsave(&emu->emu_lock, flags);
80 outl(regptr, emu->port + PTR);
81 outl(data, emu->port + DATA);
82 spin_unlock_irqrestore(&emu->emu_lock, flags);
88 unsigned int snd_emu10k1_ptr20_read(struct snd_emu10k1 * emu,
97 spin_lock_irqsave(&emu->emu_lock, flags);
98 outl(regptr, emu->port + 0x20 + PTR);
99 val = inl(emu->port + 0x20 + DATA);
100 spin_unlock_irqrestore(&emu->emu_lock, flags);
104 void snd_emu10k1_ptr20_write(struct snd_emu10k1 *emu,
114 spin_lock_irqsave(&emu->emu_lock, flags);
115 outl(regptr, emu->port + 0x20 + PTR);
116 outl(data, emu->port + 0x20 + DATA);
117 spin_unlock_irqrestore(&emu->emu_lock, flags);
120 int snd_emu10k1_spi_write(struct snd_emu10k1 * emu,
129 spin_lock(&emu->spi_lock);
130 if (emu->card_capabilities->ca0108_chip)
144 tmp = snd_emu10k1_ptr20_read(emu, reg, 0);
147 snd_emu10k1_ptr20_write(emu, reg, 0, reset | data);
148 tmp = snd_emu10k1_ptr20_read(emu, reg, 0); /* write post */
149 snd_emu10k1_ptr20_write(emu, reg, 0, set | data);
154 tmp = snd_emu10k1_ptr20_read(emu, reg, 0);
165 snd_emu10k1_ptr20_write(emu, reg, 0, reset | data);
166 tmp = snd_emu10k1_ptr20_read(emu, reg, 0); /* Write post */
169 spin_unlock(&emu->spi_lock);
174 int snd_emu10k1_i2c_write(struct snd_emu10k1 *emu,
185 dev_err(emu->card->dev, "i2c_write: invalid values.\n");
190 spin_lock(&emu->i2c_lock);
195 snd_emu10k1_ptr20_write(emu, P17V_I2C_1, 0, tmp);
196 tmp = snd_emu10k1_ptr20_read(emu, P17V_I2C_1, 0); /* write post */
202 snd_emu10k1_ptr20_write(emu, P17V_I2C_ADDR, 0, tmp);
207 status = snd_emu10k1_ptr20_read(emu, P17V_I2C_ADDR, 0);
213 dev_warn(emu->card->dev,
225 dev_err(emu->card->dev, "Writing to ADC failed!\n");
226 dev_err(emu->card->dev, "status=0x%x, reg=%d, value=%d\n",
232 spin_unlock(&emu->i2c_lock);
236 int snd_emu1010_fpga_write(struct snd_emu10k1 * emu, u32 reg, u32 value)
245 spin_lock_irqsave(&emu->emu_lock, flags);
246 outl(reg, emu->port + A_IOCFG);
248 outl(reg | 0x80, emu->port + A_IOCFG); /* High bit clocks the value into the fpga. */
250 outl(value, emu->port + A_IOCFG);
252 outl(value | 0x80 , emu->port + A_IOCFG); /* High bit clocks the value into the fpga. */
253 spin_unlock_irqrestore(&emu->emu_lock, flags);
258 int snd_emu1010_fpga_read(struct snd_emu10k1 * emu, u32 reg, u32 *value)
264 spin_lock_irqsave(&emu->emu_lock, flags);
265 outl(reg, emu->port + A_IOCFG);
267 outl(reg | 0x80, emu->port + A_IOCFG); /* High bit clocks the value into the fpga. */
269 *value = ((inl(emu->port + A_IOCFG) >> 8) & 0x7f);
270 spin_unlock_irqrestore(&emu->emu_lock, flags);
278 int snd_emu1010_fpga_link_dst_src_write(struct snd_emu10k1 * emu, u32 dst, u32 src)
280 snd_emu1010_fpga_write(emu, 0x00, ((dst >> 8) & 0x3f) );
281 snd_emu1010_fpga_write(emu, 0x01, (dst & 0x3f) );
282 snd_emu1010_fpga_write(emu, 0x02, ((src >> 8) & 0x3f) );
283 snd_emu1010_fpga_write(emu, 0x03, (src & 0x3f) );
288 void snd_emu10k1_intr_enable(struct snd_emu10k1 *emu, unsigned int intrenb)
293 spin_lock_irqsave(&emu->emu_lock, flags);
294 enable = inl(emu->port + INTE) | intrenb;
295 outl(enable, emu->port + INTE);
296 spin_unlock_irqrestore(&emu->emu_lock, flags);
299 void snd_emu10k1_intr_disable(struct snd_emu10k1 *emu, unsigned int intrenb)
304 spin_lock_irqsave(&emu->emu_lock, flags);
305 enable = inl(emu->port + INTE) & ~intrenb;
306 outl(enable, emu->port + INTE);
307 spin_unlock_irqrestore(&emu->emu_lock, flags);
310 void snd_emu10k1_voice_intr_enable(struct snd_emu10k1 *emu, unsigned int voicenum)
315 spin_lock_irqsave(&emu->emu_lock, flags);
318 outl(CLIEH << 16, emu->port + PTR);
319 val = inl(emu->port + DATA);
322 outl(CLIEL << 16, emu->port + PTR);
323 val = inl(emu->port + DATA);
326 outl(val, emu->port + DATA);
327 spin_unlock_irqrestore(&emu->emu_lock, flags);
330 void snd_emu10k1_voice_intr_disable(struct snd_emu10k1 *emu, unsigned int voicenum)
335 spin_lock_irqsave(&emu->emu_lock, flags);
338 outl(CLIEH << 16, emu->port + PTR);
339 val = inl(emu->port + DATA);
342 outl(CLIEL << 16, emu->port + PTR);
343 val = inl(emu->port + DATA);
346 outl(val, emu->port + DATA);
347 spin_unlock_irqrestore(&emu->emu_lock, flags);
350 void snd_emu10k1_voice_intr_ack(struct snd_emu10k1 *emu, unsigned int voicenum)
354 spin_lock_irqsave(&emu->emu_lock, flags);
357 outl(CLIPH << 16, emu->port + PTR);
360 outl(CLIPL << 16, emu->port + PTR);
363 outl(voicenum, emu->port + DATA);
364 spin_unlock_irqrestore(&emu->emu_lock, flags);
367 void snd_emu10k1_voice_half_loop_intr_enable(struct snd_emu10k1 *emu, unsigned int voicenum)
372 spin_lock_irqsave(&emu->emu_lock, flags);
375 outl(HLIEH << 16, emu->port + PTR);
376 val = inl(emu->port + DATA);
379 outl(HLIEL << 16, emu->port + PTR);
380 val = inl(emu->port + DATA);
383 outl(val, emu->port + DATA);
384 spin_unlock_irqrestore(&emu->emu_lock, flags);
387 void snd_emu10k1_voice_half_loop_intr_disable(struct snd_emu10k1 *emu, unsigned int voicenum)
392 spin_lock_irqsave(&emu->emu_lock, flags);
395 outl(HLIEH << 16, emu->port + PTR);
396 val = inl(emu->port + DATA);
399 outl(HLIEL << 16, emu->port + PTR);
400 val = inl(emu->port + DATA);
403 outl(val, emu->port + DATA);
404 spin_unlock_irqrestore(&emu->emu_lock, flags);
407 void snd_emu10k1_voice_half_loop_intr_ack(struct snd_emu10k1 *emu, unsigned int voicenum)
411 spin_lock_irqsave(&emu->emu_lock, flags);
414 outl(HLIPH << 16, emu->port + PTR);
417 outl(HLIPL << 16, emu->port + PTR);
420 outl(voicenum, emu->port + DATA);
421 spin_unlock_irqrestore(&emu->emu_lock, flags);
424 void snd_emu10k1_voice_set_loop_stop(struct snd_emu10k1 *emu, unsigned int voicenum)
429 spin_lock_irqsave(&emu->emu_lock, flags);
432 outl(SOLEH << 16, emu->port + PTR);
433 sol = inl(emu->port + DATA);
436 outl(SOLEL << 16, emu->port + PTR);
437 sol = inl(emu->port + DATA);
440 outl(sol, emu->port + DATA);
441 spin_unlock_irqrestore(&emu->emu_lock, flags);
444 void snd_emu10k1_voice_clear_loop_stop(struct snd_emu10k1 *emu, unsigned int voicenum)
449 spin_lock_irqsave(&emu->emu_lock, flags);
452 outl(SOLEH << 16, emu->port + PTR);
453 sol = inl(emu->port + DATA);
456 outl(SOLEL << 16, emu->port + PTR);
457 sol = inl(emu->port + DATA);
460 outl(sol, emu->port + DATA);
461 spin_unlock_irqrestore(&emu->emu_lock, flags);
464 void snd_emu10k1_wait(struct snd_emu10k1 *emu, unsigned int wait)
469 curtime = inl(emu->port + WC) >> 6;
473 newtime = inl(emu->port + WC) >> 6;
485 struct snd_emu10k1 *emu = ac97->private_data;
489 spin_lock_irqsave(&emu->emu_lock, flags);
490 outb(reg, emu->port + AC97ADDRESS);
491 val = inw(emu->port + AC97DATA);
492 spin_unlock_irqrestore(&emu->emu_lock, flags);
498 struct snd_emu10k1 *emu = ac97->private_data;
501 spin_lock_irqsave(&emu->emu_lock, flags);
502 outb(reg, emu->port + AC97ADDRESS);
503 outw(data, emu->port + AC97DATA);
504 spin_unlock_irqrestore(&emu->emu_lock, flags);