• Takashi Iwai's avatar
    ALSA: line6: Reorganize card resource handling · 85a9339b
    Takashi Iwai authored
    This is a fairly big rewrite regarding the card resource management in
    line6 drivers:
    
    - The card creation is moved into line6_probe().  This adds the global
      destructor to private_free, so that each driver doesn't have to call
      it any longer.
    
    - The USB disconnect callback handles the card release, thus each
      driver needs to concentrate on only its own resources.  No need to
      snd_card_*() call in the destructor.
    
    - Fix the potential stall in disconnection by removing
      snd_card_free().   It's replaced with snd_card_free_when_closed()
      for asynchronous release.
    
    - The only remaining operation for the card in each driver is the call
      of snd_card_register().  All the rest are dealt in the common module
      by itself.
    
    - These ended up with removal of audio.[ch] as a result of a reduction
      of one layer.  Each driver just needs to call line6_probe().
    Tested-by: default avatarChris Rorvick <chris@rorvick.com>
    Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
    85a9339b
variax.c 8.03 KB