02 Oct, 2020

1 commit

  • …vkoul/soundwire into char-misc-next

    Vinod writes:

    soundwire updates for 5.10-rc1

    This round of update includes:
    - Generic bandwidth allocation algorithm from Intel folks
    - PM support for Intel chipsets
    - Updates to Intel drivers which makes sdw usable on latest laptops
    - Support for MMIO SDW controllers found in QC chipsets
    - Update to subsystem to use helpers in bitfield.h to manage register
    bits

    * tag 'soundwire-5.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/vkoul/soundwire: (66 commits)
    soundwire: sysfs: add slave status and device number before probe
    soundwire: bus: add enumerated Slave device to device list
    soundwire: remove an unnecessary NULL check
    soundwire: cadence: add data port test fail interrupt
    soundwire: intel: enable test modes
    soundwire: enable Data Port test modes
    soundwire: intel: use {u32|u16}p_replace_bits
    soundwire: cadence: use u32p_replace_bits
    soundwire: qcom: get max rows and cols info from compatible
    soundwire: qcom: add support to block packing mode
    soundwire: qcom: clear BIT FIELDs before value set.
    soundwire: Add generic bandwidth allocation algorithm
    soundwire: cadence: add parity error injection through debugfs
    soundwire: bus: export broadcast read/write capability for tests
    ASoC: codecs: realtek-soundwire: ignore initial PARITY errors
    soundwire: bus: use quirk to filter out invalid parity errors
    soundwire: slave: add first_interrupt_done status
    soundwire: bus: filter-out unwanted interrupt reports
    ASoC/soundwire: bus: use property to set interrupt masks
    soundwire: qcom: fix SLIBMUS/SLIMBUS typo
    ...

    Greg Kroah-Hartman
     

10 Sep, 2020

2 commits

  • The parity calculation is not reset on a Severe Reset, which leads to
    misleading/harmless errors reported on startup. The addition of a
    quirk helps filter out such errors while leaving the error checks on
    in steady-state.

    Signed-off-by: Pierre-Louis Bossart
    Signed-off-by: Bard Liao
    Reviewed-by: Kai Vehmanen
    Reviewed-by: Guennadi Liakhovetski
    Acked-by: Mark Brown
    Link: https://lore.kernel.org/r/20200908134521.6781-6-yung-chuan.liao@linux.intel.com
    Signed-off-by: Vinod Koul

    Pierre-Louis Bossart
     
  • Add a slave-level property and program the SCP_INT1_MASK as desired by
    the codec driver. Since there is no DisCo property this has to be an
    implementation-specific firmware property or hard-coded in the driver.

    The only functionality change is that implementation-defined
    interrupts are no longer set for amplifiers - those interrupts are
    typically for jack detection or acoustic event detection/hotwording.

    Signed-off-by: Pierre-Louis Bossart
    Signed-off-by: Bard Liao
    Tested-by: Srinivas Kandagatla
    Reviewed-by: Kai Vehmanen
    Reviewed-by: Guennadi Liakhovetski
    Acked-by: Mark Brown
    Link: https://lore.kernel.org/r/20200908134521.6781-2-yung-chuan.liao@linux.intel.com
    Signed-off-by: Vinod Koul

    Pierre-Louis Bossart
     

05 Sep, 2020

