29 Jan, 2020

2 commits

  • Pull sound updates from Takashi Iwai:
    "As the diffstat shows we've had again a lot of works done for this
    cycle: the majority of changes are the continued componentization and
    code refactoring in ASoC, the tree-wide PCM API updates and cleanups
    and SOF updates while a few ASoC driver updates are seen, too.

    Here we go, some highlights:

    Core:
    - Finally y2038 support landed to ALSA ABI; some ioctls have been
    extended and lots of tricks were applied
    - Applying the new managed PCM buffer API to all drivers; the API
    itself was already merged in 5.5
    - The already deprecated dimension support in ALSA control API is
    dropped completely now
    - Verification of ALSA control elements to catch API misuses

    ASoC:
    - Further code refactorings and moving things to the component level
    - Lots of updates and improvements on SOF / Intel drivers; now
    including common HDMI driver and SoundWire support
    - New driver support for Ingenic JZ4770, Mediatek MT6660, Qualcomm
    WCD934x and WSA881x, and Realtek RT700, RT711, RT715, RT1011,
    RT1015 and RT1308

    HD-audio:
    - Improved ring-buffer communications using waitqueue
    - Drop the superfluous buffer preallocation on x86

    Others:
    - Many code cleanups, mostly constifications over the whole tree
    - USB-audio: quirks for MOTU, Corsair Virtuoso, Line6 Helix
    - FireWire: code refactoring for oxfw and dice drivers"

    * tag 'sound-5.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (638 commits)
    ALSA: usb-audio: add quirks for Line6 Helix devices fw>=2.82
    ALSA: hda: Add Clevo W65_67SB the power_save blacklist
    ASoC: soc-core: remove null_snd_soc_ops
    ASoC: soc-pcm: add soc_rtd_trigger()
    ASoC: soc-pcm: add soc_rtd_hw_free()
    ASoC: soc-pcm: add soc_rtd_hw_params()
    ASoC: soc-pcm: add soc_rtd_prepare()
    ASoC: soc-pcm: add soc_rtd_shutdown()
    ASoC: soc-pcm: add soc_rtd_startup()
    ASoC: rt1015: add rt1015 amplifier driver
    ASoC: madera: Correct some kernel doc
    ASoC: topology: fix soc_tplg_fe_link_create() - link->dobj initialization order
    ASoC: Intel: skl_hda_dsp_common: Fix global-out-of-bounds bug
    ASoC: madera: Correct DMIC only input hook ups
    ALSA: cs46xx: fix spelling mistake "to" -> "too"
    ALSA: hda - Add docking station support for Lenovo Thinkpad T420s
    ASoC: Add MediaTek MT6660 Speaker Amp Driver
    ASoC: dt-bindings: rt5645: add suppliers
    ASoC: max98090: fix deadlock in max98090_dapm_put_enum_double()
    ASoC: dapm: add snd_soc_dapm_put_enum_double_locked
    ...

    Linus Torvalds
     
  • Pull header cleanup from Ingo Molnar:
    "This is a treewide cleanup, mostly (but not exclusively) with x86
    impact, which breaks implicit dependencies on the asm/realtime.h
    header and finally removes it from asm/acpi.h"

    * 'core-headers-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/ACPI/sleep: Move acpi_get_wakeup_address() into sleep.c, remove from
    ACPI/sleep: Convert acpi_wakeup_address into a function
    x86/ACPI/sleep: Remove an unnecessary include of asm/realmode.h
    ASoC: Intel: Skylake: Explicitly include linux/io.h for virt_to_phys()
    vmw_balloon: Explicitly include linux/io.h for virt_to_phys()
    virt: vbox: Explicitly include linux/io.h to pick up various defs
    efi/capsule-loader: Explicitly include linux/io.h for page_to_phys()
    perf/x86/intel: Explicitly include asm/io.h to use virt_to_phys()
    x86/kprobes: Explicitly include vmalloc.h for set_vm_flush_reset_perms()
    x86/ftrace: Explicitly include vmalloc.h for set_vm_flush_reset_perms()
    x86/boot: Explicitly include realmode.h to handle RM reservations
    x86/efi: Explicitly include realmode.h to handle RM trampoline quirk
    x86/platform/intel/quark: Explicitly include linux/io.h for virt_to_phys()
    x86/setup: Enhance the comments
    x86/setup: Clean up the header portion of setup.c

    Linus Torvalds
     

