1. 24 10月, 2017 1 次提交
  2. 10 5月, 2017 1 次提交
    • J
      ALSA: hda: Fix cpu lockup when stopping the cmd dmas · 96001376
      Jeeja KP 提交于
      Using jiffies in hdac_wait_for_cmd_dmas() to determine when to time out
      when interrupts are off (snd_hdac_bus_stop_cmd_io()/spin_lock_irq())
      causes hard lockup so unlock while waiting using jiffies.
      
      ---<-snip->---
      <0>[ 1211.603046] NMI watchdog: Watchdog detected hard LOCKUP on cpu 3
      <4>[ 1211.603047] Modules linked in: snd_hda_intel i915 vgem
      <4>[ 1211.603053] irq event stamp: 13366
      <4>[ 1211.603053] hardirqs last  enabled at (13365):
      ...
      <4>[ 1211.603059] Call Trace:
      <4>[ 1211.603059]  ? delay_tsc+0x3d/0xc0
      <4>[ 1211.603059]  __delay+0xa/0x10
      <4>[ 1211.603060]  __const_udelay+0x31/0x40
      <4>[ 1211.603060]  snd_hdac_bus_stop_cmd_io+0x96/0xe0 [snd_hda_core]
      <4>[ 1211.603060]  ? azx_dev_disconnect+0x20/0x20 [snd_hda_intel]
      <4>[ 1211.603061]  snd_hdac_bus_stop_chip+0xb1/0x100 [snd_hda_core]
      <4>[ 1211.603061]  azx_stop_chip+0x9/0x10 [snd_hda_codec]
      <4>[ 1211.603061]  azx_suspend+0x72/0x220 [snd_hda_intel]
      <4>[ 1211.603061]  pci_pm_suspend+0x71/0x140
      <4>[ 1211.603062]  dpm_run_callback+0x6f/0x330
      <4>[ 1211.603062]  ? pci_pm_freeze+0xe0/0xe0
      <4>[ 1211.603062]  __device_suspend+0xf9/0x370
      <4>[ 1211.603062]  ? dpm_watchdog_set+0x60/0x60
      <4>[ 1211.603063]  async_suspend+0x1a/0x90
      <4>[ 1211.603063]  async_run_entry_fn+0x34/0x160
      <4>[ 1211.603063]  process_one_work+0x1f4/0x6d0
      <4>[ 1211.603063]  ? process_one_work+0x16e/0x6d0
      <4>[ 1211.603064]  worker_thread+0x49/0x4a0
      <4>[ 1211.603064]  kthread+0x107/0x140
      <4>[ 1211.603064]  ? process_one_work+0x6d0/0x6d0
      <4>[ 1211.603065]  ? kthread_create_on_node+0x40/0x40
      <4>[ 1211.603065]  ret_from_fork+0x2e/0x40
      
      Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=100419
      Fixes: 38b19ed7 ("ALSA: hda: fix to wait for RIRB & CORB DMA to set")
      Reported-by: NMarta Lofstedt <marta.lofstedt@intel.com>
      Suggested-by: NTakashi Iwai <tiwai@suse.de>
      Signed-off-by: NJeeja KP <jeeja.kp@intel.com>
      Acked-by: NVinod Koul <vinod.koul@intel.com>
      CC: stable <stable@vger.kernel.org> # 4.7
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      96001376
  3. 03 4月, 2017 1 次提交
    • T
      ALSA: hda - Avoid tricky macros · 2c1f8138
      Takashi Iwai 提交于
      The macros _snd_hdac_chip_read() and *_write() expand to different
      types (b,w,l) per their argument.  They were thought to be used only
      internally for other snd_hdac_chip_*() macros, but in some situations
      we need to call these directly, and they are way too ugly.
      
      Instead of saving a few lines, we just write these macros explicitly
      with the types, so that they can be used in a saner way.
      Acked-by: NVinod Koul <vinod.koul@intel.com>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      2c1f8138
  4. 29 3月, 2017 1 次提交
  5. 09 8月, 2016 1 次提交
  6. 08 5月, 2016 1 次提交
  7. 26 2月, 2016 1 次提交
    • T
      ALSA: hda - Loop interrupt handling until really cleared · 473f4145
      Takashi Iwai 提交于
      Currently the interrupt handler of HD-audio driver assumes that no irq
      update is needed while processing the irq.  But in reality, it has
      been confirmed that the HW irq is issued even during the irq
      handling.  Since we clear the irq status at the beginning, process the
      interrupt, then exits from the handler, the lately issued interrupt is
      left untouched without being properly processed.
      
      This patch changes the interrupt handler code to loop over the
      check-and-process.  The handler tries repeatedly as long as the IRQ
      status are turned on, and either stream or CORB/RIRB is handled.
      
      For checking the stream handling, snd_hdac_bus_handle_stream_irq()
      returns a value indicating the stream indices bits.  Other than that,
      the change is only in the irq handler itself.
      Reported-by: NLibin Yang <libin.yang@linux.intel.com>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      473f4145
  8. 16 4月, 2015 2 次提交