1 commit

  • Pull sound fixes from Takashi Iwai:
    "A collection of small changes, nothing intrusive:

    - remaining tasklet API conversions, now all sound stuff have been
    converted

    - a few HD-audio and USB-audio quirks and minor fixes

    - FireWire Tascam and Digi00xx fixes

    - drop a kernel WARNING from PCM OSS for syzkaller"

    * tag 'sound-5.9-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (29 commits)
    ALSA: hda/realtek - Improved routing for Thinkpad X1 7th/8th Gen
    ALSA: hda: use consistent HDAudio spelling in comments/docs
    ALSA: hda: add dev_dbg log when driver is not selected
    ALSA: hda: fix a runtime pm issue in SOF when integrated GPU is disabled
    ALSA: hda: hdmi - add Rocketlake support
    ALSA: ua101: convert tasklets to use new tasklet_setup() API
    ALSA: usb-audio: convert tasklets to use new tasklet_setup() API
    ASoC: txx9: convert tasklets to use new tasklet_setup() API
    ASoC: siu: convert tasklets to use new tasklet_setup() API
    ASoC: fsl_esai: convert tasklets to use new tasklet_setup() API
    ALSA: hdsp: convert tasklets to use new tasklet_setup() API
    ALSA: riptide: convert tasklets to use new tasklet_setup() API
    ALSA: pci/asihpi: convert tasklets to use new tasklet_setup() API
    ALSA: firewire: convert tasklets to use new tasklet_setup() API
    ALSA: core: convert tasklets to use new tasklet_setup() API
    ALSA: pcm: oss: Remove superfluous WARN_ON() for mulaw sanity check
    ALSA: hda - Fix silent audio output and corrupted input on MSI X570-A PRO
    ALSA: hda/hdmi: always check pin power status in i915 pin fixup
    ALSA: hda/realtek: Add quirk for Samsung Galaxy Book Ion NT950XCJ-X716A
    ALSA: usb-audio: Add basic capture support for Pioneer DJ DJM-250MK2
    ...

    Linus Torvalds
     

03 Sep, 2020

1 commit

  • port_ready will be changed to a fixed array in sdw.h and all initialization
    work will be done at soundwire side in the following patch. So remove them
    from codec drivers.

    Signed-off-by: Pierre-Louis Bossart
    Signed-off-by: Bard Liao
    Reviewed-by: Rander Wang
    Reviewed-by: Guennadi Liakhovetski
    Acked-by: Mark Brown
    Link: https://lore.kernel.org/r/20200831134318.11443-2-yung-chuan.liao@linux.intel.com
    Signed-off-by: Vinod Koul

    Pierre-Louis Bossart
     

02 Sep, 2020

3 commits

  • In preparation for unconditionally passing the
    struct tasklet_struct pointer to all tasklet
    callbacks, switch to using the new tasklet_setup()
    and from_tasklet() to pass the tasklet pointer explicitly.

    Signed-off-by: Romain Perier
    Signed-off-by: Allen Pais
    Acked-by: Mark Brown
    Link: https://lore.kernel.org/r/20200902040221.354941-9-allen.lkml@gmail.com
    Signed-off-by: Takashi Iwai

    Allen Pais
     
  • In preparation for unconditionally passing the
    struct tasklet_struct pointer to all tasklet
    callbacks, switch to using the new tasklet_setup()
    and from_tasklet() to pass the tasklet pointer explicitly.

    Signed-off-by: Romain Perier
    Signed-off-by: Allen Pais
    Acked-by: Mark Brown
    Link: https://lore.kernel.org/r/20200902040221.354941-8-allen.lkml@gmail.com
    Signed-off-by: Takashi Iwai

    Allen Pais
     
  • In preparation for unconditionally passing the
    struct tasklet_struct pointer to all tasklet
    callbacks, switch to using the new tasklet_setup()
    and from_tasklet() to pass the tasklet pointer explicitly.

    Signed-off-by: Romain Perier
    Signed-off-by: Allen Pais
    Acked-by: Mark Brown
    Link: https://lore.kernel.org/r/20200902040221.354941-7-allen.lkml@gmail.com
    Signed-off-by: Takashi Iwai

    Allen Pais
     

24 Aug, 2020

1 commit

  • Replace the existing /* fall through */ comments and its variants with
    the new pseudo-keyword macro fallthrough[1]. Also, remove unnecessary
    fall-through markings when it is the case.

    [1] https://www.kernel.org/doc/html/v5.7/process/deprecated.html?highlight=fallthrough#implicit-switch-case-fall-through

    Signed-off-by: Gustavo A. R. Silva

    Gustavo A. R. Silva
     

22 Aug, 2020

