1. 26 Mar, 2020 3 commits
    • Takashi Iwai's avatar
      ALSA: usb-audio: Inform devices that need delayed registration · a4aad563
      Takashi Iwai authored
      The USB-audio driver may call snd_card_register() multiple times as
      its probe function is per USB interface while some USB-audio devices
      may provide multiple interfaces to assign different streams although
      they belong to the same device.  This works in most cases but the
      registration is racy, hence it may miss the device recognition,
      e.g. PA doesn't see certain devices when hotplugged.
      
      The recent addition of the delayed registration quirk allows to sync
      the registration at the last known interface, and the previous commit
      added a new module option to allow the dynamic setup for that
      purpose.
      
      Now, this patch tries to find out and notifies for such devices that
      require the delayed registration.  It shows a message like:
      
        Found post-registration device assignment: 1234abcd:02
      
      If you hit this message, you can pass delayed_register module option
      like:
      
        snd_usb_audio.delayed_register=1234abcd:02
      
      by just copying the last shown entry.  If this works, it can be added
      statically in the quirk list, registration_quirks[] found at the end
      of sound/usb/quirks.c.
      
      Link: https://lore.kernel.org/r/20200325103322.2508-4-tiwai@suse.deSigned-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      a4aad563
    • Takashi Iwai's avatar
      ALSA: usb-audio: Add delayed_register option · b70038ef
      Takashi Iwai authored
      Add a new option for specifying the quirk for delayed registration of
      the certain device.  A list of devices can be passed in a form
      	ID:IFACE,ID:IFACE,ID:IFACE,....
      where ID is the 32bit hex number combo of vendor and device IDs and
      IFACE is the interface number to trigger the register.
      
      When a matching device is probed, the card registration is delayed
      until the given interface is probed.  It's needed for syncing the
      registration until the last interface when multiple interfaces are
      provided for the same card.
      
      Link: https://lore.kernel.org/r/20200325103322.2508-3-tiwai@suse.deSigned-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      b70038ef
    • Takashi Iwai's avatar
      ALSA: usb-audio: Rewrite registration quirk handling · d8695bc5
      Takashi Iwai authored
      A slight refactoring of the registration quirk code.  Now it uses the
      table lookup for easy additions in future.  Also the return type was
      changed to bool, and got a few more comments.
      
      Link: https://lore.kernel.org/r/20200325103322.2508-2-tiwai@suse.deSigned-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      d8695bc5
  2. 23 Mar, 2020 1 commit
  3. 14 Mar, 2020 2 commits
  4. 13 Mar, 2020 2 commits
  5. 11 Mar, 2020 2 commits
  6. 09 Mar, 2020 4 commits
  7. 07 Mar, 2020 1 commit
  8. 06 Mar, 2020 5 commits
  9. 05 Mar, 2020 5 commits
  10. 04 Mar, 2020 1 commit
    • Olivier Moysan's avatar
      ASoC: stm32: sai: manage rebind issue · 0d6defc7
      Olivier Moysan authored
      The commit e894efef ("ASoC: core: add support to card rebind")
      allows to rebind the sound card after a rebind of one of its component.
      With this commit, the sound card is actually rebound,
      but may be no more functional. The following problems have been seen
      with STM32 SAI driver.
      
      1) DMA channel is not requested:
      
      With the sound card rebind the simplified call sequence is:
      stm32_sai_sub_probe
      	snd_soc_register_component
      		snd_soc_try_rebind_card
      			snd_soc_instantiate_card
      	devm_snd_dmaengine_pcm_register
      
      The problem occurs because the pcm must be registered,
      before snd_soc_instantiate_card() is called.
      
      Modify SAI driver, to change the call sequence as follows:
      stm32_sai_sub_probe
      	devm_snd_dmaengine_pcm_register
      	snd_soc_register_component
      		snd_soc_try_rebind_card
      
      2) DMA channel is not released:
      
      dma_release_channel() is not called when
      devm_dmaengine_pcm_release() is executed.
      This occurs because SND_DMAENGINE_PCM_DRV_NAME component,
      has already been released through devm_component_release().
      
      devm_dmaengine_pcm_release() should be called before
      devm_component_release() to avoid this problem.
      
      Call snd_dmaengine_pcm_unregister() and snd_soc_unregister_component()
      explicitly from SAI driver, to have the right sequence.
      Signed-off-by: default avatarOlivier Moysan <olivier.moysan@st.com>
      Message-Id: <20200304102406.8093-1-olivier.moysan@st.com>
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      0d6defc7
  11. 03 Mar, 2020 2 commits
  12. 02 Mar, 2020 1 commit
  13. 28 Feb, 2020 2 commits
  14. 26 Feb, 2020 1 commit
  15. 24 Feb, 2020 2 commits
  16. 21 Feb, 2020 1 commit
  17. 20 Feb, 2020 2 commits
  18. 19 Feb, 2020 3 commits