sound fixes for 4.12
Linus,
please pull sound fixes for v4.12 from:
git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git tags/sound-4.12
The topmost commit is d94815f917da770d42c377786dc428f542e38f71
----------------------------------------------------------------
sound fixes for 4.12
Two last-minute HD-audio fixes.
----------------------------------------------------------------
Hui Wang (1):
ALSA: hda - set input_path bitmap to zero after moving it to new place
Takashi Iwai (1):
ALSA: hda - Fix endless loop of codec configure
--- sound/pci/hda/hda_codec.h | 2 ++ sound/pci/hda/hda_controller.c | 8 ++++++-- sound/pci/hda/hda_generic.c | 1 + 3 files changed, 9 insertions(+), 2 deletions(-)
sound/pci/hda/hda_codec.h +2 -0
@@ -295,6 +295,8 @@ struct hda_codec {#define list_for_each_codec (c, bus) \ list_for_each_entry(c, &(bus)->core.codec_list, core.list) +#define list_for_each_codec_safe (c, n, bus) \ + list_for_each_entry_safe(c, n, &(bus)->core.codec_list, core.list)/* snd_hda_codec_read/write optional flags */ #define HDA_RW_NO_RESPONSE_FALLBACK (1 << 0)
sound/pci/hda/hda_controller.c +6 -2
@@ -1337,8 +1337,12 @@ EXPORT_SYMBOL_GPL(azx_probe_codecs);/* configure each codec instance */ int azx_codec_configure (struct azx *chip) { -struct hda_codec *codec; -list_for_each_codec (codec, &chip->bus) { +struct hda_codec *codec, *next; + +/* use _safe version here since snd_hda_codec_configure() deregisters +* the device upon error and deletes itself from the bus list. +*/ +list_for_each_codec_safe (codec, next, &chip->bus) {snd_hda_codec_configure (codec); }return 0 ;
sound/pci/hda/hda_generic.c +1 -0
@@ -3174,6 +3174,7 @@ static int check_dyn_adc_switch(struct hda_codec *codec) spec->input_paths[i][nums]); spec->input_paths[i][nums] = spec->input_paths[i][n]; + spec->input_paths[i][n] =0 ; } } nums++;