1 commit

  • Pull sound fixes from Takashi Iwai:
    "A collection of small fixes over several drivers, but all are driver-
    specific and nothing looks scary.

    Slightly large changes are seen in ASoC qcom driver for the bugs that
    were revealed by the recent ASoC core change to report the invalid
    register access errors. Also ASoC fsl got a slight intensive change
    for the distortion fix.

    Others are only trivial fixes or device-specific quirks"

    * tag 'sound-5.9-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (25 commits)
    ALSA: hda: avoid reset of sdo_limit
    ALSA: hda/realtek: Add quirk for Samsung Galaxy Book Ion
    ALSA: usb-audio: ignore broken processing/extension unit
    ASoC: intel: Fix memleak in sst_media_open
    ASoC: wm8994: Avoid attempts to read unreadable registers
    ASoC: msm8916-wcd-analog: fix register Interrupt offset
    ASoC: wm8994: Prevent access to invalid VU register bits on WM1811
    ALSA: hda/realtek: Add model alc298-samsung-headphone
    ALSA: usb-audio: Update documentation comment for MS2109 quirk
    ALSA: isa: fix spelling mistakes in the comments
    ALSA: usb-audio: Add capture support for Saffire 6 (USB 1.1)
    ALSA: hda/realtek: Add quirk for Samsung Galaxy Flex Book
    ASoC: q6routing: add dummy register read/write function
    ASoC: q6afe-dai: mark all widgets registers as SND_SOC_NOPM
    ASoC: Make soc_component_read() returning an error code again
    ASoC: amd: Replacing component->name with codec_dai->name.
    ASoC: fsl: Fix unused variable warning
    ASoC: tegra: tegra210_i2s: Fix compile warning with CONFIG_PM=n
    ASoC: tegra: tegra210_dmic: Fix compile warning with CONFIG_PM=n
    ASoC: tegra: tegra210_ahub: Fix compile warning with CONFIG_PM=n
    ...

    Linus Torvalds
     

19 Aug, 2020

1 commit


17 Aug, 2020

4 commits

  • When power_up_sst() fails, stream needs to be freed
    just like when try_module_get() fails. However, current
    code is returning directly and ends up leaking memory.

    Fixes: 0121327c1a68b ("ASoC: Intel: mfld-pcm: add control for powering up/down dsp")
    Signed-off-by: Dinghao Liu
    Acked-by: Pierre-Louis Bossart
    Link: https://lore.kernel.org/r/20200813084112.26205-1-dinghao.liu@zju.edu.cn
    Signed-off-by: Mark Brown

    Dinghao Liu
     
  • The driver supports WM1811, WM8994, WM8958 devices but according to
    documentation and the regmap definitions the WM8958_DSP2_* registers
    are only available on WM8958. In current code these registers are
    being accessed as if they were available on all the three chips.

    When starting playback on WM1811 CODEC multiple errors like:
    "wm8994-codec wm8994-codec: ASoC: error at soc_component_read_no_lock on wm8994-codec: -5"
    can be seen, which is caused by attempts to read an unavailable
    WM8958_DSP2_PROGRAM register. The issue has been uncovered by recent
    commit "e2329ee ASoC: soc-component: add soc_component_err()".

    This patch adds a check in wm8958_aif_ev() callback so the DSP2 handling
    is only done for WM8958.

    Signed-off-by: Sylwester Nawrocki
    Acked-by: Charles Keepax
    Link: https://lore.kernel.org/r/20200731173834.23832-1-s.nawrocki@samsung.com
    Signed-off-by: Mark Brown

    Sylwester Nawrocki
     
  • For some reason interrupt set and clear register offsets are
    not set correctly.
    This patch corrects them!

    Fixes: 585e881e5b9e ("ASoC: codecs: Add msm8916-wcd analog codec")
    Signed-off-by: Srinivas Kandagatla
    Tested-by: Stephan Gerhold
    Reviewed-by: Stephan Gerhold
    Link: https://lore.kernel.org/r/20200811103452.20448-1-srinivas.kandagatla@linaro.org
    Signed-off-by: Mark Brown

    Srinivas Kandagatla
     
  • The ADC2 and DAC2 are not available on WM1811 device. This patch moves
    the ADC2, DAC2 VU bitfields to a separate array so we can skip accessing
    them and avoid unreadable register access on WM1811.

    This allows to get rid of warnings during boot like:
    wm8994-codec: ASoC: error at soc_component_read_no_lock on wm8994-codec: -5

    Signed-off-by: Sylwester Nawrocki
    Link: https://lore.kernel.org/r/20200804141043.11425-1-s.nawrocki@samsung.com
    Signed-off-by: Mark Brown

    Sylwester Nawrocki
     

