1. 03 5月, 2017 2 次提交
  2. 16 2月, 2017 1 次提交
  3. 13 2月, 2017 2 次提交
    • T
      ALSA: x86: Drop unused stream.running field · df42cb49
      Takashi Iwai 提交于
      The pcm_stream_info.running field is only set in the PCM trigger
      callback but never referred, thus it can be safely removed.
      
      Also, properly cover the spinlock in both the trigger START and STOP
      to protect had_enable_audio() calls.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      df42cb49
    • T
      ALSA: x86: Handle reset at prepare callback · e2acecf2
      Takashi Iwai 提交于
      Currently the driver handles some reset procedure at the trigger STOP
      and the underrun functions, where both are executed in the interrupt
      context.  Especially the underrun function has a sync-loop to clear
      the UNDERRUN status bit, and this is supposed to be one of plausible
      causes of GPU hangup.
      
      Since the job to be done in the interrupt handler should be minimum,
      we move the reset function out of trigger and underrun, and push it
      into the prepare (and hw_free) callbacks instead.  Here a new flag,
      need_reset, is introduced to indicate the requirement of the reset
      procedure.  This is for avoiding the multiple resets when PCM prepare
      is called sequentially.
      
      Also in the UNDERRUN bit-clear sync loop, take a longer pause to be in
      the safer side.  Taking a longer delay is no longer a problem now
      because we're running in the normal context.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      e2acecf2
  4. 07 2月, 2017 2 次提交
    • T
      ALSA: x86: Cache AUD_CONFIG register value · 40ce4b5d
      Takashi Iwai 提交于
      At enabling the audio, we modify AUD_CONFIG register bit 0.  So far,
      it does read-modify-write procedure with a special hack for the
      channel bits due to the silicon bug.  But we can optimize it by
      remembering the AUD_CONFIG register value privately.  This simplifies
      the things a lot.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      40ce4b5d
    • T
      ALSA: x86: Rearrange defines · 77531bee
      Takashi Iwai 提交于
      We have two header files and everything is mixed up chaotically.
      Move the chip-specific definitions like the hardware registers to
      intel_hdmi_lpe_audio.h, and the rest, the implementation specific
      stuff into intel_hdmi_audio.h.
      
      In addition, put some more comments to the register fields, and fix
      the incorrect name prefix for AUD_HDMI_STATUS bits, too.
      
      The whole changes are merely a code shuffling, and there is no
      functional change.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      77531bee
  5. 06 2月, 2017 1 次提交
    • T
      ALSA: x86: Refactor PCM process engine · e1b239f3
      Takashi Iwai 提交于
      This is again a big rewrite of the driver; now it touches the code to
      process PCM stream transfers.
      
      The most fundamental change is that the driver may support more than
      four periods.  Instead of keeping the same index between both the ring
      buffer (with the fixed four buffer descriptors) and the PCM buffer
      periods, we keep difference indices for both (bd_head and pcm_head
      fields).  In addition, when the periods are more than four, we need to
      track both head and next indices.  That is, we now have three indices:
      bd_head, pcm_head and pcm_filled.
      
      Also, the driver works better for periods < 4, too: the remaining BDs
      out of four are marked as invalid, so that the hardware skips those
      BDs in its loop.
      
      By this flexibility, we can use even ALSA-lib dmix plugin, which
      requires 16 periods as default.
      
      The buffer size could be up to 20bit, so the max buffer size was
      increased accordingly.  However, the buffer pre-allocation is kept as
      the old value (600kB) as default.  The reason is the limited number of
      BDs: since it doesn't suffice for the useful SG page management that
      can fit with the usual page allocator like some other drivers, we have
      to still allocate continuous pages, hence we shouldn't take too big
      memories there.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      e1b239f3
  6. 04 2月, 2017 26 次提交
  7. 01 2月, 2017 1 次提交
  8. 25 1月, 2017 1 次提交