1. 30 6月, 2017 1 次提交
    • A
      ALSA: hda: constify attribute_group structures. · a5a041b6
      Arvind Yadav 提交于
      attribute_groups are not supposed to change at runtime. All functions
      working with attribute_groups provided by <linux/device.h> work with const
      attribute_group. So mark the non-const structs as const.
      
      File size before:
         text	   data	    bss	    dec	    hex	filename
          995	    608	      0	   1603	    643	sound/pci/hda/hda_sysfs.o
      
      File size After adding 'const':
         text	   data	    bss	    dec	    hex	filename
         1035	    544	      0	   1579	    62b	sound/pci/hda/hda_sysfs.o
      Signed-off-by: NArvind Yadav <arvind.yadav.cs@gmail.com>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      a5a041b6
  2. 29 6月, 2017 1 次提交
  3. 28 6月, 2017 5 次提交
    • T
      ALSA: hda - Minor code refactoring for Intel HDMI codec parsers · 43f6c8d9
      Takashi Iwai 提交于
      No functional change, just a slight reduction of lines.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      43f6c8d9
    • T
      ALSA: hda - Bind with i915 component before codec binding · fcc88d91
      Takashi Iwai 提交于
      We used a on-demand i915 component binding for IvyBridge and
      SandyBridge HDMI codecs, but it has a potential problem of the nested
      module loading.  For avoiding that situation, assure the i915 binding
      happening at the controller driver level for PCH controller devices,
      where the initialization is performed in a detached work, instead of
      calling from the codec driver probe.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      fcc88d91
    • T
      ALSA: hda - Skip card registration when no codec is found · 17890880
      Takashi Iwai 提交于
      It's nonsense to register a card object when no codec is bound on it,
      as we don't support the deferred codec binding.  Instead of
      registering an empty card object, just skip the registration by
      returning an error from azx_codec_configure().
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      17890880
    • T
      ALSA: hda - Fix endless loop of codec configure · d94815f9
      Takashi Iwai 提交于
      azx_codec_configure() loops over the codecs found on the given
      controller via a linked list.  The code used to work in the past, but
      in the current version, this may lead to an endless loop when a codec
      binding returns an error.
      
      The culprit is that the snd_hda_codec_configure() unregisters the
      device upon error, and this eventually deletes the given codec object
      from the bus.  Since the list is initialized via list_del_init(), the
      next object points to the same device itself.  This behavior change
      was introduced at splitting the HD-audio code code, and forgotten to
      adapt it here.
      
      For fixing this bug, just use a *_safe() version of list iteration.
      
      Fixes: d068ebc2 ("ALSA: hda - Move some codes up to hdac_bus struct")
      Reported-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      d94815f9
    • H
      ALSA: hda - set input_path bitmap to zero after moving it to new place · a8f20fd2
      Hui Wang 提交于
      Recently we met a problem, the codec has valid adcs and input pins,
      and they can form valid input paths, but the driver does not build
      valid controls for them like "Mic boost", "Capture Volume" and
      "Capture Switch".
      
      Through debugging, I found the driver needs to shrink the invalid
      adcs and input paths for this machine, so it will move the whole
      column bitmap value to the previous column, after moving it, the
      driver forgets to set the original column bitmap value to zero, as a
      result, the driver will invalidate the path whose index value is the
      original colume bitmap value. After executing this function, all
      valid input paths are invalidated by a mistake, there are no any
      valid input paths, so the driver won't build controls for them.
      
      Fixes: 3a65bcdc ("ALSA: hda - Fix inconsistent input_paths after ADC reduction")
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NHui Wang <hui.wang@canonical.com>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      a8f20fd2
  4. 26 6月, 2017 1 次提交
    • H
      ALSA: hda/realtek - There is no loopback mixer in the ALC234/274/294 · 532a7784
      Hui Wang 提交于
      We have a Lenovo machine with the codec ALC294 on it, without the
      patch, the Node 0x0b is regarded as the loopback mixer, but the Node
      0x0b in this codec is "Vendor Defined Widget" instead of the audio
      mixer, please see the log below:
      
      Node 0x0b [Vendor Defined Widget] wcaps 0xf00000: Mono
        Control: name="Beep Playback Volume", index=0, device=0
          ControlAmp: chs=3, dir=In, idx=4, ofs=0
        Control: name="Beep Playback Switch", index=0, device=0
          ControlAmp: chs=3, dir=In, idx=4, ofs=0
      
      And I have consulted with Realtek, so far the ALC234/274/294 all don't
      have loopback mixer.
      
      Cc: Kailang Yang <kailang@realtek.com>
      Signed-off-by: NHui Wang <hui.wang@canonical.com>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      532a7784
  5. 21 6月, 2017 1 次提交
  6. 20 6月, 2017 3 次提交
  7. 16 6月, 2017 1 次提交
  8. 14 6月, 2017 1 次提交
  9. 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
  10. 10 6月, 2017 2 次提交
    • 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
  11. 09 6月, 2017 23 次提交