11 Aug, 2020

4 commits

  • Most of the DAPM widgets for DSP ASoC components reuse reg field
    of the widgets for its internal calculations, however these are not
    real registers. So read/writes to these numbers are not really
    valid. However ASoC core will read these registers to get default
    state during startup.

    With recent changes to ASoC core, every register read/write
    failures are reported very verbosely. Prior to this fails to reads
    are totally ignored, so we never saw any error messages.

    To fix this add dummy read/write function to return default value.

    Fixes: e3a33673e845 ("ASoC: qdsp6: q6routing: Add q6routing driver")
    Reported-by: John Stultz
    Signed-off-by: Srinivas Kandagatla
    Link: https://lore.kernel.org/r/20200811120205.21805-2-srinivas.kandagatla@linaro.org
    Signed-off-by: Mark Brown

    Srinivas Kandagatla
     
  • Looks like the q6afe-dai dapm widget registers are set as "0",
    which is a not correct.

    As this registers will be read by ASoC core during startup
    which will throw up errors, Fix this by making the registers
    as SND_SOC_NOPM as these should be never used.

    With recent changes to ASoC core, every register read/write
    failures are reported very verbosely. Prior to this fails to reads
    are totally ignored, so we never saw any error messages.

    Fixes: 24c4cbcfac09 ("ASoC: qdsp6: q6afe: Add q6afe dai driver")
    Reported-by: John Stultz
    Signed-off-by: Srinivas Kandagatla
    Link: https://lore.kernel.org/r/20200811120205.21805-1-srinivas.kandagatla@linaro.org
    Signed-off-by: Mark Brown

    Srinivas Kandagatla
     
  • Along with the recent unification of snd_soc_component_read*()
    functions, the behavior of snd_soc_component_read() was changed
    slightly; namely it returns the register read value directly, and even
    if an error happens, it returns zero (but it prints an error
    message). That said, the caller side can't know whether it's an error
    or not any longer.

    Ideally this shouldn't matter much, but in practice this seems causing
    a regression, as John reported. And, grepping the tree revealed that
    there are still plenty of callers that do check the error code, so
    we'll need to deal with them in anyway.

    As a quick band-aid over the regression, this patch changes the return
    value of snd_soc_component_read() again to the negative error code.
    It can't work, obviously, for 32bit register values, but it should be
    enough for the known regressions, so far.

    Fixes: cf6e26c71bfd ("ASoC: soc-component: merge snd_soc_component_read() and snd_soc_component_read32()")
    Reported-by: John Stultz
    Signed-off-by: Takashi Iwai
    Link: https://lore.kernel.org/r/20200810134631.19742-1-tiwai@suse.de
    Signed-off-by: Mark Brown

    Takashi Iwai
     
  • Replacing string compare with "codec_dai->name" instead of comparing with
    "codec_dai->component->name" in hw_params because,
    Here the component name for codec RT1015 is "i2c-10EC5682:00"
    and will never be "rt1015-aif1" as it is codec-dai->name.
    So, strcmp() always compares and fails to set the
    sysclk,pll,bratio for expected codec-dai="rt1015-aif1".

    Signed-off-by: Ravulapati Vishnu vardhan rao
    Link: https://lore.kernel.org/r/20200807161046.17932-1-Vishnuvardhanrao.Ravulapati@amd.com
    Signed-off-by: Mark Brown

    Ravulapati Vishnu vardhan rao
     

07 Aug, 2020

