Lines Matching refs:chip

89 	struct snd_vx222 *chip = (struct snd_vx222 *)_chip;  in vx2_reg_addr()  local
90 return chip->port[vx2_reg_index[reg]] + vx2_reg_offset[reg]; in vx2_reg_addr()
98 static unsigned char vx2_inb(struct vx_core *chip, int offset) in vx2_inb() argument
100 return inb(vx2_reg_addr(chip, offset)); in vx2_inb()
109 static void vx2_outb(struct vx_core *chip, int offset, unsigned char val) in vx2_outb() argument
111 outb(val, vx2_reg_addr(chip, offset)); in vx2_outb()
122 static unsigned int vx2_inl(struct vx_core *chip, int offset) in vx2_inl() argument
124 return inl(vx2_reg_addr(chip, offset)); in vx2_inl()
133 static void vx2_outl(struct vx_core *chip, int offset, unsigned int val) in vx2_outl() argument
138 outl(val, vx2_reg_addr(chip, offset)); in vx2_outl()
145 #define vx_inb(chip,reg) vx2_inb((struct vx_core*)(chip), VX_##reg) argument
147 #define vx_outb(chip,reg,val) vx2_outb((struct vx_core*)(chip), VX_##reg, val) argument
149 #define vx_inl(chip,reg) vx2_inl((struct vx_core*)(chip), VX_##reg) argument
151 #define vx_outl(chip,reg,val) vx2_outl((struct vx_core*)(chip), VX_##reg, val) argument
162 struct snd_vx222 *chip = (struct snd_vx222 *)_chip; in vx2_reset_dsp() local
165 vx_outl(chip, CDSP, chip->regCDSP & ~VX_CDSP_DSP_RESET_MASK); in vx2_reset_dsp()
169 chip->regCDSP |= VX_CDSP_DSP_RESET_MASK; in vx2_reset_dsp()
171 vx_outl(chip, CDSP, chip->regCDSP); in vx2_reset_dsp()
177 struct snd_vx222 *chip = (struct snd_vx222 *)_chip; in vx2_test_xilinx() local
186 vx_outl(chip, CDSP, chip->regCDSP | VX_CDSP_TEST0_MASK); in vx2_test_xilinx()
187 vx_inl(chip, ISR); in vx2_test_xilinx()
188 data = vx_inl(chip, STATUS); in vx2_test_xilinx()
195 vx_outl(chip, CDSP, chip->regCDSP & ~VX_CDSP_TEST0_MASK); in vx2_test_xilinx()
196 vx_inl(chip, ISR); in vx2_test_xilinx()
197 data = vx_inl(chip, STATUS); in vx2_test_xilinx()
206 vx_outl(chip, CDSP, chip->regCDSP | VX_CDSP_TEST1_MASK); in vx2_test_xilinx()
207 vx_inl(chip, ISR); in vx2_test_xilinx()
208 data = vx_inl(chip, STATUS); in vx2_test_xilinx()
215 vx_outl(chip, CDSP, chip->regCDSP & ~VX_CDSP_TEST1_MASK); in vx2_test_xilinx()
216 vx_inl(chip, ISR); in vx2_test_xilinx()
217 data = vx_inl(chip, STATUS); in vx2_test_xilinx()
233 static void vx2_setup_pseudo_dma(struct vx_core *chip, int do_write) in vx2_setup_pseudo_dma() argument
238 vx_outl(chip, ICR, do_write ? ICR_TREQ : ICR_RREQ); in vx2_setup_pseudo_dma()
243 vx_outl(chip, RESET_DMA, 0); in vx2_setup_pseudo_dma()
249 static inline void vx2_release_pseudo_dma(struct vx_core *chip) in vx2_release_pseudo_dma() argument
252 vx_outl(chip, ICR, 0); in vx2_release_pseudo_dma()
258 static void vx2_dma_write(struct vx_core *chip, struct snd_pcm_runtime *runtime, in vx2_dma_write() argument
261 unsigned long port = vx2_reg_addr(chip, VX_DMA); in vx2_dma_write()
268 vx2_setup_pseudo_dma(chip, 1); in vx2_dma_write()
292 vx2_release_pseudo_dma(chip); in vx2_dma_write()
297 static void vx2_dma_read(struct vx_core *chip, struct snd_pcm_runtime *runtime, in vx2_dma_read() argument
302 unsigned long port = vx2_reg_addr(chip, VX_DMA); in vx2_dma_read()
307 vx2_setup_pseudo_dma(chip, 0); in vx2_dma_read()
326 vx2_release_pseudo_dma(chip); in vx2_dma_read()
337 static int put_xilinx_data(struct vx_core *chip, unsigned int port, unsigned int counts, unsigned c… in put_xilinx_data() argument
346 vx2_outl(chip, port, val); in put_xilinx_data()
347 vx2_inl(chip, port); in put_xilinx_data()
354 vx2_outl(chip, port, val); in put_xilinx_data()
355 vx2_inl(chip, port); in put_xilinx_data()
359 vx2_outl(chip, port, val); in put_xilinx_data()
360 vx2_inl(chip, port); in put_xilinx_data()
369 static int vx2_load_xilinx_binary(struct vx_core *chip, const struct firmware *xilinx) in vx2_load_xilinx_binary() argument
376 vx_outl(chip, CNTRL, VX_CNTRL_REGISTER_VALUE | VX_XILINX_RESET_MASK); in vx2_load_xilinx_binary()
377 vx_inl(chip, CNTRL); in vx2_load_xilinx_binary()
379 vx_outl(chip, CNTRL, VX_CNTRL_REGISTER_VALUE); in vx2_load_xilinx_binary()
380 vx_inl(chip, CNTRL); in vx2_load_xilinx_binary()
383 if (chip->type == VX_TYPE_BOARD) in vx2_load_xilinx_binary()
390 if (put_xilinx_data(chip, port, 8, *image) < 0) in vx2_load_xilinx_binary()
395 put_xilinx_data(chip, port, 4, 0xff); /* end signature */ in vx2_load_xilinx_binary()
400 if (chip->type != VX_TYPE_BOARD) { in vx2_load_xilinx_binary()
402 i = vx_inl(chip, GPIOC); in vx2_load_xilinx_binary()
405 dev_err(chip->card->dev, in vx2_load_xilinx_binary()
449 static int vx2_test_and_ack(struct vx_core *chip) in vx2_test_and_ack() argument
452 if (! (chip->chip_status & VX_STAT_XILINX_LOADED)) in vx2_test_and_ack()
455 if (! (vx_inl(chip, STATUS) & VX_STATUS_MEMIRQ_MASK)) in vx2_test_and_ack()
460 vx_outl(chip, STATUS, 0); in vx2_test_and_ack()
464 vx_inl(chip, STATUS); in vx2_test_and_ack()
466 vx_outl(chip, STATUS, VX_STATUS_MEMIRQ_MASK); in vx2_test_and_ack()
469 vx_inl(chip, STATUS); in vx2_test_and_ack()
471 vx_outl(chip, STATUS, 0); in vx2_test_and_ack()
482 struct snd_vx222 *chip = (struct snd_vx222 *)_chip; in vx2_validate_irq() local
487 vx_outl(chip, INTCSR, VX_INTCSR_VALUE|VX_PCI_INTERRUPT_MASK); in vx2_validate_irq()
488 chip->regCDSP |= VX_CDSP_VALID_IRQ_MASK; in vx2_validate_irq()
491 vx_outl(chip, INTCSR, VX_INTCSR_VALUE&~VX_PCI_INTERRUPT_MASK); in vx2_validate_irq()
492 chip->regCDSP &= ~VX_CDSP_VALID_IRQ_MASK; in vx2_validate_irq()
494 vx_outl(chip, CDSP, chip->regCDSP); in vx2_validate_irq()
501 static void vx2_write_codec_reg(struct vx_core *chip, unsigned int data) in vx2_write_codec_reg() argument
505 vx_inl(chip, HIFREQ); in vx2_write_codec_reg()
509 vx_outl(chip, DATA, ((data & 0x800000) ? VX_DATA_CODEC_MASK : 0)); in vx2_write_codec_reg()
511 vx_inl(chip, RUER); in vx2_write_codec_reg()
677 static void vx2_write_akm(struct vx_core *chip, int reg, unsigned int data) in vx2_write_akm() argument
682 vx2_write_codec_reg(chip, data ? AKM_CODEC_MUTE_CMD : AKM_CODEC_UNMUTE_CMD); in vx2_write_akm()
706 vx2_write_codec_reg(chip, val); in vx2_write_akm()
713 static void vx2_old_write_codec_bit(struct vx_core *chip, int codec, unsigned int data) in vx2_old_write_codec_bit() argument
718 vx_inl(chip, HIFREQ); in vx2_old_write_codec_bit()
721 vx_outl(chip, DATA, ((data & 0x800000) ? VX_DATA_CODEC_MASK : 0)); in vx2_old_write_codec_bit()
724 vx_inl(chip, RUER); in vx2_old_write_codec_bit()
733 struct snd_vx222 *chip = (struct snd_vx222 *)_chip; in vx2_reset_codec() local
736 vx_outl(chip, CDSP, chip->regCDSP &~ VX_CDSP_CODEC_RESET_MASK); in vx2_reset_codec()
737 vx_inl(chip, CDSP); in vx2_reset_codec()
740 chip->regCDSP |= VX_CDSP_CODEC_RESET_MASK; in vx2_reset_codec()
741 vx_outl(chip, CDSP, chip->regCDSP); in vx2_reset_codec()
742 vx_inl(chip, CDSP); in vx2_reset_codec()
758 chip->regSELMIC = MICRO_SELECT_INPUT_NORM | in vx2_reset_codec()
763 chip->regSELMIC &= ~MICRO_SELECT_PHANTOM_ALIM; in vx2_reset_codec()
765 vx_outl(_chip, SELMIC, chip->regSELMIC); in vx2_reset_codec()
775 struct snd_vx222 *chip = (struct snd_vx222 *)_chip; in vx2_change_audio_source() local
779 chip->regCFG |= VX_CFG_DATAIN_SEL_MASK; in vx2_change_audio_source()
782 chip->regCFG &= ~VX_CFG_DATAIN_SEL_MASK; in vx2_change_audio_source()
785 vx_outl(chip, CFG, chip->regCFG); in vx2_change_audio_source()
794 struct snd_vx222 *chip = (struct snd_vx222 *)_chip; in vx2_set_clock_source() local
797 chip->regCFG &= ~VX_CFG_CLOCKIN_SEL_MASK; in vx2_set_clock_source()
799 chip->regCFG |= VX_CFG_CLOCKIN_SEL_MASK; in vx2_set_clock_source()
800 vx_outl(chip, CFG, chip->regCFG); in vx2_set_clock_source()
808 struct snd_vx222 *chip = (struct snd_vx222 *)_chip; in vx2_reset_board() local
811 chip->regCDSP = VX_CDSP_CODEC_RESET_MASK | VX_CDSP_DSP_RESET_MASK ; in vx2_reset_board()
812 chip->regCFG = 0; in vx2_reset_board()
827 static void vx2_set_input_level(struct snd_vx222 *chip) in vx2_set_input_level() argument
832 miclevel = chip->mic_level; in vx2_set_input_level()
843 chip->regSELMIC &= ~MICRO_SELECT_PREAMPLI_MASK; in vx2_set_input_level()
844 chip->regSELMIC |= (preamp << MICRO_SELECT_PREAMPLI_OFFSET) & MICRO_SELECT_PREAMPLI_MASK; in vx2_set_input_level()
845 vx_outl(chip, SELMIC, chip->regSELMIC); in vx2_set_input_level()
848 (unsigned int)chip->input_level[1] << 8 | in vx2_set_input_level()
849 (unsigned int)chip->input_level[0]; in vx2_set_input_level()
850 vx_inl(chip, DATA); /* Activate input level programming */ in vx2_set_input_level()
854 vx_outl(chip, DATA, ((data & 0x80000000) ? VX_DATA_CODEC_MASK : 0)); in vx2_set_input_level()
856 vx_inl(chip, RUER); /* Terminate input level programming */ in vx2_set_input_level()
881 struct snd_vx222 *chip = (struct snd_vx222 *)_chip; in vx_input_level_get() local
883 ucontrol->value.integer.value[0] = chip->input_level[0]; in vx_input_level_get()
884 ucontrol->value.integer.value[1] = chip->input_level[1]; in vx_input_level_get()
892 struct snd_vx222 *chip = (struct snd_vx222 *)_chip; in vx_input_level_put() local
900 if (chip->input_level[0] != ucontrol->value.integer.value[0] || in vx_input_level_put()
901 chip->input_level[1] != ucontrol->value.integer.value[1]) { in vx_input_level_put()
902 chip->input_level[0] = ucontrol->value.integer.value[0]; in vx_input_level_put()
903 chip->input_level[1] = ucontrol->value.integer.value[1]; in vx_input_level_put()
904 vx2_set_input_level(chip); in vx_input_level_put()
925 struct snd_vx222 *chip = (struct snd_vx222 *)_chip; in vx_mic_level_get() local
926 ucontrol->value.integer.value[0] = chip->mic_level; in vx_mic_level_get()
933 struct snd_vx222 *chip = (struct snd_vx222 *)_chip; in vx_mic_level_put() local
938 if (chip->mic_level != ucontrol->value.integer.value[0]) { in vx_mic_level_put()
939 chip->mic_level = ucontrol->value.integer.value[0]; in vx_mic_level_put()
940 vx2_set_input_level(chip); in vx_mic_level_put()
976 struct snd_vx222 *chip = (struct snd_vx222 *)_chip; in vx2_add_mic_controls() local
983 chip->input_level[0] = chip->input_level[1] = 0; in vx2_add_mic_controls()
984 chip->mic_level = 0; in vx2_add_mic_controls()
985 vx2_set_input_level(chip); in vx2_add_mic_controls()
988 if ((err = snd_ctl_add(_chip->card, snd_ctl_new1(&vx_control_input_level, chip))) < 0) in vx2_add_mic_controls()
990 if ((err = snd_ctl_add(_chip->card, snd_ctl_new1(&vx_control_mic_level, chip))) < 0) in vx2_add_mic_controls()