28 Jan, 2020

2 commits

  • Pull ioremap updates from Christoph Hellwig:
    "Remove the ioremap_nocache API (plus wrappers) that are always
    identical to ioremap"

    * tag 'ioremap-5.6' of git://git.infradead.org/users/hch/ioremap:
    remove ioremap_nocache and devm_ioremap_nocache
    MIPS: define ioremap_nocache to ioremap

    Linus Torvalds
     
  • …/sound into for-linus

    ASoC: Updates for v5.6

    A pretty big release this time around, a lot of new drivers and both
    Morimoto-san and Takashi were doing subsystem wide updates as well:

    - Further big refactorings from Morimoto-san simplifying the core
    interfaces and moving things to the component level.
    - Transition of drivers to managed buffer allocation and removal of
    redundant PCM ioctls.
    - New driver support for Ingenic JZ4770, Mediatek MT6660, Qualcomm
    WCD934x and WSA881x, and Realtek RT700, RT711, RT715, RT1011, RT1015
    and RT1308.

    Takashi Iwai
     

26 Jan, 2020

3 commits


23 Jan, 2020

16 commits

  • Mark Brown
     
  • Mark Brown
     
  • All rtd->dai_link callback functions are controlled by soc_rtd_xxxx(),
    and checking rtd->dai_link->ops.
    We don't need to have null_snd_soc_ops anymore.
    This patch removes it.

    Signed-off-by: Kuninori Morimoto
    Link: https://lore.kernel.org/r/87zhegl3oz.wl-kuninori.morimoto.gx@renesas.com
    Reviewed-by: Ranjani Sridharan
    Reviewed-by: Pierre-Louis Bossart
    Signed-off-by: Mark Brown

    Kuninori Morimoto
     
  • Add soc_rtd_trigger() to make the code easier to read

    Signed-off-by: Kuninori Morimoto
    Link: https://lore.kernel.org/r/871rrsmi9j.wl-kuninori.morimoto.gx@renesas.com
    Reviewed-by: Ranjani Sridharan
    Reviewed-by: Pierre-Louis Bossart
    Signed-off-by: Mark Brown

    Kuninori Morimoto
     
  • Add soc_rtd_hw_free() to make the code easier to read

    Signed-off-by: Kuninori Morimoto
    Link: https://lore.kernel.org/r/8736c8mi9n.wl-kuninori.morimoto.gx@renesas.com
    Reviewed-by: Ranjani Sridharan
    Reviewed-by: Pierre-Louis Bossart
    Signed-off-by: Mark Brown

    Kuninori Morimoto
     
  • Add soc_rtd_hw_params() to make the code easier to read

    Signed-off-by: Kuninori Morimoto
    Link: https://lore.kernel.org/r/874kwomi9r.wl-kuninori.morimoto.gx@renesas.com
    Reviewed-by: Ranjani Sridharan
    Reviewed-by: Pierre-Louis Bossart
    Signed-off-by: Mark Brown

    Kuninori Morimoto
     
  • Add soc_rtd_prepare() to make the code easier to read

    Signed-off-by: Kuninori Morimoto
    Link: https://lore.kernel.org/r/875zh4mi9v.wl-kuninori.morimoto.gx@renesas.com
    Reviewed-by: Ranjani Sridharan
    Reviewed-by: Pierre-Louis Bossart
    Signed-off-by: Mark Brown

    Kuninori Morimoto
     
  • Add soc_rtd_shutdown() to make the code easier to read

    Signed-off-by: Kuninori Morimoto
    Link: https://lore.kernel.org/r/877e1kmi9z.wl-kuninori.morimoto.gx@renesas.com
    Reviewed-by: Ranjani Sridharan
    Reviewed-by: Pierre-Louis Bossart
    Signed-off-by: Mark Brown

    Kuninori Morimoto
     
  • Add soc_rtd_startup() to make the code easier to read

    Signed-off-by: Kuninori Morimoto
    Link: https://lore.kernel.org/r/878sm0mia4.wl-kuninori.morimoto.gx@renesas.com
    Reviewed-by: Ranjani Sridharan
    Reviewed-by: Pierre-Louis Bossart
    Signed-off-by: Mark Brown

    Kuninori Morimoto
     
  • This is initial amplifier driver for rt1015.

    Signed-off-by: Jack Yu
    Link: https://lore.kernel.org/r/20200115112519.22050-1-jack.yu@realtek.com
    Signed-off-by: Mark Brown

    Jack Yu
     
  • Signed-off-by: Charles Keepax
    Link: https://lore.kernel.org/r/20200122104559.17043-1-ckeepax@opensource.cirrus.com
    Signed-off-by: Mark Brown

    Charles Keepax
     
  • The code which checks the return value for snd_soc_add_dai_link() call
    in soc_tplg_fe_link_create() moved the snd_soc_add_dai_link() call before
    link->dobj members initialization.

    While it does not affect the latest kernels, the old soc-core.c code
    in the stable kernels is affected. The snd_soc_add_dai_link() function uses
    the link->dobj.type member to check, if the link structure is valid.

    Reorder the link->dobj initialization to make things work again.
    It's harmless for the recent code (and the structure should be properly
    initialized before other calls anyway).

    The problem is in stable linux-5.4.y since version 5.4.11 when the
    upstream commit 76d270364932 was applied.

    Fixes: 76d270364932 ("ASoC: topology: Check return value for snd_soc_add_dai_link()")
    Cc: Dragos Tarcatu
    Cc: Pierre-Louis Bossart
    Cc: Ranjani Sridharan
    Cc: Mark Brown
    Cc:
    Signed-off-by: Jaroslav Kysela
    Link: https://lore.kernel.org/r/20200122190752.3081016-1-perex@perex.cz
    Signed-off-by: Mark Brown

    Jaroslav Kysela
     
  • Definitions for idisp snd_soc_dai_links within skl_hda_dsp_common are
    missing platform component. Add it to address following bug reported by
    KASAN:

    [ 10.538502] BUG: KASAN: global-out-of-bounds in skl_hda_audio_probe+0x13a/0x2b0 [snd_soc_skl_hda_dsp]
    [ 10.538509] Write of size 8 at addr ffffffffc0606840 by task systemd-udevd/299
    (...)
    [ 10.538519] Call Trace:
    [ 10.538524] dump_stack+0x62/0x95
    [ 10.538528] print_address_description+0x2f5/0x3b0
    [ 10.538532] ? skl_hda_audio_probe+0x13a/0x2b0 [snd_soc_skl_hda_dsp]
    [ 10.538535] __kasan_report+0x134/0x191
    [ 10.538538] ? skl_hda_audio_probe+0x13a/0x2b0 [snd_soc_skl_hda_dsp]
    [ 10.538542] ? skl_hda_audio_probe+0x13a/0x2b0 [snd_soc_skl_hda_dsp]
    [ 10.538544] kasan_report+0x12/0x20
    [ 10.538546] __asan_store8+0x57/0x90
    [ 10.538550] skl_hda_audio_probe+0x13a/0x2b0 [snd_soc_skl_hda_dsp]
    [ 10.538553] platform_drv_probe+0x51/0xb0
    [ 10.538556] really_probe+0x311/0x600
    [ 10.538559] driver_probe_device+0x87/0x1b0
    [ 10.538562] device_driver_attach+0x8f/0xa0
    [ 10.538565] ? device_driver_attach+0xa0/0xa0
    [ 10.538567] __driver_attach+0x102/0x1a0
    [ 10.538569] ? device_driver_attach+0xa0/0xa0
    [ 10.538572] bus_for_each_dev+0xe8/0x160
    [ 10.538574] ? subsys_dev_iter_exit+0x10/0x10
    [ 10.538577] ? preempt_count_sub+0x18/0xc0
    [ 10.538580] ? _raw_write_unlock+0x1f/0x40
    [ 10.538582] driver_attach+0x2b/0x30
    [ 10.538585] bus_add_driver+0x251/0x340
    [ 10.538588] driver_register+0xd3/0x1c0
    [ 10.538590] __platform_driver_register+0x6c/0x80
    [ 10.538592] ? 0xffffffffc03e8000
    [ 10.538595] skl_hda_audio_init+0x1c/0x1000 [snd_soc_skl_hda_dsp]
    [ 10.538598] do_one_initcall+0xd0/0x36a
    [ 10.538600] ? trace_event_raw_event_initcall_finish+0x160/0x160
    [ 10.538602] ? kasan_unpoison_shadow+0x36/0x50
    [ 10.538605] ? __kasan_kmalloc+0xcc/0xe0
    [ 10.538607] ? kasan_unpoison_shadow+0x36/0x50
    [ 10.538609] ? kasan_poison_shadow+0x2f/0x40
    [ 10.538612] ? __asan_register_globals+0x65/0x80
    [ 10.538615] do_init_module+0xf9/0x36f
    [ 10.538619] load_module+0x398e/0x4590
    [ 10.538625] ? module_frob_arch_sections+0x20/0x20
    [ 10.538628] ? __kasan_check_write+0x14/0x20
    [ 10.538630] ? kernel_read+0x9a/0xc0
    [ 10.538632] ? __kasan_check_write+0x14/0x20
    [ 10.538634] ? kernel_read_file+0x1d3/0x3c0
    [ 10.538638] ? cap_capable+0xca/0x110
    [ 10.538642] __do_sys_finit_module+0x190/0x1d0
    [ 10.538644] ? __do_sys_finit_module+0x190/0x1d0
    [ 10.538646] ? __x64_sys_init_module+0x50/0x50
    [ 10.538649] ? expand_files+0x380/0x380
    [ 10.538652] ? __kasan_check_write+0x14/0x20
    [ 10.538654] ? fput_many+0x20/0xc0
    [ 10.538658] __x64_sys_finit_module+0x43/0x50
    [ 10.538660] do_syscall_64+0xce/0x700
    [ 10.538662] ? syscall_return_slowpath+0x230/0x230
    [ 10.538665] ? __do_page_fault+0x51e/0x640
    [ 10.538668] ? __kasan_check_read+0x11/0x20
    [ 10.538670] ? prepare_exit_to_usermode+0xc7/0x200
    [ 10.538673] entry_SYSCALL_64_after_hwframe+0x44/0xa9

    Fixes: a78959f407e6 ("ASoC: Intel: skl_hda_dsp_common: use modern dai_link style")
    Signed-off-by: Cezary Rojewski
    Reviewed-by: Kai Vehmanen
    Link: https://lore.kernel.org/r/20200122181254.22801-1-cezary.rojewski@intel.com
    Signed-off-by: Mark Brown

    Cezary Rojewski
     
  • Both the data and clock should be connected to both the left and right
    inputs for DMIC only inputs, add the missing routes.

    Signed-off-by: Charles Keepax
    Link: https://lore.kernel.org/r/20200122104143.16725-1-ckeepax@opensource.cirrus.com
    Signed-off-by: Mark Brown

    Charles Keepax
     
  • There is a spelling mistake in a dev_err message. Fix it.

    Signed-off-by: Colin Ian King
    Link: https://lore.kernel.org/r/20200123000050.2831088-1-colin.king@canonical.com
    Signed-off-by: Takashi Iwai

    Colin Ian King
     
  • Lenovo Thinkpad T420s uses the same codec as T420, so apply the
    same quirk to enable audio output on a docking station.

    Signed-off-by: Peter Große
    Link: https://lore.kernel.org/r/20200122180106.9351-1-pegro@friiks.de
    Signed-off-by: Takashi Iwai

    Peter Große
     

