]> bbs.cooldavid.org Git - net-next-2.6.git/blobdiff - sound/pci/hda/patch_via.c
ALSA: hda - Keep char arrays in input_mux items
[net-next-2.6.git] / sound / pci / hda / patch_via.c
index 93b86adbce634883cd7a145ac61073466315d803..9c1909d398e32b84fa48003e661a2c809a91bb94 100644 (file)
@@ -2376,7 +2376,7 @@ static void create_hp_imux(struct via_spec *spec)
        /* for hp mode select */
        i = 0;
        while (texts[i] != NULL) {
-               imux->items[imux->num_items].label =  texts[i];
+               strcpy(imux->items[imux->num_items].label, texts[i]);
                imux->items[imux->num_items].index = i;
                imux->num_items++;
                i++;
@@ -2423,7 +2423,8 @@ static int vt_auto_create_analog_input_ctls(struct via_spec *spec,
        /* for internal loopback recording select */
        for (idx = 0; idx < num_idxs; idx++) {
                if (pin_idxs[idx] == 0xff) {
-                       imux->items[imux->num_items].label = "Stereo Mixer";
+                       strcpy(imux->items[imux->num_items].label,
+                              "Stereo Mixer");
                        imux->items[imux->num_items].index = idx;
                        imux->num_items++;
                        break;
@@ -2445,8 +2446,8 @@ static int vt_auto_create_analog_input_ctls(struct via_spec *spec,
                                           type_idx, idx, cap_nid);
                if (err < 0)
                        return err;
-               imux->items[imux->num_items].label =
-                       snd_hda_get_input_pin_label(cfg, i);
+               snd_hda_get_input_pin_label(cfg, i,
+                       imux->items[imux->num_items].label);
                imux->items[imux->num_items].index = idx;
                imux->num_items++;
        }
@@ -4336,7 +4337,7 @@ static int vt1702_auto_create_hp_ctls(struct via_spec *spec, hda_nid_t pin)
        /* for hp mode select */
        i = 0;
        while (texts[i] != NULL)        {
-               imux->items[imux->num_items].label =  texts[i];
+               strcpy(imux->items[imux->num_items].label, texts[i]);
                imux->items[imux->num_items].index = i;
                imux->num_items++;
                i++;
@@ -5520,7 +5521,7 @@ static int vt2002P_auto_create_analog_input_ctls(struct via_spec *spec,
                return err;
 
        /* for digital mic select */
-       imux->items[imux->num_items].label = "Digital Mic";
+       strcpy(imux->items[imux->num_items].label, "Digital Mic");
        imux->items[imux->num_items].index = 4;
        imux->num_items++;
 
@@ -5843,7 +5844,7 @@ static int vt1812_auto_create_analog_input_ctls(struct via_spec *spec,
                return err;
 
        /* for digital mic select */
-       imux->items[imux->num_items].label = "Digital Mic";
+       strcpy(imux->items[imux->num_items].label, "Digital Mic");
        imux->items[imux->num_items].index = 6;
        imux->num_items++;