Skip to content
  • Takashi Iwai's avatar
    ALSA: seq: bind seq driver automatically · 68ab6108
    Takashi Iwai authored
    
    
    Currently the sequencer module binding is performed independently from
    the card module itself.  The reason behind it is to keep the sequencer
    stuff optional and allow the system running without it (e.g. for using
    PCM or rawmidi only).  This works in most cases, but a remaining
    problem is that the binding isn't done automatically when a new driver
    module is probed.  Typically this becomes visible when a hotplug
    driver like usb audio is used.
    
    This patch tries to address this and other potential issues.  First,
    the seq-binder (seq_device.c) tries to load a missing driver module at
    creating a new device object.  This is done asynchronously in a workq
    for avoiding the deadlock (modprobe call in module init path).
    
    This action, however, should be enabled only when the sequencer stuff
    was already initialized, i.e. snd-seq module was already loaded.  For
    that, a new function, snd_seq_autoload_init() is introduced here; this
    clears the blocking of autoloading, and also tries to load all pending
    driver modules.
    
    Reported-by: default avatarAdam Goode <agoode@chromium.org>
    Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
    68ab6108