1. 06 12月, 2016 3 次提交
  2. 02 12月, 2016 3 次提交
  3. 01 12月, 2016 5 次提交
    • T
      ASoC: cht_bsw_rt5672: Use HID translation unit · fee3244c
      Takashi Iwai 提交于
      Instead of hard-coded "i2c-10EC5670:00", use the translation helper to
      avoid the mismatch between i2c-codec and ACPI strings just like what
      we've done for bytcr_rt5640.  This gives more robust binding on funky
      devices like Dell Wyse 3040.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      Reviewed-by: NPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
      Acked-by: NVinod Koul <vinod.koul@intel.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      fee3244c
    • T
      ASoC: intel: Fix crash at suspend/resume without card registration · 2fc995a8
      Takashi Iwai 提交于
      When ASoC Intel SST Medfield driver is probed but without codec / card
      assigned, it causes an Oops and freezes the kernel at suspend/resume,
      
       PM: Suspending system (freeze)
       Suspending console(s) (use no_console_suspend to debug)
       BUG: unable to handle kernel NULL pointer dereference at 0000000000000018
       IP: [<ffffffffc09d9409>] sst_soc_prepare+0x19/0xa0 [snd_soc_sst_mfld_platform]
       Oops: 0000 [#1] PREEMPT SMP
       CPU: 0 PID: 1552 Comm: systemd-sleep Tainted: G W 4.9.0-rc6-1.g5f5c2ad-default #1
       Call Trace:
        [<ffffffffb45318f9>] dpm_prepare+0x209/0x460
        [<ffffffffb4531b61>] dpm_suspend_start+0x11/0x60
        [<ffffffffb40d3cc2>] suspend_devices_and_enter+0xb2/0x710
        [<ffffffffb40d462e>] pm_suspend+0x30e/0x390
        [<ffffffffb40d2eba>] state_store+0x8a/0x90
        [<ffffffffb43c670f>] kobj_attr_store+0xf/0x20
        [<ffffffffb42b0d97>] sysfs_kf_write+0x37/0x40
        [<ffffffffb42b02bc>] kernfs_fop_write+0x11c/0x1b0
        [<ffffffffb422be68>] __vfs_write+0x28/0x140
        [<ffffffffb43728a8>] ? apparmor_file_permission+0x18/0x20
        [<ffffffffb433b2ab>] ? security_file_permission+0x3b/0xc0
        [<ffffffffb422d095>] vfs_write+0xb5/0x1a0
        [<ffffffffb422e3d6>] SyS_write+0x46/0xa0
        [<ffffffffb4719fbb>] entry_SYSCALL_64_fastpath+0x1e/0xad
      
      Add proper NULL checks in the PM code of mdfld driver.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      Acked-by: NVinod Koul <vinod.koul@intel.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      Cc: <stable@vger.kernel.org>
      2fc995a8
    • T
      ASoC: intel: Replace kthread with work · 786e1c37
      Takashi Iwai 提交于
      The usage pattern of kthread worker in Intel SST drivers can be
      replaced gracefully with the normal workqueue, which is more light-
      weight and easier to manage in general.  Let's do it.
      
      While in the replacement, move the schedule_work() call inside the
      spinlock for excluding the race, too.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      Acked-by: NVinod Koul <vinod.koul@intel.com>
      Tested-by: NSubhransu S. Prusty <subhransu.s.prusty@intel.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      786e1c37
    • R
      ASoC: core: Add component pin control functions · 1b4d9c22
      Richard Fitzgerald 提交于
      It's often the case that a codec driver will need to control its
      own pins. However, if a name_prefix has been applied to this codec it
      must be included in the name passed to any of the snd_soc_dapm_x_pin()
      functions.
      
      The behaviour of the existing pin control functions is reasonable, since
      you may want to search for a fully-specified name within the scope of an
      entire card. This means that we can't apply the prefix in these functions
      because it will break card-scope searches.
      
      Constructing a prefixed string "manually" in codec drivers leads to a lot
      of repetition of the same code.
      
      To make this tidier in codec drivers this patch adds a new set of
      equivalent functions that take a struct snd_soc_component instead of a
      dapm context and automatically add the component's name_prefix to the
      given name. This makes it a simple change in codec drivers to be
      prefix-safe.
      
      The new functions are not quite trivial enough to be inlines and the
      compiler won't be able to compile-away any part of them.
      
      Although it looks somewhat inefficient to have to allocate a temporary
      buffer and combine strings, the current design of the widget list
      doesn't lend itself to a more optimized implementation - it's a single
      list of all widgets on a card and is searched linearly for a matching
      string. As pin state changes are generally low-frequency events it's
      unlikely to be a significant issue - at least not enough to rewrite the
      widget list handling just for this.
      Signed-off-by: NRichard Fitzgerald <rf@opensource.wolfsonmicro.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      1b4d9c22
    • T
      ASoC: Intel: Add missing 10EC5672 ACPI ID matching for Cherry Trail · 6648eb86
      Takashi Iwai 提交于
      Add the missing ACPI ID 10EC5672 for Cherry Trail, which bounds with
      cht-bsw-rt5672 driver.  This combination was found on Dell Wyse 3040.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      Acked-by: NVinod Koul <vinod.koul@intel.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      6648eb86
  4. 29 11月, 2016 1 次提交
  5. 25 11月, 2016 2 次提交
  6. 23 11月, 2016 1 次提交
  7. 16 11月, 2016 1 次提交
    • L
      ASoC: intel: mfld: Make static string arrays 'const 'char * const []' · 266c618d
      Lars-Peter Clausen 提交于
      const char * const [] is the preferred type for static string arrays since
      this states explicitly that the individual entries are not going to be
      changed. Due to limitations in the ASoC API it was not possible to use it
      for enum text arrays. Commit 87023ff7 ("ASoC: Declare const properly
      for enum texts") changed this, but most drivers still use 'const char
      * []' as the type for their enum text arrays.
      
      Change these occurrences of 'static * const char * []' to 'static const
      char * const []'.
      
      The conversion was done automatically using the following coccinelle
      semantic patch:
      // <smpl>
      @disable optional_qualifier@
      identifier s;
      @@
       static
      -const char *
      +const char * const
       s[] = ...;
      // </smpl>
      Signed-off-by: NLars-Peter Clausen <lars@metafoo.de>
      Acked-by: NVinod Koul <vinod.koul@intel.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      266c618d
  8. 15 11月, 2016 1 次提交
    • L
      ASoC: lpass-platform: fix uninitialized variable · ee2bd216
      Linus Torvalds 提交于
      In commit 022d00ee ("ASoC: lpass-platform: Fix broken pcm data
      usage") the stream specific information initialization was broken, with
      the dma channel information not being initialized if there was no
      alloc_dma_channel() helper function.
      
      Before that, the DMA channel number was implicitly initialized to zero
      because the backing store was allocated with devm_kzalloc().  When the
      init code was rewritten, that implicit initialization was lost, and gcc
      rightfully complains about an uninitialized variable being used.
      
      Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
      Cc: Mark Brown <broonie@kernel.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      ee2bd216
  9. 13 11月, 2016 3 次提交
  10. 09 11月, 2016 4 次提交
  11. 04 11月, 2016 7 次提交
  12. 02 11月, 2016 4 次提交
    • C
      ASoC: dapm: Implement stereo mixer control support · e7aa450f
      Chen-Yu Tsai 提交于
      While DAPM is mono or single channel, its controls can be shared between
      widgets, such as sharing one stereo mixer control between the left and
      right channel widgets. An example such as the following routes
      
          [Line In Left]----------<Line In Playback Switch>-------[Left Mixer]
                                                ^
                ^           ^                   |                      ^
             (inputs)    (paths)   <shared stereo mixer control>   (outputs)
                v           v                   |                      v
                                                v
          [Line In Right]---------<Line In Playback Switch>-------[Right Mixer]
      
      where we have separate widgets and paths for the left and right channels
      from "Line In" to "Mixer", but a shared stereo mixer control for the
      2 paths.
      
      This patch introduces support for such shared mixer controls, allowing
      more than 1 path to be attached to a single stereo control, and being
      able to control left/right channels independently.
      Signed-off-by: NChen-Yu Tsai <wens@csie.org>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      e7aa450f
    • C
      ASoC: dapm: Support second register for DAPM control updates · e411b0b5
      Chen-Yu Tsai 提交于
      To support double channel shared controls split across 2 registers, one
      for each channel, we must be able to update both registers together.
      
      Add a second set of register fields to struct snd_soc_dapm_update, and
      update the DAPM control writeback (put) callbacks to support this.
      
      For codecs that use custom events which call into DAPM to do updates,
      also clear struct snd_soc_dapm_update before using it, so the second
      set of fields remains clean.
      Signed-off-by: NChen-Yu Tsai <wens@csie.org>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      e411b0b5
    • S
      ASoC: samsung: spdif: Fix DMA filter initialization · a4513320
      Sylwester Nawrocki 提交于
      This patch fixes issues introduced in commit 73f5dfc6
      "ASoC: samsung: get access to DMA engine early to defer probe properly"
      and indicated by a following compilation warning:
      
        CC [M]  sound/soc/samsung/spdif.o
      sound/soc/samsung/spdif.c: In function ‘spdif_probe’:
      sound/soc/samsung/spdif.c:419:6: warning: ‘filter’ may be used uninitialized
      in this function [-Wuninitialized]
      Signed-off-by: NSylwester Nawrocki <s.nawrocki@samsung.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      a4513320
    • C
      ASoC: sun4i-codec: Enable bus clock after getting GPIO · 3716a891
      Chen-Yu Tsai 提交于
      In the current probe function the GPIO is acquired after the codec's
      bus clock is enabled. However if it fails to acquire the GPIO due to
      a deferred probe, it does not disable the bus clock before bailing out.
      This would result in the clock being enabled multiple times.
      
      Move the code that enables the bus clock after the part that gets the
      GPIO, maintaining a separation between resource acquisition and device
      enablement in the probe function.
      Signed-off-by: NChen-Yu Tsai <wens@csie.org>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      3716a891
  13. 01 11月, 2016 2 次提交
  14. 31 10月, 2016 1 次提交
    • C
      ASoC: sun4i-codec: return error code instead of NULL when create_card fails · 85915b63
      Chen-Yu Tsai 提交于
      When sun4i_codec_create_card fails, we do not assign a proper error
      code to the return value. The return value would be 0 from the previous
      function call, or we would have bailed out sooner. This would confuse
      the driver core into thinking the device probe succeeded, when in fact
      it didn't, leaving various devres based resources lingering.
      
      Make the create_card function pass back a meaningful error code, and
      assign it to the return value.
      
      Fixes: 45fb6b6f ("ASoC: sunxi: add support for the on-chip codec on
      		      early Allwinner SoCs")
      Signed-off-by: NChen-Yu Tsai <wens@csie.org>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      85915b63
  15. 29 10月, 2016 2 次提交