1. 10 9月, 2018 1 次提交
  2. 06 9月, 2018 2 次提交
  3. 05 9月, 2018 1 次提交
  4. 03 9月, 2018 2 次提交
    • J
      ASoC: rsnd: fixup not to call clk_get/set under non-atomic · 4d230d12
      Jiada Wang 提交于
      Clocking operations clk_get/set_rate, are non-atomic,
      they shouldn't be called in soc_pcm_trigger() which is atomic.
      
      Following issue was found due to execution of clk_get_rate() causes
      sleep in soc_pcm_trigger(), which shouldn't be blocked.
      
      We can reproduce this issue by following
      	> enable CONFIG_DEBUG_ATOMIC_SLEEP=y
      	> compile, and boot
      	> mount -t debugfs none /sys/kernel/debug
      	> while true; do cat /sys/kernel/debug/clk/clk_summary > /dev/null; done &
      	> while true; do aplay xxx; done
      
      This patch adds support to .prepare callback, and moves non-atomic
      clocking operations to it. As .prepare is non-atomic, it is always
      called before trigger_start/trigger_stop.
      
      	BUG: sleeping function called from invalid context at kernel/locking/mutex.c:620
      	in_atomic(): 1, irqs_disabled(): 128, pid: 2242, name: aplay
      	INFO: lockdep is turned off.
      	irq event stamp: 5964
      	hardirqs last enabled at (5963): [<ffff200008e59e40>] mutex_lock_nested+0x6e8/0x6f0
      	hardirqs last disabled at (5964): [<ffff200008e623f0>] _raw_spin_lock_irqsave+0x24/0x68
      	softirqs last enabled at (5502): [<ffff200008081838>] __do_softirq+0x560/0x10c0
      	softirqs last disabled at (5495): [<ffff2000080c2e78>] irq_exit+0x160/0x25c
      	Preemption disabled at:[ 62.904063] [<ffff200008be4d48>] snd_pcm_stream_lock+0xb4/0xc0
      	CPU: 2 PID: 2242 Comm: aplay Tainted: G B C 4.9.54+ #186
      	Hardware name: Renesas Salvator-X board based on r8a7795 (DT)
      	Call trace:
      	[<ffff20000808fe48>] dump_backtrace+0x0/0x37c
      	[<ffff2000080901d8>] show_stack+0x14/0x1c
      	[<ffff2000086f4458>] dump_stack+0xfc/0x154
      	[<ffff2000081134a0>] ___might_sleep+0x57c/0x58c
      	[<ffff2000081136b8>] __might_sleep+0x208/0x21c
      	[<ffff200008e5980c>] mutex_lock_nested+0xb4/0x6f0
      	[<ffff2000087cac74>] clk_prepare_lock+0xb0/0x184
      	[<ffff2000087cb094>] clk_core_get_rate+0x14/0x54
      	[<ffff2000087cb0f4>] clk_get_rate+0x20/0x34
      	[<ffff20000113aa00>] rsnd_adg_ssi_clk_try_start+0x158/0x4f8 [snd_soc_rcar]
      	[<ffff20000113da00>] rsnd_ssi_init+0x668/0x7a0 [snd_soc_rcar]
      	[<ffff200001133ff4>] rsnd_soc_dai_trigger+0x4bc/0xcf8 [snd_soc_rcar]
      	[<ffff200008c1af24>] soc_pcm_trigger+0x2a4/0x2d4
      
      Fixes: e7d850dd ("ASoC: rsnd: use mod base common method on SSI-parent")
      Signed-off-by: NJiada Wang <jiada_wang@mentor.com>
      Signed-off-by: NTimo Wischer <twischer@de.adit-jv.com>
      [Kuninori: tidyup for upstream]
      Signed-off-by: NKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
      Tested-by: NHiroyuki Yokoyama <hiroyuki.yokoyama.vx@renesas.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      Cc: stable@vger.kernel.org
      4d230d12
    • S
      ASoC: q6routing: initialize data correctly · 7aa09ff2
      Srinivas Kandagatla 提交于
      Some of the router data fields are left as default zeros which are
      valid dai ids, so initialize these to invalid value of -1.
      
      Without intializing these correctly get_session_from_id() can return
      incorrect session resulting in not closing the opened copp and messing
      up with the copp ref count.
      
      Fixes: e3a33673 ("ASoC: qdsp6: q6routing: Add q6routing driver")
      Signed-off-by: NSrinivas Kandagatla <srinivas.kandagatla@linaro.org>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      7aa09ff2
  5. 31 8月, 2018 1 次提交
    • A
      ASoC: tas6424: Save last fault register even when clear · d40e3e9e
      Andrew F. Davis 提交于
      When there is no fault bit set in a fault register we skip the fault
      reporting section for that register. This also skips over saving that
      registers value. We save the value so we will not double report an
      error, but if an error clears then returns we will also not report it
      as we did not save the all cleared register value. Fix this by saving
      the fault register value in the all clear path.
      Signed-off-by: NAndrew F. Davis <afd@ti.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      Cc: stable@vger.kernel.org
      d40e3e9e
  6. 29 8月, 2018 4 次提交
  7. 16 8月, 2018 2 次提交
  8. 15 8月, 2018 1 次提交
    • C
      ASoC: dapm: Fix NULL pointer deference on CODEC to CODEC DAIs · 249dc495
      Charles Keepax 提交于
      Commit a655de80 ("ASoC: core: Allow topology to override
      machine driver FE DAI link config.") caused soc_dai_hw_params to
      be come dependent on the substream private_data being set with
      a pointer to the snd_soc_pcm_runtime. Currently, CODEC to CODEC
      links don't set this, which causes a NULL pointer dereference:
      
      [<4069de54>] (soc_dai_hw_params) from
      [<40694b68>] (snd_soc_dai_link_event+0x1a0/0x380)
      
      Since the ASoC core in general assumes that the substream
      private_data will be set to a pointer to the snd_soc_pcm_runtime,
      update the CODEC to CODEC links to respect this.
      Signed-off-by: NCharles Keepax <ckeepax@opensource.cirrus.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      249dc495
  9. 14 8月, 2018 4 次提交
    • Y
      ASoC: Intel: Skylake: Acquire irq after RIRB allocation · 12eeeb4f
      Yong Zhi 提交于
      Cold reboot stress test found that the hda irq could access rirb ring
      buffer before its memory gets allocated which resulting in null
      pointer dereference inside snd_hdac_bus_update_rirb().
      
      Fix it by moving the skl_acquire_irq after ring buffer allocation.
      While here, also change err return from -EBUSY to actual error code.
      Signed-off-by: NYong Zhi <yong.zhi@intel.com>
      Acked-by: NPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      12eeeb4f
    • D
      ASoC: uapi: fix sound/skl-tplg-interface.h userspace compilation errors · fb504caa
      Dmitry V. Levin 提交于
      Include <linux/types.h> and consistently use types it provides
      to fix the following sound/skl-tplg-interface.h userspace compilation errors:
      
      /usr/include/sound/skl-tplg-interface.h:146:2: error: unknown type name 'u32'
        u32 set_params:2;
      /usr/include/sound/skl-tplg-interface.h:147:2: error: unknown type name 'u32'
        u32 rsvd:30;
      /usr/include/sound/skl-tplg-interface.h:148:2: error: unknown type name 'u32'
        u32 param_id;
      /usr/include/sound/skl-tplg-interface.h:149:2: error: unknown type name 'u32'
        u32 max;
      /usr/include/sound/skl-tplg-interface.h:166:2: error: unknown type name 'u16'
        u16 module_id;
      /usr/include/sound/skl-tplg-interface.h:167:2: error: unknown type name 'u16'
        u16 instance_id;
      /usr/include/sound/skl-tplg-interface.h:171:2: error: unknown type name 'u32'
        u32 channels;
      /usr/include/sound/skl-tplg-interface.h:172:2: error: unknown type name 'u32'
        u32 freq;
      /usr/include/sound/skl-tplg-interface.h:173:2: error: unknown type name 'u32'
        u32 bit_depth;
      /usr/include/sound/skl-tplg-interface.h:174:2: error: unknown type name 'u32'
        u32 valid_bit_depth;
      /usr/include/sound/skl-tplg-interface.h:175:2: error: unknown type name 'u32'
        u32 ch_cfg;
      /usr/include/sound/skl-tplg-interface.h:176:2: error: unknown type name 'u32'
        u32 interleaving_style;
      /usr/include/sound/skl-tplg-interface.h:177:2: error: unknown type name 'u32'
        u32 sample_type;
      /usr/include/sound/skl-tplg-interface.h:178:2: error: unknown type name 'u32'
        u32 ch_map;
      /usr/include/sound/skl-tplg-interface.h:182:2: error: unknown type name 'u32'
        u32 set_params:2;
      /usr/include/sound/skl-tplg-interface.h:183:2: error: unknown type name 'u32'
        u32 rsvd:30;
      /usr/include/sound/skl-tplg-interface.h:184:2: error: unknown type name 'u32'
        u32 param_id;
      /usr/include/sound/skl-tplg-interface.h:185:2: error: unknown type name 'u32'
        u32 caps_size;
      /usr/include/sound/skl-tplg-interface.h:186:2: error: unknown type name 'u32'
        u32 caps[HDA_SST_CFG_MAX];
      /usr/include/sound/skl-tplg-interface.h:190:2: error: unknown type name 'u8'
        u8 pipe_id;
      /usr/include/sound/skl-tplg-interface.h:191:2: error: unknown type name 'u8'
        u8 pipe_priority;
      /usr/include/sound/skl-tplg-interface.h:192:2: error: unknown type name 'u16'
        u16 conn_type:4;
      /usr/include/sound/skl-tplg-interface.h:193:2: error: unknown type name 'u16'
        u16 rsvd:4;
      /usr/include/sound/skl-tplg-interface.h:194:2: error: unknown type name 'u16'
        u16 memory_pages:8;
      /usr/include/sound/skl-tplg-interface.h:200:2: error: unknown type name 'u16'
        u16 module_id;
      /usr/include/sound/skl-tplg-interface.h:201:2: error: unknown type name 'u16'
        u16 instance_id;
      /usr/include/sound/skl-tplg-interface.h:202:2: error: unknown type name 'u32'
        u32 max_mcps;
      /usr/include/sound/skl-tplg-interface.h:203:2: error: unknown type name 'u32'
        u32 mem_pages;
      /usr/include/sound/skl-tplg-interface.h:204:2: error: unknown type name 'u32'
        u32 obs;
      /usr/include/sound/skl-tplg-interface.h:205:2: error: unknown type name 'u32'
        u32 ibs;
      /usr/include/sound/skl-tplg-interface.h:206:2: error: unknown type name 'u32'
        u32 vbus_id;
      /usr/include/sound/skl-tplg-interface.h:208:2: error: unknown type name 'u32'
        u32 max_in_queue:8;
      /usr/include/sound/skl-tplg-interface.h:209:2: error: unknown type name 'u32'
        u32 max_out_queue:8;
      /usr/include/sound/skl-tplg-interface.h:210:2: error: unknown type name 'u32'
        u32 time_slot:8;
      /usr/include/sound/skl-tplg-interface.h:211:2: error: unknown type name 'u32'
        u32 core_id:4;
      /usr/include/sound/skl-tplg-interface.h:212:2: error: unknown type name 'u32'
        u32 rsvd1:4;
      /usr/include/sound/skl-tplg-interface.h:214:2: error: unknown type name 'u32'
        u32 module_type:8;
      /usr/include/sound/skl-tplg-interface.h:215:2: error: unknown type name 'u32'
        u32 conn_type:4;
      /usr/include/sound/skl-tplg-interface.h:216:2: error: unknown type name 'u32'
        u32 dev_type:4;
      /usr/include/sound/skl-tplg-interface.h:217:2: error: unknown type name 'u32'
        u32 hw_conn_type:4;
      /usr/include/sound/skl-tplg-interface.h:218:2: error: unknown type name 'u32'
        u32 rsvd2:12;
      /usr/include/sound/skl-tplg-interface.h:220:2: error: unknown type name 'u32'
        u32 params_fixup:8;
      /usr/include/sound/skl-tplg-interface.h:221:2: error: unknown type name 'u32'
        u32 converter:8;
      /usr/include/sound/skl-tplg-interface.h:222:2: error: unknown type name 'u32'
        u32 input_pin_type:1;
      /usr/include/sound/skl-tplg-interface.h:223:2: error: unknown type name 'u32'
        u32 output_pin_type:1;
      /usr/include/sound/skl-tplg-interface.h:224:2: error: unknown type name 'u32'
        u32 is_dynamic_in_pin:1;
      /usr/include/sound/skl-tplg-interface.h:225:2: error: unknown type name 'u32'
        u32 is_dynamic_out_pin:1;
      /usr/include/sound/skl-tplg-interface.h:226:2: error: unknown type name 'u32'
        u32 is_loadable:1;
      /usr/include/sound/skl-tplg-interface.h:227:2: error: unknown type name 'u32'
        u32 rsvd3:11;
      
      Fixes: 0c24fdc0 ("ASoC: topology: Move skl-tplg-interface.h to uapi")
      Signed-off-by: NDmitry V. Levin <ldv@altlinux.org>
      Reviewed-by: NGuenter Roeck <groeck@chromium.org>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      Cc: <stable@vger.kernel.org> # v4.18
      fb504caa
    • M
      ASoC: wm9712: fix replace codec to component · 5e4cfada
      Marcel Ziswiler 提交于
      Since commit 143b4484 ("ASoC: wm9712: replace codec to component")
      "wm9712-codec" got renamed to "wm9712-component", however, this change
      never got propagated down to the actual board/platform drivers. E.g. on
      Colibri T20 this lead to the following spew upon boot with sound/touch
      being broken:
      
      [    2.214121] tegra-snd-wm9712 sound: ASoC: CODEC DAI wm9712-hifi not registered
      [    2.222137] tegra-snd-wm9712 sound: snd_soc_register_card failed (-517)
      ...
      [    2.344384] tegra-snd-wm9712 sound: ASoC: CODEC DAI wm9712-hifi not registered
      [    2.351885] tegra-snd-wm9712 sound: snd_soc_register_card failed (-517)
      ...
      [    2.668339] tegra-snd-wm9712 sound: ASoC: CODEC DAI wm9712-hifi not registered
      [    2.675811] tegra-snd-wm9712 sound: snd_soc_register_card failed (-517)
      ...
      [    3.208408] tegra-snd-wm9712 sound: ASoC: CODEC DAI wm9712-hifi not registered
      [    3.216312] tegra-snd-wm9712 sound: snd_soc_register_card failed (-517)
      ...
      [    3.235397] tegra-snd-wm9712 sound: ASoC: CODEC DAI wm9712-hifi not registered
      [    3.248938] tegra-snd-wm9712 sound: snd_soc_register_card failed (-517)
      ...
      [   14.970443] ALSA device list:
      [   14.996628]   No soundcards found.
      
      This commit finally fixes this again.
      Signed-off-by: NMarcel Ziswiler <marcel.ziswiler@toradex.com>
      Acked-by: NCharles Keepax <ckeepax@opensource.cirrus.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      Cc: stable@vger.kernel.org
      5e4cfada
    • H
      ASoC: Intel: bytcr_rt5640: Add quirks for 2 more devices · 260c48b7
      Hans de Goede 提交于
      Add quirks to select the right input-map, jack-detect pin, etc. for:
      
      Linx Linx7 tablet
      Onda V975w tablet
      Signed-off-by: NHans de Goede <hdegoede@redhat.com>
      Acked-by: NPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      260c48b7
  10. 09 8月, 2018 5 次提交
  11. 08 8月, 2018 3 次提交
  12. 07 8月, 2018 4 次提交
  13. 06 8月, 2018 10 次提交