• Home
  • Raw
  • Download

Lines Matching refs:chip

33 static int vx_modify_board_clock(struct vx_core *chip, int sync)  in vx_modify_board_clock()  argument
41 return vx_send_msg(chip, &rmh); in vx_modify_board_clock()
47 static int vx_modify_board_inputs(struct vx_core *chip) in vx_modify_board_inputs() argument
53 return vx_send_msg(chip, &rmh); in vx_modify_board_inputs()
61 static int vx_read_one_cbit(struct vx_core *chip, int index) in vx_read_one_cbit() argument
65 mutex_lock(&chip->lock); in vx_read_one_cbit()
66 if (chip->type >= VX_TYPE_VXPOCKET) { in vx_read_one_cbit()
67 vx_outb(chip, CSUER, 1); /* read */ in vx_read_one_cbit()
68 vx_outb(chip, RUER, index & XX_UER_CBITS_OFFSET_MASK); in vx_read_one_cbit()
69 val = (vx_inb(chip, RUER) >> 7) & 0x01; in vx_read_one_cbit()
71 vx_outl(chip, CSUER, 1); /* read */ in vx_read_one_cbit()
72 vx_outl(chip, RUER, index & XX_UER_CBITS_OFFSET_MASK); in vx_read_one_cbit()
73 val = (vx_inl(chip, RUER) >> 7) & 0x01; in vx_read_one_cbit()
75 mutex_unlock(&chip->lock); in vx_read_one_cbit()
84 static void vx_write_one_cbit(struct vx_core *chip, int index, int val) in vx_write_one_cbit() argument
87 mutex_lock(&chip->lock); in vx_write_one_cbit()
88 if (vx_is_pcmcia(chip)) { in vx_write_one_cbit()
89 vx_outb(chip, CSUER, 0); /* write */ in vx_write_one_cbit()
90 vx_outb(chip, RUER, (val << 7) | (index & XX_UER_CBITS_OFFSET_MASK)); in vx_write_one_cbit()
92 vx_outl(chip, CSUER, 0); /* write */ in vx_write_one_cbit()
93 vx_outl(chip, RUER, (val << 7) | (index & XX_UER_CBITS_OFFSET_MASK)); in vx_write_one_cbit()
95 mutex_unlock(&chip->lock); in vx_write_one_cbit()
105 static int vx_read_uer_status(struct vx_core *chip, unsigned int *mode) in vx_read_uer_status() argument
113 if (vx_is_pcmcia(chip)) in vx_read_uer_status()
114 val = vx_inb(chip, CSUER); in vx_read_uer_status()
116 val = vx_inl(chip, CSUER); in vx_read_uer_status()
135 *mode = vx_read_one_cbit(chip, 0) ? in vx_read_uer_status()
161 static int vx_calc_clock_from_freq(struct vx_core *chip, int freq) in vx_calc_clock_from_freq() argument
190 static void vx_change_clock_source(struct vx_core *chip, int source) in vx_change_clock_source() argument
193 vx_toggle_dac_mute(chip, 1); in vx_change_clock_source()
194 mutex_lock(&chip->lock); in vx_change_clock_source()
195 chip->ops->set_clock_source(chip, source); in vx_change_clock_source()
196 chip->clock_source = source; in vx_change_clock_source()
197 mutex_unlock(&chip->lock); in vx_change_clock_source()
199 vx_toggle_dac_mute(chip, 0); in vx_change_clock_source()
206 void vx_set_internal_clock(struct vx_core *chip, unsigned int freq) in vx_set_internal_clock() argument
211 clock = vx_calc_clock_from_freq(chip, freq); in vx_set_internal_clock()
213 mutex_lock(&chip->lock); in vx_set_internal_clock()
214 if (vx_is_pcmcia(chip)) { in vx_set_internal_clock()
215 vx_outb(chip, HIFREQ, (clock >> 8) & 0x0f); in vx_set_internal_clock()
216 vx_outb(chip, LOFREQ, clock & 0xff); in vx_set_internal_clock()
218 vx_outl(chip, HIFREQ, (clock >> 8) & 0x0f); in vx_set_internal_clock()
219 vx_outl(chip, LOFREQ, clock & 0xff); in vx_set_internal_clock()
221 mutex_unlock(&chip->lock); in vx_set_internal_clock()
229 void vx_set_iec958_status(struct vx_core *chip, unsigned int bits) in vx_set_iec958_status() argument
233 if (chip->chip_status & VX_STAT_IS_STALE) in vx_set_iec958_status()
237 vx_write_one_cbit(chip, i, bits & (1 << i)); in vx_set_iec958_status()
244 int vx_set_clock(struct vx_core *chip, unsigned int freq) in vx_set_clock() argument
248 if (chip->chip_status & VX_STAT_IS_STALE) in vx_set_clock()
252 vx_sync_audio_source(chip); in vx_set_clock()
254 if (chip->clock_mode == VX_CLOCK_MODE_EXTERNAL || in vx_set_clock()
255 (chip->clock_mode == VX_CLOCK_MODE_AUTO && in vx_set_clock()
256 chip->audio_source == VX_AUDIO_SRC_DIGITAL)) { in vx_set_clock()
257 if (chip->clock_source != UER_SYNC) { in vx_set_clock()
258 vx_change_clock_source(chip, UER_SYNC); in vx_set_clock()
262 } else if (chip->clock_mode == VX_CLOCK_MODE_INTERNAL || in vx_set_clock()
263 (chip->clock_mode == VX_CLOCK_MODE_AUTO && in vx_set_clock()
264 chip->audio_source != VX_AUDIO_SRC_DIGITAL)) { in vx_set_clock()
265 if (chip->clock_source != INTERNAL_QUARTZ) { in vx_set_clock()
266 vx_change_clock_source(chip, INTERNAL_QUARTZ); in vx_set_clock()
269 if (chip->freq == freq) in vx_set_clock()
271 vx_set_internal_clock(chip, freq); in vx_set_clock()
273 vx_modify_board_inputs(chip); in vx_set_clock()
275 if (chip->freq == freq) in vx_set_clock()
277 chip->freq = freq; in vx_set_clock()
278 vx_modify_board_clock(chip, 1); in vx_set_clock()
286 int vx_change_frequency(struct vx_core *chip) in vx_change_frequency() argument
290 if (chip->chip_status & VX_STAT_IS_STALE) in vx_change_frequency()
293 if (chip->clock_source == INTERNAL_QUARTZ) in vx_change_frequency()
298 freq = vx_read_uer_status(chip, &chip->uer_detected); in vx_change_frequency()
306 chip->freq_detected = freq; in vx_change_frequency()