01 Oct, 2020

2 commits

  • [ Upstream commit c637fa151259c0f74665fde7cba5b7eac1417ae5 ]

    The unsol event handling code has a loop retrieving the read/write
    indices and the arrays without locking while the append to the array
    may happen concurrently. This may lead to some inconsistency.
    Although there hasn't been any proof of this bad results, it's still
    safer to protect the racy accesses.

    This patch adds the spinlock protection around the unsol handling loop
    for addressing it. Here we take bus->reg_lock as the writer side
    snd_hdac_bus_queue_event() is also protected by that lock.

    Link: https://lore.kernel.org/r/20200516062556.30951-1-tiwai@suse.de
    Signed-off-by: Takashi Iwai
    Signed-off-by: Sasha Levin

    Takashi Iwai
     
  • [ Upstream commit 8e85def5723eccea30ebf22645673692ab8cb3e2 ]

    This reverts commit 42ec336f1f9d ("ALSA: hda: Disable regmap
    internal locking").

    Without regmap locking, there is a race between snd_hda_codec_amp_init()
    and PM callbacks issuing regcache_sync(). This was caught by
    following kernel warning trace:

    [358.080081] WARNING: CPU: 2 PID: 4157 at drivers/base/regmap/regcache.c:498 regcache_cache_only+0xf5/0x130
    [...]
    [358.080148] Call Trace:
    [358.080158] snd_hda_codec_amp_init+0x4e/0x100 [snd_hda_codec]
    [358.080169] snd_hda_codec_amp_init_stereo+0x40/0x80 [snd_hda_codec]

    Suggested-by: Takashi Iwai
    BugLink: https://gitlab.freedesktop.org/drm/intel/issues/592
    Signed-off-by: Kai Vehmanen
    Link: https://lore.kernel.org/r/20200108180856.5194-1-kai.vehmanen@linux.intel.com
    Signed-off-by: Takashi Iwai
    Signed-off-by: Sasha Levin

    Kai Vehmanen
     

17 Sep, 2020

1 commit

  • [ Upstream commit 13774d81f38538c5fa2924bdcdfa509155480fa6 ]

    In snd_hdac_device_init pm_runtime_set_active is called to
    increase child_count in parent device. But when it is failed
    to build connection with GPU for one case that integrated
    graphic gpu is disabled, snd_hdac_ext_bus_device_exit will be
    invoked to clean up a HD-audio extended codec base device. At
    this time the child_count of parent is not decreased, which
    makes parent device can't get suspended.

    This patch calls pm_runtime_set_suspended to decrease child_count
    in parent device in snd_hdac_device_exit to match with
    snd_hdac_device_init. pm_runtime_set_suspended can make sure that
    it will not decrease child_count if the device is already suspended.

    Signed-off-by: Rander Wang
    Reviewed-by: Ranjani Sridharan
    Reviewed-by: Pierre-Louis Bossart
    Reviewed-by: Bard Liao
    Reviewed-by: Guennadi Liakhovetski
    Signed-off-by: Kai Vehmanen
    Link: https://lore.kernel.org/r/20200902154218.1440441-1-kai.vehmanen@linux.intel.com
    Signed-off-by: Takashi Iwai
    Signed-off-by: Sasha Levin

    Rander Wang
     

27 May, 2020

1 commit

  • [ Upstream commit 1a462be52f4505a2719631fb5aa7bfdbd37bfd8d ]

    In the commit 8e85def5723e ("ALSA: hda: enable regmap internal
    locking"), we re-enabled the regmap lock due to the reported
    regression that showed the possible concurrent accesses. It was a
    temporary workaround, and there are still a few opened races even
    after the revert. In this patch, we cover those still opened windows
    with a proper mutex lock and disable the regmap internal lock again.

    First off, the patch introduces a new snd_hdac_device.regmap_lock
    mutex that is applied for each snd_hdac_regmap_*() call, including
    read, write and update helpers. The mutex is applied carefully so
    that it won't block the self-power-up procedure in the helper
    function. Also, this assures the protection for the accesses without
    regmap, too.

    The snd_hdac_regmap_update_raw() is refactored to use the standard
    regmap_update_bits_check() function instead of the open-code. The
    non-regmap case is still open-coded but it's an easy part. The all
    read and write operations are in the single mutex protection, so it's
    now race-free.

    In addition, a couple of new helper functions are added:
    snd_hdac_regmap_update_raw_once() and snd_hdac_regmap_sync(). Both
    are called from HD-audio legacy driver. The former is to initialize
    the given verb bits but only once when it's not initialized yet. Due
    to this condition, the function invokes regcache_cache_only(), and
    it's now performed inside the regmap_lock (formerly it was racy) too.
    The latter function is for simply invoking regcache_sync() inside the
    regmap_lock, which is called from the codec resume call path.
    Along with that, the HD-audio codec driver code is slightly modified /
    simplified to adapt those new functions.

    And finally, snd_hdac_regmap_read_raw(), *_write_raw(), etc are
    rewritten with the helper macro. It's just for simplification because
    the code logic is identical among all those functions.

    Tested-by: Kai Vehmanen
    Link: https://lore.kernel.org/r/20200109090104.26073-1-tiwai@suse.de
    Signed-off-by: Takashi Iwai
    Signed-off-by: Sasha Levin

    Takashi Iwai
     

12 Mar, 2020

1 commit

  • [ Upstream commit 43bcb1c0507858cdc95e425017dcc33f8105df39 ]

    snd_hdac_ext_bus_link_get() does not work correctly in case
    there are multiple codecs on the bus. It unconditionally
    resets the bus->codec_mask value. As per documentation in
    hdaudio.h and existing use in client code, this field should
    be used to store bit flag of detected codecs on the bus.

    By overwriting value of the codec_mask, information on all
    detected codecs is lost. No current user of hdac is impacted,
    but use of bus->codec_mask is planned in future patches
    for SOF.

    Signed-off-by: Kai Vehmanen
    Reviewed-by: Ranjani Sridharan
    Reviewed-by: Pierre-Louis Bossart
    Reviewed-by: Takashi Iwai
    Link: https://lore.kernel.org/r/20200206200223.7715-1-kai.vehmanen@linux.intel.com
    Signed-off-by: Mark Brown
    Signed-off-by: Sasha Levin

    Kai Vehmanen
     

29 Feb, 2020

1 commit

  • commit 44eeb081b8630bb3ad3cd381d1ae1831463e48bb upstream.

    Some code in HD-audio driver calls snprintf() in a loop and still
    expects that the return value were actually written size, while
    snprintf() returns the expected would-be length instead. When the
    given buffer limit were small, this leads to a buffer overflow.

    Use scnprintf() for addressing those issues. It returns the actually
    written size unlike snprintf().

    Cc:
    Link: https://lore.kernel.org/r/20200218091409.27162-1-tiwai@suse.de
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Takashi Iwai
     

21 Dec, 2019

1 commit

  • commit 6fd739c04ffd877641b01371f9fde67901e7f9cb upstream.

    The commit e38e486d66e2 ("ALSA: hda: Modify stream stripe mask only
    when needed") tried to address the regression by the unconditional
    application of the stripe mask, but this caused yet another
    regression for the previously working devices. Namely, the patch
    clears the azx_dev->stripe flag at snd_hdac_stream_clear(), but this
    may be called multiple times before restarting the stream, so this
    ended up with clearance of the flag for the whole time.

    This patch fixes the regression by moving the azx_dev->stripe flag
    clearance at the counter-part, the close callback of HDMI codec
    driver instead.

    Fixes: e38e486d66e2 ("ALSA: hda: Modify stream stripe mask only when needed")
    BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=205855
    BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=204477
    Cc:
    Link: https://lore.kernel.org/r/20191214175217.31852-1-tiwai@suse.de
    Signed-off-by: Takashi Iwai
    Cc: Stefani Seibold
    Cc: Laura Abbott
    Signed-off-by: Greg Kroah-Hartman

    Takashi Iwai
     

13 Dec, 2019

1 commit

  • commit e38e486d66e2a3b902768fd71c32dbf10f77e1cb upstream.

    The recent commit in HD-audio stream management for changing the
    stripe control seems causing a regression on some platforms. The
    stripe control is currently used only by HDMI codec, and applying the
    stripe mask unconditionally may lead to scratchy and static noises as
    seen on some MacBooks.

    For addressing the regression, this patch changes the stream
    management code to apply the stripe mask conditionally only when the
    codec driver requested.

    Fixes: 9b6f7e7a296e ("ALSA: hda: program stripe bits for controller")
    BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=204477
    Tested-by: Michael Pobega
    Cc:
    Link: https://lore.kernel.org/r/20191202074947.1617-1-tiwai@suse.de
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Takashi Iwai
     

28 Oct, 2019

1 commit

  • This reverts commit caa8422d01e983782548648e125fd617cadcec3f.

    It turned out that this commit caused a regression at shutdown /
    reboot, as the synchronize_irq() calls seems blocking the whole
    shutdown. Also another part of the change about shuffling the call
    order looks suspicious; the azx_stop_chip() call disables the CORB /
    RIRB while the others may still need the CORB/RIRB update.

    Since the original commit itself was a cargo-fix, let's revert the
    whole patch.

    Fixes: caa8422d01e9 ("ALSA: hda: Flush interrupts on disabling")
    BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=205333
    BugLinK: https://bugs.freedesktop.org/show_bug.cgi?id=111174
    Signed-off-by: Takashi Iwai
    Cc: Chris Wilson
    Link: https://lore.kernel.org/r/20191028081056.22010-1-tiwai@suse.de
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

07 Oct, 2019

1 commit

  • Fix potential DMA hang upon starting playback on devices in HDA mode
    on Intel platforms (Gemini Lake/Whiskey Lake/Comet Lake/Ice Lake). It
    doesn't affect platforms before Gemini Lake or any Intel device in
    non-HDA mode.

    The reset value for the LOSDIV register is all output streams valid.
    Clear this register to invalidate non-existent streams when the bus
    is powered up.

    Signed-off-by: Rander Wang
    Signed-off-by: Pierre-Louis Bossart
    Link: https://lore.kernel.org/r/20190930142945.7805-1-pierre-louis.bossart@linux.intel.com
    Signed-off-by: Takashi Iwai

    Rander Wang
     

16 Aug, 2019

1 commit

  • This reverts commit ee5f85d9290f ("ALSA: hda: Add codec on bus address
    table lately"). The commit caused several regression since I've
    overlooked that the function doesn't manage only the caddr_tbl but
    also the codec linked list that is referred indirectly in the other
    drivers.

    Revert for now to make everything back to work.

    Fixes: ee5f85d9290f ("ALSA: hda: Add codec on bus address table lately")
    Reported-by: Chris Wilson
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

15 Aug, 2019

3 commits

  • Drop EXPORT_SYMBOL*() from a few more stuff in HD-audio core that
    aren't used outside. Particular the unsol event handler can be
    staticized now because the recent change removed all external
    callers.

    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • snd_hdac_bus_add_device() and snd_hdac_remove_device() are called only
    internally in hda-core. Let's drop the exports of them and move the
    declarations into local.h.

    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • The call of snd_hdac_bus_add_device() is needed only for registering
    the codec onto the bus caddr_tbl[] that is referred essentially only
    in the unsol event handler. That is, the reason of this call and the
    release by the counter-part function snd_hdac_bus_remove_device() is
    just to assure that the unsol event gets notified to the codec.

    But the current implementation of the unsol notification wouldn't work
    properly when the codec is still in a premature init state. So this
    patch tries to work around it by delaying the caddr_tbl[] registration
    at the point of snd_hdac_device_register().

    Also, the order of snd_hdac_bus_remove_device() and device_del() calls
    are shuffled to make sure that the unsol event is masked before
    deleting the device.

    BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=204565
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

13 Aug, 2019

1 commit

  • Currently we set hdac_stream.fifo_size field only for the playback
    stream by some odd reason I forgot, while this field isn't referred in
    any places. Actually this fifo_size field would have been required in
    the position report correction for VIA chipset, but due to the lack of
    the fifo_size set for capture streams, snd-hda-intel driver fetches
    the register by itself.

    This patch straightens and simplifies the code by setting the
    fifo_size field for both playback and capture streams, and use it in
    the HD-audio controller driver.

    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

09 Aug, 2019

3 commits


08 Aug, 2019

2 commits

  • HD-audio drivers access to the mmio registers indirectly via the
    corresponding bus->io_ops callbacks. This is because some platform
    (notably Tegra SoC) requires the word-aligned access. But it's rather
    a rare case, and other platforms suffer from the penalties by indirect
    calls unnecessarily.

    This patch is an attempt to optimize and cleanup for this situation.
    Now the special aligned access is used only when a new kconfig
    CONFIG_SND_HDA_ALIGNED_MMIO is set. And the HD-audio core itself
    provides the aligned MMIO access helpers instead of the driver side.
    If Kconfig isn't set (as default), the standard helpers like readl()
    or writel() are used directly.

    A couple of places in ASoC Intel drivers have the access via io_ops
    reg_writel(), and they are replaced with the direct writel() calls.

    And now with this patch, the whole bus->io_ops becomes empty, so it's
    dropped completely. The bus initialization functions are changed
    accordingly as well to drop the whole bus->io_ops.

    Reviewed-by: Pierre-Louis Bossart
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • The HD-audio core allocates and releases pages via driver's specific
    dma_alloc_pages and dma_free_pages ops defined in bus->io_ops. This
    was because some platforms require the uncached pages and the handling
    of page flags had to be done locally in the driver code.

    Since the recent change in ALSA core memory allocator, we can simply
    pass SNDRV_DMA_TYPE_DEV_UC for the uncached pages, and the only
    difference became about this type to be passed to the core allocator.
    That is, it's good time for cleaning up the mess.

    This patch changes the allocation code in HD-audio core to call the
    core allocator directly so that we get rid of dma_alloc_pages and
    dma_free_pages io_ops. If a driver needs the uncached pages, it has
    to set bus->dma_type right after the bus initialization.

    This is merely a code refactoring and shouldn't bring any behavior
    changes.

    Reviewed-by: Pierre-Louis Bossart
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

06 Aug, 2019

1 commit


31 Jul, 2019

3 commits


27 Jul, 2019

1 commit

  • Distribution installation images such as Debian include different sets
    of modules which can be downloaded dynamically. Such images may notably
    include the hda sound modules but not the i915 DRM module, even if the
    latter was enabled at build time, as reported on
    https://bugs.debian.org/931507

    In such a case hdac_i915 would be linked in and try to load the i915
    module, fail since it is not there, but still wait for a whole minute
    before giving up binding with it.

    This fixes such as case by only waiting for the binding if the module
    was properly loaded (or module support is disabled, in which case i915
    is already compiled-in anyway).

    Fixes: f9b54e1961c7 ("ALSA: hda/i915: Allow delayed i915 audio component binding")
    Signed-off-by: Samuel Thibault
    Cc:
    Signed-off-by: Takashi Iwai

    Samuel Thibault
     

22 Jul, 2019

1 commit

  • I was looking at

    [241.835158] general protection fault: 0000 [#1] PREEMPT SMP PTI
    [241.835181] CPU: 1 PID: 214 Comm: kworker/1:3 Tainted: G U 5.2.0-CI-CI_DRM_6509+ #1
    [241.835199] Hardware name: Dell Inc. OptiPlex 745 /0GW726, BIOS 2.3.1 05/21/2007
    [241.835234] Workqueue: events snd_hdac_bus_process_unsol_events [snd_hda_core]
    [241.835256] RIP: 0010:input_handle_event+0x16d/0x5e0
    [241.835270] Code: 48 8b 93 58 01 00 00 8b 52 08 89 50 04 8b 83 f8 06 00 00 48 8b 93 00 07 00 00 8d 70 01 48 8d 04 c2 83 e1 08 89 b3 f8 06 00 00 89 28 66 44 89 60 02 44 89 68 04 8b 93 f8 06 00 00 0f 84 fd fe
    [241.835304] RSP: 0018:ffffc9000019fda0 EFLAGS: 00010046
    [241.835317] RAX: 6b6b6b6ec6c6c6c3 RBX: ffff8880290fefc8 RCX: 0000000000000000
    [241.835332] RDX: 000000006b6b6b6b RSI: 000000006b6b6b6c RDI: 0000000000000046
    [241.835347] RBP: 0000000000000005 R08: 0000000000000000 R09: 0000000000000001
    [241.835362] R10: ffffc9000019faa0 R11: 0000000000000000 R12: 0000000000000004
    [241.835377] R13: 0000000000000000 R14: ffff8880290ff1d0 R15: 0000000000000293
    [241.835392] FS: 0000000000000000(0000) GS:ffff88803de80000(0000) knlGS:0000000000000000
    [241.835409] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    [241.835422] CR2: 00007ffe9a99e9b7 CR3: 000000002f588000 CR4: 00000000000006e0
    [241.835436] Call Trace:
    [241.835449] input_event+0x45/0x70
    [241.835464] snd_jack_report+0xdc/0x100
    [241.835490] snd_hda_jack_report_sync+0x83/0xc0 [snd_hda_codec]
    [241.835512] snd_hdac_bus_process_unsol_events+0x5a/0x70 [snd_hda_core]
    [241.835530] process_one_work+0x245/0x610

    which has the hallmarks of a worker queued from interrupt after it was
    supposedly cancelled (note the POISON_FREE), and I could not see where
    the interrupt would be flushed on shutdown so added the likely suspects.

    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=111174
    Signed-off-by: Chris Wilson
    Signed-off-by: Takashi Iwai

    Chris Wilson
     

08 Jul, 2019

1 commit

  • …/sound into for-linus

    ASoC: Updates for v5.3

    This is a very big update, mainly thanks to Morimoto-san's refactoring
    work and some fairly large new drivers.

    - Lots more work on moving towards a component based framework from
    Morimoto-san.
    - Support for force disconnecting muxes from Jerome Brunet.
    - New drivers for Cirrus Logic CS47L35, CS47L85 and CS47L90, Conexant
    CX2072X, Realtek RT1011 and RT1308.

    Signed-off-by: Takashi Iwai <tiwai@suse.de>

    Takashi Iwai
     

07 Jul, 2019

1 commit


05 Jul, 2019

1 commit

  • Along with the recent fix for the races of snd_hdac_refresh_widgets()
    it turned out that the instantiation of widgets sysfs at
    snd_hdac_sysfs_reinit() could cause a race. The race itself was
    already covered later by extending the mutex protection range, the
    commit 98482377dc72 ("ALSA: hda: Fix widget_mutex incomplete
    protection"), but this also indicated that the call of *_reinit() is
    basically superfluous, as the widgets shall be created sooner or later
    from snd_hdac_device_register().

    This patch removes the redundant call of snd_hdac_sysfs_reinit() at
    first. By this removal, the sysfs argument itself in
    snd_hdac_refresh_widgets() becomes superfluous, too, because the only
    case sysfs=false is always with codec->widgets=NULL. So, we drop this
    redundant argument as well.

    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

02 Jul, 2019

1 commit

  • The widget_mutex was introduced to serialize callers to
    hda_widget_sysfs_{re}init. However, its protection of the sysfs widget array
    is incomplete. For example, it is acquired around the call to
    hda_widget_sysfs_reinit(), which actually creates the new array, but isn't
    still acquired when codec->num_nodes and codec->start_nid is updated. So
    the lock ensures one thread sets up the new array at a time, but doesn't
    ensure which thread's value will end up in codec->num_nodes. If a larger
    num_nodes wins but a smaller array was set up, the next call to
    refresh_widgets() will touch free memory as it iterates over codec->num_nodes
    that aren't there.

    The widget_lock really protects both the tree as well as codec->num_nodes,
    start_nid, and end_nid, so make sure it's held across that update. It should
    also be held during snd_hdac_get_sub_nodes(), so that a very old read from that
    function doesn't end up clobbering a later update.

    Fixes: ed180abba7f1 ("ALSA: hda: Fix race between creating and refreshing sysfs entries")
    Signed-off-by: Evan Green
    Signed-off-by: Takashi Iwai

    Evan Green
     

01 Jul, 2019

2 commits

  • This back-merge is necessary for adjusting the latest FireWire fix
    with the recent refactoring in 5.3 development branch.

    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • To save power, the hda hdmi driver in ASoC invokes snd_hdac_ext_bus_link_put
    to disable CORB/RIRB buffers DMA if there is no user of bus and invokes
    snd_hdac_ext_bus_link_get to set up CORB/RIRB buffers when it is used.
    Unsolicited responses is disabled in snd_hdac_bus_stop_cmd_io called by
    snd_hdac_ext_bus_link_put , but it is not enabled in snd_hdac_bus_init_cmd_io
    called by snd_hdac_ext_bus_link_get. So for put-get sequence, Unsolicited
    responses is disabled and headphone can't be detected by hda codecs.

    Now unsolicited responses is only enabled in snd_hdac_bus_reset_link
    which resets controller. The function is only called for setup of
    controller. This patch enables Unsolicited responses after RIRB is
    initialized in snd_hdac_bus_init_cmd_io which works together with
    snd_hdac_bus_reset_link to set up controller.

    Tested legacy hda driver and SOF driver on intel whiskeylake.

    Reviewed-by: Takashi Iwai
    Signed-off-by: Rander Wang
    Signed-off-by: Takashi Iwai

    Rander Wang
     

26 Jun, 2019

1 commit


25 Jun, 2019

1 commit

  • Currently on each driver reload internal counter is being increased. It
    causes failure to enumerate driver devices, as they have hardcoded:
    .codec_name = "ehdaudio0D2",
    As there is currently no devices with multiple hda codecs and there is
    currently no established way to reliably differentiate, between them,
    always assign bus->idx = 0;

    This fixes a problem when we unload and reload machine driver idx gets
    incremented, so .codec_name would've needed to be set to "ehdaudio1D2"
    after first reload and so on.

    Signed-off-by: Amadeusz Sławiński
    Acked-by: Takashi Iwai
    Reviewed-by: Pierre-Louis Bossart
    Signed-off-by: Mark Brown

    Amadeusz Sławiński
     

14 Jun, 2019

1 commit

  • Pull sound fixes from Takashi Iwai:
    "It might feel like deja vu to receive a bulk of changes at rc5, and it
    happens again; we've got a collection of fixes for ASoC. Most of fixes
    are targeted for the newly merged SOF (Sound Open Firmware) stuff and
    the relevant fixes for Intel platforms.

    Other than that, there are a few regression fixes for the recent ASoC
    core changes and HD-audio quirk, as well as a couple of FireWire fixes
    and for other ASoC codecs"

    * tag 'sound-5.2-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (54 commits)
    Revert "ALSA: hda/realtek - Improve the headset mic for Acer Aspire laptops"
    ALSA: ice1712: Check correct return value to snd_i2c_sendbytes (EWS/DMX 6Fire)
    ALSA: oxfw: allow PCM capture for Stanton SCS.1m
    ALSA: firewire-motu: fix destruction of data for isochronous resources
    ASoC: Intel: sst: fix kmalloc call with wrong flags
    ASoC: core: Fix deadlock in snd_soc_instantiate_card()
    SoC: rt274: Fix internal jack assignment in set_jack callback
    ALSA: hdac: fix memory release for SST and SOF drivers
    ASoC: SOF: Intel: hda: use the defined ppcap functions
    ASoC: core: move DAI pre-links initiation to snd_soc_instantiate_card
    ASoC: Intel: cht_bsw_rt5672: fix kernel oops with platform_name override
    ASoC: Intel: cht_bsw_nau8824: fix kernel oops with platform_name override
    ASoC: Intel: bytcht_es8316: fix kernel oops with platform_name override
    ASoC: Intel: cht_bsw_max98090: fix kernel oops with platform_name override
    ASoC: sun4i-i2s: Add offset to RX channel select
    ASoC: sun4i-i2s: Fix sun8i tx channel offset mask
    ASoC: max98090: remove 24-bit format support if RJ is 0
    ASoC: da7219: Fix build error without CONFIG_I2C
    ASoC: SOF: Intel: hda: Fix COMPILE_TEST build error
    ASoC: SOF: fix DSP oops definitions in FW ABI
    ...

    Linus Torvalds
     

13 Jun, 2019

1 commit


07 Jun, 2019

2 commits

  • Mark Brown
     
  • During the integration of HDaudio support, we changed the way in which
    we get hdev in snd_hdac_ext_bus_device_init() to use one preallocated
    with devm_kzalloc(), however it still left kfree(hdev) in
    snd_hdac_ext_bus_device_exit(). It leads to oopses when trying to
    rmmod and modprobe. Fix it, by just removing kfree call.

    SOF also uses some of the snd_hdac_ functions for HDAudio support but
    allocated the memory with kzalloc. A matching fix is provided
    separately to align all users of the snd_hdac_ library.

    Fixes: 6298542fa33b ("ALSA: hdac: remove memory allocation from snd_hdac_ext_bus_device_init")
    Reviewed-by: Takashi Iwai
    Signed-off-by: Amadeusz Sławiński
    Signed-off-by: Pierre-Louis Bossart
    Signed-off-by: Mark Brown

    Amadeusz Sławiński
     

05 Jun, 2019

1 commit

  • Based on 1 normalized pattern(s):

    this program is free software you can redistribute it and or modify
    it under the terms of the gnu general public license as published by
    the free software foundation version 2 of the license this program
    is distributed in the hope that it will be useful but without any
    warranty without even the implied warranty of merchantability or
    fitness for a particular purpose see the gnu general public license
    for more details

    extracted by the scancode license scanner the SPDX license identifier

    GPL-2.0-only

    has been chosen to replace the boilerplate/reference in 100 file(s).

    Signed-off-by: Thomas Gleixner
    Reviewed-by: Alexios Zavras
    Reviewed-by: Allison Randal
    Cc: linux-spdx@vger.kernel.org
    Link: https://lkml.kernel.org/r/20190529141900.918357685@linutronix.de
    Signed-off-by: Greg Kroah-Hartman

    Thomas Gleixner
     

31 May, 2019

1 commit

  • Based on 3 normalized pattern(s):

    this program is free software you can redistribute it and or modify
    it under the terms of the gnu general public license as published by
    the free software foundation either version 2 of the license or at
    your option any later version this program is distributed in the
    hope that it will be useful but without any warranty without even
    the implied warranty of merchantability or fitness for a particular
    purpose see the gnu general public license for more details

    this program is free software you can redistribute it and or modify
    it under the terms of the gnu general public license as published by
    the free software foundation either version 2 of the license or at
    your option any later version [author] [kishon] [vijay] [abraham]
    [i] [kishon]@[ti] [com] this program is distributed in the hope that
    it will be useful but without any warranty without even the implied
    warranty of merchantability or fitness for a particular purpose see
    the gnu general public license for more details

    this program is free software you can redistribute it and or modify
    it under the terms of the gnu general public license as published by
    the free software foundation either version 2 of the license or at
    your option any later version [author] [graeme] [gregory]
    [gg]@[slimlogic] [co] [uk] [author] [kishon] [vijay] [abraham] [i]
    [kishon]@[ti] [com] [based] [on] [twl6030]_[usb] [c] [author] [hema]
    [hk] [hemahk]@[ti] [com] this program is distributed in the hope
    that it will be useful but without any warranty without even the
    implied warranty of merchantability or fitness for a particular
    purpose see the gnu general public license for more details

    extracted by the scancode license scanner the SPDX license identifier

    GPL-2.0-or-later

    has been chosen to replace the boilerplate/reference in 1105 file(s).

    Signed-off-by: Thomas Gleixner
    Reviewed-by: Allison Randal
    Reviewed-by: Richard Fontana
    Reviewed-by: Kate Stewart
    Cc: linux-spdx@vger.kernel.org
    Link: https://lkml.kernel.org/r/20190527070033.202006027@linutronix.de
    Signed-off-by: Greg Kroah-Hartman

    Thomas Gleixner