Lines Matching refs:emu

35 unsigned int snd_emu10k1_ptr_read(struct snd_emu10k1 * emu, unsigned int reg, unsigned int chn)  in snd_emu10k1_ptr_read()  argument
41 mask = emu->audigy ? A_PTR_ADDRESS_MASK : PTR_ADDRESS_MASK; in snd_emu10k1_ptr_read()
51 spin_lock_irqsave(&emu->emu_lock, flags); in snd_emu10k1_ptr_read()
52 outl(regptr, emu->port + PTR); in snd_emu10k1_ptr_read()
53 val = inl(emu->port + DATA); in snd_emu10k1_ptr_read()
54 spin_unlock_irqrestore(&emu->emu_lock, flags); in snd_emu10k1_ptr_read()
58 spin_lock_irqsave(&emu->emu_lock, flags); in snd_emu10k1_ptr_read()
59 outl(regptr, emu->port + PTR); in snd_emu10k1_ptr_read()
60 val = inl(emu->port + DATA); in snd_emu10k1_ptr_read()
61 spin_unlock_irqrestore(&emu->emu_lock, flags); in snd_emu10k1_ptr_read()
68 void snd_emu10k1_ptr_write(struct snd_emu10k1 *emu, unsigned int reg, unsigned int chn, unsigned in… in snd_emu10k1_ptr_write() argument
74 if (snd_BUG_ON(!emu)) in snd_emu10k1_ptr_write()
76 mask = emu->audigy ? A_PTR_ADDRESS_MASK : PTR_ADDRESS_MASK; in snd_emu10k1_ptr_write()
87 spin_lock_irqsave(&emu->emu_lock, flags); in snd_emu10k1_ptr_write()
88 outl(regptr, emu->port + PTR); in snd_emu10k1_ptr_write()
89 data |= inl(emu->port + DATA) & ~mask; in snd_emu10k1_ptr_write()
90 outl(data, emu->port + DATA); in snd_emu10k1_ptr_write()
91 spin_unlock_irqrestore(&emu->emu_lock, flags); in snd_emu10k1_ptr_write()
93 spin_lock_irqsave(&emu->emu_lock, flags); in snd_emu10k1_ptr_write()
94 outl(regptr, emu->port + PTR); in snd_emu10k1_ptr_write()
95 outl(data, emu->port + DATA); in snd_emu10k1_ptr_write()
96 spin_unlock_irqrestore(&emu->emu_lock, flags); in snd_emu10k1_ptr_write()
102 unsigned int snd_emu10k1_ptr20_read(struct snd_emu10k1 * emu, in snd_emu10k1_ptr20_read() argument
111 spin_lock_irqsave(&emu->emu_lock, flags); in snd_emu10k1_ptr20_read()
112 outl(regptr, emu->port + 0x20 + PTR); in snd_emu10k1_ptr20_read()
113 val = inl(emu->port + 0x20 + DATA); in snd_emu10k1_ptr20_read()
114 spin_unlock_irqrestore(&emu->emu_lock, flags); in snd_emu10k1_ptr20_read()
118 void snd_emu10k1_ptr20_write(struct snd_emu10k1 *emu, in snd_emu10k1_ptr20_write() argument
128 spin_lock_irqsave(&emu->emu_lock, flags); in snd_emu10k1_ptr20_write()
129 outl(regptr, emu->port + 0x20 + PTR); in snd_emu10k1_ptr20_write()
130 outl(data, emu->port + 0x20 + DATA); in snd_emu10k1_ptr20_write()
131 spin_unlock_irqrestore(&emu->emu_lock, flags); in snd_emu10k1_ptr20_write()
134 int snd_emu10k1_spi_write(struct snd_emu10k1 * emu, in snd_emu10k1_spi_write() argument
143 spin_lock(&emu->spi_lock); in snd_emu10k1_spi_write()
144 if (emu->card_capabilities->ca0108_chip) in snd_emu10k1_spi_write()
158 tmp = snd_emu10k1_ptr20_read(emu, reg, 0); in snd_emu10k1_spi_write()
161 snd_emu10k1_ptr20_write(emu, reg, 0, reset | data); in snd_emu10k1_spi_write()
162 tmp = snd_emu10k1_ptr20_read(emu, reg, 0); /* write post */ in snd_emu10k1_spi_write()
163 snd_emu10k1_ptr20_write(emu, reg, 0, set | data); in snd_emu10k1_spi_write()
168 tmp = snd_emu10k1_ptr20_read(emu, reg, 0); in snd_emu10k1_spi_write()
179 snd_emu10k1_ptr20_write(emu, reg, 0, reset | data); in snd_emu10k1_spi_write()
180 tmp = snd_emu10k1_ptr20_read(emu, reg, 0); /* Write post */ in snd_emu10k1_spi_write()
183 spin_unlock(&emu->spi_lock); in snd_emu10k1_spi_write()
188 int snd_emu10k1_i2c_write(struct snd_emu10k1 *emu, in snd_emu10k1_i2c_write() argument
199 dev_err(emu->card->dev, "i2c_write: invalid values.\n"); in snd_emu10k1_i2c_write()
204 spin_lock(&emu->i2c_lock); in snd_emu10k1_i2c_write()
209 snd_emu10k1_ptr20_write(emu, P17V_I2C_1, 0, tmp); in snd_emu10k1_i2c_write()
210 tmp = snd_emu10k1_ptr20_read(emu, P17V_I2C_1, 0); /* write post */ in snd_emu10k1_i2c_write()
216 snd_emu10k1_ptr20_write(emu, P17V_I2C_ADDR, 0, tmp); in snd_emu10k1_i2c_write()
221 status = snd_emu10k1_ptr20_read(emu, P17V_I2C_ADDR, 0); in snd_emu10k1_i2c_write()
227 dev_warn(emu->card->dev, in snd_emu10k1_i2c_write()
239 dev_err(emu->card->dev, "Writing to ADC failed!\n"); in snd_emu10k1_i2c_write()
240 dev_err(emu->card->dev, "status=0x%x, reg=%d, value=%d\n", in snd_emu10k1_i2c_write()
246 spin_unlock(&emu->i2c_lock); in snd_emu10k1_i2c_write()
250 int snd_emu1010_fpga_write(struct snd_emu10k1 * emu, u32 reg, u32 value) in snd_emu1010_fpga_write() argument
259 spin_lock_irqsave(&emu->emu_lock, flags); in snd_emu1010_fpga_write()
260 outl(reg, emu->port + A_IOCFG); in snd_emu1010_fpga_write()
262 outl(reg | 0x80, emu->port + A_IOCFG); /* High bit clocks the value into the fpga. */ in snd_emu1010_fpga_write()
264 outl(value, emu->port + A_IOCFG); in snd_emu1010_fpga_write()
266 outl(value | 0x80 , emu->port + A_IOCFG); /* High bit clocks the value into the fpga. */ in snd_emu1010_fpga_write()
267 spin_unlock_irqrestore(&emu->emu_lock, flags); in snd_emu1010_fpga_write()
272 int snd_emu1010_fpga_read(struct snd_emu10k1 * emu, u32 reg, u32 *value) in snd_emu1010_fpga_read() argument
278 spin_lock_irqsave(&emu->emu_lock, flags); in snd_emu1010_fpga_read()
279 outl(reg, emu->port + A_IOCFG); in snd_emu1010_fpga_read()
281 outl(reg | 0x80, emu->port + A_IOCFG); /* High bit clocks the value into the fpga. */ in snd_emu1010_fpga_read()
283 *value = ((inl(emu->port + A_IOCFG) >> 8) & 0x7f); in snd_emu1010_fpga_read()
284 spin_unlock_irqrestore(&emu->emu_lock, flags); in snd_emu1010_fpga_read()
292 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
294 snd_emu1010_fpga_write(emu, 0x00, ((dst >> 8) & 0x3f) ); in snd_emu1010_fpga_link_dst_src_write()
295 snd_emu1010_fpga_write(emu, 0x01, (dst & 0x3f) ); in snd_emu1010_fpga_link_dst_src_write()
296 snd_emu1010_fpga_write(emu, 0x02, ((src >> 8) & 0x3f) ); in snd_emu1010_fpga_link_dst_src_write()
297 snd_emu1010_fpga_write(emu, 0x03, (src & 0x3f) ); in snd_emu1010_fpga_link_dst_src_write()
302 void snd_emu10k1_intr_enable(struct snd_emu10k1 *emu, unsigned int intrenb) in snd_emu10k1_intr_enable() argument
307 spin_lock_irqsave(&emu->emu_lock, flags); in snd_emu10k1_intr_enable()
308 enable = inl(emu->port + INTE) | intrenb; in snd_emu10k1_intr_enable()
309 outl(enable, emu->port + INTE); in snd_emu10k1_intr_enable()
310 spin_unlock_irqrestore(&emu->emu_lock, flags); in snd_emu10k1_intr_enable()
313 void snd_emu10k1_intr_disable(struct snd_emu10k1 *emu, unsigned int intrenb) in snd_emu10k1_intr_disable() argument
318 spin_lock_irqsave(&emu->emu_lock, flags); in snd_emu10k1_intr_disable()
319 enable = inl(emu->port + INTE) & ~intrenb; in snd_emu10k1_intr_disable()
320 outl(enable, emu->port + INTE); in snd_emu10k1_intr_disable()
321 spin_unlock_irqrestore(&emu->emu_lock, flags); in snd_emu10k1_intr_disable()
324 void snd_emu10k1_voice_intr_enable(struct snd_emu10k1 *emu, unsigned int voicenum) in snd_emu10k1_voice_intr_enable() argument
329 spin_lock_irqsave(&emu->emu_lock, flags); in snd_emu10k1_voice_intr_enable()
332 outl(CLIEH << 16, emu->port + PTR); in snd_emu10k1_voice_intr_enable()
333 val = inl(emu->port + DATA); in snd_emu10k1_voice_intr_enable()
336 outl(CLIEL << 16, emu->port + PTR); in snd_emu10k1_voice_intr_enable()
337 val = inl(emu->port + DATA); in snd_emu10k1_voice_intr_enable()
340 outl(val, emu->port + DATA); in snd_emu10k1_voice_intr_enable()
341 spin_unlock_irqrestore(&emu->emu_lock, flags); in snd_emu10k1_voice_intr_enable()
344 void snd_emu10k1_voice_intr_disable(struct snd_emu10k1 *emu, unsigned int voicenum) in snd_emu10k1_voice_intr_disable() argument
349 spin_lock_irqsave(&emu->emu_lock, flags); in snd_emu10k1_voice_intr_disable()
352 outl(CLIEH << 16, emu->port + PTR); in snd_emu10k1_voice_intr_disable()
353 val = inl(emu->port + DATA); in snd_emu10k1_voice_intr_disable()
356 outl(CLIEL << 16, emu->port + PTR); in snd_emu10k1_voice_intr_disable()
357 val = inl(emu->port + DATA); in snd_emu10k1_voice_intr_disable()
360 outl(val, emu->port + DATA); in snd_emu10k1_voice_intr_disable()
361 spin_unlock_irqrestore(&emu->emu_lock, flags); in snd_emu10k1_voice_intr_disable()
364 void snd_emu10k1_voice_intr_ack(struct snd_emu10k1 *emu, unsigned int voicenum) in snd_emu10k1_voice_intr_ack() argument
368 spin_lock_irqsave(&emu->emu_lock, flags); in snd_emu10k1_voice_intr_ack()
371 outl(CLIPH << 16, emu->port + PTR); in snd_emu10k1_voice_intr_ack()
374 outl(CLIPL << 16, emu->port + PTR); in snd_emu10k1_voice_intr_ack()
377 outl(voicenum, emu->port + DATA); in snd_emu10k1_voice_intr_ack()
378 spin_unlock_irqrestore(&emu->emu_lock, flags); in snd_emu10k1_voice_intr_ack()
381 void snd_emu10k1_voice_half_loop_intr_enable(struct snd_emu10k1 *emu, unsigned int voicenum) in snd_emu10k1_voice_half_loop_intr_enable() argument
386 spin_lock_irqsave(&emu->emu_lock, flags); in snd_emu10k1_voice_half_loop_intr_enable()
389 outl(HLIEH << 16, emu->port + PTR); in snd_emu10k1_voice_half_loop_intr_enable()
390 val = inl(emu->port + DATA); in snd_emu10k1_voice_half_loop_intr_enable()
393 outl(HLIEL << 16, emu->port + PTR); in snd_emu10k1_voice_half_loop_intr_enable()
394 val = inl(emu->port + DATA); in snd_emu10k1_voice_half_loop_intr_enable()
397 outl(val, emu->port + DATA); in snd_emu10k1_voice_half_loop_intr_enable()
398 spin_unlock_irqrestore(&emu->emu_lock, flags); in snd_emu10k1_voice_half_loop_intr_enable()
401 void snd_emu10k1_voice_half_loop_intr_disable(struct snd_emu10k1 *emu, unsigned int voicenum) in snd_emu10k1_voice_half_loop_intr_disable() argument
406 spin_lock_irqsave(&emu->emu_lock, flags); in snd_emu10k1_voice_half_loop_intr_disable()
409 outl(HLIEH << 16, emu->port + PTR); in snd_emu10k1_voice_half_loop_intr_disable()
410 val = inl(emu->port + DATA); in snd_emu10k1_voice_half_loop_intr_disable()
413 outl(HLIEL << 16, emu->port + PTR); in snd_emu10k1_voice_half_loop_intr_disable()
414 val = inl(emu->port + DATA); in snd_emu10k1_voice_half_loop_intr_disable()
417 outl(val, emu->port + DATA); in snd_emu10k1_voice_half_loop_intr_disable()
418 spin_unlock_irqrestore(&emu->emu_lock, flags); in snd_emu10k1_voice_half_loop_intr_disable()
421 void snd_emu10k1_voice_half_loop_intr_ack(struct snd_emu10k1 *emu, unsigned int voicenum) in snd_emu10k1_voice_half_loop_intr_ack() argument
425 spin_lock_irqsave(&emu->emu_lock, flags); in snd_emu10k1_voice_half_loop_intr_ack()
428 outl(HLIPH << 16, emu->port + PTR); in snd_emu10k1_voice_half_loop_intr_ack()
431 outl(HLIPL << 16, emu->port + PTR); in snd_emu10k1_voice_half_loop_intr_ack()
434 outl(voicenum, emu->port + DATA); in snd_emu10k1_voice_half_loop_intr_ack()
435 spin_unlock_irqrestore(&emu->emu_lock, flags); in snd_emu10k1_voice_half_loop_intr_ack()
438 void snd_emu10k1_voice_set_loop_stop(struct snd_emu10k1 *emu, unsigned int voicenum) in snd_emu10k1_voice_set_loop_stop() argument
443 spin_lock_irqsave(&emu->emu_lock, flags); in snd_emu10k1_voice_set_loop_stop()
446 outl(SOLEH << 16, emu->port + PTR); in snd_emu10k1_voice_set_loop_stop()
447 sol = inl(emu->port + DATA); in snd_emu10k1_voice_set_loop_stop()
450 outl(SOLEL << 16, emu->port + PTR); in snd_emu10k1_voice_set_loop_stop()
451 sol = inl(emu->port + DATA); in snd_emu10k1_voice_set_loop_stop()
454 outl(sol, emu->port + DATA); in snd_emu10k1_voice_set_loop_stop()
455 spin_unlock_irqrestore(&emu->emu_lock, flags); in snd_emu10k1_voice_set_loop_stop()
458 void snd_emu10k1_voice_clear_loop_stop(struct snd_emu10k1 *emu, unsigned int voicenum) in snd_emu10k1_voice_clear_loop_stop() argument
463 spin_lock_irqsave(&emu->emu_lock, flags); in snd_emu10k1_voice_clear_loop_stop()
466 outl(SOLEH << 16, emu->port + PTR); in snd_emu10k1_voice_clear_loop_stop()
467 sol = inl(emu->port + DATA); in snd_emu10k1_voice_clear_loop_stop()
470 outl(SOLEL << 16, emu->port + PTR); in snd_emu10k1_voice_clear_loop_stop()
471 sol = inl(emu->port + DATA); in snd_emu10k1_voice_clear_loop_stop()
474 outl(sol, emu->port + DATA); in snd_emu10k1_voice_clear_loop_stop()
475 spin_unlock_irqrestore(&emu->emu_lock, flags); in snd_emu10k1_voice_clear_loop_stop()
478 void snd_emu10k1_wait(struct snd_emu10k1 *emu, unsigned int wait) in snd_emu10k1_wait() argument
483 curtime = inl(emu->port + WC) >> 6; in snd_emu10k1_wait()
487 newtime = inl(emu->port + WC) >> 6; in snd_emu10k1_wait()
499 struct snd_emu10k1 *emu = ac97->private_data; in snd_emu10k1_ac97_read() local
503 spin_lock_irqsave(&emu->emu_lock, flags); in snd_emu10k1_ac97_read()
504 outb(reg, emu->port + AC97ADDRESS); in snd_emu10k1_ac97_read()
505 val = inw(emu->port + AC97DATA); in snd_emu10k1_ac97_read()
506 spin_unlock_irqrestore(&emu->emu_lock, flags); in snd_emu10k1_ac97_read()
512 struct snd_emu10k1 *emu = ac97->private_data; in snd_emu10k1_ac97_write() local
515 spin_lock_irqsave(&emu->emu_lock, flags); in snd_emu10k1_ac97_write()
516 outb(reg, emu->port + AC97ADDRESS); in snd_emu10k1_ac97_write()
517 outw(data, emu->port + AC97DATA); in snd_emu10k1_ac97_write()
518 spin_unlock_irqrestore(&emu->emu_lock, flags); in snd_emu10k1_ac97_write()