06 Nov, 2018

1 commit

  • Since the commit c647f806b8c2 ("ALSA: hda - Allow multiple ADCs for
    mic mute LED controls") we allow enabling the mic mute LED with
    multiple ADCs. The commit changed the function return value to be
    zero or a negative error, while this change was overlooked in the
    thinkpad_acpi helper code where it still expects a positive return
    value for success. This eventually leads to a NULL dereference on a
    system that has only a mic mute LED.

    This patch corrects the return value check in the corresponding code
    as well.

    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=201621
    Fixes: c647f806b8c2 ("ALSA: hda - Allow multiple ADCs for mic mute LED controls")
    Cc:
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

03 Nov, 2018

1 commit

  • Pull sound fixes from Takashi Iwai:
    "A few device-specific fixes: a fix for SPDIF on old Creative PCI
    board, and two additional fixes for the recent changes in FireWire
    audio stack"

    * tag 'sound-fix-4.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
    ALSA: firewire-lib: fix insufficient PCM rule for period/buffer size
    ALSA: ca0106: Disable IZD on SB0570 DAC to fix audio pops
    ALSA: dice: fix to wait for releases of all ALSA character devices

    Linus Torvalds
     

30 Oct, 2018

1 commit

  • In a former commit, PCM constraint based on LCM of SYT_INTERVAL was
    obsoleted with PCM rule. However, the new PCM rule brings -EINVAL in
    some cases that max/min values of size of buffer/period is not
    multiples of one of values of SYT_INTERVAL. For example, pulseaudio
    always fail to configure PCM substream.

    This commit changes strategy for the PCM rule. Although the buggy rules
    had a single dependency (rate from period, period from rate, rate from
    buffer, buffer from rate), a revised rule has double dependencies
    (period from period/rate, buffer from buffer/rate). A step of value is
    calculated with table of SYT_INTERVAL and list of available rates. This
    prevents interval template which brings -EINVAL to a call of
    snd_interval_refine().

    Fixes: 5950229582bc('ALSA: firewire-lib: add PCM rules to obsolete PCM constraints based on LCM of SYT_INTERVAL')
    Signed-off-by: Takashi Sakamoto
    Signed-off-by: Takashi Iwai

    Takashi Sakamoto
     

29 Oct, 2018

1 commit

  • The Creative Audigy SE (SB0570) card currently exhibits an audible pop
    whenever playback is stopped or resumed, or during silent periods of an
    audio stream. Initialise the IZD bit to the 0 to eliminate these pops.

    The Infinite Zero Detection (IZD) feature on the DAC causes the output
    to be shunted to Vcap after 2048 samples of silence. This discharges the
    AC coupling capacitor through the output and causes the aforementioned
    pop/click noise.

    The behaviour of the IZD bit is described on page 15 of the WM8768GEDS
    datasheet: "With IZD=1, applying MUTE for 1024 consecutive input samples
    will cause all outputs to be connected directly to VCAP. This also
    happens if 2048 consecutive zero input samples are applied to all 6
    channels, and IZD=0. It will be removed as soon as any channel receives
    a non-zero input". I believe the second sentence might be referring to
    IZD=1 instead of IZD=0 given the observed behaviour of the card.

    This change should make the DAC initialisation consistent with
    Creative's Windows driver, as this popping persists when initialising
    the card in Linux and soft rebooting into Windows, but is not present on
    a cold boot to Windows.

    Signed-off-by: Alex Stanoev
    Cc:
    Signed-off-by: Takashi Iwai

    Alex Stanoev
     

27 Oct, 2018

1 commit

  • In a development period for Linux kernel v4.20, drivers in ALSA firewire
    stack were changed to wait for releases of all ALSA character devices at
    .remove callback of bus driver. However, ALSA dice driver is partly out
    of this change. This bug can bring fault to user process which holds
    the last of character device in unplugging.

    This commit fixes the driver to wait in the callback.

    Fixes: 61ccc6f6b27c ('ALSA: firewire: block .remove callback of bus driver till all of ALSA character devices are released')
    Signed-off-by: Takashi Sakamoto
    Signed-off-by: Takashi Iwai

    Takashi Sakamoto
     

26 Oct, 2018

1 commit

  • Pull sound updates from Takashi Iwai:
    "There have been little changes in ALSA core stuff, but ASoC core still
    kept rolling for the continued restructuring. The rest are lots of
    small driver-specific changes and some minor API updates. Here are
    highlights:

    General:
    - Appropriate fall-through annotations everywhere
    - Some code cleanup in memalloc code, handling non-cacahed pages more
    commonly in the helper
    - Deployment of SNDRV_PCM_INFO_SYNC_APPLPTR flag consistently

    Drivers:
    - More HD-audio CA0132 codec improvement for supporting other Creative
    boards
    - Plumbing legacy HD-audio codecs as ASoC BE on Intel SST; this will
    give move support of existing HD-audio devices with DSP
    - A few device-specific HD-audio quirks as usual
    - New quirk for RME CC devices and correction for B&W PX for USB-audio
    - FireWire: code refactoring including devres usages

    ASoC Core:
    - Continued componentization works; it's almost done!
    - A bunch of new for_each_foo macros
    - Cleanups and fixes in DAPM code

    ASoC Drivers:
    - MCLK support for several different devices, including CS42L51, STM32
    SAI, and MAX98373
    - Support for Allwinner A64 CODEC analog, Intel boards with DA7219 and
    MAX98927, Meson AXG PDM inputs, Nuvoton NAU8822, Renesas R8A7744 and
    TI PCM3060"

    * tag 'sound-4.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (299 commits)
    ASoC: stm32: sai: fix master clock naming
    ASoC: stm32: add clock dependency for sai
    ALSA: hda/ca0132 - Actually fix microphone issue
    ASoC: sun4i-i2s: move code from startup/shutdown hooks into pm_runtime hooks
    ASoC: wm2000: Remove wm2000_read helper function
    ASoC: cs42l51: fix mclk support
    ASoC: wm_adsp: Log addresses as 8 digits in wm_adsp_buffer_populate
    ASoC: wm_adsp: Rename memory fields in wm_adsp_buffer
    ASoC: cs42l51: add mclk support
    ASoC: stm32: sai: set sai as mclk clock provider
    ASoC: dt-bindings: add mclk support to cs42l51
    ASoC: dt-bindings: add mclk provider support to stm32 sai
    ASoC: soc-core: fix trivial checkpatch issues
    ASoC: dapm: Add support for hw_free on CODEC to CODEC links
    ASoC: Intel: kbl_da7219_max98927: minor white space clean up
    ALSA: i2c/cs8427: Fix int to char conversion
    ALSA: doc: Brush up the old writing-an-alsa-driver
    ASoC: rsnd: tidyup SSICR::SWSP for TDM
    ASoC: rsnd: enable TDM settings for SSI parent
    ASoC: pcm3168a: add hw constraint for capture channel
    ...

    Linus Torvalds
     

24 Oct, 2018

1 commit


23 Oct, 2018

5 commits

  • Pull perf updates from Ingo Molnar:
    "The main updates in this cycle were:

    - Lots of perf tooling changes too voluminous to list (big perf trace
    and perf stat improvements, lots of libtraceevent reorganization,
    etc.), so I'll list the authors and refer to the changelog for
    details:

    Benjamin Peterson, Jérémie Galarneau, Kim Phillips, Peter
    Zijlstra, Ravi Bangoria, Sangwon Hong, Sean V Kelley, Steven
    Rostedt, Thomas Gleixner, Ding Xiang, Eduardo Habkost, Thomas
    Richter, Andi Kleen, Sanskriti Sharma, Adrian Hunter, Tzvetomir
    Stoyanov, Arnaldo Carvalho de Melo, Jiri Olsa.

    ... with the bulk of the changes written by Jiri Olsa, Tzvetomir
    Stoyanov and Arnaldo Carvalho de Melo.

    - Continued intel_rdt work with a focus on playing well with perf
    events. This also imported some non-perf RDT work due to
    dependencies. (Reinette Chatre)

    - Implement counter freezing for Arch Perfmon v4 (Skylake and newer).
    This allows to speed up the PMI handler by avoiding unnecessary MSR
    writes and make it more accurate. (Andi Kleen)

    - kprobes cleanups and simplification (Masami Hiramatsu)

    - Intel Goldmont PMU updates (Kan Liang)

    - ... plus misc other fixes and updates"

    * 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (155 commits)
    kprobes/x86: Use preempt_enable() in optimized_callback()
    x86/intel_rdt: Prevent pseudo-locking from using stale pointers
    kprobes, x86/ptrace.h: Make regs_get_kernel_stack_nth() not fault on bad stack
    perf/x86/intel: Export mem events only if there's PEBS support
    x86/cpu: Drop pointless static qualifier in punit_dev_state_show()
    x86/intel_rdt: Fix initial allocation to consider CDP
    x86/intel_rdt: CBM overlap should also check for overlap with CDP peer
    x86/intel_rdt: Introduce utility to obtain CDP peer
    tools lib traceevent, perf tools: Move struct tep_handler definition in a local header file
    tools lib traceevent: Separate out tep_strerror() for strerror_r() issues
    perf python: More portable way to make CFLAGS work with clang
    perf python: Make clang_has_option() work on Python 3
    perf tools: Free temporary 'sys' string in read_event_files()
    perf tools: Avoid double free in read_event_file()
    perf tools: Free 'printk' string in parse_ftrace_printk()
    perf tools: Cleanup trace-event-info 'tdata' leak
    perf strbuf: Match va_{add,copy} with va_end
    perf test: S390 does not support watchpoints in test 22
    perf auxtrace: Include missing asm/bitsperlong.h to get BITS_PER_LONG
    tools include: Adopt linux/bits.h
    ...

    Linus Torvalds
     
  • Signed-off-by: Ingo Molnar

    Ingo Molnar
     
  • Fixes: 8307b2afd386 ("ASoC: stm32: sai: set sai as mclk clock provider")

    Fix warning issued by strncat when bound equals to source length.

    Signed-off-by: Olivier Moysan
    Signed-off-by: Mark Brown

    Olivier Moysan
     
  • Fixes: 8307b2afd386 ("ASoC: stm32: sai: set sai as mclk clock provider")

    Add COMMON_CLK dependency for STM32 SAI,
    as it is required by clock provider.

    Signed-off-by: Olivier Moysan
    Signed-off-by: Mark Brown

    Olivier Moysan
     
  • …/sound into for-linus

    ASoC: Updates for v5.0/v4.20

    As ever there's a lot of small and driver specific changes going on
    here, but we do also have some relatively large changes in the core
    thanks to the hard work of Charles and Morimoto-san:

    - More component transitions from Morimoto-san, I think we're about
    finished with this. Thanks for all the hard work!
    - Morimoto-san also added a bunch of for_each_foo macros
    - A bunch of cleanups and fixes for DAPM from Charles.
    - MCLK support for several different devices, including CS42L51, STM32
    SAI, and MAX98373.
    - Support for Allwinner A64 CODEC analog, Intel boards with DA7219 and
    MAX98927, Meson AXG PDM inputs, Nuvoton NAU8822, Renesas R8A7744 and
    TI PCM3060.

    Takashi Iwai
     

22 Oct, 2018

1 commit


21 Oct, 2018

5 commits


20 Oct, 2018

1 commit

  • The MCLK clock is made optional for cs42l51 codec.
    However, ASoC DAPM clock supply widget, expects the clock to be defined
    unconditionally.
    Register MCLK DAPM conditionally in codec driver,
    depending on clock presence in DT.

    Fixes: 5e8d63a726f8 ("ASoC: cs42l51: add mclk support")
    Signed-off-by: Olivier Moysan
    Signed-off-by: Mark Brown

    Olivier Moysan
     

19 Oct, 2018

8 commits


18 Oct, 2018

7 commits

  • Compiling with clang yields the following warning:

    sound/i2c/cs8427.c:140:31: warning: implicit conversion from 'int'
    to 'char' changes value from 160 to -96 [-Wconstant-conversion]
    data[0] = CS8427_REG_AUTOINC | CS8427_REG_CORU_DATABUF;
    ~ ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~

    Because CS8427_REG_AUTOINC is defined as 128, it is too big for a
    char field.
    So change data from char to unsigned char, that it can hold the value.

    This patch does not change the generated code.

    Signed-off-by: Philipp Klocke
    Signed-off-by: Takashi Iwai

    Philipp Klocke
     
  • R-Car datasheet is indicating that WS output settings of SSICR::SWSP
    is inverted on TDM mode from non TDM mode settings.
    But, it is meaning that TDM should use 0 here.
    Without this patch, sound input/output 1ch will be 2ch, 2ch will be 3ch
    ..., be jumbled on I2S + TDM settings. This patch fixup it.
    This patch is tested on R-Car H3 ulcb-kf board, SSI3/4 TDM sound.

    Signed-off-by: Kuninori Morimoto
    Signed-off-by: Mark Brown

    Kuninori Morimoto
     
  • Some SSIs are sharing each pins (= WS/CLK pin for playback/capture).
    Then, SSI parent needs control WS/CLK setting for SSI slave.
    In such case, SSI parent needs TDM settings if SSI slave is working as
    TDM mode. But it is not cared in current driver.
    It can't capture TDM sound without this patch if SSIs were pin sharing.
    This patch is tested on R-Car H3 ulcb-kf board, SSI3/4 with TDM sound.

    Signed-off-by: Kuninori Morimoto
    Signed-off-by: Mark Brown

    Kuninori Morimoto
     
  • LEFT_J / I2S only can use TDM.
    commit 594680ea4a394 ("ASoC: pcm3168a: add hw constraint for channel")
    commit 3809688980205 ("ASoC: pcm3168a: add HW constraint for non
    RIGHT_J") added channel constraint for it, but, it was only for playback.
    This patch adds constraint for capture.

    Signed-off-by: Kuninori Morimoto
    Signed-off-by: Mark Brown

    Kuninori Morimoto
     
  • The STA32x chips feature an XTI clock input that needs to be stable before
    the reset signal is released. Therefore, the chip driver needs to get a
    handle to the clock. Instead of relying on other parts of the system to
    enable the clock, let the codec driver grab a handle itself.

    In order to keep existing boards working, clock support is made optional.

    Signed-off-by: Daniel Mack
    Signed-off-by: Mark Brown

    Daniel Mack
     
  • Add driver for NAU88C22.

    Signed-off-by: David Lin
    Signed-off-by: Mark Brown

    David Lin
     
  • Similar to the following:

    commit 4321723648b0 ("ASoC: tegra_alc5632: fix device_node refcounting")

    commit 7c5dfd549617 ("ASoC: tegra: fix device_node refcounting")

    Signed-off-by: Marcel Ziswiler
    Acked-by: Jon Hunter
    Signed-off-by: Mark Brown

    Marcel Ziswiler
     

17 Oct, 2018

6 commits