forked from luck/tmp_suning_uos_patched
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: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
132bd96bc5
commit
98a226ed21
|
@ -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);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user