Report abuse

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
*** alsa-driver-1.0.18.dfsg/alsa-kernel/usb/usbmixer.c	2008-10-29 15:41:35.000000000 +0300
--- alsa-driver-1.0.18.patched/alsa-kernel/usb/usbmixer.c	2009-05-20 12:46:43.000000000 +0400
*************** enum {
*** 181,186 ****
--- 181,191 ----
  	USB_PROC_DCR_RELEASE = 6,
  };

+ enum {
+ 	USB_XU_CLOCK_RATE = 0xe301,
+ 	USB_XU_CLOCK_RATE_SELECTOR = 0x03	/* clock rate */
+ };
+ 
  #define MAX_CHANNELS	10	/* max logical channels */


*************** static struct procunit_info procunits[] 
*** 1272,1277 ****
--- 1277,1295 ----
  };

  /*
+  * predefined data for extension units
+  */
+ static struct procunit_value_info clock_rate_xu_info[] = {
+ 	{ USB_XU_CLOCK_RATE_SELECTOR, "Selector", USB_MIXER_U8 },
+ 	{ 0 }
+ };
+ 
+ static struct procunit_info extunits[] = {
+ 	{ USB_XU_CLOCK_RATE, "Clock rate", clock_rate_xu_info },
+ 	{ 0 }
+ };
+ 
+ /*
   * build a processing/extension unit
   */
  static int build_audio_procunit(struct mixer_build *state, int unitid, unsigned char *dsc, struct procunit_info *list, char *name)
*************** static int parse_audio_processing_unit(s
*** 1373,1379 ****

  static int parse_audio_extension_unit(struct mixer_build *state, int unitid, unsigned char *desc)
  {
! 	return build_audio_procunit(state, unitid, desc, NULL, "Extension Unit");
  }


--- 1391,1397 ----

  static int parse_audio_extension_unit(struct mixer_build *state, int unitid, unsigned char *desc)
  {
! 	return build_audio_procunit(state, unitid, desc, extunits, "Extension Unit");
  }