Lines Matching refs:chip

76 	struct snd_vx222 *chip = to_vx222(_chip);
77 return chip->port[vx2_reg_index[reg]] + vx2_reg_offset[reg];
82 * @chip: VX core instance
85 static unsigned char vx2_inb(struct vx_core *chip, int offset)
87 return inb(vx2_reg_addr(chip, offset));
92 * @chip: VX core instance
96 static void vx2_outb(struct vx_core *chip, int offset, unsigned char val)
98 outb(val, vx2_reg_addr(chip, offset));
100 dev_dbg(chip->card->dev, "outb: %x -> %x\n", val, vx2_reg_addr(chip, offset));
106 * @chip: VX core instance
109 static unsigned int vx2_inl(struct vx_core *chip, int offset)
111 return inl(vx2_reg_addr(chip, offset));
116 * @chip: VX core instance
120 static void vx2_outl(struct vx_core *chip, int offset, unsigned int val)
123 dev_dbg(chip->card->dev, "outl: %x -> %x\n", val, vx2_reg_addr(chip, offset));
125 outl(val, vx2_reg_addr(chip, offset));
132 #define vx_inb(chip,reg) vx2_inb((struct vx_core*)(chip), VX_##reg)
134 #define vx_outb(chip,reg,val) vx2_outb((struct vx_core*)(chip), VX_##reg, val)
136 #define vx_inl(chip,reg) vx2_inl((struct vx_core*)(chip), VX_##reg)
138 #define vx_outl(chip,reg,val) vx2_outl((struct vx_core*)(chip), VX_##reg, val)
149 struct snd_vx222 *chip = to_vx222(_chip);
152 vx_outl(chip, CDSP, chip->regCDSP & ~VX_CDSP_DSP_RESET_MASK);
156 chip->regCDSP |= VX_CDSP_DSP_RESET_MASK;
158 vx_outl(chip, CDSP, chip->regCDSP);
164 struct snd_vx222 *chip = to_vx222(_chip);
173 vx_outl(chip, CDSP, chip->regCDSP | VX_CDSP_TEST0_MASK);
174 vx_inl(chip, ISR);
175 data = vx_inl(chip, STATUS);
182 vx_outl(chip, CDSP, chip->regCDSP & ~VX_CDSP_TEST0_MASK);
183 vx_inl(chip, ISR);
184 data = vx_inl(chip, STATUS);
193 vx_outl(chip, CDSP, chip->regCDSP | VX_CDSP_TEST1_MASK);
194 vx_inl(chip, ISR);
195 data = vx_inl(chip, STATUS);
202 vx_outl(chip, CDSP, chip->regCDSP & ~VX_CDSP_TEST1_MASK);
203 vx_inl(chip, ISR);
204 data = vx_inl(chip, STATUS);
217 * @chip: VX core instance
220 static void vx2_setup_pseudo_dma(struct vx_core *chip, int do_write)
225 vx_outl(chip, ICR, do_write ? ICR_TREQ : ICR_RREQ);
230 vx_outl(chip, RESET_DMA, 0);
236 static inline void vx2_release_pseudo_dma(struct vx_core *chip)
239 vx_outl(chip, ICR, 0);
245 static void vx2_dma_write(struct vx_core *chip, struct snd_pcm_runtime *runtime,
248 unsigned long port = vx2_reg_addr(chip, VX_DMA);
255 vx2_setup_pseudo_dma(chip, 1);
279 vx2_release_pseudo_dma(chip);
284 static void vx2_dma_read(struct vx_core *chip, struct snd_pcm_runtime *runtime,
289 unsigned long port = vx2_reg_addr(chip, VX_DMA);
294 vx2_setup_pseudo_dma(chip, 0);
313 vx2_release_pseudo_dma(chip);
324 static int put_xilinx_data(struct vx_core *chip, unsigned int port, unsigned int counts, unsigned char data)
333 vx2_outl(chip, port, val);
334 vx2_inl(chip, port);
341 vx2_outl(chip, port, val);
342 vx2_inl(chip, port);
346 vx2_outl(chip, port, val);
347 vx2_inl(chip, port);
356 static int vx2_load_xilinx_binary(struct vx_core *chip, const struct firmware *xilinx)
363 vx_outl(chip, CNTRL, VX_CNTRL_REGISTER_VALUE | VX_XILINX_RESET_MASK);
364 vx_inl(chip, CNTRL);
366 vx_outl(chip, CNTRL, VX_CNTRL_REGISTER_VALUE);
367 vx_inl(chip, CNTRL);
370 if (chip->type == VX_TYPE_BOARD)
377 if (put_xilinx_data(chip, port, 8, *image) < 0)
382 put_xilinx_data(chip, port, 4, 0xff); /* end signature */
387 if (chip->type != VX_TYPE_BOARD) {
389 i = vx_inl(chip, GPIOC);
392 dev_err(chip->card->dev,
436 static int vx2_test_and_ack(struct vx_core *chip)
439 if (! (chip->chip_status & VX_STAT_XILINX_LOADED))
442 if (! (vx_inl(chip, STATUS) & VX_STATUS_MEMIRQ_MASK))
447 vx_outl(chip, STATUS, 0);
451 vx_inl(chip, STATUS);
453 vx_outl(chip, STATUS, VX_STATUS_MEMIRQ_MASK);
456 vx_inl(chip, STATUS);
458 vx_outl(chip, STATUS, 0);
469 struct snd_vx222 *chip = to_vx222(_chip);
474 vx_outl(chip, INTCSR, VX_INTCSR_VALUE|VX_PCI_INTERRUPT_MASK);
475 chip->regCDSP |= VX_CDSP_VALID_IRQ_MASK;
478 vx_outl(chip, INTCSR, VX_INTCSR_VALUE&~VX_PCI_INTERRUPT_MASK);
479 chip->regCDSP &= ~VX_CDSP_VALID_IRQ_MASK;
481 vx_outl(chip, CDSP, chip->regCDSP);
488 static void vx2_write_codec_reg(struct vx_core *chip, unsigned int data)
492 vx_inl(chip, HIFREQ);
496 vx_outl(chip, DATA, ((data & 0x800000) ? VX_DATA_CODEC_MASK : 0));
498 vx_inl(chip, RUER);
664 static void vx2_write_akm(struct vx_core *chip, int reg, unsigned int data)
669 vx2_write_codec_reg(chip, data ? AKM_CODEC_MUTE_CMD : AKM_CODEC_UNMUTE_CMD);
693 vx2_write_codec_reg(chip, val);
700 static void vx2_old_write_codec_bit(struct vx_core *chip, int codec, unsigned int data)
705 vx_inl(chip, HIFREQ);
708 vx_outl(chip, DATA, ((data & 0x800000) ? VX_DATA_CODEC_MASK : 0));
711 vx_inl(chip, RUER);
720 struct snd_vx222 *chip = to_vx222(_chip);
723 vx_outl(chip, CDSP, chip->regCDSP &~ VX_CDSP_CODEC_RESET_MASK);
724 vx_inl(chip, CDSP);
727 chip->regCDSP |= VX_CDSP_CODEC_RESET_MASK;
728 vx_outl(chip, CDSP, chip->regCDSP);
729 vx_inl(chip, CDSP);
745 chip->regSELMIC = MICRO_SELECT_INPUT_NORM |
750 chip->regSELMIC &= ~MICRO_SELECT_PHANTOM_ALIM;
752 vx_outl(_chip, SELMIC, chip->regSELMIC);
762 struct snd_vx222 *chip = to_vx222(_chip);
766 chip->regCFG |= VX_CFG_DATAIN_SEL_MASK;
769 chip->regCFG &= ~VX_CFG_DATAIN_SEL_MASK;
772 vx_outl(chip, CFG, chip->regCFG);
781 struct snd_vx222 *chip = to_vx222(_chip);
784 chip->regCFG &= ~VX_CFG_CLOCKIN_SEL_MASK;
786 chip->regCFG |= VX_CFG_CLOCKIN_SEL_MASK;
787 vx_outl(chip, CFG, chip->regCFG);
795 struct snd_vx222 *chip = to_vx222(_chip);
798 chip->regCDSP = VX_CDSP_CODEC_RESET_MASK | VX_CDSP_DSP_RESET_MASK ;
799 chip->regCFG = 0;
814 static void vx2_set_input_level(struct snd_vx222 *chip)
819 miclevel = chip->mic_level;
830 chip->regSELMIC &= ~MICRO_SELECT_PREAMPLI_MASK;
831 chip->regSELMIC |= (preamp << MICRO_SELECT_PREAMPLI_OFFSET) & MICRO_SELECT_PREAMPLI_MASK;
832 vx_outl(chip, SELMIC, chip->regSELMIC);
835 (unsigned int)chip->input_level[1] << 8 |
836 (unsigned int)chip->input_level[0];
837 vx_inl(chip, DATA); /* Activate input level programming */
841 vx_outl(chip, DATA, ((data & 0x80000000) ? VX_DATA_CODEC_MASK : 0));
843 vx_inl(chip, RUER); /* Terminate input level programming */
868 struct snd_vx222 *chip = to_vx222(_chip);
870 ucontrol->value.integer.value[0] = chip->input_level[0];
871 ucontrol->value.integer.value[1] = chip->input_level[1];
879 struct snd_vx222 *chip = to_vx222(_chip);
887 if (chip->input_level[0] != ucontrol->value.integer.value[0] ||
888 chip->input_level[1] != ucontrol->value.integer.value[1]) {
889 chip->input_level[0] = ucontrol->value.integer.value[0];
890 chip->input_level[1] = ucontrol->value.integer.value[1];
891 vx2_set_input_level(chip);
912 struct snd_vx222 *chip = to_vx222(_chip);
913 ucontrol->value.integer.value[0] = chip->mic_level;
920 struct snd_vx222 *chip = to_vx222(_chip);
925 if (chip->mic_level != ucontrol->value.integer.value[0]) {
926 chip->mic_level = ucontrol->value.integer.value[0];
927 vx2_set_input_level(chip);
963 struct snd_vx222 *chip = to_vx222(_chip);
970 chip->input_level[0] = chip->input_level[1] = 0;
971 chip->mic_level = 0;
972 vx2_set_input_level(chip);
975 if ((err = snd_ctl_add(_chip->card, snd_ctl_new1(&vx_control_input_level, chip))) < 0)
977 if ((err = snd_ctl_add(_chip->card, snd_ctl_new1(&vx_control_mic_level, chip))) < 0)