15 Jan, 2017

2 commits

  • commit 2e40795c3bf344cfb5220d94566205796e3ef19a upstream.

    Plantronics BT600 does not support reading the sample rate which leads
    to many lines of "cannot get freq at ep 0x1" and "cannot get freq at
    ep 0x82". This patch adds the USB ID of the BT600 to quirks.c and
    avoids those error messages.

    Signed-off-by: Dennis Kadioglu
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Dennis Kadioglu
     
  • commit 6a2a2f45560a9cb7bc49820883b042e44f83726c upstream.

    This module has a bug not to return error code in a case that data
    structure for transmitted packets fails to be initialized.

    This commit fixes the bug.

    Fixes: 35efa5c489de ("ALSA: firewire-tascam: add streaming functionality")
    Signed-off-by: Takashi Sakamoto
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Takashi Sakamoto
     

12 Jan, 2017

8 commits

  • commit 5faf071d08ddd1c1be66deaa93a09ccf43f5b538 upstream.

    Unfortunately, I seem to have missed a case where an IRQ safe spinlock was
    required, in samsung_i2s_dai_remove, when I fixed up the other calls in
    this patch:

    316fa9e09ad7 ("ASoC: samsung: Use IRQ safe spin lock calls")

    This causes a lockdep warning when unbinding and rebinding the audio card:

    [ 104.357664] CPU0 CPU1
    [ 104.362174] ---- ----
    [ 104.366692] lock(&(&pri_dai->spinlock)->rlock);
    [ 104.371372] local_irq_disable();
    [ 104.377283] lock(&(&substream->self_group.lock)->rlock);
    [ 104.385259] lock(&(&pri_dai->spinlock)->rlock);
    [ 104.392469]
    [ 104.395072] lock(&(&substream->self_group.lock)->rlock);
    [ 104.400710]
    [ 104.400710] *** DEADLOCK ***

    Fixes: ce8bcdbb61d9 ("ASoC: samsung: i2s: Protect more registers with a spinlock")
    Signed-off-by: Charles Keepax
    Reviewed-by: Krzysztof Kozlowski
    Reviewed-by: Sylwester Nawrocki
    Signed-off-by: Mark Brown
    Signed-off-by: Greg Kroah-Hartman

    Charles Keepax
     
  • commit c8eabf821cac120afb78ca251b07cbf520406a7e upstream.

    "*val" is a u64. It definitely looks like we intend to use the high 32
    bits as well.

    Fixes: 700a9a63f9c1 ("ASoC: Intel: Skylake: Add module instance id generation APIs")
    Signed-off-by: Dan Carpenter
    Acked-by: Vinod Koul
    Tested-by: Kranthi G
    Signed-off-by: Mark Brown
    Signed-off-by: Greg Kroah-Hartman

    Dan Carpenter
     
  • commit a823a17981a73faa115bc0f7eda0190763075e2c upstream.

    cht_bsw_rt5645 driver allocates the own codec_id string but doesn't
    release it. For simplicity, put the string in cht_mc_private; then
    the string is allocated in a shot and released altogether.

    Fixes: c8560b7c917f ("ASoC: cht_bsw_rt5645: Fix writing to string literal")
    Signed-off-by: Takashi Iwai
    Signed-off-by: Mark Brown
    Signed-off-by: Greg Kroah-Hartman

    Takashi Iwai
     
  • commit 3b89e4b77ef9c2f985964fab17032db98f074ed0 upstream.

    A bugfix accidentally removed the implicit initialization of the
    dma channel number, causing undefined behavior when
    v->alloc_dma_channel is NULL:

    sound/soc/qcom/lpass-platform.c: In function ‘lpass_platform_pcmops_open’:
    sound/soc/qcom/lpass-platform.c:83:29: error: ‘dma_ch’ may be used uninitialized in this function [-Werror=maybe-uninitialized]

    This adds back an explicit initialization to zero, restoring the
    previous behavior for that case.

    Fixes: 022d00ee0b55 ("ASoC: lpass-platform: Fix broken pcm data usage")
    Signed-off-by: Arnd Bergmann
    Acked-by: Kenneth Westfield
    Signed-off-by: Mark Brown
    Signed-off-by: Greg Kroah-Hartman

    Arnd Bergmann
     
  • commit 4763601a56f155ddf94ef35fc2c41504a2de15f5 upstream.

    The function returns -EINVAL even if it builds the stream properly.
    The bogus error code sneaked in during the code refactoring, but it
    wasn't noticed until now since the returned error code itself is
    ignored in anyway. Kill it here, but there is no behavior change by
    this patch, obviously.

    Fixes: e5779998bf8b ('ALSA: usb-audio: refactor code')
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Takashi Iwai
     
  • commit 1d0f953086f090a022f2c0e1448300c15372db46 upstream.

    Commit 16200948d83 ("ALSA: usb-audio: Fix race at stopping the stream") was
    incomplete causing another more severe kernel panic, so it got reverted.
    This fixes both the original problem and its fallout kernel race/crash.

    The original fix is to move the endpoint member NULL clearing logic inside
    wait_clear_urbs() so the irq triggering the urb completion doesn't call
    retire_capture/playback_urb() after the NULL clearing and generate a panic.

    However this creates a new race between snd_usb_endpoint_start()'s call
    to wait_clear_urbs() and the irq urb completion handler which again calls
    retire_capture/playback_urb() leading to a new NULL dereference.

    We keep the EP deactivation code in snd_usb_endpoint_start() because
    removing it will break the EP reference counting (see [1] [2] for info),
    however we don't need the "can_sleep" mechanism anymore because a new
    function was introduced (snd_usb_endpoint_sync_pending_stop()) which
    synchronizes pending stops and gets called inside the pcm prepare callback.

    It also makes sense to remove can_sleep because it was also removed from
    deactivate_urbs() signature in [3] so we benefit from more simplification.

    [1] commit 015618b90 ("ALSA: snd-usb: Fix URB cancellation at stream start")
    [2] commit e9ba389c5 ("ALSA: usb-audio: Fix scheduling-while-atomic bug in PCM capture stream")
    [3] commit ccc1696d5 ("ALSA: usb-audio: simplify endpoint deactivation code")

    Fixes: f8114f8583bb ("Revert "ALSA: usb-audio: Fix race at stopping the stream"")

    Signed-off-by: Ioan-Adrian Ratiu
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Ioan-Adrian Ratiu
     
  • commit c7efff9284dfde95a11aaa811c9d8ec8167f0f6e upstream.

    Although the old quirk table showed ASUS X71SL with ALC663 codec being
    compatible with asus-mode3 fixup, the bugzilla reporter explained that
    asus-model8 fits better for the dual headphone controls. So be it.

    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=191781
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Takashi Iwai
     
  • commit 85bcf96caba8b4a7c0805555638629ba3c67ea0c upstream.

    ASUS ROG Ranger VIII with ALC1150 codec requires the extra GPIO pin to
    up for the front panel. Just use the existing fixup for setting up
    the GPIO pins.

    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=189411
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Takashi Iwai
     

