Lines Matching refs:emu

346 unsigned int snd_ca0106_ptr_read(struct snd_ca0106 * emu,   in snd_ca0106_ptr_read()  argument
355 spin_lock_irqsave(&emu->emu_lock, flags); in snd_ca0106_ptr_read()
356 outl(regptr, emu->port + PTR); in snd_ca0106_ptr_read()
357 val = inl(emu->port + DATA); in snd_ca0106_ptr_read()
358 spin_unlock_irqrestore(&emu->emu_lock, flags); in snd_ca0106_ptr_read()
362 void snd_ca0106_ptr_write(struct snd_ca0106 *emu, in snd_ca0106_ptr_write() argument
372 spin_lock_irqsave(&emu->emu_lock, flags); in snd_ca0106_ptr_write()
373 outl(regptr, emu->port + PTR); in snd_ca0106_ptr_write()
374 outl(data, emu->port + DATA); in snd_ca0106_ptr_write()
375 spin_unlock_irqrestore(&emu->emu_lock, flags); in snd_ca0106_ptr_write()
378 int snd_ca0106_spi_write(struct snd_ca0106 * emu, in snd_ca0106_spi_write() argument
387 tmp = snd_ca0106_ptr_read(emu, reg, 0); in snd_ca0106_spi_write()
390 snd_ca0106_ptr_write(emu, reg, 0, reset | data); in snd_ca0106_spi_write()
391 tmp = snd_ca0106_ptr_read(emu, reg, 0); /* write post */ in snd_ca0106_spi_write()
392 snd_ca0106_ptr_write(emu, reg, 0, set | data); in snd_ca0106_spi_write()
397 tmp = snd_ca0106_ptr_read(emu, reg, 0); in snd_ca0106_spi_write()
405 snd_ca0106_ptr_write(emu, reg, 0, reset | data); in snd_ca0106_spi_write()
406 tmp = snd_ca0106_ptr_read(emu, reg, 0); /* Write post */ in snd_ca0106_spi_write()
411 int snd_ca0106_i2c_write(struct snd_ca0106 *emu, in snd_ca0106_i2c_write() argument
420 dev_err(emu->card->dev, "i2c_write: invalid values.\n"); in snd_ca0106_i2c_write()
432 snd_ca0106_ptr_write(emu, I2C_D1, 0, tmp); in snd_ca0106_i2c_write()
440 snd_ca0106_ptr_write(emu, I2C_A, 0, tmp); in snd_ca0106_i2c_write()
444 status = snd_ca0106_ptr_read(emu, I2C_A, 0); in snd_ca0106_i2c_write()
459 dev_err(emu->card->dev, "Writing to ADC failed!\n"); in snd_ca0106_i2c_write()
467 static void snd_ca0106_intr_enable(struct snd_ca0106 *emu, unsigned int intrenb) in snd_ca0106_intr_enable() argument
472 spin_lock_irqsave(&emu->emu_lock, flags); in snd_ca0106_intr_enable()
473 intr_enable = inl(emu->port + INTE) | intrenb; in snd_ca0106_intr_enable()
474 outl(intr_enable, emu->port + INTE); in snd_ca0106_intr_enable()
475 spin_unlock_irqrestore(&emu->emu_lock, flags); in snd_ca0106_intr_enable()
478 static void snd_ca0106_intr_disable(struct snd_ca0106 *emu, unsigned int intrenb) in snd_ca0106_intr_disable() argument
483 spin_lock_irqsave(&emu->emu_lock, flags); in snd_ca0106_intr_disable()
484 intr_enable = inl(emu->port + INTE) & ~intrenb; in snd_ca0106_intr_disable()
485 outl(intr_enable, emu->port + INTE); in snd_ca0106_intr_disable()
486 spin_unlock_irqrestore(&emu->emu_lock, flags); in snd_ca0106_intr_disable()
573 epcm->emu = chip; in snd_ca0106_pcm_open_playback_channel()
582 channel->emu = chip; in snd_ca0106_pcm_open_playback_channel()
668 epcm->emu = chip; in snd_ca0106_pcm_open_capture_channel()
677 channel->emu = chip; in snd_ca0106_pcm_open_capture_channel()
757 struct snd_ca0106 *emu = snd_pcm_substream_chip(substream); in snd_ca0106_pcm_prepare_playback() local
761 u32 *table_base = (u32 *)(emu->buffer.area+(8*16*channel)); in snd_ca0106_pcm_prepare_playback()
776 dev_dbg(emu->card->dev, in snd_ca0106_pcm_prepare_playback()
784 dev_dbg(emu->card->dev, in snd_ca0106_pcm_prepare_playback()
787 dev_dbg(emu->card->dev, in snd_ca0106_pcm_prepare_playback()
789 emu->buffer.addr, emu->buffer.area, emu->buffer.bytes); in snd_ca0106_pcm_prepare_playback()
829 hcfg = inl(emu->port + HCFG) ; in snd_ca0106_pcm_prepare_playback()
831 outl(hcfg, emu->port + HCFG); in snd_ca0106_pcm_prepare_playback()
832 reg40 = snd_ca0106_ptr_read(emu, 0x40, 0); in snd_ca0106_pcm_prepare_playback()
834 snd_ca0106_ptr_write(emu, 0x40, 0, reg40); in snd_ca0106_pcm_prepare_playback()
835 reg71 = snd_ca0106_ptr_read(emu, 0x71, 0); in snd_ca0106_pcm_prepare_playback()
837 snd_ca0106_ptr_write(emu, 0x71, 0, reg71); in snd_ca0106_pcm_prepare_playback()
845 snd_ca0106_ptr_write(emu, PLAYBACK_LIST_ADDR, channel, emu->buffer.addr+(8*16*channel)); in snd_ca0106_pcm_prepare_playback()
846 snd_ca0106_ptr_write(emu, PLAYBACK_LIST_SIZE, channel, (runtime->periods - 1) << 19); in snd_ca0106_pcm_prepare_playback()
847 snd_ca0106_ptr_write(emu, PLAYBACK_LIST_PTR, channel, 0); in snd_ca0106_pcm_prepare_playback()
848 snd_ca0106_ptr_write(emu, PLAYBACK_DMA_ADDR, channel, runtime->dma_addr); in snd_ca0106_pcm_prepare_playback()
849 …snd_ca0106_ptr_write(emu, PLAYBACK_PERIOD_SIZE, channel, frames_to_bytes(runtime, runtime->period_… in snd_ca0106_pcm_prepare_playback()
851 snd_ca0106_ptr_write(emu, PLAYBACK_PERIOD_SIZE, channel, 0); // buffer size in bytes in snd_ca0106_pcm_prepare_playback()
852 snd_ca0106_ptr_write(emu, PLAYBACK_POINTER, channel, 0); in snd_ca0106_pcm_prepare_playback()
853 snd_ca0106_ptr_write(emu, 0x07, channel, 0x0); in snd_ca0106_pcm_prepare_playback()
854 snd_ca0106_ptr_write(emu, 0x08, channel, 0); in snd_ca0106_pcm_prepare_playback()
855 snd_ca0106_ptr_write(emu, PLAYBACK_MUTE, 0x0, 0x0); /* Unmute output */ in snd_ca0106_pcm_prepare_playback()
857 snd_ca0106_ptr_write(emu, SPCS0, 0, in snd_ca0106_pcm_prepare_playback()
870 struct snd_ca0106 *emu = snd_pcm_substream_chip(substream); in snd_ca0106_pcm_prepare_capture() local
883 dev_dbg(emu->card->dev, in snd_ca0106_pcm_prepare_capture()
891 dev_dbg(emu->card->dev, in snd_ca0106_pcm_prepare_capture()
894 dev_dbg(emu->card->dev, in snd_ca0106_pcm_prepare_capture()
896 emu->buffer.addr, emu->buffer.area, emu->buffer.bytes); in snd_ca0106_pcm_prepare_capture()
931 hcfg = inl(emu->port + HCFG) ; in snd_ca0106_pcm_prepare_capture()
933 outl(hcfg, emu->port + HCFG); in snd_ca0106_pcm_prepare_capture()
934 reg71 = snd_ca0106_ptr_read(emu, 0x71, 0); in snd_ca0106_pcm_prepare_capture()
936 snd_ca0106_ptr_write(emu, 0x71, 0, reg71); in snd_ca0106_pcm_prepare_capture()
937 if (emu->details->i2c_adc == 1) { /* The SB0410 and SB0413 use I2C to control ADC. */ in snd_ca0106_pcm_prepare_capture()
938 …snd_ca0106_i2c_write(emu, ADC_MASTER, over_sampling); /* Adjust the over sampler to better suit th… in snd_ca0106_pcm_prepare_capture()
950 snd_ca0106_ptr_write(emu, 0x13, channel, 0); in snd_ca0106_pcm_prepare_capture()
951 snd_ca0106_ptr_write(emu, CAPTURE_DMA_ADDR, channel, runtime->dma_addr); in snd_ca0106_pcm_prepare_capture()
952 …snd_ca0106_ptr_write(emu, CAPTURE_BUFFER_SIZE, channel, frames_to_bytes(runtime, runtime->buffer_s… in snd_ca0106_pcm_prepare_capture()
953 snd_ca0106_ptr_write(emu, CAPTURE_POINTER, channel, 0); in snd_ca0106_pcm_prepare_capture()
962 struct snd_ca0106 *emu = snd_pcm_substream_chip(substream); in snd_ca0106_pcm_trigger_playback() local
985 if (snd_pcm_substream_chip(s) != emu || in snd_ca0106_pcm_trigger_playback()
1002 bits = snd_ca0106_ptr_read(emu, EXTENDED_INT_MASK, 0); in snd_ca0106_pcm_trigger_playback()
1004 snd_ca0106_ptr_write(emu, EXTENDED_INT_MASK, 0, bits); in snd_ca0106_pcm_trigger_playback()
1005 bits = snd_ca0106_ptr_read(emu, BASIC_INTERRUPT, 0); in snd_ca0106_pcm_trigger_playback()
1007 snd_ca0106_ptr_write(emu, BASIC_INTERRUPT, 0, bits); in snd_ca0106_pcm_trigger_playback()
1011 bits = snd_ca0106_ptr_read(emu, BASIC_INTERRUPT, 0); in snd_ca0106_pcm_trigger_playback()
1013 snd_ca0106_ptr_write(emu, BASIC_INTERRUPT, 0, bits); in snd_ca0106_pcm_trigger_playback()
1014 bits = snd_ca0106_ptr_read(emu, EXTENDED_INT_MASK, 0); in snd_ca0106_pcm_trigger_playback()
1016 snd_ca0106_ptr_write(emu, EXTENDED_INT_MASK, 0, bits); in snd_ca0106_pcm_trigger_playback()
1029 struct snd_ca0106 *emu = snd_pcm_substream_chip(substream); in snd_ca0106_pcm_trigger_capture() local
1037 …snd_ca0106_ptr_write(emu, EXTENDED_INT_MASK, 0, snd_ca0106_ptr_read(emu, EXTENDED_INT_MASK, 0) | (… in snd_ca0106_pcm_trigger_capture()
1038 …snd_ca0106_ptr_write(emu, BASIC_INTERRUPT, 0, snd_ca0106_ptr_read(emu, BASIC_INTERRUPT, 0)|(0x100<… in snd_ca0106_pcm_trigger_capture()
1042 …snd_ca0106_ptr_write(emu, BASIC_INTERRUPT, 0, snd_ca0106_ptr_read(emu, BASIC_INTERRUPT, 0) & ~(0x1… in snd_ca0106_pcm_trigger_capture()
1043 …snd_ca0106_ptr_write(emu, EXTENDED_INT_MASK, 0, snd_ca0106_ptr_read(emu, EXTENDED_INT_MASK, 0) & ~… in snd_ca0106_pcm_trigger_capture()
1057 struct snd_ca0106 *emu = snd_pcm_substream_chip(substream); in snd_ca0106_pcm_pointer_playback() local
1069 ptr = snd_ca0106_ptr_read(emu, PLAYBACK_LIST_PTR, channel); in snd_ca0106_pcm_pointer_playback()
1072 snd_ca0106_ptr_read(emu, PLAYBACK_POINTER, channel)); in snd_ca0106_pcm_pointer_playback()
1079 dev_warn(emu->card->dev, "ca0106: unstable DMA pointer!\n"); in snd_ca0106_pcm_pointer_playback()
1087 struct snd_ca0106 *emu = snd_pcm_substream_chip(substream); in snd_ca0106_pcm_pointer_capture() local
1096 ptr1 = snd_ca0106_ptr_read(emu, CAPTURE_POINTER, channel); in snd_ca0106_pcm_pointer_capture()
1204 struct snd_ca0106 *emu = ac97->private_data; in snd_ca0106_ac97_read() local
1208 spin_lock_irqsave(&emu->emu_lock, flags); in snd_ca0106_ac97_read()
1209 outb(reg, emu->port + AC97ADDRESS); in snd_ca0106_ac97_read()
1210 val = inw(emu->port + AC97DATA); in snd_ca0106_ac97_read()
1211 spin_unlock_irqrestore(&emu->emu_lock, flags); in snd_ca0106_ac97_read()
1218 struct snd_ca0106 *emu = ac97->private_data; in snd_ca0106_ac97_write() local
1221 spin_lock_irqsave(&emu->emu_lock, flags); in snd_ca0106_ac97_write()
1222 outb(reg, emu->port + AC97ADDRESS); in snd_ca0106_ac97_write()
1223 outw(val, emu->port + AC97DATA); in snd_ca0106_ac97_write()
1224 spin_unlock_irqrestore(&emu->emu_lock, flags); in snd_ca0106_ac97_write()
1365 static int snd_ca0106_pcm(struct snd_ca0106 *emu, int device) in snd_ca0106_pcm() argument
1372 err = snd_pcm_new(emu->card, "ca0106", device, 1, 1, &pcm); in snd_ca0106_pcm()
1376 pcm->private_data = emu; in snd_ca0106_pcm()
1409 snd_dma_pci_data(emu->pci), in snd_ca0106_pcm()
1419 snd_dma_pci_data(emu->pci), in snd_ca0106_pcm()
1429 emu->pcm[device] = pcm; in snd_ca0106_pcm()