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