1. 12 6月, 2017 1 次提交
    • T
      ALSA: seq: Allow the modular sequencer registration · 111b0cdb
      Takashi Iwai 提交于
      Many drivers bind the sequencer stuff in off-load by another driver
      module, so that it's loaded only on demand.  In the current code, this
      mechanism doesn't work when the driver is built-in while the sequencer
      is module.  We check with IS_REACHABLE() and enable only when the
      sequencer is in the same level of build.
      
      However, this is basically a overshoot.  The binder code
      (snd-seq-device) is an individual module from the sequencer core
      (snd-seq), and we just have to make the former a built-in while
      keeping the latter a module for allowing the scenario like the above.
      
      This patch achieves that by rewriting Kconfig slightly.  Now, a driver
      that provides the manual sequencer device binding should select
      CONFIG_SND_SEQ_DEVICE in a way as
      	select SND_SEQ_DEVICE if SND_SEQUENCER != n
      
      Note that the "!=n" is needed here to avoid the influence of the
      sequencer core is module while the driver is built-in.
      
      Also, since rawmidi.o may be linked with snd_seq_device.o when
      built-in, we have to shuffle the code to make the linker happy.
      (the kernel linker isn't smart enough yet to handle such a case.)
      That is, snd_seq_device.c is moved to sound/core from sound/core/seq,
      as well as Makefile.
      
      Last but not least, the patch replaces the code using IS_REACHABLE()
      with IS_ENABLED(), since now the condition meets always when enabled.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      111b0cdb
  2. 10 6月, 2017 3 次提交
    • T
      ALSA: synth: Select snd-emux-synth explicitly · 82721155
      Takashi Iwai 提交于
      Instead of the non-standard way to enable the build of snd-emux-synth
      module inside Makefile, rewrite Kconfig to select the item explicitly
      from each driver (sbawe and emu10k1).  This is the standard way.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      82721155
    • T
      ALSA: seq: Reorganize kconfig and build · 0181307a
      Takashi Iwai 提交于
      This is a slightly intensive rewrite of Kconfig and Makefile about
      ALSA sequencer stuff.
      
      The first major change is that the kconfig items for the sequencer are
      moved to sound/core/seq/Kconfig.  OK, that's easy.
      
      The substantial change is that, instead of hackish top-level module
      selection in Makefile, we define a Kconfig item for each sequencer
      module.  The driver that requires such sequencer components select
      exclusively the kconfig items.  This is more straightforward and
      standard way.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      0181307a
    • T
      ALSA: seq: Allow the tristate build of OSS emulation · 3d774d5e
      Takashi Iwai 提交于
      Currently OSS sequencer emulation is tied with ALSA sequencer core,
      both are built in the same level; i.e. when CONFIG_SND_SEQUENCER=y,
      the OSS sequencer emulation is also always built-in, even though the
      functionality can be built as an individual module.
      
      This patch changes the rule and allows users to build snd-seq-oss
      module while others are built-in.  Essentially, it's just a few simple
      changes in Kconfig and Makefile.  Some driver codes like opl3 need to
      convert from the simple ifdef to IS_ENABLED().  But that's all.
      
      You might wonder how about the dependency: right, it can be messy, but
      it still works.  Since we rewrote the sequencer binding with the
      standard bus, the driver can be bound at any time on demand.  So, the
      synthesizer driver module can be loaded individually from the OSS
      emulation core before/after it.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      3d774d5e
  3. 09 6月, 2017 36 次提交