OSDN Git Service

ALSA: hda - Add fixup_forced flag
authorDavid Henningsson <david.henningsson@canonical.com>
Mon, 26 May 2014 08:22:40 +0000 (16:22 +0800)
committerTakashi Iwai <tiwai@suse.de>
Mon, 26 May 2014 09:03:38 +0000 (11:03 +0200)
The "fixup_forced" flag will indicate whether a specific fixup
(or nofixup) has been set by the user, to override the driver's
default.
This flag will help future patches.

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/pci/hda/hda_auto_parser.c
sound/pci/hda/hda_codec.h

index 90d2fda..36961ab 100644 (file)
@@ -852,15 +852,17 @@ void snd_hda_pick_fixup(struct hda_codec *codec,
        if (codec->modelname && !strcmp(codec->modelname, "nofixup")) {
                codec->fixup_list = NULL;
                codec->fixup_id = -1;
+               codec->fixup_forced = 1;
                return;
        }
 
        if (codec->modelname && models) {
                while (models->name) {
                        if (!strcmp(codec->modelname, models->name)) {
-                               id = models->id;
-                               name = models->name;
-                               break;
+                               codec->fixup_id = models->id;
+                               codec->fixup_name = models->name;
+                               codec->fixup_forced = 1;
+                               return;
                        }
                        models++;
                }
@@ -889,6 +891,7 @@ void snd_hda_pick_fixup(struct hda_codec *codec,
                }
        }
 
+       codec->fixup_forced = 0;
        codec->fixup_id = id;
        if (id >= 0) {
                codec->fixup_list = fixlist;
index a423313..5825aa1 100644 (file)
@@ -402,6 +402,7 @@ struct hda_codec {
 
        /* fix-up list */
        int fixup_id;
+       unsigned int fixup_forced:1; /* fixup explicitly set by user */
        const struct hda_fixup *fixup_list;
        const char *fixup_name;