Skip to content
Snippets Groups Projects
Commit 98a226ed authored by Takashi Iwai's avatar Takashi Iwai
Browse files

ALSA: hda - Don't actually write registers for caps overwrites


Along with the transition to regmap for managing the cached parameter
reads, the caps overwrite was also moved to regmap cache.  The cache
change itself works, but it still tries to write the non-existing verb
(the HDA parameter is read-only) wrongly.  It's harmless in most
cases, but some chips are picky and may result in the codec
communication stall.

This patch avoids it just by adding the missing flag check in
reg_write ops.

Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent 132bd96b
No related branches found
No related tags found
No related merge requests found
...@@ -265,6 +265,9 @@ static int hda_reg_write(void *context, unsigned int reg, unsigned int val) ...@@ -265,6 +265,9 @@ static int hda_reg_write(void *context, unsigned int reg, unsigned int val)
unsigned int verb; unsigned int verb;
int i, bytes, err; int i, bytes, err;
if (codec->caps_overwriting)
return 0;
reg &= ~0x00080000U; /* drop GET bit */ reg &= ~0x00080000U; /* drop GET bit */
reg |= (codec->addr << 28); reg |= (codec->addr << 28);
verb = get_verb(reg); verb = get_verb(reg);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment