OSDN Git Service

Merge tag 'sound-4.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai...
[uclinux-h8/linux.git] / sound / firewire / bebob / bebob_maudio.c
index 9ee25a6..057495d 100644 (file)
@@ -340,9 +340,12 @@ end:
 }
 
 /* Clock source control for special firmware */
-static const char *const special_clk_labels[] = {
-       SND_BEBOB_CLOCK_INTERNAL " with Digital Mute", "Digital",
-       "Word Clock", SND_BEBOB_CLOCK_INTERNAL};
+static enum snd_bebob_clock_type special_clk_types[] = {
+       SND_BEBOB_CLOCK_TYPE_INTERNAL,  /* With digital mute */
+       SND_BEBOB_CLOCK_TYPE_EXTERNAL,  /* SPDIF/ADAT */
+       SND_BEBOB_CLOCK_TYPE_EXTERNAL,  /* Word Clock */
+       SND_BEBOB_CLOCK_TYPE_INTERNAL,
+};
 static int special_clk_get(struct snd_bebob *bebob, unsigned int *id)
 {
        struct special_params *params = bebob->maudio_special_quirk;
@@ -352,7 +355,13 @@ static int special_clk_get(struct snd_bebob *bebob, unsigned int *id)
 static int special_clk_ctl_info(struct snd_kcontrol *kctl,
                                struct snd_ctl_elem_info *einf)
 {
-       return snd_ctl_enum_info(einf, 1, ARRAY_SIZE(special_clk_labels),
+       static const char *const special_clk_labels[] = {
+               "Internal with Digital Mute",
+               "Digital",
+               "Word Clock",
+               "Internal"
+       };
+       return snd_ctl_enum_info(einf, 1, ARRAY_SIZE(special_clk_types),
                                 special_clk_labels);
 }
 static int special_clk_ctl_get(struct snd_kcontrol *kctl,
@@ -371,7 +380,7 @@ static int special_clk_ctl_put(struct snd_kcontrol *kctl,
        int err, id;
 
        id = uval->value.enumerated.item[0];
-       if (id >= ARRAY_SIZE(special_clk_labels))
+       if (id >= ARRAY_SIZE(special_clk_types))
                return -EINVAL;
 
        mutex_lock(&bebob->mutex);
@@ -708,8 +717,8 @@ static struct snd_bebob_rate_spec special_rate_spec = {
        .set    = &special_set_rate,
 };
 static struct snd_bebob_clock_spec special_clk_spec = {
-       .num    = ARRAY_SIZE(special_clk_labels),
-       .labels = special_clk_labels,
+       .num    = ARRAY_SIZE(special_clk_types),
+       .types  = special_clk_types,
        .get    = &special_clk_get,
 };
 static struct snd_bebob_meter_spec special_meter_spec = {