1. 30 Sep, 2020 1 commit
  2. 29 Sep, 2020 1 commit
  3. 22 Sep, 2020 1 commit
  4. 21 Sep, 2020 5 commits
  5. 11 Sep, 2020 1 commit
  6. 09 Sep, 2020 1 commit
  7. 08 Sep, 2020 1 commit
  8. 07 Sep, 2020 2 commits
  9. 03 Sep, 2020 1 commit
  10. 02 Sep, 2020 16 commits
  11. 01 Sep, 2020 5 commits
  12. 29 Aug, 2020 1 commit
  13. 28 Aug, 2020 2 commits
    • Jerome Brunet's avatar
      ASoC: meson: axg-toddr: fix channel order on g12 platforms · 9c4b205a
      Jerome Brunet authored
      On g12 and following platforms, The first channel of record with more than
      2 channels ends being placed randomly on an even channel of the output.
      
      On these SoCs, a bit was added to force the first channel to be placed at
      the beginning of the output. Apparently the behavior if the bit is not set
      is not easily predictable. According to the documentation, this bit is not
      present on the axg series.
      
      Set the bit on g12 and fix the problem.
      
      Fixes: a3c23a8a ("ASoC: meson: axg-toddr: add g12a support")
      Reported-by: default avatarNicolas Belin <nbelin@baylibre.com>
      Signed-off-by: default avatarJerome Brunet <jbrunet@baylibre.com>
      Link: https://lore.kernel.org/r/20200828151438.350974-1-jbrunet@baylibre.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
      9c4b205a
    • Kuninori Morimoto's avatar
      ASoC: soc-core: add snd_soc_find_dai_with_mutex() · 20d9fdee
      Kuninori Morimoto authored
      commit 25612477 ("ASoC: soc-dai: set dai_link dpcm_ flags with a helper")
      added snd_soc_dai_link_set_capabilities().
      But it is using snd_soc_find_dai() (A) which is required client_mutex (B).
      And client_mutex is soc-core.c local.
      
      	struct snd_soc_dai *snd_soc_find_dai(xxx)
      	{
      		...
      (B)		lockdep_assert_held(&client_mutex);
      		...
      	}
      
      	void snd_soc_dai_link_set_capabilities(xxx)
      	{
      		...
      		for_each_pcm_streams(direction) {
      			...
      			for_each_link_cpus(dai_link, i, cpu) {
      (A)				dai = snd_soc_find_dai(cpu);
      				...
      			}
      			...
      			for_each_link_codecs(dai_link, i, codec) {
      (A)				dai = snd_soc_find_dai(codec);
      				...
      			}
      		}
      		...
      	}
      
      Because of these background, we will get WARNING if .config has CONFIG_LOCKDEP.
      
      	WARNING: CPU: 2 PID: 53 at sound/soc/soc-core.c:814 snd_soc_find_dai+0xf8/0x100
      	CPU: 2 PID: 53 Comm: kworker/2:1 Not tainted 5.7.0-rc1+ #328
      	Hardware name: Renesas H3ULCB Kingfisher board based on r8a77951 (DT)
      	Workqueue: events deferred_probe_work_func
      	pstate: 60000005 (nZCv daif -PAN -UAO)
      	pc : snd_soc_find_dai+0xf8/0x100
      	lr : snd_soc_find_dai+0xf4/0x100
      	...
      	Call trace:
      	 snd_soc_find_dai+0xf8/0x100
      	 snd_soc_dai_link_set_capabilities+0xa0/0x16c
      	 graph_dai_link_of_dpcm+0x390/0x3c0
      	 graph_for_each_link+0x134/0x200
      	 graph_probe+0x144/0x230
      	 platform_drv_probe+0x5c/0xb0
      	 really_probe+0xe4/0x430
      	 driver_probe_device+0x60/0xf4
      
      snd_soc_find_dai() will be used from (X) CPU/Codec/Platform driver with
      mutex lock, and (Y) Card driver without mutex lock.
      This snd_soc_dai_link_set_capabilities() is for Card driver,
      this means called without mutex.
      This patch adds snd_soc_find_dai_with_mutex() to solve it.
      
      Fixes: 25612477 ("ASoC: soc-dai: set dai_link dpcm_ flags with a helper")
      Signed-off-by: default avatarKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
      Link: https://lore.kernel.org/r/87blixvuab.wl-kuninori.morimoto.gx@renesas.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
      20d9fdee
  14. 26 Aug, 2020 2 commits
    • Kai Vehmanen's avatar
      ALSA: hda/hdmi: always check pin power status in i915 pin fixup · 858e0ad9
      Kai Vehmanen authored
      When system is suspended with active audio playback to HDMI/DP, two
      alternative sequences can happen at resume:
        a) monitor is detected first and ALSA prepare follows normal
           stream setup sequence, or
        b) ALSA prepare is called first, but monitor is not yet detected,
           so PCM is restarted without a pin,
      
      In case of (b), on i915 systems, haswell_verify_D0() is not called at
      resume and the pin power state may be incorrect. Result is lack of audio
      after resume with no error reported back to user-space.
      
      Fix the problem by always verifying converter and pin state in the
      i915_pin_cvt_fixup().
      
      BugLink: https://github.com/thesofproject/linux/issues/2388Signed-off-by: default avatarKai Vehmanen <kai.vehmanen@linux.intel.com>
      Cc: <stable@vger.kernel.org>
      Link: https://lore.kernel.org/r/20200826170306.701566-1-kai.vehmanen@linux.intel.comSigned-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      858e0ad9
    • Mark Brown's avatar
      Merge series "ASoC: Fix return check for devm_regmap_init_sdw()" from Vinod... · d563b6c8
      Mark Brown authored
      Merge series "ASoC: Fix return check for devm_regmap_init_sdw()" from Vinod Koul <vkoul@kernel.org>:
      
      This series attempts to fix return check for devm_regmap_init_sdw()
      
      Changes in v2:
       - Add missing patch for rt711
       - Add patch for rt700
      
      Vinod Koul (5):
        ASoC: max98373: Fix return check for devm_regmap_init_sdw()
        ASoC: rt1308-sdw: Fix return check for devm_regmap_init_sdw()
        ASoC: rt711: Fix return check for devm_regmap_init_sdw()
        ASoC: rt715: Fix return check for devm_regmap_init_sdw()
        ASoC: rt700: Fix return check for devm_regmap_init_sdw()
      
       sound/soc/codecs/max98373-sdw.c | 4 ++--
       sound/soc/codecs/rt1308-sdw.c   | 4 ++--
       sound/soc/codecs/rt700-sdw.c    | 4 ++--
       sound/soc/codecs/rt711-sdw.c    | 4 ++--
       sound/soc/codecs/rt715-sdw.c    | 4 ++--
       5 files changed, 10 insertions(+), 10 deletions(-)
      
      --
      2.26.2
      d563b6c8