1 commit

  • Pull sound updates from Takashi Iwai:
    "This became wide and scattered updates all over the sound tree as
    diffstat shows: lots of (still ongoing) refactoring works in ASoC,
    fixes and cleanups caught by static analysis, inclusive term
    conversions as well as lots of new drivers. Below are highlights:

    ASoC core:
    - API cleanups and conversions to the unified mute_stream() call
    - Simplify I/O helper functions
    - Use helper macros to retrieve RTD from substreams

    ASoC drivers:
    - Lots of fixes and cleanups in Intel ASoC drivers
    - Lots of new stuff: Freescale MQS and i.MX6sx, Intel KeemBay I2S,
    Maxim MAX98360A and MAX98373 SoundWire, various Mediatek boards,
    nVidia Tegra 186 and 210, RealTek RL6231, Samsung Midas and Aries
    boards, TI J721e EVM

    ALSA core:
    - Minor code refacotring for SG-buffer handling

    HD-audio:
    - Generalization of mute-LED handling with LED classdev
    - Intel silent stream support for HDMI
    - Device-specific fixes: CA0132, Loongson-3

    Others:
    - Usual USB- and HD-audio quirks for various devices
    - Fixes for echoaudio DMA position handling
    - Various documents and trivial fixes for sparse warnings
    - Conversion to adopt inclusive terms"

    * tag 'sound-5.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (479 commits)
    ALSA: pci: delete repeated words in comments
    ALSA: isa: delete repeated words in comments
    ALSA: hda/tegra: Add 100us dma stop delay
    ALSA: hda: Add dma stop delay variable
    ASoC: hda/tegra: Set buffer alignment to 128 bytes
    ALSA: seq: oss: Serialize ioctls
    ALSA: hda/hdmi: Add quirk to force connectivity
    ALSA: usb-audio: add startech usb audio dock name
    ALSA: usb-audio: Add support for Lenovo ThinkStation P620
    Revert "ALSA: hda: call runtime_allow() for all hda controllers"
    ALSA: hda/ca0132 - Fix AE-5 microphone selection commands.
    ALSA: hda/ca0132 - Add new quirk ID for Recon3D.
    ALSA: hda/ca0132 - Fix ZxR Headphone gain control get value.
    ALSA: hda/realtek: Add alc269/alc662 pin-tables for Loongson-3 laptops
    ALSA: docs: fix typo
    ALSA: doc: use correct config variable name
    ASoC: core: Two step component registration
    ASoC: core: Simplify snd_soc_component_initialize declaration
    ASoC: core: Relocate and expose snd_soc_component_initialize
    ASoC: sh: Replace 'select' DMADEVICES 'with depends on'
    ...

    Linus Torvalds
     

04 Aug, 2020

1 commit

  • Pull crypto updates from Herbert Xu:
    "API:
    - Add support for allocating transforms on a specific NUMA Node
    - Introduce the flag CRYPTO_ALG_ALLOCATES_MEMORY for storage users

    Algorithms:
    - Drop PMULL based ghash on arm64
    - Fixes for building with clang on x86
    - Add sha256 helper that does the digest in one go
    - Add SP800-56A rev 3 validation checks to dh

    Drivers:
    - Permit users to specify NUMA node in hisilicon/zip
    - Add support for i.MX6 in imx-rngc
    - Add sa2ul crypto driver
    - Add BA431 hwrng driver
    - Add Ingenic JZ4780 and X1000 hwrng driver
    - Spread IRQ affinity in inside-secure and marvell/cesa"

    * 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: (157 commits)
    crypto: sa2ul - Fix inconsistent IS_ERR and PTR_ERR
    hwrng: core - remove redundant initialization of variable ret
    crypto: x86/curve25519 - Remove unused carry variables
    crypto: ingenic - Add hardware RNG for Ingenic JZ4780 and X1000
    dt-bindings: RNG: Add Ingenic RNG bindings.
    crypto: caam/qi2 - add module alias
    crypto: caam - add more RNG hw error codes
    crypto: caam/jr - remove incorrect reference to caam_jr_register()
    crypto: caam - silence .setkey in case of bad key length
    crypto: caam/qi2 - create ahash shared descriptors only once
    crypto: caam/qi2 - fix error reporting for caam_hash_alloc
    crypto: caam - remove deadcode on 32-bit platforms
    crypto: ccp - use generic power management
    crypto: xts - Replace memcpy() invocation with simple assignment
    crypto: marvell/cesa - irq balance
    crypto: inside-secure - irq balance
    crypto: ecc - SP800-56A rev 3 local public key validation
    crypto: dh - SP800-56A rev 3 local public key validation
    crypto: dh - check validity of Z before export
    lib/mpi: Add mpi_sub_ui()
    ...

    Linus Torvalds
     

03 Aug, 2020

