• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/sound/pci/echoaudio/

Lines Matching defs:chip

32 static int read_dsp(struct echoaudio *chip, u32 *data);
33 static int set_professional_spdif(struct echoaudio *chip, char prof);
34 static int load_asic_generic(struct echoaudio *chip, u32 cmd, short asic);
35 static int check_asic_status(struct echoaudio *chip);
36 static int update_flags(struct echoaudio *chip);
39 static int init_hw(struct echoaudio *chip, u16 device_id, u16 subdevice_id)
47 if ((err = init_dsp_comm_page(chip))) {
52 chip->device_id = device_id;
53 chip->subdevice_id = subdevice_id;
54 chip->bad_board = TRUE;
55 chip->has_midi = TRUE;
56 chip->dsp_code_to_load = FW_LAYLA20_DSP;
57 chip->input_clock_types =
60 chip->output_clock_types =
63 if ((err = load_firmware(chip)) < 0)
65 chip->bad_board = FALSE;
73 static int set_mixer_defaults(struct echoaudio *chip)
75 chip->professional_spdif = FALSE;
76 return init_line_levels(chip);
81 static u32 detect_input_clocks(const struct echoaudio *chip)
86 clocks_from_dsp = le32_to_cpu(chip->comm_page->status_clocks);
112 static int check_asic_status(struct echoaudio *chip)
117 chip->asic_loaded = FALSE;
119 send_vector(chip, DSP_VC_TEST_ASIC);
123 if (read_dsp(chip, &asic_status) < 0) {
130 chip->asic_loaded = TRUE;
141 static int load_asic(struct echoaudio *chip)
145 if (chip->asic_loaded)
148 err = load_asic_generic(chip, DSP_FNC_LOAD_LAYLA_ASIC,
154 return check_asic_status(chip);
159 static int set_sample_rate(struct echoaudio *chip, u32 rate)
166 if (chip->input_clock != ECHO_CLOCK_INTERNAL) {
169 chip->comm_page->sample_rate = cpu_to_le32(rate);
170 chip->sample_rate = rate;
174 if (wait_handshake(chip))
178 chip->sample_rate = rate;
179 chip->comm_page->sample_rate = cpu_to_le32(rate);
180 clear_handshake(chip);
181 return send_vector(chip, DSP_VC_SET_LAYLA_SAMPLE_RATE);
186 static int set_input_clock(struct echoaudio *chip, u16 clock_source)
196 rate = chip->sample_rate;
216 chip->input_clock = clock_source;
218 chip->comm_page->input_clock = cpu_to_le16(clock);
219 clear_handshake(chip);
220 send_vector(chip, DSP_VC_UPDATE_CLOCKS);
223 set_sample_rate(chip, rate);
230 static int set_output_clock(struct echoaudio *chip, u16 clock)
245 if (wait_handshake(chip))
248 chip->comm_page->output_clock = cpu_to_le16(clock);
249 chip->output_clock = clock;
250 clear_handshake(chip);
251 return send_vector(chip, DSP_VC_UPDATE_CLOCKS);
257 static int set_input_gain(struct echoaudio *chip, u16 input, int gain)
259 if (snd_BUG_ON(input >= num_busses_in(chip)))
262 if (wait_handshake(chip))
265 chip->input_gain[input] = gain;
267 chip->comm_page->line_in_level[input] = gain;
274 static int update_flags(struct echoaudio *chip)
276 if (wait_handshake(chip))
278 clear_handshake(chip);
279 return send_vector(chip, DSP_VC_UPDATE_FLAGS);
284 static int set_professional_spdif(struct echoaudio *chip, char prof)
288 chip->comm_page->flags |=
291 chip->comm_page->flags &=
293 chip->professional_spdif = prof;
294 return update_flags(chip);