Skip to content
Snippets Groups Projects
  1. Dec 28, 2022
    • Takashi Iwai's avatar
      ALSA: hda/hdmi: Static PCM mapping again with AMD HDMI codecs · 090ddad4
      Takashi Iwai authored
      The recent code refactoring for HD-audio HDMI codec driver caused a
      regression on AMD/ATI HDMI codecs; namely, PulseAudioand pipewire
      don't recognize HDMI outputs any longer while the direct output via
      ALSA raw access still works.
      
      The problem turned out that, after the code refactoring, the driver
      assumes only the dynamic PCM assignment, and when a PCM stream that
      still isn't assigned to any pin gets opened, the driver tries to
      assign any free converter to the PCM stream.  This behavior is OK for
      Intel and other codecs, as they have arbitrary connections between
      pins and converters.  OTOH, on AMD chips that have a 1:1 mapping
      between pins and converters, this may end up with blocking the open of
      the next PCM stream for the pin that is tied with the formerly taken
      converter.
      
      Also, with the code refactoring, more PCM streams are exposed than
      necessary as we assume all converters can be used, while this isn't
      true for AMD case.  This may change the PCM stream assignment and
      confuse users as well.
      
      This patch fixes those problems by:
      
      - Introducing a flag spec->static_pcm_mapping, and if it's set, the
        driver applies the static mapping between pins and converters at the
        probe time
      - Limiting the number of PCM streams per pins, too; this avoids the
        superfluous PCM streams
      
      Fixes: ef6f5494 ("ALSA: hda/hdmi: Use only dynamic PCM device allocation")
      Cc: <stable@vger.kernel.org>
      Link: https://bugzilla.kernel.org/show_bug.cgi?id=216836
      
      
      Co-developed-by: default avatarJaroslav Kysela <perex@perex.cz>
      Signed-off-by: default avatarJaroslav Kysela <perex@perex.cz>
      Link: https://lore.kernel.org/r/20221228125714.16329-1-tiwai@suse.de
      
      
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      090ddad4
  2. Dec 26, 2022
  3. Dec 25, 2022
    • Steven Rostedt (Google)'s avatar
      treewide: Convert del_timer*() to timer_shutdown*() · 292a089d
      Steven Rostedt (Google) authored
      Due to several bugs caused by timers being re-armed after they are
      shutdown and just before they are freed, a new state of timers was added
      called "shutdown".  After a timer is set to this state, then it can no
      longer be re-armed.
      
      The following script was run to find all the trivial locations where
      del_timer() or del_timer_sync() is called in the same function that the
      object holding the timer is freed.  It also ignores any locations where
      the timer->function is modified between the del_timer*() and the free(),
      as that is not considered a "trivial" case.
      
      This was created by using a coccinelle script and the following
      commands:
      
          $ cat timer.cocci
          @@
          expression ptr, slab;
          identifier timer, rfield;
          @@
          (
          -       del_timer(&ptr->timer);
          +       timer_shutdown(&ptr->timer);
          |
          -       del_timer_sync(&ptr->timer);
          +       timer_shutdown_sync(&ptr->timer);
          )
            ... when strict
                when != ptr->timer
          (
                  kfree_rcu(ptr, rfield);
          |
                  kmem_cache_free(slab, ptr);
          |
                  kfree(ptr);
          )
      
          $ spatch timer.cocci . > /tmp/t.patch
          $ patch -p1 < /tmp/t.patch
      
      Link: https://lore.kernel.org/lkml/20221123201306.823305113@linutronix.de/
      
      
      Signed-off-by: default avatarSteven Rostedt (Google) <rostedt@goodmis.org>
      Acked-by: Pavel Machek <pavel@ucw.cz> [ LED ]
      Acked-by: Kalle Valo <kvalo@kernel.org> [ wireless ]
      Acked-by: Paolo Abeni <pabeni@redhat.com> [ networking ]
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      292a089d
  4. Dec 22, 2022
  5. Dec 21, 2022
  6. Dec 15, 2022
  7. Dec 14, 2022
  8. Dec 13, 2022
  9. Dec 12, 2022
  10. Dec 09, 2022
  11. Dec 07, 2022
Loading