1. 21 11月, 2013 1 次提交
  2. 01 11月, 2013 1 次提交
    • R
      ALSA: fix oops in snd_pcm_info() caused by ASoC DPCM · a4461f41
      Russell King 提交于
      Unable to handle kernel NULL pointer dereference at virtual address 00000008
      pgd = d5300000
      [00000008] *pgd=0d265831, *pte=00000000, *ppte=00000000
      Internal error: Oops: 17 [#1] PREEMPT ARM
      CPU: 0 PID: 2295 Comm: vlc Not tainted 3.11.0+ #755
      task: dee74800 ti: e213c000 task.ti: e213c000
      PC is at snd_pcm_info+0xc8/0xd8
      LR is at 0x30232065
      pc : [<c031b52c>]    lr : [<30232065>]    psr: a0070013
      sp : e213dea8  ip : d81cb0d0  fp : c05f7678
      r10: c05f7770  r9 : fffffdfd  r8 : 00000000
      r7 : d8a968a8  r6 : d8a96800  r5 : d8a96200  r4 : d81cb000
      r3 : 00000000  r2 : d81cb000  r1 : 00000001  r0 : d8a96200
      Flags: NzCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment user
      Control: 10c5387d  Table: 15300019  DAC: 00000015
      Process vlc (pid: 2295, stack limit = 0xe213c248)
      [<c031b52c>] (snd_pcm_info) from [<c031b570>] (snd_pcm_info_user+0x34/0x9c)
      [<c031b570>] (snd_pcm_info_user) from [<c03164a4>] (snd_pcm_control_ioctl+0x274/0x280)
      [<c03164a4>] (snd_pcm_control_ioctl) from [<c0311458>] (snd_ctl_ioctl+0xc0/0x55c)
      [<c0311458>] (snd_ctl_ioctl) from [<c00eca84>] (do_vfs_ioctl+0x80/0x31c)
      [<c00eca84>] (do_vfs_ioctl) from [<c00ecd5c>] (SyS_ioctl+0x3c/0x60)
      [<c00ecd5c>] (SyS_ioctl) from [<c000e500>] (ret_fast_syscall+0x0/0x48)
      Code: e1a00005 e59530dc e3a01001 e1a02004 (e5933008)
      ---[ end trace cb3d9bdb8dfefb3c ]---
      
      This is provoked when the ASoC front end is open along with its backend,
      (which causes the backend to have a runtime assigned to it) and then the
      SNDRV_CTL_IOCTL_PCM_INFO is requested for the (visible) backend device.
      
      Resolve this by ensuring that ASoC internal backend devices are not
      visible to userspace, just as the commentry for snd_pcm_new_internal()
      says it should be.
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      Acked-by: NMark Brown <broonie@linaro.org>
      Cc: <stable@vger.kernel.org> [v3.4+]
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      a4461f41
  3. 31 10月, 2013 1 次提交
  4. 30 10月, 2013 1 次提交
  5. 29 10月, 2013 2 次提交
  6. 26 10月, 2013 2 次提交
    • T
      ALSA: hda - Fix silent headphone on Thinkpads with AD1984A codec · 1ac32930
      Takashi Iwai 提交于
      AD1984A codec has a couple of pins with EAPD controls, and the generic
      codec driver tries to turn each of them on/off depending on the pin
      active state.  However, Thinkpads seem to use EAPD of the speaker pin
      as a master EAPD for controlling the mute of all outputs, including
      the headphone.  This results in the dead headphone output via the
      headphone plugging because it mutes the speaker and turns off EAPD.
      
      The fix is to simply add spec->gen.keep_on_eapd flag.
      
      [This is a regression fix on 3.12 where we moved the AD codec parser
       to the generic parser.  3.11 and earlier didn't show this problem
       because still static quirks have been used.]
      Reported-and-tested-by: NVito Caputo <vcaputo@gnugeneration.com>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      1ac32930
    • T
      ALSA: hda - Add missing initial vmaster hook at build_controls callback · b63eae0a
      Takashi Iwai 提交于
      The generic parser has a support of vmaster hook, but this is
      initialized only in the init callback with the check of the presence
      of the corresponding kctl.  However, since kctl is NULL at the very
      first init callback that is called before build_controls callback, the
      vmaster hook sync is skipped there.  Eventually this leads to the
      uninitialized state depending on the hook implementation.
      
      This patch adds a simple workaround, just calling the sync function
      explicitly at build_controls callback.
      
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      b63eae0a
  7. 24 10月, 2013 1 次提交
    • T
      ALSA: hda - Fix unbalanced runtime PM refcount after S3/S4 · e6bbe666
      Takashi Iwai 提交于
      When a machine goes to S3/S4 after power-save is enabled, the runtime
      PM refcount might be incorrectly decreased because the power-down
      triggered soon after resume assumes that the controller was already
      powered up, and issues the pm_notify down.
      
      This patch fixes the incorrect pm_notify call simply by checking the
      current value properly.
      
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      e6bbe666
  8. 16 10月, 2013 1 次提交
  9. 15 10月, 2013 1 次提交
    • T
      ALSA: us122l: Fix pcm_usb_stream mmapping regression · ac536a84
      Takashi Iwai 提交于
      The pcm_usb_stream plugin requires the mremap explicitly for the read
      buffer, as it expands itself once after reading the required size.
      But the commit [314e51b9: mm: kill vma flag VM_RESERVED and
      mm->reserved_vm counter] converted blindly to a combination of
      VM_DONTEXPAND | VM_DONTDUMP like other normal drivers, and this
      resulted in the failure of mremap().
      
      For fixing this regression, we need to remove VM_DONTEXPAND for the
      read-buffer mmap.
      Reported-and-tested-by: NJames Miller <jamesstewartmiller@gmail.com>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      ac536a84
  10. 14 10月, 2013 4 次提交
  11. 12 10月, 2013 1 次提交
  12. 11 10月, 2013 3 次提交
  13. 09 10月, 2013 1 次提交
  14. 08 10月, 2013 1 次提交
    • A
      ALSA: hda - hdmi: Fix channel map switch not taking effect · 39edac70
      Anssi Hannula 提交于
      Currently hdmi_setup_audio_infoframe() reprograms the HDA channel
      mapping only when the infoframe is not up-to-date or the non-PCM flag
      has changed.
      
      However, when just the channel map has been changed, the infoframe may
      still be up-to-date and non-PCM flag may not have changed, so the new
      channel map is not actually programmed into the HDA codec.
      
      Notably, this failing case is also always triggered when the device is
      already in a prepared state and a new channel map is configured while
      changing only the channel positions (for example, plain
      "speaker-test -c2 -m FR,FL").
      
      Fix that by always programming the channel map in
      hdmi_setup_audio_infoframe(). Tested on Intel HDMI.
      Signed-off-by: NAnssi Hannula <anssi.hannula@iki.fi>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      39edac70
  15. 07 10月, 2013 3 次提交
  16. 04 10月, 2013 1 次提交
  17. 03 10月, 2013 2 次提交
  18. 02 10月, 2013 1 次提交
  19. 30 9月, 2013 2 次提交
  20. 27 9月, 2013 3 次提交
  21. 26 9月, 2013 4 次提交
    • P
      ASoC: imx-sgtl5000: Fix uninitialized pointer use in error path · 50d4a790
      Philipp Zabel 提交于
      This patch avoids to dereference the uninitialized data pointer if the
      error path is entered before devm_kzalloc is called (or if the allocation
      fails). It fixes the following warning:
      
          sound/soc/fsl/imx-sgtl5000.c: In function 'imx_sgtl5000_probe':
          sound/soc/fsl/imx-sgtl5000.c:175:18: warning: 'data' may be used uninitialized in this function [-Wmaybe-uninitialized]
      Signed-off-by: NPhilipp Zabel <p.zabel@pengutronix.de>
      Signed-off-by: NMark Brown <broonie@linaro.org>
      50d4a790
    • P
      ASoC: imx-sgtl5000: do not use devres on a foreign device · a8b22c1c
      Philipp Zabel 提交于
      Calling devm_clk_get with any device pointer other than our own confuses
      devres. Use clk_get instead. This avoids hitting the following warning in
      the imx-sgtl5000 error path:
      
      imx-sgtl5000 sound.12: snd_soc_register_card failed (-517)
      platform sound.12: Driver imx-sgtl5000 requests probe deferral
      ------------[ cut here ]------------
      WARNING: CPU: 0 PID: 75 at drivers/base/dd.c:272 driver_probe_device+0x194/0x218()
      Modules linked in: snd_soc_sgtl5000(+) snd_soc_imx_sgtl5000 coda snd_soc_imx_audmux imx_sdma snd_soc_fsl_spdif snd_soc_fsl_ssi
      CPU: 0 PID: 75 Comm: udevd Not tainted 3.11.0-rc6+ #4682
      Backtrace:
      [<80010bc4>] (dump_backtrace+0x0/0x10c) from [<80010d60>] (show_stack+0x18/0x1c)
       r6:00000110 r5:00000009 r4:00000000 r3:00000000
      [<80010d48>] (show_stack+0x0/0x1c) from [<804f0764>] (dump_stack+0x20/0x28)
      [<804f0744>] (dump_stack+0x0/0x28) from [<8001a4a4>] (warn_slowpath_common+0x6c/0x8c)
      [<8001a438>] (warn_slowpath_common+0x0/0x8c) from [<8001a4e8>] (warn_slowpath_null+0x24/0x2c)
       r8:7f032000 r7:7f02f93c r6:cf8eaa54 r5:cf8eaa20 r4:80728a0c
      [<8001a4c4>] (warn_slowpath_null+0x0/0x2c) from [<80286bdc>] (driver_probe_device+0x194/0x218)
      [<80286a48>] (driver_probe_device+0x0/0x218) from [<80286cf4>] (__driver_attach+0x94/0x98)
       r7:00000000 r6:cf8eaa54 r5:7f02f93c r4:cf8eaa20
      [<80286c60>] (__driver_attach+0x0/0x98) from [<802851c8>] (bus_for_each_dev+0x5c/0x90)
       r6:80286c60 r5:7f02f93c r4:00000000 r3:cf8ef03c
      [<8028516c>] (bus_for_each_dev+0x0/0x90) from [<80286654>] (driver_attach+0x24/0x28)
       r6:806d0424 r5:cf16a580 r4:7f02f93c
      [<80286630>] (driver_attach+0x0/0x28) from [<802861e4>] (bus_add_driver+0xdc/0x234)
      [<80286108>] (bus_add_driver+0x0/0x234) from [<802871d4>] (driver_register+0x80/0x154)
       r8:7f032000 r7:00000001 r6:7f02fa68 r5:7f02fa74 r4:7f02f93c
      [<80287154>] (driver_register+0x0/0x154) from [<8033c278>] (i2c_register_driver+0x34/0xbc)
      [<8033c244>] (i2c_register_driver+0x0/0xbc) from [<7f032018>] (sgtl5000_i2c_driver_init+0x18/0x24 [snd_soc_sgtl5000])
       r5:7f02fa74 r4:cfb7ff48
      [<7f032000>] (sgtl5000_i2c_driver_init+0x0/0x24 [snd_soc_sgtl5000]) from [<80008738>] (do_one_initcall+0xf4/0x150)
      [<80008644>] (do_one_initcall+0x0/0x150) from [<80053f64>] (load_module+0x174c/0x1db4)
      [<80052818>] (load_module+0x0/0x1db4) from [<800546ac>] (SyS_init_module+0xe0/0xf4)
      [<800545cc>] (SyS_init_module+0x0/0xf4) from [<8000e540>] (ret_fast_syscall+0x0/0x30)
       r6:00005b22 r5:00afed68 r4:00000000
      ---[ end trace b24c5c3bb145dbdd ]---
      Signed-off-by: NPhilipp Zabel <p.zabel@pengutronix.de>
      Acked-by: NShawn Guo <shawn.guo@linaro.org>
      Reviewed-by: NFabio Estevam <fabio.estevam@freescale.com>
      Signed-off-by: NMark Brown <broonie@linaro.org>
      a8b22c1c
    • M
      ALSA : hda - not use assigned converters for all unused pins · f82d7d16
      Mengdong Lin 提交于
      BIOS can mark a pin as "no physical connection" if the port is used by an
      integrated display which is not audio capable. And audio driver will overlook
      such pins.
      
      On Haswell, such a disconneted pin will keep muted and connected to the 1st
      converter by default. But if the 1st convertor is assigned to a connected pin
      for audio streaming. The muted disconnected pin can make the connected pin
      no sound output.
      
      So this patch avoids using assigned converters for all unused pins for Haswell,
      including the disconected pins.
      Signed-off-by: NMengdong Lin <mengdong.lin@intel.com>
      Reviewed-by: NDavid Henningsson <david.henningsson@canonical.com>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      f82d7d16
    • L
      ALSA: compress: Make sure we trigger STOP before closing the stream. · b26d19e4
      Liam Girdwood 提交于
      Currently we assume that userspace will shut down the compressed stream
      correctly. However, if userspcae dies (e.g. cplay & ctrl-C) we dont
      stop the stream before freeing it.
      
      This now checks that the stream is stopped before freeing.
      Signed-off-by: NLiam Girdwood <liam.r.girdwood@linux.intel.com>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      b26d19e4
  22. 20 9月, 2013 1 次提交
  23. 17 9月, 2013 1 次提交
  24. 14 9月, 2013 1 次提交