06 Jan, 2017

8 commits

  • commit 2fc995a87f2efcd803438f07bfecd35cc3d90d32 upstream.

    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: [] 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:
    [] dpm_prepare+0x209/0x460
    [] dpm_suspend_start+0x11/0x60
    [] suspend_devices_and_enter+0xb2/0x710
    [] pm_suspend+0x30e/0x390
    [] state_store+0x8a/0x90
    [] kobj_attr_store+0xf/0x20
    [] sysfs_kf_write+0x37/0x40
    [] kernfs_fop_write+0x11c/0x1b0
    [] __vfs_write+0x28/0x140
    [] ? apparmor_file_permission+0x18/0x20
    [] ? security_file_permission+0x3b/0xc0
    [] vfs_write+0xb5/0x1a0
    [] SyS_write+0x46/0xa0
    [] entry_SYSCALL_64_fastpath+0x1e/0xad

    Add proper NULL checks in the PM code of mdfld driver.

    Signed-off-by: Takashi Iwai
    Acked-by: Vinod Koul
    Signed-off-by: Mark Brown
    Signed-off-by: Greg Kroah-Hartman

    Takashi Iwai
     
  • commit 5e0ad0d8747f3e4803a9c3d96d64dd7332506d3c upstream.

    Commit [64047d7f4912 ALSA: hda - ignore the assoc and seq when comparing
    pin configurations] intented to ignore both seq and assoc at pin
    comparing, but it only ignored seq. So that commit may still fail to
    match pins on some machines.
    Change the bitmask to also ignore assoc.

    v2: Use macro to do bit masking.

    Thanks to Hui Wang for the analysis.

    Fixes: 64047d7f4912 ("ALSA: hda - ignore the assoc and seq when comparing...")
    Signed-off-by: Kai-Heng Feng
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Kai-Heng Feng
     
  • commit f73cd43ac3b41c0f09a126387f302bbc0d9c726d upstream.

    HP Z1 Gen3 AiO with Conexant codec doesn't give an unsolicited event
    to the headset mic pin upon the jack plugging, it reports only to the
    headphone pin. It results in the missing mic switching. Let's fix up
    by simply gating the jack event.

    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Takashi Iwai
     
  • commit 989dbe4a30728c047316ab87e5fa8b609951ce7c upstream.

    This group of new pins is not in the pin quirk table yet, adding
    them to the pin quirk table to fix the headset-mic problem.

    Signed-off-by: Hui Wang
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Hui Wang
     
  • commit 64047d7f4912de1769d1bf0d34c6322494b13779 upstream.

    More and more pin configurations have been adding to the pin quirk
    table, lots of them are only different from assoc and seq, but they
    all apply to the same QUIRK_FIXUP, if we don't compare assoc and seq
    when matching pin configurations, it will greatly reduce the pin
    quirk table size.

    We have tested this change on a couple of Dell laptops, it worked
    well.

    Signed-off-by: Hui Wang
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Hui Wang
     
  • commit b5337cfe067e96b8a98699da90c7dcd2bec21133 upstream.

    I'm using an Alienware 15 R2 and had to use the alienware quirks to
    get my headphone output working.

    I fixed it by adding, SND_PCI_QUIRK(0x1028, 0x0708, "Alienware 15 R2
    2016", QUIRK_ALIENWARE) to the patch.

    Signed-off-by: Sven Hahne
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Sven Hahne
     
  • commit 995c6a7fd9b9212abdf01160f6ce3193176be503 upstream.

    Sampling rate changes after first set one are not reflected to the
    hardware, while driver and ALSA think the rate has been changed.

    Fix the problem by properly stopping the interface at the beginning of
    prepare call, allowing new rate to be set to the hardware. This keeps
    the hardware in sync with the driver.

    Signed-off-by: Jussi Laako
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Jussi Laako
     
  • commit 82ffb6fc637150b279f49e174166d2aa3853eaf4 upstream.

    The Logitech QuickCam Communicate Deluxe/S7500 microphone fails with the
    following warning.

    [ 6.778995] usb 2-1.2.2.2: Warning! Unlikely big volume range (=3072),
    cval->res is probably wrong.
    [ 6.778996] usb 2-1.2.2.2: [5] FU [Mic Capture Volume] ch = 1, val =
    4608/7680/1

    Adding it to the list of devices in volume_control_quirks makes it work
    properly, fixing related typo.

    Signed-off-by: Con Kolivas
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Con Kolivas
     

07 Dec, 2016

1 commit


29 Nov, 2016

2 commits

  • Pull sparc fixes from David Miller:
    "Two ugly build warning fixes"

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc:
    dbri: Fix compiler warning
    qlogicpti: Fix compiler warnings

    Linus Torvalds
     
  • dbri uses 'u32' for dma handle while invoking kernel DMA APIs,
    instead of using dma_addr_t. This hasn't caused any 'incompatible
    pointer type' warning on SPARC because until now dma_addr_t is of
    type u32. However, recent changes in SPARC ATU (iommu) enabled 64bit
    DMA and therefore dma_addr_t became of type u64. This makes
    'incompatible pointer type' warnings inevitable.

    e.g.
    sound/sparc/dbri.c: In function ‘snd_dbri_create’:
    sound/sparc/dbri.c:2538: warning: passing argument 3 of ‘dma_zalloc_coherent’ from incompatible pointer type
    ./include/linux/dma-mapping.h:608: note: expected ‘dma_addr_t *’ but argument is of type ‘u32 *’

    For the record, dbri(sbus) driver never executes on sun4v. Therefore
    even though 64bit DMA is enabled on SPARC, dbri continues to use
    legacy iommu that guarantees DMA address is always in 32bit range.

    This patch resolves above compiler warning.

    Signed-off-by: Tushar Dave
    Reviewed-by: thomas tai
    Signed-off-by: David S. Miller

    Tushar Dave
     

19 Nov, 2016

1 commit

  • Pull sound fixes from Takashi Iwai:
    "Three trivial fixes:

    A regression fix for ASRock mobo, a use-after-free fix at hot-unplug
    of USB-audio, and a quirk for new Thinkpad models"

    * tag 'sound-4.9-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
    ALSA: usb-audio: Fix use-after-free of usb_device at disconnect
    ALSA: hda - Fix mic regression by ASRock mobo fixup
    ALSA: hda - add a new condition to check if it is thinkpad

    Linus Torvalds
     

15 Nov, 2016

2 commits

  • The usb-audio driver implements the deferred device disconnection for
    the device in use. In this mode, the disconnection callback returns
    immediately while the actual ALSA card object removal happens later
    when all files get closed. As Shuah reported, this code flow,
    however, leads to a use-after-free, detected by KASAN:

    BUG: KASAN: use-after-free in snd_usb_audio_free+0x134/0x160 [snd_usb_audio] at addr ffff8801c863ce10
    Write of size 8 by task pulseaudio/2244
    Call Trace:
    [] dump_stack+0x67/0x94
    [] kasan_object_err+0x21/0x70
    [] kasan_report_error+0x1fa/0x4e0
    [] ? kasan_slab_free+0x87/0xb0
    [] __asan_report_store8_noabort+0x43/0x50
    [] ? snd_usb_audio_free+0x134/0x160 [snd_usb_audio]
    [] snd_usb_audio_free+0x134/0x160 [snd_usb_audio]
    [] snd_usb_audio_dev_free+0x31/0x40 [snd_usb_audio]
    [] __snd_device_free+0x12a/0x210
    [] snd_device_free_all+0x85/0xd0
    [] release_card_device+0x34/0x130
    [] device_release+0x76/0x1e0
    [] kobject_release+0x107/0x370
    .....
    Object at ffff8801c863cc80, in cache kmalloc-2048 size: 2048
    Allocated:
    [] save_stack_trace+0x2b/0x50
    [] save_stack+0x46/0xd0
    [] kasan_kmalloc+0xad/0xe0
    [] kmem_cache_alloc_trace+0xfa/0x240
    [] usb_alloc_dev+0x57/0xc90
    [] hub_event+0xf1d/0x35f0
    ....
    Freed:
    [] save_stack_trace+0x2b/0x50
    [] save_stack+0x46/0xd0
    [] kasan_slab_free+0x71/0xb0
    [] kfree+0xd9/0x280
    [] usb_release_dev+0xde/0x110
    [] device_release+0x76/0x1e0
    ....

    It's the code trying to clear drvdata of the assigned usb_device where
    the usb_device itself was already released in usb_release_dev() after
    the disconnect callback.

    This patch fixes it by checking whether the code path is via the
    disconnect callback, i.e. chip->shutdown flag is set.

    Fixes: 79289e24194a ('ALSA: usb-audio: Refer to chip->usb_id for quirks...')
    Reported-and-tested-by: Shuah Khan
    Cc: # v4.6+
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • In commit 022d00ee0b55 ("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
    Cc: Mark Brown
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     

11 Nov, 2016

1 commit

  • The commit [1a3f099101b8: ALSA: hda - Fix surround output pins for
    ASRock B150M mobo] introduced a fixup of pin configs for ASRock
    mobos to fix the surround outputs. However, this overrides the pin
    configs of the mic pins as if they are outputs-only, effectively
    disabling the mic inputs. Of course, it's a regression wrt mic
    functionality.

    Actually the pins 0x18 and 0x1a don't need to be changed; we just need
    to disable the bogus pins 0x14 and 0x15. Then the auto-parser will
    pick up mic pins as switchable and assign the surround outputs there.

    This patch removes the incorrect pin overrides of NID 0x18 and 0x1a
    from the ASRock fixup.

    Fixes: 1a3f099101b8 ('ALSA: hda - Fix surround output pins for ASRock...')
    Reported-and-tested-by: Vitor Antunes
    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=187431
    Cc:
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

10 Nov, 2016

1 commit


08 Nov, 2016

2 commits

  • Currently the ALSA proc handler allows read or write even if the proc
    file were write-only or read-only. It's mostly harmless, does thing
    but allocating memory and ignores the input/output. But it doesn't
    tell user about the invalid use, and it's confusing and inconsistent
    in comparison with other proc files.

    This patch adds some sanity checks and let the proc handler returning
    an -EIO error when the invalid read/write is performed.

    Cc: # v4.2+
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • The ALSA proc handler allows currently the write in the unlimited size
    until kmalloc() fails. But basically the write is supposed to be only
    for small inputs, mostly for one line inputs, and we don't have to
    handle too large sizes at all. Since the kmalloc error results in the
    kernel warning, it's better to limit the size beforehand.

    This patch adds the limit of 16kB, which must be large enough for the
    currently existing code.

    Cc: stable@vger.kernel.org # v4.2+
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

05 Nov, 2016

3 commits


02 Nov, 2016

2 commits

  • This patch fixes issues introduced in commit 73f5dfc68316bef2ab7062ec
    "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: Sylwester Nawrocki
    Signed-off-by: Mark Brown

    Sylwester Nawrocki
     
  • 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: Chen-Yu Tsai
    Signed-off-by: Mark Brown

    Chen-Yu Tsai
     

01 Nov, 2016

2 commits

  • This patch adds module licence to lpass-cpu driver, without this
    patch lpass-cpu module would taint with below error:

    snd_soc_lpass_cpu: module license 'unspecified' taints kernel.
    Disabling lock debugging due to kernel taint
    snd_soc_lpass_cpu: Unknown symbol regmap_write (err 0)
    snd_soc_lpass_cpu: Unknown symbol devm_kmalloc (err 0)
    ...

    Signed-off-by: Srinivas Kandagatla
    Acked-by: Kenneth Westfield
    Signed-off-by: Mark Brown

    Srinivas Kandagatla
     
  • This patch fixes lpass-platform driver which was broken in v4.9-rc1.
    lpass_pcm_data data structure holds information specific to stream.
    Holding a single private pointer to it in global lpass_data
    will not work, because it would be overwritten by for each pcm instance.

    This code was breaking playback when we have both playback and capture
    pcm streams, as playback settings are over written by capture settings.

    Fix this by moving channel allocation logic out of pcm_new to pcm_open
    so that we can store the stream specific information in private_data of
    snd_pcm_runtime.

    Fixes: 6adcbdcd4b6e ("ASoC: lpass-platform: don't use snd_soc_pcm_set_drvdata()")
    Signed-off-by: Srinivas Kandagatla
    Signed-off-by: Mark Brown

    Srinivas Kandagatla
     

31 Oct, 2016

1 commit

  • 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: 45fb6b6f2aa3 ("ASoC: sunxi: add support for the on-chip codec on
    early Allwinner SoCs")
    Signed-off-by: Chen-Yu Tsai
    Signed-off-by: Mark Brown

    Chen-Yu Tsai
     

29 Oct, 2016

4 commits

  • If a DAI specifies "#sound-dai-cells = " in device-tree then
    hdmi_of_xlate_dai_name() will be called with zero args, which it isn't
    implemented to cope with. The resulting use of an uninitialised variable
    for the id will usually result in an error like:

    asoc-simple-card sound: parse error -11
    asoc-simple-card: probe of sound failed with error -11

    Fix this by using and id of zero if no arg is provided.

    Fixes: 9731f82d6016 ("ASoC: hdmi-codec: enable multi probe for same device")

    Signed-off-by: Jon Medhurst
    Signed-off-by: Mark Brown

    Jon Medhurst (Tixy)
     
  • ASoC Samsung sub-drivers tried to get access to their DMA engine
    controllers as a last step in driver probe. If a DMA engine was not
    available yet, samsung_asoc_dma_platform_register() function ended in
    -EPROBE_DEFER, but the driver already registered its component to ASoC
    core. This patch moves samsung_asoc_dma_platform_register() call before
    registering any components, to the common place, where driver was gathering
    all needed resources.

    In case of Samsung Exynos i2s driver the issue was even worse. The driver
    managed already to register its secondary DAI platform device before
    even getting the DMA engine access. That together with -EPROBE_DEFER error
    code from samsung_i2s_probe() immediately triggered another round of
    deferred probe retry and in turn endless loop of driver probing.

    This patch fixes broken boot on Odroid XU3 and other Exynos5422-based
    boards.

    Signed-off-by: Marek Szyprowski
    Reviewed-by: Javier Martinez Canillas
    Reviewed-by: Sylwester Nawrocki
    Signed-off-by: Mark Brown

    Marek Szyprowski
     
  • da7219 output (for headset capture) should be set to high-impedance when
    not in use, since it will otherwise interfere with output from other
    codecs attached to the same DAI.

    Signed-off-by: Stephen Barber
    Acked-by: Adam Thomson
    Signed-off-by: Mark Brown

    Stephen Barber
     
  • HDMI codec is required to be powered up before controller initialization
    for successful enumeration of codec. If the probe fails it needs to be
    powered off to balance the power state of HDMI codec.

    This fix balances the reference count in the error path before turning
    off the codec.

    Reported-by: Takashi Sakamoto
    Signed-off-by: Sodhi, VunnyX
    Signed-off-by: Subhransu S. Prusty
    Signed-off-by: Mark Brown

    Sodhi, VunnyX