浏览代码

Merge branch 'topic/hda' into for-linus

* topic/hda:
  ALSA: hda - Fix the cmd cache keys for amp verbs
  ALSA: add missing definitions(letters) to HD-Audio.txt
Takashi Iwai 16 年之前
父节点
当前提交
9dd175f7d2
共有 2 个文件被更改,包括 7 次插入3 次删除
  1. 2 2
      Documentation/sound/alsa/HD-Audio.txt
  2. 5 1
      sound/pci/hda/hda_codec.c

+ 2 - 2
Documentation/sound/alsa/HD-Audio.txt

@@ -169,7 +169,7 @@ PCI SSID look-up.
 What `model` option values are available depends on the codec chip.
 What `model` option values are available depends on the codec chip.
 Check your codec chip from the codec proc file (see "Codec Proc-File"
 Check your codec chip from the codec proc file (see "Codec Proc-File"
 section below).  It will show the vendor/product name of your codec
 section below).  It will show the vendor/product name of your codec
-chip.  Then, see Documentation/sound/alsa/HD-Audio-Modelstxt file,
+chip.  Then, see Documentation/sound/alsa/HD-Audio-Models.txt file,
 the section of HD-audio driver.  You can find a list of codecs
 the section of HD-audio driver.  You can find a list of codecs
 and `model` options belonging to each codec.  For example, for Realtek
 and `model` options belonging to each codec.  For example, for Realtek
 ALC262 codec chip, pass `model=ultra` for devices that are compatible
 ALC262 codec chip, pass `model=ultra` for devices that are compatible
@@ -177,7 +177,7 @@ with Samsung Q1 Ultra.
 
 
 Thus, the first thing you can do for any brand-new, unsupported and
 Thus, the first thing you can do for any brand-new, unsupported and
 non-working HD-audio hardware is to check HD-audio codec and several
 non-working HD-audio hardware is to check HD-audio codec and several
-different `model` option values.  If you have a luck, some of them
+different `model` option values.  If you have any luck, some of them
 might suit with your device well.
 might suit with your device well.
 
 
 Some codecs such as ALC880 have a special model option `model=test`.
 Some codecs such as ALC880 have a special model option `model=test`.

+ 5 - 1
sound/pci/hda/hda_codec.c

@@ -2250,7 +2250,11 @@ int snd_hda_codec_write_cache(struct hda_codec *codec, hda_nid_t nid,
 	err = bus->ops.command(bus, res);
 	err = bus->ops.command(bus, res);
 	if (!err) {
 	if (!err) {
 		struct hda_cache_head *c;
 		struct hda_cache_head *c;
-		u32 key = build_cmd_cache_key(nid, verb);
+		u32 key;
+		/* parm may contain the verb stuff for get/set amp */
+		verb = verb | (parm >> 8);
+		parm &= 0xff;
+		key = build_cmd_cache_key(nid, verb);
 		c = get_alloc_hash(&codec->cmd_cache, key);
 		c = get_alloc_hash(&codec->cmd_cache, key);
 		if (c)
 		if (c)
 			c->val = parm;
 			c->val = parm;