Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fcad94a4 authored by Takashi Iwai's avatar Takashi Iwai
Browse files

ALSA: hda - Fix the cmd cache keys for amp verbs



Fix the key value generation for get/set amp verbs.  The upper bits of
the parameter have to be combined with the verb value to be unique for
each direction/index of amp access.

This fixes the resume problem on some hardwares like Macbook after
the channel mode is changed.

Tested-by: default avatarJohannes Berg <johannes@sipsolutions.net>
Cc: <stable@kernel.org>
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent 83b2086c
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -2250,7 +2250,11 @@ int snd_hda_codec_write_cache(struct hda_codec *codec, hda_nid_t nid,
	err = bus->ops.command(bus, res);
	if (!err) {
		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);
		if (c)
			c->val = parm;