1. 12 Feb, 2019 7 commits
  2. 06 Feb, 2019 3 commits
    • Takashi Iwai's avatar
      ALSA: pcm: Fix tight loop of OSS capture stream · 3c66684e
      Takashi Iwai authored
      commit e190161f upstream.
      
      When the trigger=off is passed for a PCM OSS stream, it sets the
      start_threshold of the given substream to the boundary size, so that
      it won't be automatically started.  This can be problematic for a
      capture stream, unfortunately, as detected by syzkaller.  The scenario
      is like the following:
      
      - In __snd_pcm_lib_xfer() that is invoked from snd_pcm_oss_read()
        loop, we have a check whether the stream was already started or the
        stream can be auto-started.
      - The function at this check returns 0 with trigger=off since we
        explicitly disable the auto-start.
      - The loop continues and repeats calling __snd_pcm_lib_xfer() tightly,
        which may lead to an RCU stall.
      
      This patch fixes the bug by simply allowing the wait for non-started
      stream in the case of OSS capture.  For native usages, it's supposed
      to be done by the caller side (which is user-space), hence it returns
      zero like before.
      
      (In theory, __snd_pcm_lib_xfer() could wait even for the native API
       usage cases, too; but I'd like to stay in a safer side for not
       breaking the existing stuff for now.)
      
      Reported-by: syzbot+fbe0496f92a0ce7b786c@syzkaller.appspotmail.com
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      3c66684e
    • Kailang Yang's avatar
      ALSA: hda/realtek - Fixed hp_pin no value · c697687f
      Kailang Yang authored
      commit 693abe11 upstream.
      
      Fix hp_pin always no value.
      
      [More notes on the changes:
      
       The hp_pin value that is referred in alc294_hp_init() is always zero
       at the moment the function gets called, hence this is actually
       useless as in the current code.
      
       And, this kind of init sequence should be called from the codec init
       callback, instead of the parser function.  So, the first fix in this
       patch to move the call call into its own init_hook.
      
       OTOH, this function is needed to be called only once after the boot,
       and it'd take too long for invoking at each resume (where the init
       callback gets called).  So we add a new flag and invoke this only
       once as an additional fix.
      
       The one case is still not covered, though: S4 resume.  But this
       change itself won't lead to any regression in that regard, so we
       leave S4 issue as is for now and fix it later.  -- tiwai ]
      
      Fixes: bde1a745 ("ALSA: hda/realtek - Fixed headphone issue for ALC700")
      Signed-off-by: default avatarKailang Yang <kailang@realtek.com>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      c697687f
    • Olek Poplavsky's avatar
      ALSA: usb-audio: Add Opus #3 to quirks for native DSD support · a5f6b0d2
      Olek Poplavsky authored
      commit 9e696664 upstream.
      
      This patch adds quirk VID/PID IDs for the Opus #3 DAP (made by 'The Bit')
      in order to enable Native DSD support.
      
      [ NOTE: this could be handled in the generic way with fp->dvd_raw if
        we add 0x10cb to the vendor whitelist, but since 0x10cb shows a
        different vendor name (Erantech), put to the individual entry at
        this time -- tiwai ]
      Signed-off-by: default avatarOlek Poplavsky <woodenbits@gmail.com>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      a5f6b0d2
  3. 31 Jan, 2019 5 commits
  4. 26 Jan, 2019 5 commits
    • 坂本 貴史's avatar
      ALSA: bebob: fix model-id of unit for Apogee Ensemble · 9093cd9e
      坂本 貴史 authored
      [ Upstream commit 644b2e97 ]
      
      This commit fixes hard-coded model-id for an unit of Apogee Ensemble with
      a correct value. This unit uses DM1500 ASIC produced ArchWave AG (formerly
      known as BridgeCo AG).
      
      I note that this model supports three modes in the number of data channels
      in tx/rx streams; 8 ch pairs, 10 ch pairs, 18 ch pairs. The mode is
      switched by Vendor-dependent AV/C command, like:
      
      $ cd linux-firewire-utils
      $ ./firewire-request /dev/fw1 fcp 0x00ff000003dbeb0600000000 (8ch pairs)
      $ ./firewire-request /dev/fw1 fcp 0x00ff000003dbeb0601000000 (10ch pairs)
      $ ./firewire-request /dev/fw1 fcp 0x00ff000003dbeb0602000000 (18ch pairs)
      
      When switching between different mode, the unit disappears from IEEE 1394
      bus, then appears on the bus with different combination of stream formats.
      In a mode of 18 ch pairs, available sampling rate is up to 96.0 kHz, else
      up to 192.0 kHz.
      
      $ ./hinawa-config-rom-printer /dev/fw1
      { 'bus-info': { 'adj': False,
                      'bmc': True,
                      'chip_ID': 21474898341,
                      'cmc': True,
                      'cyc_clk_acc': 100,
                      'generation': 2,
                      'imc': True,
                      'isc': True,
                      'link_spd': 2,
                      'max_ROM': 1,
                      'max_rec': 512,
                      'name': '1394',
                      'node_vendor_ID': 987,
                      'pmc': False},
        'root-directory': [ ['HARDWARE_VERSION', 19],
                            [ 'NODE_CAPABILITIES',
                              { 'addressing': {'64': True, 'fix': True, 'prv': False},
                                'misc': {'int': False, 'ms': False, 'spt': True},
                                'state': { 'atn': False,
                                           'ded': False,
                                           'drq': True,
                                           'elo': False,
                                           'init': False,
                                           'lst': True,
                                           'off': False},
                                'testing': {'bas': False, 'ext': False}}],
                            ['VENDOR', 987],
                            ['DESCRIPTOR', 'Apogee Electronics'],
                            ['MODEL', 126702],
                            ['DESCRIPTOR', 'Ensemble'],
                            ['VERSION', 5297],
                            [ 'UNIT',
                              [ ['SPECIFIER_ID', 41005],
                                ['VERSION', 65537],
                                ['MODEL', 126702],
                                ['DESCRIPTOR', 'Ensemble']]],
                            [ 'DEPENDENT_INFO',
                              [ ['SPECIFIER_ID', 2037],
                                ['VERSION', 1],
                                [(58, 'IMMEDIATE'), 16777159],
                                [(59, 'IMMEDIATE'), 1048576],
                                [(60, 'IMMEDIATE'), 16777159],
                                [(61, 'IMMEDIATE'), 6291456]]]]}
      Signed-off-by: 坂本 貴史's avatarTakashi Sakamoto <o-takashi@sakamocchi.jp>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
      9093cd9e
    • Yu Zhao's avatar
      ASoC: use dma_ops of parent device for acp_audio_dma · b4ba1c27
      Yu Zhao authored
      [ Upstream commit 23aa128b ]
      
      AMD platform device acp_audio_dma can only be created by parent PCI
      device driver (drivers/gpu/drm/amd/amdgpu/amdgpu_acp.c). Pass struct
      device of the parent to snd_pcm_lib_preallocate_pages() so
      dma_alloc_coherent() can use correct dma_ops. Otherwise, it will
      use default dma_ops which is nommu_dma_ops on x86_64 even when
      IOMMU is enabled and set to non passthrough mode.
      
      Though platform device inherits some dma related fields during its
      creation in mfd_add_device(), we can't simply pass its struct device
      to snd_pcm_lib_preallocate_pages() because dma_ops is not among the
      inherited fields. Even it were, drivers/iommu/amd_iommu.c would
      ignore it because get_device_id() doesn't handle platform device.
      
      This change shouldn't give us any trouble even struct device of the
      parent becomes null or represents some non PCI device in the future,
      because get_dma_ops() correctly handles null struct device or uses
      the default dma_ops if struct device doesn't have it set.
      Signed-off-by: default avatarYu Zhao <yuzhao@google.com>
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
      b4ba1c27
    • Jiada Wang's avatar
      ASoC: pcm3168a: Don't disable pcm3168a when CONFIG_PM defined · 05bb55dd
      Jiada Wang authored
      [ Upstream commit 489db5d9 ]
      
      pcm3168 codec support runtime_[resume|suspend], whenever it
      is not active, it enters suspend mode, and it's clock and regulators
      will be disabled. so there is no need to disable them again in
      remove callback.  Otherwise we got following kernel warnings,
      when unload pcm3168a driver
      
      [  222.257514] unbalanced disables for amp-en-regulator
      [  222.262526] ------------[ cut here ]------------
      [  222.267158] WARNING: CPU: 0 PID: 2423 at drivers/regulator/core.c:2264 _regulator_disable+0x28/0x108
      [  222.276291] Modules linked in:
      [  222.279343]  snd_soc_pcm3168a_i2c(-)
      [  222.282916]  snd_aloop
      [  222.285272]  arc4
      [  222.287194]  wl18xx
      [  222.289289]  wlcore
      [  222.291385]  mac80211
      [  222.293654]  cfg80211
      [  222.295923]  aes_ce_blk
      [  222.298366]  crypto_simd
      [  222.300896]  cryptd
      [  222.302992]  aes_ce_cipher
      [  222.305696]  crc32_ce
      [  222.307965]  ghash_ce
      [  222.310234]  aes_arm64
      [  222.312590]  gf128mul
      [  222.314860]  snd_soc_rcar
      [  222.317476]  sha2_ce
      [  222.319658]  xhci_plat_hcd
      [  222.322362]  sha256_arm64
      [  222.324978]  xhci_hcd
      [  222.327247]  sha1_ce
      [  222.329430]  renesas_usbhs
      [  222.332133]  evdev
      [  222.334142]  sha1_generic
      [  222.336758]  rcar_gen3_thermal
      [  222.339810]  cpufreq_dt
      [  222.342253]  ravb_streaming(C)
      [  222.345304]  wlcore_sdio
      [  222.347834]  thermal_sys
      [  222.350363]  udc_core
      [  222.352632]  mch_core(C)
      [  222.355161]  usb_dmac
      [  222.357430]  snd_soc_pcm3168a
      [  222.360394]  snd_soc_ak4613
      [  222.363184]  gpio_keys
      [  222.365540]  virt_dma
      [  222.367809]  nfsd
      [  222.369730]  ipv6
      [  222.371652]  autofs4
      [  222.373834]  [last unloaded: snd_soc_pcm3168a_i2c]
      [  222.378629] CPU: 0 PID: 2423 Comm: rmmod Tainted: G        WC      4.14.63-04798-gd456126e4a42-dirty #457
      [  222.388196] Hardware name: Renesas H3ULCB Kingfisher board based on r8a7795 ES2.0+ (DT)
      [  222.396199] task: ffff8006fa8c6200 task.stack: ffff00000a0a0000
      [  222.402117] PC is at _regulator_disable+0x28/0x108
      [  222.406906] LR is at _regulator_disable+0x28/0x108
      [  222.411695] pc : [<ffff0000083bd89c>] lr : [<ffff0000083bd89c>] pstate: 00000145
      [  222.419089] sp : ffff00000a0a3c80
      [  222.422401] x29: ffff00000a0a3c80
      [  222.425799] x28: ffff8006fa8c6200
      [  222.429199] x27: ffff0000086f1000
      [  222.432597] x26: 000000000000006a
      [  222.435997] x25: 0000000000000124
      [  222.439395] x24: 0000000000000018
      [  222.442795] x23: 0000000000000006
      [  222.446193] x22: ffff8006f925d490
      [  222.449592] x21: ffff8006f9ac2068
      [  222.452991] x20: ffff8006f9ac2000
      [  222.456390] x19: 0000000000000005
      [  222.459787] x18: 000000000000000a
      [  222.463186] x17: 0000000000000000
      [  222.466584] x16: 0000000000000000
      [  222.469984] x15: 000000000d3f616a
      [  222.473382] x14: 0720072007200720
      [  222.476781] x13: 0720072007200720
      [  222.480179] x12: 0720072007200720
      [  222.483578] x11: 0720072007200720
      [  222.486975] x10: 0720072007200720
      [  222.490375] x9 : 0720072007200720
      [  222.493773] x8 : 07200772076f0774
      [  222.497172] x7 : 0000000000000000
      [  222.500570] x6 : 0000000000000007
      [  222.503969] x5 : 0000000000000000
      [  222.507367] x4 : 0000000000000000
      [  222.510766] x3 : 0000000000000000
      [  222.514164] x2 : c790b852091e2600
      [  222.517563] x1 : 0000000000000000
      [  222.520961] x0 : 0000000000000028
      [  222.524361] Call trace:
      [  222.526805] Exception stack(0xffff00000a0a3b40 to 0xffff00000a0a3c80)
      [  222.533245] 3b40: 0000000000000028 0000000000000000 c790b852091e2600 0000000000000000
      [  222.541075] 3b60: 0000000000000000 0000000000000000 0000000000000007 0000000000000000
      [  222.548905] 3b80: 07200772076f0774 0720072007200720 0720072007200720 0720072007200720
      [  222.556735] 3ba0: 0720072007200720 0720072007200720 0720072007200720 000000000d3f616a
      [  222.564564] 3bc0: 0000000000000000 0000000000000000 000000000000000a 0000000000000005
      [  222.572394] 3be0: ffff8006f9ac2000 ffff8006f9ac2068 ffff8006f925d490 0000000000000006
      [  222.580224] 3c00: 0000000000000018 0000000000000124 000000000000006a ffff0000086f1000
      [  222.588053] 3c20: ffff8006fa8c6200 ffff00000a0a3c80 ffff0000083bd89c ffff00000a0a3c80
      [  222.595883] 3c40: ffff0000083bd89c 0000000000000145 0000000000000000 0000000000000000
      [  222.603713] 3c60: 0000ffffffffffff ffff00000a0a3c30 ffff00000a0a3c80 ffff0000083bd89c
      [  222.611543] [<ffff0000083bd89c>] _regulator_disable+0x28/0x108
      [  222.617375] [<ffff0000083bd9c4>] regulator_disable+0x48/0x68
      [  222.623033] [<ffff0000083be8e4>] regulator_bulk_disable+0x58/0xc0
      [  222.629134] [<ffff0000007d831c>] pcm3168a_remove+0x30/0x50 [snd_soc_pcm3168a]
      [  222.636270] [<ffff0000007e5010>] pcm3168a_i2c_remove+0x10/0x1c [snd_soc_pcm3168a_i2c]
      [  222.644106] [<ffff0000084b9d9c>] i2c_device_remove+0x38/0x70
      [  222.649766] [<ffff00000843cd5c>] device_release_driver_internal+0xd0/0x1c0
      [  222.656640] [<ffff00000843ced8>] driver_detach+0x70/0x7c
      [  222.661951] [<ffff00000843bf68>] bus_remove_driver+0x74/0xa0
      [  222.667609] [<ffff00000843d7e4>] driver_unregister+0x48/0x4c
      [  222.673268] [<ffff0000084ba8dc>] i2c_del_driver+0x24/0x30
      [  222.678666] [<ffff0000007e5078>] pcm3168a_i2c_driver_exit+0x10/0xf98 [snd_soc_pcm3168a_i2c]
      [  222.687019] [<ffff00000811bd28>] SyS_delete_module+0x198/0x1d4
      [  222.692850] Exception stack(0xffff00000a0a3ec0 to 0xffff00000a0a4000)
      [  222.699289] 3ec0: 0000aaaafeb4b268 0000000000000800 14453f6470497100 0000fffffaa520d8
      [  222.707119] 3ee0: 0000fffffaa520d9 000000000000000a 1999999999999999 0000000000000000
      [  222.714948] 3f00: 000000000000006a 0000ffffa8f7d1d8 000000000000000a 0000000000000005
      [  222.722778] 3f20: 0000000000000000 0000000000000000 000000000000002d 0000000000000000
      [  222.730607] 3f40: 0000aaaae19b9f68 0000ffffa8f411f0 0000000000000000 0000aaaae19b9000
      [  222.738436] 3f60: 0000fffffaa533b8 0000fffffaa531f0 0000000000000000 0000000000000001
      [  222.746266] 3f80: 0000fffffaa53ec6 0000000000000000 0000aaaafeb4b200 0000aaaafeb4a010
      [  222.754096] 3fa0: 0000000000000000 0000fffffaa53130 0000aaaae199f36c 0000fffffaa53130
      [  222.761926] 3fc0: 0000ffffa8f411f8 0000000000000000 0000aaaafeb4b268 000000000000006a
      [  222.769755] 3fe0: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
      [  222.777589] [<ffff0000080832c0>] el0_svc_naked+0x34/0x38
      [  222.782899] ---[ end trace eaf8939a3698b1a8 ]---
      [  222.787609] Failed to disable VCCDA2: -5
      [  222.791649] ------------[ cut here ]------------
      [  222.796283] WARNING: CPU: 0 PID: 2423 at drivers/clk/clk.c:595 clk_core_disable+0xc/0x1d8
      [  222.804460] Modules linked in:
      [  222.807511]  snd_soc_pcm3168a_i2c(-)
      [  222.811083]  snd_aloop
      [  222.813439]  arc4
      [  222.815360]  wl18xx
      [  222.817456]  wlcore
      [  222.819551]  mac80211
      [  222.821820]  cfg80211
      [  222.824088]  aes_ce_blk
      [  222.826531]  crypto_simd
      [  222.829060]  cryptd
      [  222.831155]  aes_ce_cipher
      [  222.833859]  crc32_ce
      [  222.836127]  ghash_ce
      [  222.838396]  aes_arm64
      [  222.840752]  gf128mul
      [  222.843020]  snd_soc_rcar
      [  222.845637]  sha2_ce
      [  222.847818]  xhci_plat_hcd
      [  222.850522]  sha256_arm64
      [  222.853138]  xhci_hcd
      [  222.855407]  sha1_ce
      [  222.857589]  renesas_usbhs
      [  222.860292]  evdev
      [  222.862300]  sha1_generic
      [  222.864917]  rcar_gen3_thermal
      [  222.867968]  cpufreq_dt
      [  222.870410]  ravb_streaming(C)
      [  222.873461]  wlcore_sdio
      [  222.875991]  thermal_sys
      [  222.878520]  udc_core
      [  222.880789]  mch_core(C)
      [  222.883318]  usb_dmac
      [  222.885587]  snd_soc_pcm3168a
      [  222.888551]  snd_soc_ak4613
      [  222.891341]  gpio_keys
      [  222.893696]  virt_dma
      [  222.895965]  nfsd
      [  222.897886]  ipv6
      [  222.899808]  autofs4
      [  222.901990]  [last unloaded: snd_soc_pcm3168a_i2c]
      [  222.906783] CPU: 0 PID: 2423 Comm: rmmod Tainted: G        WC      4.14.63-04798-gd456126e4a42-dirty #457
      [  222.916349] Hardware name: Renesas H3ULCB Kingfisher board based on r8a7795 ES2.0+ (DT)
      [  222.924351] task: ffff8006fa8c6200 task.stack: ffff00000a0a0000
      [  222.930270] PC is at clk_core_disable+0xc/0x1d8
      [  222.934799] LR is at clk_core_disable_lock+0x20/0x34
      [  222.939761] pc : [<ffff0000083ab9b8>] lr : [<ffff0000083acd28>] pstate: 800001c5
      [  222.947154] sp : ffff00000a0a3cf0
      [  222.950466] x29: ffff00000a0a3cf0
      [  222.953864] x28: ffff8006fa8c6200
      [  222.957263] x27: ffff0000086f1000
      [  222.960661] x26: 000000000000006a
      [  222.964061] x25: 0000000000000124
      [  222.967458] x24: 0000000000000015
      [  222.970858] x23: ffff8006f9ffa8d0
      [  222.974256] x22: ffff8006faf16480
      [  222.977655] x21: ffff0000007e7040
      [  222.981053] x20: ffff8006faadd100
      [  222.984452] x19: 0000000000000140
      [  222.987850] x18: 000000000000000a
      [  222.991249] x17: 0000000000000000
      [  222.994647] x16: 0000000000000000
      [  222.998046] x15: 000000000d477819
      [  223.001444] x14: 0720072007200720
      [  223.004843] x13: 0720072007200720
      [  223.008242] x12: 0720072007200720
      [  223.011641] x11: 0720072007200720
      [  223.015039] x10: 0720072007200720
      [  223.018438] x9 : 0720072007200720
      [  223.021837] x8 : 0720072007200720
      [  223.025236] x7 : 0000000000000000
      [  223.028634] x6 : 0000000000000007
      [  223.032034] x5 : 0000000000000000
      [  223.035432] x4 : 0000000000000000
      [  223.038831] x3 : 0000000000000000
      [  223.042229] x2 : 0000000004720471
      [  223.045628] x1 : 0000000000000000
      [  223.049026] x0 : ffff8006faadd100
      [  223.052426] Call trace:
      [  223.054870] Exception stack(0xffff00000a0a3bb0 to 0xffff00000a0a3cf0)
      [  223.061309] 3ba0:                                   ffff8006faadd100 0000000000000000
      [  223.069139] 3bc0: 0000000004720471 0000000000000000 0000000000000000 0000000000000000
      [  223.076969] 3be0: 0000000000000007 0000000000000000 0720072007200720 0720072007200720
      [  223.084798] 3c00: 0720072007200720 0720072007200720 0720072007200720 0720072007200720
      [  223.092628] 3c20: 0720072007200720 000000000d477819 0000000000000000 0000000000000000
      [  223.100458] 3c40: 000000000000000a 0000000000000140 ffff8006faadd100 ffff0000007e7040
      [  223.108287] 3c60: ffff8006faf16480 ffff8006f9ffa8d0 0000000000000015 0000000000000124
      [  223.116117] 3c80: 000000000000006a ffff0000086f1000 ffff8006fa8c6200 ffff00000a0a3cf0
      [  223.123947] 3ca0: ffff0000083acd28 ffff00000a0a3cf0 ffff0000083ab9b8 00000000800001c5
      [  223.131777] 3cc0: ffff00000a0a3cf0 ffff0000083acd1c 0000ffffffffffff ffff8006faadd100
      [  223.139606] 3ce0: ffff00000a0a3cf0 ffff0000083ab9b8
      [  223.144483] [<ffff0000083ab9b8>] clk_core_disable+0xc/0x1d8
      [  223.150054] [<ffff0000083acd58>] clk_disable+0x1c/0x28
      [  223.155198] [<ffff0000007d8328>] pcm3168a_remove+0x3c/0x50 [snd_soc_pcm3168a]
      [  223.162334] [<ffff0000007e5010>] pcm3168a_i2c_remove+0x10/0x1c [snd_soc_pcm3168a_i2c]
      [  223.170167] [<ffff0000084b9d9c>] i2c_device_remove+0x38/0x70
      [  223.175826] [<ffff00000843cd5c>] device_release_driver_internal+0xd0/0x1c0
      [  223.182700] [<ffff00000843ced8>] driver_detach+0x70/0x7c
      [  223.188012] [<ffff00000843bf68>] bus_remove_driver+0x74/0xa0
      [  223.193669] [<ffff00000843d7e4>] driver_unregister+0x48/0x4c
      [  223.199329] [<ffff0000084ba8dc>] i2c_del_driver+0x24/0x30
      [  223.204726] [<ffff0000007e5078>] pcm3168a_i2c_driver_exit+0x10/0xf98 [snd_soc_pcm3168a_i2c]
      [  223.213079] [<ffff00000811bd28>] SyS_delete_module+0x198/0x1d4
      [  223.218909] Exception stack(0xffff00000a0a3ec0 to 0xffff00000a0a4000)
      [  223.225349] 3ec0: 0000aaaafeb4b268 0000000000000800 14453f6470497100 0000fffffaa520d8
      [  223.233179] 3ee0: 0000fffffaa520d9 000000000000000a 1999999999999999 0000000000000000
      [  223.241008] 3f00: 000000000000006a 0000ffffa8f7d1d8 000000000000000a 0000000000000005
      [  223.248838] 3f20: 0000000000000000 0000000000000000 000000000000002d 0000000000000000
      [  223.256668] 3f40: 0000aaaae19b9f68 0000ffffa8f411f0 0000000000000000 0000aaaae19b9000
      [  223.264497] 3f60: 0000fffffaa533b8 0000fffffaa531f0 0000000000000000 0000000000000001
      [  223.272327] 3f80: 0000fffffaa53ec6 0000000000000000 0000aaaafeb4b200 0000aaaafeb4a010
      [  223.280157] 3fa0: 0000000000000000 0000fffffaa53130 0000aaaae199f36c 0000fffffaa53130
      [  223.287986] 3fc0: 0000ffffa8f411f8 0000000000000000 0000aaaafeb4b268 000000000000006a
      [  223.295816] 3fe0: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
      [  223.303648] [<ffff0000080832c0>] el0_svc_naked+0x34/0x38
      [  223.308958] ---[ end trace eaf8939a3698b1a9 ]---
      [  223.313752] ------------[ cut here ]------------
      [  223.318383] WARNING: CPU: 0 PID: 2423 at drivers/clk/clk.c:477 clk_core_unprepare+0xc/0x1ac
      [  223.326733] Modules linked in:
      [  223.329784]  snd_soc_pcm3168a_i2c(-)
      [  223.333356]  snd_aloop
      [  223.335712]  arc4
      [  223.337633]  wl18xx
      [  223.339728]  wlcore
      [  223.341823]  mac80211
      [  223.344092]  cfg80211
      [  223.346360]  aes_ce_blk
      [  223.348803]  crypto_simd
      [  223.351332]  cryptd
      [  223.353428]  aes_ce_cipher
      [  223.356131]  crc32_ce
      [  223.358400]  ghash_ce
      [  223.360668]  aes_arm64
      [  223.363024]  gf128mul
      [  223.365293]  snd_soc_rcar
      [  223.367909]  sha2_ce
      [  223.370091]  xhci_plat_hcd
      [  223.372794]  sha256_arm64
      [  223.375410]  xhci_hcd
      [  223.377679]  sha1_ce
      [  223.379861]  renesas_usbhs
      [  223.382564]  evdev
      [  223.384572]  sha1_generic
      [  223.387188]  rcar_gen3_thermal
      [  223.390239]  cpufreq_dt
      [  223.392682]  ravb_streaming(C)
      [  223.395732]  wlcore_sdio
      [  223.398261]  thermal_sys
      [  223.400790]  udc_core
      [  223.403059]  mch_core(C)
      [  223.405588]  usb_dmac
      [  223.407856]  snd_soc_pcm3168a
      [  223.410820]  snd_soc_ak4613
      [  223.413609]  gpio_keys
      [  223.415965]  virt_dma
      [  223.418234]  nfsd
      [  223.420155]  ipv6
      [  223.422076]  autofs4
      [  223.424258]  [last unloaded: snd_soc_pcm3168a_i2c]
      [  223.429050] CPU: 0 PID: 2423 Comm: rmmod Tainted: G        WC      4.14.63-04798-gd456126e4a42-dirty #457
      [  223.438616] Hardware name: Renesas H3ULCB Kingfisher board based on r8a7795 ES2.0+ (DT)
      [  223.446618] task: ffff8006fa8c6200 task.stack: ffff00000a0a0000
      [  223.452536] PC is at clk_core_unprepare+0xc/0x1ac
      [  223.457239] LR is at clk_unprepare+0x28/0x3c
      [  223.461506] pc : [<ffff0000083ab5a4>] lr : [<ffff0000083ace4c>] pstate: 60000145
      [  223.468900] sp : ffff00000a0a3d00
      [  223.472211] x29: ffff00000a0a3d00
      [  223.475609] x28: ffff8006fa8c6200
      [  223.479009] x27: ffff0000086f1000
      [  223.482407] x26: 000000000000006a
      [  223.485807] x25: 0000000000000124
      [  223.489205] x24: 0000000000000015
      [  223.492604] x23: ffff8006f9ffa8d0
      [  223.496003] x22: ffff8006faf16480
      [  223.499402] x21: ffff0000007e7040
      [  223.502800] x20: ffff8006faf16420
      [  223.506199] x19: ffff8006faadd100
      [  223.509597] x18: 000000000000000a
      [  223.512997] x17: 0000000000000000
      [  223.516395] x16: 0000000000000000
      [  223.519794] x15: 0000000000000000
      [  223.523192] x14: 00000033fe89076c
      [  223.526591] x13: 0000000000000400
      [  223.529989] x12: 0000000000000400
      [  223.533388] x11: 0000000000000000
      [  223.536786] x10: 00000000000009e0
      [  223.540185] x9 : ffff00000a0a3be0
      [  223.543583] x8 : ffff8006fa8c6c40
      [  223.546982] x7 : ffff8006fa8c6400
      [  223.550380] x6 : 0000000000000001
      [  223.553780] x5 : 0000000000000000
      [  223.557178] x4 : ffff8006fa8c6200
      [  223.560577] x3 : 0000000000000000
      [  223.563975] x2 : ffff8006fa8c6200
      [  223.567374] x1 : 0000000000000000
      [  223.570772] x0 : ffff8006faadd100
      [  223.574170] Call trace:
      [  223.576615] Exception stack(0xffff00000a0a3bc0 to 0xffff00000a0a3d00)
      [  223.583054] 3bc0: ffff8006faadd100 0000000000000000 ffff8006fa8c6200 0000000000000000
      [  223.590884] 3be0: ffff8006fa8c6200 0000000000000000 0000000000000001 ffff8006fa8c6400
      [  223.598714] 3c00: ffff8006fa8c6c40 ffff00000a0a3be0 00000000000009e0 0000000000000000
      [  223.606544] 3c20: 0000000000000400 0000000000000400 00000033fe89076c 0000000000000000
      [  223.614374] 3c40: 0000000000000000 0000000000000000 000000000000000a ffff8006faadd100
      [  223.622204] 3c60: ffff8006faf16420 ffff0000007e7040 ffff8006faf16480 ffff8006f9ffa8d0
      [  223.630033] 3c80: 0000000000000015 0000000000000124 000000000000006a ffff0000086f1000
      [  223.637863] 3ca0: ffff8006fa8c6200 ffff00000a0a3d00 ffff0000083ace4c ffff00000a0a3d00
      [  223.645693] 3cc0: ffff0000083ab5a4 0000000060000145 0000000000000140 ffff8006faadd100
      [  223.653523] 3ce0: 0000ffffffffffff ffff0000083ace44 ffff00000a0a3d00 ffff0000083ab5a4
      [  223.661353] [<ffff0000083ab5a4>] clk_core_unprepare+0xc/0x1ac
      [  223.667103] [<ffff0000007d8330>] pcm3168a_remove+0x44/0x50 [snd_soc_pcm3168a]
      [  223.674239] [<ffff0000007e5010>] pcm3168a_i2c_remove+0x10/0x1c [snd_soc_pcm3168a_i2c]
      [  223.682070] [<ffff0000084b9d9c>] i2c_device_remove+0x38/0x70
      [  223.687731] [<ffff00000843cd5c>] device_release_driver_internal+0xd0/0x1c0
      [  223.694604] [<ffff00000843ced8>] driver_detach+0x70/0x7c
      [  223.699915] [<ffff00000843bf68>] bus_remove_driver+0x74/0xa0
      [  223.705572] [<ffff00000843d7e4>] driver_unregister+0x48/0x4c
      [  223.711230] [<ffff0000084ba8dc>] i2c_del_driver+0x24/0x30
      [  223.716628] [<ffff0000007e5078>] pcm3168a_i2c_driver_exit+0x10/0xf98 [snd_soc_pcm3168a_i2c]
      [  223.724980] [<ffff00000811bd28>] SyS_delete_module+0x198/0x1d4
      [  223.730811] Exception stack(0xffff00000a0a3ec0 to 0xffff00000a0a4000)
      [  223.737250] 3ec0: 0000aaaafeb4b268 0000000000000800 14453f6470497100 0000fffffaa520d8
      [  223.745079] 3ee0: 0000fffffaa520d9 000000000000000a 1999999999999999 0000000000000000
      [  223.752909] 3f00: 000000000000006a 0000ffffa8f7d1d8 000000000000000a 0000000000000005
      [  223.760739] 3f20: 0000000000000000 0000000000000000 000000000000002d 0000000000000000
      [  223.768568] 3f40: 0000aaaae19b9f68 0000ffffa8f411f0 0000000000000000 0000aaaae19b9000
      [  223.776398] 3f60: 0000fffffaa533b8 0000fffffaa531f0 0000000000000000 0000000000000001
      [  223.784227] 3f80: 0000fffffaa53ec6 0000000000000000 0000aaaafeb4b200 0000aaaafeb4a010
      [  223.792057] 3fa0: 0000000000000000 0000fffffaa53130 0000aaaae199f36c 0000fffffaa53130
      [  223.799886] 3fc0: 0000ffffa8f411f8 0000000000000000 0000aaaafeb4b268 000000000000006a
      [  223.807715] 3fe0: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
      [  223.815546] [<ffff0000080832c0>] el0_svc_naked+0x34/0x38
      [  223.820855] ---[ end trace eaf8939a3698b1aa ]---
      
      Fix this issue by only disable clock and regulators in remove callback
      when CONFIG_PM isn't defined
      Signed-off-by: default avatarJiada Wang <jiada_wang@mentor.com>
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
      05bb55dd
    • 坂本 貴史's avatar
      ALSA: oxfw: add support for APOGEE duet FireWire · f20f89a8
      坂本 貴史 authored
      [ Upstream commit fba43f45 ]
      
      This commit adds support for APOGEE duet FireWire, launched 2007, already
      discontinued. This model uses Oxford Semiconductor FW971 as its
      communication engine. Below is information on Configuration ROM of this
      unit. The unit supports some AV/C commands defined by Audio subunit
      specification and vendor dependent commands.
      
      $ ./hinawa-config-rom-printer /dev/fw1
      { 'bus-info': { 'adj': False,
                      'bmc': False,
                      'chip_ID': 42949742248,
                      'cmc': False,
                      'cyc_clk_acc': 255,
                      'generation': 0,
                      'imc': False,
                      'isc': True,
                      'link_spd': 3,
                      'max_ROM': 0,
                      'max_rec': 64,
                      'name': '1394',
                      'node_vendor_ID': 987,
                      'pmc': False},
        'root-directory': [ ['VENDOR', 987],
                            ['DESCRIPTOR', 'Apogee Electronics'],
                            ['MODEL', 122333],
                            ['DESCRIPTOR', 'Duet'],
                            [ 'NODE_CAPABILITIES',
                              { 'addressing': {'64': True, 'fix': True, 'prv': False},
                                'misc': {'int': False, 'ms': False, 'spt': True},
                                'state': { 'atn': False,
                                           'ded': False,
                                           'drq': True,
                                           'elo': False,
                                           'init': False,
                                           'lst': True,
                                           'off': False},
                                'testing': {'bas': False, 'ext': False}}],
                            [ 'UNIT',
                              [ ['SPECIFIER_ID', 41005],
                                ['VERSION', 65537],
                                ['MODEL', 122333],
                                ['DESCRIPTOR', 'Duet']]]]}
      Signed-off-by: 坂本 貴史's avatarTakashi Sakamoto <o-takashi@sakamocchi.jp>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
      f20f89a8
    • Arnd Bergmann's avatar
      ASoC: wm97xx: fix uninitialized regmap pointer problem · 47b6173b
      Arnd Bergmann authored
      [ Upstream commit 576ce407 ]
      
      gcc notices that without either the ac97 bus or the pdata, we never
      initialize the regmap pointer, which leads to an uninitialized variable
      access:
      
      sound/soc/codecs/wm9712.c: In function 'wm9712_soc_probe':
      sound/soc/codecs/wm9712.c:666:2: error: 'regmap' may be used uninitialized in this function [-Werror=maybe-uninitialized]
      
      Since that configuration is invalid, it's better to return an error
      here. I tried to avoid adding complexity to the conditions, and turned
      the #ifdef into a regular if(IS_ENABLED()) check for readability.
      This in turn requires moving some header file declarations out of
      an #ifdef.
      
      The same code is used in three drivers, all of which I'm changing
      the same way.
      
      Fixes: 2ed1a8e0 ("ASoC: wm9712: add ac97 new bus support")
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
      47b6173b
  5. 16 Jan, 2019 3 commits
  6. 13 Jan, 2019 5 commits
  7. 09 Jan, 2019 12 commits