10 commits

  • Hi,

    this is a trivial patch set to add the missing __maybe_unused for
    covering the compile warnings with CONFIG_PM=n.

    Takashi

    ===

    Takashi Iwai (5):
    ASoC: tegra: tegra186_dspk: Fix compile warning with CONFIG_PM=n
    ASoC: tegra: tegra210_admaif: Fix compile warning with CONFIG_PM=n
    ASoC: tegra: tegra210_ahub: Fix compile warning with CONFIG_PM=n
    ASoC: tegra: tegra210_dmic: Fix compile warning with CONFIG_PM=n
    ASoC: tegra: tegra210_i2s: Fix compile warning with CONFIG_PM=n

    sound/soc/tegra/tegra186_dspk.c | 4 ++--
    sound/soc/tegra/tegra210_admaif.c | 4 ++--
    sound/soc/tegra/tegra210_ahub.c | 4 ++--
    sound/soc/tegra/tegra210_dmic.c | 4 ++--
    sound/soc/tegra/tegra210_i2s.c | 4 ++--
    5 files changed, 10 insertions(+), 10 deletions(-)

    --
    2.16.4

    Mark Brown
     
  • The variable rtd was left unused in psc_dma_free(), even unnoticed
    during conversion to a new style:
    sound/soc/fsl/mpc5200_dma.c:342:30: warning: unused variable 'rtd' [-Wunused-variable]

    Drop the superfluous one.

    Fixes: 6d1048bc1152 ("ASoC: fsl: mpc5200_dma: remove snd_pcm_ops")
    Signed-off-by: Takashi Iwai
    Link: https://lore.kernel.org/r/20200803144630.9615-1-tiwai@suse.de
    Signed-off-by: Mark Brown

    Takashi Iwai
     
  • Fix trivial compile warnings wrt unused functions by adding
    __maybe_unused prefix:
    sound/soc/tegra/tegra210_i2s.c:167:12: warning: 'tegra210_i2s_runtime_suspend' defined but not used [-Wunused-function]
    sound/soc/tegra/tegra210_i2s.c:179:12: warning: 'tegra210_i2s_runtime_resume' defined but not used [-Wunused-function]

    Fixes: c0bfa98349d1 ("ASoC: tegra: Add Tegra210 based I2S driver")
    Signed-off-by: Takashi Iwai
    Link: https://lore.kernel.org/r/20200803141850.23713-6-tiwai@suse.de
    Signed-off-by: Mark Brown

    Takashi Iwai
     
  • Fix trivial compile warnings wrt unused functions by adding
    __maybe_unused prefix:
    sound/soc/tegra/tegra210_dmic.c:43:12: warning: 'tegra210_dmic_runtime_suspend' defined but not used [-Wunused-function]
    sound/soc/tegra/tegra210_dmic.c:55:12: warning: 'tegra210_dmic_runtime_resume' defined but not used [-Wunused-function]

    Fixes: 8c8ff982e9e2 ("ASoC: tegra: Add Tegra210 based DMIC driver")
    Signed-off-by: Takashi Iwai
    Link: https://lore.kernel.org/r/20200803141850.23713-5-tiwai@suse.de
    Signed-off-by: Mark Brown

    Takashi Iwai
     
  • Fix trivial compile warnings wrt unused functions by adding
    __maybe_unused prefix:
    sound/soc/tegra/tegra210_ahub.c:567:12: warning: 'tegra_ahub_runtime_suspend' defined but not used [-Wunused-function]
    sound/soc/tegra/tegra210_ahub.c:579:12: warning: 'tegra_ahub_runtime_resume' defined but not used [-Wunused-function]

    Fixes: 16e1bcc2caf4 ("ASoC: tegra: Add Tegra210 based AHUB driver")
    Signed-off-by: Takashi Iwai
    Link: https://lore.kernel.org/r/20200803141850.23713-4-tiwai@suse.de
    Signed-off-by: Mark Brown

    Takashi Iwai
     
  • Fix trivial compile warnings wrt unused functions by adding
    __maybe_unused prefix:
    sound/soc/tegra/tegra210_admaif.c:232:12: warning: 'tegra_admaif_runtime_resume' defined but not used [-Wunused-function]
    sound/soc/tegra/tegra210_ahub.c:567:12: warning: 'tegra_ahub_runtime_suspend' defined but not used [-Wunused-function]

    Fixes: f74028e159bb ("ASoC: tegra: Add Tegra210 based ADMAIF driver")
    Signed-off-by: Takashi Iwai
    Link: https://lore.kernel.org/r/20200803141850.23713-3-tiwai@suse.de
    Signed-off-by: Mark Brown

    Takashi Iwai
     
  • Fix trivial compile warnings wrt unused functions by adding
    __maybe_unused prefix:
    sound/soc/tegra/tegra186_dspk.c:74:12: warning: 'tegra186_dspk_runtime_suspend' defined but not used [-Wunused-function]
    sound/soc/tegra/tegra186_dspk.c:86:12: warning: 'tegra186_dspk_runtime_resume' defined but not used [-Wunused-function]

    Fixes: 327ef6470266 ("ASoC: tegra: Add Tegra186 based DSPK driver")
    Signed-off-by: Takashi Iwai
    Link: https://lore.kernel.org/r/20200803141850.23713-2-tiwai@suse.de
    Signed-off-by: Mark Brown

    Takashi Iwai
     
  • Recently we found an issue about the suspend and resume. If dmic is
    recording the sound, and we run suspend and resume, after the resume,
    the dmic can't work well anymore. we need to close the app and reopen
    the app, then the dmic could record the sound again.

    For example, we run "arecord -D hw:CARD=acp,DEV=0 -f S32_LE -c 2
    -r 48000 test.wav", then suspend and resume, after the system resume
    back, we speak to the dmic. then stop the arecord, use aplay to play
    the test.wav, we could hear the sound recorded after resume is weird,
    it is not what we speak to the dmic.

    I found two registers are set in the dai_hw_params(), if the two
    registers are set during the resume, this issue could be fixed.
    Move the code of the dai_hw_params() into the pdm_dai_trigger(), then
    these two registers will be set during resume since pdm_dai_trigger()
    will be called during resume. And delete the empty function
    dai_hw_params().

    Signed-off-by: Hui Wang
    Reviewed-by: Vijendar Mukunda
    Cc: stable@vger.kernel.org
    Link: https://lore.kernel.org/r/20200730123138.5659-1-hui.wang@canonical.com
    Signed-off-by: Mark Brown

    Hui Wang
     
  • Removing ADDITIONAL_CONTROL_4 from the list of readable registers cause
    audio distortion.

    This change was sent as a comment below the --- line when submitting
    commit 658bb297e393 ("ASoC: wm8962: Do not access WM8962_GPIO_BASE"), so
    it was not supposed to get merged.

    Keep WM8962_ADDITIONAL_CONTROL_4 inside wm8962_readable_register() to
    fix the regression.

    Fixes: 658bb297e393 ("ASoC: wm8962: Do not access WM8962_GPIO_BASE")
    Reported-by: Shengjiu Wang
    Signed-off-by: Fabio Estevam
    Link: https://lore.kernel.org/r/20200803115233.19034-1-festevam@gmail.com
    Signed-off-by: Mark Brown

    Fabio Estevam
     
  • With this case:
    aplay -Dhw:x 16khz.wav 24khz.wav
    There is sound distortion for 24khz.wav. The reason is that setting
    PLL of WM8962 with set_bias_level function, the bias level is not
    changed when 24khz.wav is played, then the PLL won't be reset, the
    clock is not correct, so distortion happens.

    The resolution of this issue is to remove fsl_asoc_card_set_bias_level.
    Move PLL configuration to hw_params and hw_free.

    After removing fsl_asoc_card_set_bias_level, also test WM8960 case,
    it can work.

    Fixes: 708b4351f08c ("ASoC: fsl: Add Freescale Generic ASoC Sound Card with ASRC support")
    Signed-off-by: Shengjiu Wang
    Acked-by: Nicolin Chen
    Link: https://lore.kernel.org/r/1596420811-16690-1-git-send-email-shengjiu.wang@nxp.com
    Signed-off-by: Mark Brown

    Shengjiu Wang
     

