1. 21 10月, 2014 3 次提交
  2. 15 10月, 2014 1 次提交
  3. 14 10月, 2014 1 次提交
    • T
      ALSA: emu10k1: Fix deadlock in synth voice lookup · 95926035
      Takashi Iwai 提交于
      The emu10k1 voice allocator takes voice_lock spinlock.  When there is
      no empty stream available, it tries to release a voice used by synth,
      and calls get_synth_voice.  The callback function,
      snd_emu10k1_synth_get_voice(), however, also takes the voice_lock,
      thus it deadlocks.
      
      The fix is simply removing the voice_lock holds in
      snd_emu10k1_synth_get_voice(), as this is always called in the
      spinlock context.
      Reported-and-tested-by: NArthur Marsh <arthur.marsh@internode.on.net>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      95926035
  4. 08 10月, 2014 1 次提交
  5. 07 10月, 2014 4 次提交
  6. 30 9月, 2014 6 次提交
  7. 23 9月, 2014 4 次提交
  8. 22 9月, 2014 2 次提交
  9. 19 9月, 2014 1 次提交
  10. 17 9月, 2014 1 次提交
    • R
      ALSA: hda - Replace strnicmp with strncasecmp · 8bb1ffdf
      Rasmus Villemoes 提交于
      The kernel used to contain two functions for length-delimited,
      case-insensitive string comparison, strnicmp with correct semantics
      and a slightly buggy strncasecmp. The latter is the POSIX name, so
      strnicmp was renamed to strncasecmp, and strnicmp made into a wrapper
      for the new strncasecmp to avoid breaking existing users.
      
      To allow the compat wrapper strnicmp to be removed at some point in
      the future, and to avoid the extra indirection cost, do
      s/strnicmp/strncasecmp/g.
      Signed-off-by: NRasmus Villemoes <linux@rasmusvillemoes.dk>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      8bb1ffdf
  11. 16 9月, 2014 4 次提交
    • T
      ALSA: hda - Use standard hda_jack infrastructure for CA0132 driver · f8fb1170
      Takashi Iwai 提交于
      For its headphone, mic and DSP responses, we can use the standard
      hda_jack infrastructure in CA0132 driver, too.  The only point to
      handle carefully is the delayed headphone jack handling.  It tries to
      react after a certain delay.  Here we use the existing block_report
      flag in hda_jack_tbl (that was implemented for HDMI).
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      f8fb1170
    • T
      ALSA: hda - Remove superfluous hooks from VIA driver · 7c3008c4
      Takashi Iwai 提交于
      Like the previous fix for STAC/IDT codecs, the automute hooks in VIA
      driver can be also removed by enabling the power control callback for
      all pins.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      7c3008c4
    • T
      ALSA: hda - Remove superfluous callbacks from STAC/IDT codecs · aa699c49
      Takashi Iwai 提交于
      Now we can register multiple callbacks to each jack, most of hooks
      used in STAC/IDT codecs can be removed by enabling the powermap update
      callback for all relevant pins.  Along with this, the call of
      stac_init_power_map() can be moved back to stac_parse_auto_config()
      and the own build_controls callback can be removed, too.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      aa699c49
    • T
      ALSA: hda - Allow multiple callbacks for jack · 1a4f69d5
      Takashi Iwai 提交于
      So far, hda_jack infrastructure allows only one callback per jack, and
      this makes things slightly complicated when a driver wants to assign
      multiple tasks to a jack, e.g. the standard auto-mute with a power
      up/down sequence.  This can be simplified if the hda_jack accepts
      multiple callbacks.
      
      This patch is such an extension: the callback-specific part (the
      function and private_data) is split to another struct from
      hda_jack_tbl, and multiple such objects can be assigned to a single
      hda_jack_tbl entry.
      
      The new struct hda_jack_callback is passed to each callback function
      now, thus the patch became bigger than expected.  But these changes
      are mostly trivial.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      1a4f69d5
  12. 15 9月, 2014 5 次提交
    • T
      ALSA: lx6464es: Use nonatomic PCM ops · 6336c20c
      Takashi Iwai 提交于
      Like the other previous changes, this patch for lx6464es takes the
      same strategy for converting to nonatomic PCM ops: replacing spinlock
      with mutex, converting the irq tasklet to the threaded irq, and
      merging the trigger tasklets back to the trigger callback.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      6336c20c
    • T
      ALSA: pcxhr: Use nonatomic PCM ops · 9bef72bd
      Takashi Iwai 提交于
      This time PCXHR, another Digigram boards: like the previous patches,
      the conversion is straightforward, replacing spinlocks with mutexes,
      merging the irq tasklet into the threaded irq handler and the PCM
      trigger tasklet back to the trigger callback.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      9bef72bd
    • T
      ALSA: mixart: Use nonatomic PCM ops · 8d3a8b5c
      Takashi Iwai 提交于
      Like the previous patch for VX boards, miXart device driver can be
      also rewritten to use nonatomic PCM ops.  Simply spinlocks are
      replaced with mutex, the tasklet code is merged into the threaded irq
      handler.  Also, now mgr->msg_mutex is superfluous, so merged to
      msg_lock.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      8d3a8b5c
    • T
      ALSA: vx: Use nonatomic PCM ops · db0a5214
      Takashi Iwai 提交于
      Rewrite VXpocket and VX222 drivers to use the new PCM nonatomic ops.
      The former irq tasklet is replaced with a threaded irq handler, and
      the tasklet for the PCM delayed start is simply merged into the normal
      PCM trigger, as well as the replacement of spinlock with mutex.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      db0a5214
    • T
      ALSA: hda - Make snd_hda_jack_detect_enable_callback() returning the jack object · bda17b82
      Takashi Iwai 提交于
      STAC/IDT driver calls snd_hda_jack_tbl_get() again after calling
      snd_hda_jack_detect_enable_callback().  For simplifying this, let's
      make snd_hda_jack_detect_enable_callback() returning the pointer while
      handling the error with the standard IS_ERR() & co.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      bda17b82
  13. 11 9月, 2014 3 次提交
    • T
      ALSA: hda - Make snd_hda_jack_tbl_new() static · 81965f1f
      Takashi Iwai 提交于
      It's called only in hda_jack.c, so make it local.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      81965f1f
    • T
      ALSA: hda - Get rid of action field from struct hda_jack_tbl · 62f949bf
      Takashi Iwai 提交于
      The action value assigned to each hda_jack_tbl entry is mostly
      superfluous.  The actually used values are either the widget NID or a
      value specific to the callback.
      
      The former case can be simply replaced by a reference to widget NID
      itself.  The only place doing the latter is STAC/IDT codec driver for
      the powermap handling.  But, the code doesn't need to check the action
      field at all -- the function jack_update_power() is called either with
      a specific pin or with NULL.  So the check of jack->action can be
      removed completely there, too.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      62f949bf
    • T
      ALSA: hda - Fix invalid pin powermap without jack detection · 7a9744cb
      Takashi Iwai 提交于
      When a driver is set up without the jack detection explicitly (either
      by passing a model option or via a specific fixup), the pin powermap
      of IDT/STAC codecs is set up wrongly, resulting in the silence
      output.  It's because of a logic failure in stac_init_power_map().
      It tries to avoid creating a callback for the pins that have other
      auto-hp and auto-mic callbacks, but the check is done in a wrong way
      at a wrong time.  The stac_init_power_map() should be called after
      creating other jack detection ctls, and the jack callback should be
      created only for jack-detectable widgets.
      
      This patch fixes the check in stac_init_power_map() and its callee
      at the right place, after snd_hda_gen_build_controls().
      Reported-by: NAdam Richter <adam_richter2004@yahoo.com>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      7a9744cb
  14. 09 9月, 2014 1 次提交
  15. 08 9月, 2014 2 次提交
  16. 03 9月, 2014 1 次提交
    • T
      ALSA: hda - Add TLV_DB_SCALE_MUTE bit for relevant controls · d89c6c0c
      Takashi Iwai 提交于
      The DACs on Sigmatel/IDT codecs do mute at the lowest volume level,
      and in the earlier drivers, we passed TLV_DB_SCALE_MUTE bit for each
      volume control element like Speaker and Headphone as well as Master.
      Along with the translation to the generic parser, however, the TLV bit
      was lost for the slave controls (e.g. Speaker) but set only to
      Master.  In theory this should have sufficed, but apps, particularly
      PA, do care the slave volume bits, so we seem to see a regression in
      the volume controls.
      
      This patch adds a flag to hda_gen_spec to specify the DAC mute
      feature, and adds the TLV bit properly for all relevant volume
      controls.  Also, the TLV bit for vmaster is set in hda_generic.c, so
      that we can get rid of all tricks from the codec driver side.
      
      As the similar hack is applied to Conexant 5051 stuff, we can get rid
      of it as well.
      
      BugLink: https://bugs.launchpad.net/bugs/1357928Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      d89c6c0c