ALSA: hda - set GET bit when adding a vendor verb to the codec regmap
authorMengdong Lin <mengdong.lin@intel.com>
Tue, 14 Apr 2015 03:25:36 +0000 (11:25 +0800)
committerTakashi Iwai <tiwai@suse.de>
Tue, 14 Apr 2015 05:25:42 +0000 (07:25 +0200)
Some HD-A codecs may add their own vendor 'set' verb to the regmap, thru func
snd_hdac_add_vendor_verb(). This patch sets the GET bit (bit 11)  when adding
the verb so that its peer vendor 'get' verb is actually added. This can avoid
I/O error when writing the 'set' verb thru remap, since HD-A regmap internally
looks up a writable vendor verb with GET bit set at first.

Signed-off-by: Mengdong Lin <mengdong.lin@intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/hda/hdac_regmap.c

index 51f1b5c8a91ccccd37f2d2ad7725111d1a4890a7..7371e0c3926f32a9104b521d0bf70f1c35f0740f 100644 (file)
@@ -368,7 +368,7 @@ int snd_hdac_regmap_add_vendor_verb(struct hdac_device *codec,
 
        if (!p)
                return -ENOMEM;
-       *p = verb;
+       *p = verb | 0x800; /* set GET bit */
        return 0;
 }
 EXPORT_SYMBOL_GPL(snd_hdac_regmap_add_vendor_verb);