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: Johannes Berg <johannes@sipsolutions.net> Cc: <stable@kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
83b2086ce2
commit
fcad94a4c7
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue