Blame view

sound/firewire/bebob/bebob_terratec.c 1.29 KB
326b9cacf   Takashi Sakamoto   ALSA: bebob: Add ...
1
2
3
4
5
6
7
8
9
  /*
   * bebob_terratec.c - a part of driver for BeBoB based devices
   *
   * Copyright (c) 2013-2014 Takashi Sakamoto
   *
   * Licensed under the terms of the GNU General Public License, version 2.
   */
  
  #include "./bebob.h"
ba5177131   Takashi Sakamoto   ALSA: bebob: prep...
10
11
12
13
14
  static enum snd_bebob_clock_type phase88_rack_clk_src_types[] = {
  	SND_BEBOB_CLOCK_TYPE_INTERNAL,
  	SND_BEBOB_CLOCK_TYPE_EXTERNAL,	/* S/PDIF */
  	SND_BEBOB_CLOCK_TYPE_EXTERNAL,	/* Word Clock */
  };
326b9cacf   Takashi Sakamoto   ALSA: bebob: Add ...
15
16
17
18
19
  static int
  phase88_rack_clk_src_get(struct snd_bebob *bebob, unsigned int *id)
  {
  	unsigned int enable_ext, enable_word;
  	int err;
3f4032861   Takashi Sakamoto   ALSA: bebob: Fix ...
20
  	err = avc_audio_get_selector(bebob->unit, 0, 9, &enable_ext);
326b9cacf   Takashi Sakamoto   ALSA: bebob: Add ...
21
22
  	if (err < 0)
  		goto end;
3f4032861   Takashi Sakamoto   ALSA: bebob: Fix ...
23
  	err = avc_audio_get_selector(bebob->unit, 0, 8, &enable_word);
326b9cacf   Takashi Sakamoto   ALSA: bebob: Add ...
24
25
  	if (err < 0)
  		goto end;
7ce5c9268   Takashi Sakamoto   ALSA: bebob: fix ...
26
27
28
29
30
31
  	if (enable_ext == 0)
  		*id = 0;
  	else if (enable_word == 0)
  		*id = 1;
  	else
  		*id = 2;
326b9cacf   Takashi Sakamoto   ALSA: bebob: Add ...
32
33
34
  end:
  	return err;
  }
6b9866c89   Julia Lawall   ALSA: bebob: cons...
35
  static const struct snd_bebob_rate_spec phase_series_rate_spec = {
326b9cacf   Takashi Sakamoto   ALSA: bebob: Add ...
36
37
38
39
40
  	.get	= &snd_bebob_stream_get_rate,
  	.set	= &snd_bebob_stream_set_rate,
  };
  
  /* PHASE 88 Rack FW */
6b9866c89   Julia Lawall   ALSA: bebob: cons...
41
  static const struct snd_bebob_clock_spec phase88_rack_clk = {
ba5177131   Takashi Sakamoto   ALSA: bebob: prep...
42
  	.num	= ARRAY_SIZE(phase88_rack_clk_src_types),
ba5177131   Takashi Sakamoto   ALSA: bebob: prep...
43
  	.types	= phase88_rack_clk_src_types,
326b9cacf   Takashi Sakamoto   ALSA: bebob: Add ...
44
45
  	.get	= &phase88_rack_clk_src_get,
  };
6b9866c89   Julia Lawall   ALSA: bebob: cons...
46
  const struct snd_bebob_spec phase88_rack_spec = {
326b9cacf   Takashi Sakamoto   ALSA: bebob: Add ...
47
48
49
50
  	.clock	= &phase88_rack_clk,
  	.rate	= &phase_series_rate_spec,
  	.meter	= NULL
  };