22 Jan, 2020

17 commits

  • The MT6660 is a boosted BTL class-D amplifier with V/I sensing.
    A built-in DC-DC step-up converter is used to provide efficient
    power for class-D amplifier with multi-level class-G operation.
    The digital audio interface supports I2S, left-justified,
    right-justified, TDM and DSP A/B format for audio in with a data
    out used for chip information like voltage sense and current
    sense, which are able to be monitored via DATAO through proper

    Signed-off-by: Jeff Chang
    Link: https://lore.kernel.org/r/1579153597-23286-1-git-send-email-richtek.jeff.chang@gmail.com
    Signed-off-by: Mark Brown

    Jeff Chang
     
  • Commit 62d5ae4cafb7 ("ASoC: max98090: save and restore SHDN when
    changing sensitive registers SHDN bit") uses dapm_mutex to protect SHDN
    bit. However, snd_soc_dapm_put_enum_double() in
    max98090_dapm_put_enum_double() acquires the dapm_mutex again which
    cause a deadlock.

    Use snd_soc_dapm_put_enum_double_locked() instead to fix the deadlock.

    Fixes: 62d5ae4cafb7 ("ASoC: max98090: save and restore SHDN when changing sensitive registers SHDN bit")
    Signed-off-by: Tzung-Bi Shih
    Link: https://lore.kernel.org/r/20200117073814.82441-4-tzungbi@google.com
    Signed-off-by: Mark Brown

    Tzung-Bi Shih
     
  • Adds snd_soc_dapm_put_enum_double_locked() for those use cases if
    dapm_mutex has already locked.

    Signed-off-by: Tzung-Bi Shih
    Link: https://lore.kernel.org/r/20200117073814.82441-3-tzungbi@google.com
    Signed-off-by: Mark Brown

    Tzung-Bi Shih
     
  • Commit 2dc98af62c32 ("ASoC: max98090: fix lockdep warning") introduced
    a helpful-less small lock: shdn_lock. Reverts the commit.

    Reasons:

    1. Lockdep should not be happy by either the original or current code.
    From lockdep's point of view, there is a lock inversion anyway.

    Let d = dapm_mutex, c = controls_rwsem, s = shdn_lock,

    From the reported calling stack: lock acquisition order of
    snd_soc_register_card() is: d -> c.
    > snd_ctl_add_replace+0x3c/0x84
    > dapm_create_or_share_kcontrol+0x24c/0x2e0
    > snd_soc_dapm_new_widgets+0x308/0x594
    > snd_soc_bind_card+0x80c/0xad4
    > devm_snd_soc_register_card+0x34/0x6c

    If calling snd_soc_dapm_put_enum_double() in kcontrol's put (e.g.
    SOC_DAPM_ENUM_EXT), lock acquisition order is: c -> d. Note that,
    snd_soc_dapm_put_enum_double() acquires d.

    The possible lock inversion is always there if registering sound card
    and putting mixer control happen at the same time. In fact, it never
    happens because the control device don't show up to the userspace until
    the sound card build success.

    Commit 2dc98af62c32 ("ASoC: max98090: fix lockdep warning") changes the
    order to: c -> s -> d. The lock inversion is still there.

    2. Commit 62d5ae4cafb7 ("ASoC: max98090: save and restore SHDN when
    changing sensitive registers SHDN bit") designed to use dapm_mutex to
    protect SHDN bit. Use a separate lock breaks the protection.

    DAPM changes SHDN bit automatically when it finds the path. Thus, any
    code wants to change the SHDN bit, need to acquire the dapm_mutex first.

    > SND_SOC_DAPM_SUPPLY("SHDN", M98090_REG_DEVICE_SHUTDOWN,
    > M98090_SHDNN_SHIFT, 0, NULL, 0),

    Fixes: 2dc98af62c32 ("ASoC: max98090: fix lockdep warning")
    Signed-off-by: Tzung-Bi Shih
    Link: https://lore.kernel.org/r/20200117073814.82441-2-tzungbi@google.com
    Signed-off-by: Mark Brown

    Tzung-Bi Shih
     
  • Now, snd_soc_dai_driver::bus_control is used for how to resume.
    But, no driver which has bus_control has DAI driver suspend/resume
    support.
    This patch removes pointless bus_control from ALSA SoC.

    Signed-off-by: Kuninori Morimoto
    Link: https://lore.kernel.org/r/87pnffx7i4.wl-kuninori.morimoto.gx@renesas.com
    Signed-off-by: Mark Brown

    Kuninori Morimoto
     
  • Historically, CPU and Codec were implemented different, but now it is
    merged as Component.
    ALSA SoC is supporting suspend/resume at DAI and Component level.
    The method is like below.

    1) Suspend/Resume all CPU DAI if bus-control was 0
    2) Suspend/Resume all Component
    3) Suspend/Resume all CPU DAI if bus-control was 1

    Historically 2) was Codec special operation.
    Because CPU and Codec were merged into Component,
    CPU suspend/resume has 3 chance to suspend(= 1/2/3), but
    Codec suspend/resume has 1 chance (= 2).

    Here, DAI side suspend/resume is caring bus-control, but no driver
    which is supporting suspend/resume is setting bus-control.
    This means 3) was never used.

    Here, used parameter for suspend/resume component->dev and dai->dev are
    same pointer.
    For that reason, we can merge DAI and Component suspend/resume.
    One note is that we should use 2), because it is caring BIAS level.

    This patch removes 1) and 3).

    Signed-off-by: Kuninori Morimoto
    Link: https://lore.kernel.org/r/87r1zvx7i8.wl-kuninori.morimoto.gx@renesas.com
    Signed-off-by: Mark Brown

    Kuninori Morimoto
     
  • There is no big difference at implementation for .suspend/.resume
    between DAI driver and Component driver.
    But because some driver is using DAI version, thus ALSA SoC needs
    to keep supporting it, hence, framework becoming verbose.
    If we can switch all DAI driver .suspend/.resume to Component driver,
    we can remove verbose code from ALSA SoC.

    Driver is getting its private data via dai->dev.
    But dai->dev and component->dev are same dev, thus, we can convert
    these. For same reason, we can convert dai->active to
    component->active if necessary.

    Signed-off-by: Kuninori Morimoto
    Link: https://lore.kernel.org/r/87sgkbx7ic.wl-kuninori.morimoto.gx@renesas.com
    Signed-off-by: Mark Brown

    Kuninori Morimoto
     
  • There is no big difference at implementation for .suspend/.resume
    between DAI driver and Component driver.
    But because some driver is using DAI version, thus ALSA SoC needs
    to keep supporting it, hence, framework becoming verbose.
    If we can swtcih all DAI driver .suspend/.resume to Component driver,
    we can remove verbose code from ALSA SoC.

    Driver is getting its private data via dai->dev.
    But dai->dev and component->dev are same dev, thus, we can convert
    these. For same reason, we can convert dai->active to
    component->active if necessary.

    This patch moves DAI driver .suspend/.resume to Component driver

    Signed-off-by: Kuninori Morimoto
    Link: https://lore.kernel.org/r/87tv4rx7ij.wl-kuninori.morimoto.gx@renesas.com
    Signed-off-by: Mark Brown

    Kuninori Morimoto
     
  • This patch removes unused DAI driver .suspend/.resume

    Signed-off-by: Kuninori Morimoto
    Link: https://lore.kernel.org/r/87v9p7x7io.wl-kuninori.morimoto.gx@renesas.com
    Signed-off-by: Mark Brown

    Kuninori Morimoto
     
  • There is no big difference at implementation for .suspend/.resume
    between DAI driver and Component driver.
    But because some driver is using DAI version, thus ALSA SoC needs
    to keep supporting it, hence, framework becoming verbose.
    If we can switch all DAI driver .suspend/.resume to Component driver,
    we can remove verbose code from ALSA SoC.

    Driver is getting its private data via dai->dev.
    But dai->dev and component->dev are same dev, thus, we can convert
    these. For same reason, we can convert dai->active to
    component->active if necessary.

    This patch moves DAI driver .suspend/.resume to Component driver

    Signed-off-by: Kuninori Morimoto
    Link: https://lore.kernel.org/r/87wo9nx7it.wl-kuninori.morimoto.gx@renesas.com
    Signed-off-by: Mark Brown

    Kuninori Morimoto
     
  • There is no big difference at implementation for .suspend/.resume
    between DAI driver and Component driver.
    But because some driver is using DAI version, thus ALSA SoC needs
    to keep supporting it, hence, framework becoming verbose.
    If we can switch all DAI driver .suspend/.resume to Component driver,
    we can remove verbose code from ALSA SoC.

    Driver is getting its private data via dai->dev.
    But dai->dev and component->dev are same dev, thus, we can convert
    these. For same reason, we can convert dai->active to
    component->active if necessary.

    This patch moves DAI driver .suspend/.resume to Component driver

    Signed-off-by: Kuninori Morimoto
    Link: https://lore.kernel.org/r/87y2u3x7iy.wl-kuninori.morimoto.gx@renesas.com
    Signed-off-by: Mark Brown

    Kuninori Morimoto
     
  • There is no big difference at implementation for .suspend/.resume
    between DAI driver and Component driver.
    But because some driver is using DAI version, thus ALSA SoC needs
    to keep supporting it, hence, framework becoming verbose.
    If we can switch all DAI driver .suspend/.resume to Component driver,
    we can remove verbose code from ALSA SoC.

    Driver is getting its private data via dai->dev.
    But dai->dev and component->dev are same dev, thus, we can convert
    these. For same reason, we can convert dai->active to
    component->active if necessary.

    This patch moves DAI driver .suspend/.resume to Component driver

    Signed-off-by: Kuninori Morimoto
    Link: https://lore.kernel.org/r/87zhejx7j4.wl-kuninori.morimoto.gx@renesas.com
    Signed-off-by: Mark Brown

    Kuninori Morimoto
     
  • There is no big difference at implementation for .suspend/.resume
    between DAI driver and Component driver.
    But because some driver is using DAI version, thus ALSA SoC needs
    to keep supporting it, hence, framework becoming verbose.
    If we can switch all DAI driver .suspend/.resume to Component driver,
    we can remove verbose code from ALSA SoC.

    Driver is getting its private data via dai->dev.
    But dai->dev and component->dev are same dev, thus, we can convert
    these. For same reason, we can convert dai->active to
    component->active if necessary.

    This patch moves DAI driver .suspend/.resume to Component driver

    Signed-off-by: Kuninori Morimoto
    Acked-by: Peter Ujfalusi
    Link: https://lore.kernel.org/r/871rrvym3p.wl-kuninori.morimoto.gx@renesas.com
    Signed-off-by: Mark Brown

    Kuninori Morimoto
     
  • There is no big difference at implementation for .suspend/.resume
    between DAI driver and Component driver.
    But because some driver is using DAI version, thus ALSA SoC needs
    to keep supporting it, hence, framework becoming verbose.
    If we can switch all DAI driver .suspend/.resume to Component driver,
    we can remove verbose code from ALSA SoC.

    Driver is getting its private data via dai->dev.
    But dai->dev and component->dev are same dev, thus, we can convert
    these. For same reason, we can convert dai->active to
    component->active if necessary.

    This patch moves DAI driver .suspend/.resume to Component driver

    Signed-off-by: Kuninori Morimoto
    Link: https://lore.kernel.org/r/8736cbym3x.wl-kuninori.morimoto.gx@renesas.com
    Signed-off-by: Mark Brown

    Kuninori Morimoto
     
  • There is no big difference at implementation for .suspend/.resume
    between DAI driver and Component driver.
    But because some driver is using DAI version, thus ALSA SoC needs
    to keep supporting it, hence, framework becoming verbose.
    If we can switch all DAI driver .suspend/.resume to Component driver,
    we can remove verbose code from ALSA SoC.

    Driver is getting its private data via dai->dev.
    But dai->dev and component->dev are same dev, thus, we can convert
    these. For same reason, we can convert dai->active to
    component->active if necessary.

    This patch moves DAI driver .suspend/.resume to Component driver

    Signed-off-by: Kuninori Morimoto
    Link: https://lore.kernel.org/r/874kwrym42.wl-kuninori.morimoto.gx@renesas.com
    Signed-off-by: Mark Brown

    Kuninori Morimoto
     
  • There is no big difference at implementation for .suspend/.resume
    between DAI driver and Component driver.
    But because some driver is using DAI version, thus ALSA SoC needs
    to keep supporting it, hence, framework becoming verbose.
    If we can switch all DAI driver .suspend/.resume to Component driver,
    we can remove verbose code from ALSA SoC.

    Driver is getting its private data via dai->dev.
    But dai->dev and component->dev are same dev, thus, we can convert
    these. For same reason, we can convert dai->active to
    component->active if necessary.

    This patch moves DAI driver .suspend/.resume to Component driver

    Signed-off-by: Kuninori Morimoto
    Link: https://lore.kernel.org/r/875zh7ym48.wl-kuninori.morimoto.gx@renesas.com
    Signed-off-by: Mark Brown

    Kuninori Morimoto
     
  • There is no big difference at implementation for .suspend/.resume
    between DAI driver and Component driver.
    But because some driver is using DAI version, thus ALSA SoC needs
    to keep supporting it, hence, framework becoming verbose.
    If we can switch all DAI driver .suspend/.resume to Component driver,
    we can remove verbose code from ALSA SoC.

    Driver is getting its private data via dai->dev.
    But dai->dev and component->dev are same dev, thus, we can convert
    these. For same reason, we can convert dai->active to
    component->active if necessary.

    This patch moves DAI driver .suspend/.resume to Component driver

    Signed-off-by: Kuninori Morimoto
    Link: https://lore.kernel.org/r/877e1nym4e.wl-kuninori.morimoto.gx@renesas.com
    Signed-off-by: Mark Brown

    Kuninori Morimoto