01 Aug, 2020

9 commits

  • Mark Brown
     
  • Mark Brown
     
  • …<cezary.rojewski@intel.com>:

    Provide a mechanism for true two-step component registration. This
    mimics device registration flow where initialization is the first step
    while addition goes as second in line. Drivers may choose to modify
    component's fields before registering component to ASoC subsystem via
    snd_soc_add_component.

    Patchset achieves status quo - behavior of snd_soc_register_component
    remains unchanged.

    Cezary Rojewski (3):
    ASoC: core: Relocate and expose snd_soc_component_initialize
    ASoC: core: Simplify snd_soc_component_initialize declaration
    ASoC: core: Two step component registration

    include/sound/soc-component.h | 3 --
    include/sound/soc.h | 11 +++---
    sound/soc/soc-component.c | 16 ---------
    sound/soc/soc-core.c | 52 +++++++++++++++++----------
    sound/soc/soc-generic-dmaengine-pcm.c | 14 +++++---
    sound/soc/stm/stm32_adfsdm.c | 9 +++--
    6 files changed, 55 insertions(+), 50 deletions(-)

    --
    2.17.1

    Mark Brown
     
  • Modify snd_soc_add_component so it calls snd_soc_component_initialize
    no longer and thus providing true two-step registration. Drivers may
    choose to change component's fields before actually adding it to ASoC
    subsystem.

    Signed-off-by: Cezary Rojewski
    Link: https://lore.kernel.org/r/20200731144146.6678-4-cezary.rojewski@intel.com
    Signed-off-by: Mark Brown

    Cezary Rojewski
     
  • Move 'name' field initialization responsibility back to
    snd_soc_component_initialize to prepare snd_soc_add_component function
    for being called separatelly as a second registration step.

    Signed-off-by: Cezary Rojewski
    Link: https://lore.kernel.org/r/20200731144146.6678-3-cezary.rojewski@intel.com
    Signed-off-by: Mark Brown

    Cezary Rojewski
     
  • To allow for two-step component registration, expose
    snd_soc_component_initialize function and move it back to soc-core.c.

    Signed-off-by: Cezary Rojewski
    Link: https://lore.kernel.org/r/20200731144146.6678-2-cezary.rojewski@intel.com
    Signed-off-by: Mark Brown

    Cezary Rojewski
     
  • Enabling a whole subsystem from a single driver 'select' is frowned
    upon and won't be accepted in new drivers, that need to use 'depends on'
    instead. Existing selection of DMADEVICES will then cause circular
    dependencies. Replace them with a dependency.

    Signed-off-by: Laurent Pinchart
    Acked-by: Randy Dunlap
    Link: https://lore.kernel.org/r/20200731152433.1297-3-laurent.pinchart@ideasonboard.com
    Signed-off-by: Mark Brown

    Laurent Pinchart
     
  • The fifo_depth is 64 on i.MX8QM/i.MX8QXP, 128 on i.MX8MQ, 16 on
    i.MX7ULP.

    Original FSL_SAI_CR1_RFW_MASK value 0x1F is not suitable for
    these platform, the FIFO watermark mask should be updated
    according to the fifo_depth.

    Fixes: a860fac42097 ("ASoC: fsl_sai: Add support for imx7ulp/imx8mq")
    Signed-off-by: Shengjiu Wang
    Reviewed-by: Fabio Estevam
    Link: https://lore.kernel.org/r/1596176895-28724-1-git-send-email-shengjiu.wang@nxp.com
    Signed-off-by: Mark Brown

    Shengjiu Wang
     
  • Commit b73287f0b074 ("ASoC: soc-pcm: dpcm: fix playback/capture checks")
    changed the meaning of dpcm_playback/dpcm_capture and now requires the
    CPU DAI BE to aligned with those flags.

    This broke all Amlogic cards with uni-directional backends (All gx and
    most axg cards).

    While I'm still confused as to how this change is an improvement, those
    cards can't remain broken forever. Hopefully, next time an API change is
    done like that, all the users will be updated as part of the change, and
    not left to fend for themselves.

    Fixes: b73287f0b074 ("ASoC: soc-pcm: dpcm: fix playback/capture checks")
    Signed-off-by: Jerome Brunet
    Link: https://lore.kernel.org/r/20200731120603.2243261-1-jbrunet@baylibre.com
    Signed-off-by: Mark Brown

    Jerome Brunet