linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [GIT PULL] sound updates for 4.21
@ 2018-12-20 15:38 Takashi Iwai
  2018-12-25 23:20 ` pr-tracker-bot
  2018-12-27  3:31 ` Linus Torvalds
  0 siblings, 2 replies; 18+ messages in thread
From: Takashi Iwai @ 2018-12-20 15:38 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: Mark Brown, Liam Girdwood, Linux Kernel Mailing List

Linus,

please pull sound updates for v4.21 from:

  git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git tags/sound-4.21-rc1

The topmost commit is d82b51c855a20eb456ac09f2f40ea98312373263

----------------------------------------------------------------

sound updates for 4.21

There are no intensive changes in both ALSA and ASoC core parts while
rather most of changes are a bunch of driver fixes and updates.
A large diff pattern appears in ASoC TI part which now merges both
OMAP and DaVinci stuff, but the rest spreads allover the places.

Note that this pull request includes also some updates for LED trigger
and platform drivers for mute LEDs, appearing in the diffstat as well.

Some highlights:

ASoC:
- Preparatory work for merging the audio-graph and audio-graph-scu
  cards
- A merge of TI OMAP and DaVinci directories, as both product lines
  get merged together.  Also including a few architecture changes as
  well.
- Major cleanups of the Maxim MAX9867 driver
- Small fixes for tablets & co with Intel BYT/CHT chips
- Lots of rsnd updates as usual
- Support for Asahi Kaesi AKM4118, AMD ACP3x, Intel platforms with
  RT5660, Meson AXG S/PDIF inputs, several Qualcomm IPs and Xilinx I2S
  controllers

HD-audio:
- Introduce audio-mute LED trigger for replacing the former hackish
  dynamic binding
- Huawei WMI hotkey and mute LED support
- Refactoring of PM code and display power controls
- Headset button support in the generic jack code
- A few updates for Tegra
- Fixups for HP EliteBook and ASUS UX391UA
- Lots of updates for Intel ASoC HD-audio, including the improved DSP
  detection and the fallback binding from ASoC SST to legacy HD-audio
  controller drivers

Others:
- Updates for FireWire TASCAM and Fireface devices, some other fixes
- A few potential Spectre v1 fixes that are all trivial

----------------------------------------------------------------

Adrien Charruel (1):
      ASoC: ak4118: Add support for AK4118 S/PDIF transceiver

Arnd Bergmann (6):
      ASoC: wm97xx: fix uninitialized regmap pointer problem
      ASoC: Intel: mrfld: fix uninitialized variable access
      ASoC: pxa: change ac97 dependencies
      ASoC: sdm845: add rt5663 codec select
      ASoC: simple-card-utils: fix build warning without CONFIG_OF
      ALSA: hda/ca0132 - make pci_iounmap() call conditional

Axel Lin (1):
      ASoC: ak5558: Remove redundant snd_soc_component_read32 calls

Ayman Bagabas (3):
      ALSA: hda: fix front speakers on Huawei MBXP
      platform/x86: add support for Huawei WMI hotkeys
      ALSA: hda: add support for Huawei WMI micmute LED

Bard liao (2):
      ASoC: Intel: common: add SOF information for APL RVP
      ASoC: Intel: hdac_hdmi: add Icelake support

Chen-Yu Tsai (2):
      ASoC: dt-bindings: sun50i-codec-analog: Add headphone amp regulator supply
      ASoC: sunxi: sun50i-codec-analog: Add support for cpvdd regulator supply

Cheng-Yi Chiang (7):
      ASoC: rt5663: Add regulator support
      ASoC: rt5663: Add documentation for power supply support
      ASoC: rt5663: Fix error handling of regulator_set_load
      ASoC: qcom: sdm845: Add board specific dapm widgets
      ASoC: qcom: sdm845: Create and setup jack in init callback
      ASoC: sdm845: Add TDM configuration for speaker
      ASoC: sdm845: Add configuration for headset codec

Clément Péron (1):
      ASoC: dt-bindings: add bindings for AK4118 transceiver

Colin Ian King (8):
      ASoC: stm32: sai: fix less than zero comparison on unsigned int
      ASoC: amd: fix memory leak of i2s_data on error return
      ASoC: tlv320aic31xx: asihpi: clean up indentation, remove extraneous tab
      ASoC: tlv320dac33: clean up indentation, remove extraneous tab
      ASoC: arizona: fix indentation issue with return statement
      ASoC: qcom: clean up indentation, remove extraneous tab
      ASoC: amd: fix spelling mistake "Inavlid" -> "Invalid"
      ALSA: asihpi: clean up indentation, replace spaces with tab

Dan Carpenter (1):
      ASoC: amd: Fix a NULL vs IS_ERR() check in probe

Daniel Mack (5):
      ASoC: pxa: remove raumfeld machine driver
      ASoC: dt-bindings: cs4270: use 'reset-gpios' rather than 'reset-gpio'
      ASoC: codecs: cs4270: move to GPIO consumer API
      ASoC: dt-bindings: ak4104: use 'reset-gpios' rather than 'reset-gpio'
      ASoC: codecs: ak4104: move to GPIO consumer API

David Lin (2):
      ASoC: nau8822: convert to SPDX identifiers
      ASoC: nau8822: convert to SPDX identifiers

Dimitris Papavasiliou (1):
      ASoC: pcm512x: Implement the digital_mute interface

Fabio Estevam (2):
      ASoC: fsl: Fix SND_SOC_EUKREA_TLV320 build error on i.MX8M
      ASoC: fsl-sai: Fix typo in "transmitter"

Fabrizio Castro (1):
      ASoC: rsnd: Add r8a774c0 support

Gustavo A. R. Silva (4):
      ALSA: emux: Fix potential Spectre v1 vulnerabilities
      ALSA: pcm: Fix potential Spectre v1 vulnerability
      ALSA: rme9652: Fix potential Spectre v1 vulnerability
      ALSA: emu10k1: Fix potential Spectre v1 vulnerabilities

Hans de Goede (4):
      ASoC: intel: cht_bsw_max98090_ti: Add pmc_plt_clk_0 quirk for Chromebook Clapper
      ASoC: intel: cht_bsw_max98090_ti: Add pmc_plt_clk_0 quirk for Chromebook Gnawty
      ASoC: Intel: bytcr_rt5640: Add quirk for the Prowise PT301 tablet
      ASoC: Intel: bytcr_rt5640: Add quirk for the Point of View Mobii TAB-P1005W-232

Hiroyuki Yokoyama (1):
      ASoC: rsnd: Add device tree support for r8a77995

Hui Wang (2):
      ASoC: rt5660: Add a new ACPI match ID
      ASoC: Intel: kbl_rt5660: Add a new machine driver for kbl with rt5660

Jenny TC (2):
      ASoC: dmic: introduce mode switch delay
      ASoC: dmic: introduce module_param wakeup_delay

Jerome Brunet (5):
      ASoC: meson: axg-toddr: add support for spdifin backend
      ASoC: meson: add axg spdif input DT binding documentation
      ASoC: meson: add axg spdif input
      MAINTAINERS: Add Amlogic sound drivers entry
      ASoC: meson: fix do_div warning in spdifin

Jiada Wang (1):
      ASoC: pcm3168a: Don't disable pcm3168a when CONFIG_PM defined

Julia Lawall (4):
      ASoC: smd845: constify snd_soc_ops structure
      ASoC: qdsp6: q6afe-dai: constify snd_soc_dai_ops structures
      ASoC: codecs: constify snd_soc_dai_ops structures
      ASoC: AMD: constify regulator_desc structure

Kailang Yang (1):
      ALSA: hda/realtek - Enable headset button support for new codec

Keyon Jie (1):
      ALSA: HDA: export process_unsol_events()

Kirill Marinushkin (3):
      ASoC: pcm3060: Add DT property for single-ended output
      ASoC: Add documentation for pcm3060 property out-single-ended
      ASoC: pcm3060: Add powersaving widgets for DAC and ADC

Kuninori Morimoto (65):
      ASoC: pcm3168a: cleanup hw_constraint for LEFT_J/I2S
      ASoC: rsnd: move .get_status under rsnd_mod_ops
      ASoC: rsnd: add .get_id/.get_id_sub
      ASoC: rsnd: rsnd_mod_name() handles both name and ID
      ASoC: pcm3168a: remove read-only status register from snd_kcontrol_new
      ASoC: audio-graph-card: remove endpoint bidirectional check
      ASoC: audio-graph-scu-card: remove endpoint bidirectional check
      ASoC: audio-graph-scu-card: remove error check which never happen
      ASoC: rsnd: remove endpoint bidirectional check
      ASoC: rsnd: rename rsnd_runtime_is_ssi_xxx()
      ASoC: rsnd: use defined io_playback/io_capture
      ASoC: rsnd: move HDMI information from ssi.c to core.c
      ASoC: rsnd: handle DPCM converted rate/chan under core
      ASoC: rsnd: tidyup Document for DT binding
      ASoC: rsnd: add SSIU BUSIF support for Document
      ASoC: rsnd: add SSIU BUSIF support
      ASoC: rsnd: add TDM Split mode support for Document
      ASoC: rsnd: add TDM Split mode support
      ASoC: rsnd: use ring buffer for rsnd_mod_name()
      ASoC: rsnd: tidyup rsnd_parse_connect_ssiu_compatible()
      ASoC: rsnd: makes rsnd_ssi_is_dma_mode() static
      ASoC: simple-card-utils: remove asoc_simple_card_clk_register()
      ASoC: simple-card-utils: accept NULL parameter on asoc_simple_card_xxx()
      ASoC: simple-card-utils: tidyup asoc_simple_card_parse_convert()
      ASoC: simple_card_utils: remove "option" from asoc_simple_card_of_parse_routing()
      ASoC: soc-core: add snd_soc_of_parse_node_prefix()
      ASoC: simple-scu-card: tidyup "prefix" parsing on Doc
      ASoC: simple-scu-card: tidyup "prefix" parsing
      ASoC: audio-graph-scu-card: tidyup "prefix" parsing on Doc
      ASoC: audio-graph-scu-card: tidyup "prefix" parsing
      ASoC: audio-graph-scu-card: tidyup "convert-rate/channels" parsing on Doc
      ASoC: audio-graph-scu-card: tidyup "convert-rate/channels" parsing
      ASoC: audio-graph-scu-card: tidyup asoc_simple_card_parse_daifmt() timing
      ASoC: audio-graph-card: tidyup typo SND_AUDIO_GRAPH_CARD
      ASoC: audio-graph-card: tidyup define position
      ASoC: rsnd: tidyup for SSIU subnode
      ASoC: soc.h: makes snd_soc_of_parse_audio_prefix() inline
      ASoC: rsnd: tidyup registering method for rsnd_kctrl_new()
      ASoC: rsnd: indicates Channel and Mode for debug
      ASoC: rsnd: fixup mod ID for CTU regmap read/write
      ASoC: rsnd: add missing TDM Split mode support for simple-card
      ASoC: simple-card-utils: fixup asoc_simple_card_get_dai_id() counting
      ASoC: audio-graph-scu-card: care link / dai count
      ASoC: audio-graph-scu-card: use cpu/codec pointer on graph_dai_props
      ASoC: audio-graph-scu-card: care multi DPCM codec_conf
      ASoC: audio-graph-card: use cpu/codec pointer on graph_dai_props
      ASoC: simple-card: use cpu/codec pointer on simple_dai_props
      ASoC: simple-scu-card: tidyup asoc_simple_card_parse_daifmt() timing
      ASoC: simple-scu-card: add dai-link support
      ASoC: simple-scu-card: care link / dai count
      ASoC: simple-scu-card: tidyup "convert-rate/channels" parsing
      ASoC: simple-scu-card: use cpu/codec pointer on graph_dai_props
      ASoC: simple-scu-card: care multi DPCM codec_conf
      ASoC: rsnd: remove RSND_REG_ from rsnd_reg
      ASoC: simple-card-utils: fixup asoc_simple_card_get_dai_id() ID method
      ASoC: audio-graph-card: merge audio-graph-scu-card on Doc
      ASoC: audio-graph-card: merge audio-graph-scu-card
      ASoC: audio-graph-card: tidyup mclk-fs method
      ASoC: audio-graph-card: tidyup convert_rate/channel method
      ASoC: audio-graph-card: tidyup prefix for snd_soc_codec_conf
      ASoC: simple-card: merge simple-scu-card on Doc
      ASoC: simple-card: merge simple-scu-card
      ASoC: simple-card: tidyup mclk-fs method
      ASoC: simple-card: tidyup convert_rate/channel method
      ASoC: simple-card: tidyup prefix for snd_soc_codec_conf

Ladislav Michl (6):
      ASoC: max9867: Fix whitespace
      ASoC: max9867: Remove useless assignment
      ASoC: max9867: Fix power management
      ASoC: max9867: Calculate LRCLK divider
      ASoC: max9867: Fix signal paths
      ASoC: max9867: Add copyright and module author

Linus Walleij (1):
      ALSA: usb-audio: Define registers for CM6206

Lubomir Rintel (1):
      ASoC: dt-bindings: use a generic node name for rt5631

Mantas Mikulėnas (1):
      ALSA: hda: add mute LED support for HP EliteBook 840 G4

Maruthi Srinivas Bayyavarapu (5):
      ASoC: AMD: add ACP 3.x IP register header
      ASoC: AMD: add ACP3.0 PCI driver
      dt-bindings: ASoC: xlnx, i2s: Document i2s bindings
      ASoC: xlnx: Add i2s driver
      ASoC: xlnx: enable i2s driver build

Nathan Chancellor (1):
      ASoC: simple-card: Dereference pointer for memcpy sizeof in asoc_simple_card_probe

Peter Ujfalusi (25):
      ASoC: omap-mcbsp: On OMAP1 and OMAP2420 only 16bit format is supported
      ASoC: omap: Remove unused machine driver for AM3517-evm
      ASoC: omap-mcbsp: Clean up dma_data addr initialization code
      ASoC: omap-mcbsp: Skip dma_data.maxburst initialization
      ASoC: omap-mcbsp: Clean up the interrupt handlers
      ASoC: omap-mcbsp: Simplify the mcbsp_start/_stop function parameters
      ASoC: omap-mcbsp: Move out the FIFO check from set_threshold and get_delay
      ASoC: omap-mcbsp: Re-arrange files for core McBSP and Sidetone function split
      ASoC: omap-mcbsp: Remove redundant check for mcbsp->pdata
      ASoC: omap-mcbsp: No need to initialize max_xx_thres when it is not used
      ASoC: tlv320aic3x: Add support for CBM_CFS and CBS_CFM clocking modes
      ASoC: davinci-mcasp: Clear TXSTAT register before activating serializers
      ASoC: davinci-mcasp: Update PDIR (pin direction) register handling
      ASoC: davinci-mcasp: Document dismod optional property
      ASoC: davinci-mcasp: Implement configurable dismod handling
      dt-bindings: sound: omap-mcpdm: Update documentation for pdmclk
      ASoC: ti: Merge davinci and omap directories
      MAINTAINERS: Add entry for sound/soc/ti and update the OMAP audio support
      ARM: OMAP1: Makefile: Update for new MCBSP Kconfig option
      ARM: OMAP2: Update for new MCBSP Kconfig option
      ARM: davinci: dm365-evm: Update for the new ASoC Kcofnig options
      ARM: omap2plus_defconfig: Update the audio options
      ARM: omap1_defconfig: Do not select ASoC by default
      ARM: davinci_all_defconfig: Update the audio options
      ASoC: ti: Kconfig: Remove the deprecated options

Pierre-Louis Bossart (16):
      ASoC: acpi: define common interface for machine driver configuration
      ASoC: Intel: use standard interface for Hdaudio machine driver
      ASoC: Intel: use standard interface for Atom machine drivers
      ASoC: Intel: boards: fix Skylake typo
      ASoC: Intel: remove GFP_ATOMIC, use GFP_KERNEL
      ASoC: Intel: common: add quirk for APL RVP boards
      ASoC: Intel: fix interface for Chromebook machine drivers
      ASoC: Intel: use platform_data for machine drivers
      ASoC: Intel: common: add ACPI matching tables for ICL
      ASoC: Intel: Skylake: Harden DSP detection with PCI class/subclass info
      ASoC: Intel: Skylake: stop probe if HDaudio capabilities don't exist
      ASoC: Intel: Skylake: remove useless tests on HDaudio capabilities
      ASoC: Intel: Skylake: add error logs on probe, remove dependency on NHLT
      ASoC: Intel: Skylake: Add more platform granularity
      ALSA: HD-Audio: SKL+: abort probe if DSP is present and Skylake driver selected
      ALSA: HD-Audio: SKL+: force HDaudio legacy or SKL+ driver selection

Richard Fitzgerald (1):
      ASoC: wm_adsp: Factor out common init code

Rob Herring (5):
      ASoC: Convert a few more users to using %pOFn instead of device_node.name
      ALSA: aoa: Use device_type helpers to access the node type
      ALSA: aoa: Remove direct OF name and type accesses
      ALSA: aoa: Use of_node_name_eq for node name comparisons
      ASoC: Use of_node_name_eq for node name comparisons

Rohit kumar (7):
      ASoC: sdm845: Update slot_width for Quaternary TDM port
      ASoC: sdm845: Add support for Secondary MI2S interface
      ASoC: core: Invoke pcm_new() for all DAI-link
      ASoC: qdsp6: dt-bindings: Add q6afe display_port dt binding
      ASoC: qdsp6: qdafe: add support for display_port_rx
      ASoC: qdsp6: q6afe-dai: add support to Display port RX dais
      ASoC: qdsp6: q6routing: add display_port_rx port routing

Ryan Lee (1):
      ASoC: max98373: Added max98373_reset for stable amp reset

Sameer Pujar (1):
      ALSA: hda/tegra: compatible string as shortname

Srinivas Kandagatla (5):
      ALSA: soc-compress: add support to snd_compr_set_runtime_buffer()
      ALSA: compress: make use of runtime buffer for copy
      ASoC: q6asm-dai: dt-bindings: Add support to compress dais
      ASoC: qdsp6: q6asm: add support to MP3 format
      ASoC: qdsp6: q6asm-dai: Add support to compress offload

Subhransu S. Prusty (2):
      ASoC: Intel: Skylake: Make DSP replies more human readable
      ASoC: Intel: Skylake: Add FW reply for MCLK/SCLK IPC

Takashi Iwai (18):
      ALSA: hda/ca0132 - Optimize for non-PCI configuration
      ALSA: control: Consolidate helpers for adding and replacing ctl elements
      leds: trigger: Introduce audio mute LED trigger
      platform/x86: dell-laptop: Add micmute LED trigger support
      platform/x86: thinkpad_acpi: Add audio mute LED classdev support
      ALSA: hda - Support led audio trigger
      platform/x86: dell-laptop: Drop superfluous exported function
      platform/x86: thinkpad_acpi: Drop superfluous exported function
      ALSA: hda - Add jack pointer and unsolicited event bits to callback
      ALSA: hda - Add jack button support
      ALSA: hda/intel: Refactoring PM code
      ALSA: hda: Refactor display power management
      ALSA: hda/intel: Drop superfluous AZX_DCAPS_I915_POWERWELL checks
      ALSA: hda/intel: Properly free the display power at error path
      ALSA: hda: Make snd_hdac_display_power() void function
      ASoC: hdac_hdmi: Add missing display power-off at driver removal
      ALSA: hda/hdmi: Always set display_power_control for Intel HSW+ codecs
      ASoC: Intel: Skylake: Add CFL-S support

Takashi Sakamoto (24):
      ALSA: oxfw: add support for APOGEE duet FireWire
      ALSA: firewire-tascam: pick up data of state from tx isochronous pakcets
      ALSA: firewire-tascam: add new hwdep ioctl command to get state image
      ALSA: firewire-tascam: queue events for change of control surface
      ALSA: firewire-tascam: apply small refactoring to handle several type of event for hwdep interface
      ALSA: firewire-tascam: notify events of change of state for userspace applications
      ALSA: fireface: share some registers for status of clock synchronization
      ALSA: fireface: share status and configuration dump
      ALSA: fireface: share helper function to get current sampling rate and clock source
      ALSA: fireface: add support for second optical interface for ADAT stream
      ALSA: fireface: share register for async transaction of MIDI messages
      ALSA: fireface: add driver data for register for MIDI high address
      ALSA: fireface: localize a handler for MIDI messages on tx transaction
      ALSA: fireface: add support for Fireface 800 with MIDI functionality only
      ALSA: firewire-lib: fix wrong handling payload_length as payload_quadlet
      ALSA: firewire-lib: fix wrong assignment for 'out_packet_without_header' tracepoint
      ALSA: firewire-lib: use the same print format for 'without_header' tracepoints
      ALSA: fireface: fix for state to fetch PCM frames
      ALSA: fireface: share helper function to switch fetching mode
      ALSA: fireface: code refactoring to handle multiplier mode
      ALSA: fireface: allocate isochronous resources in mode-specific implementation
      ALSA: fireface: add support for packet streaming on Fireface 800
      ALSA: fireface: code refactoring to handle model-specific registers
      ALSA: bebob: fix model-id of unit for Apogee Ensemble

Thierry Reding (2):
      ALSA: hda/tegra - Probe up to 8 codecs
      ALSA: hda/hdmi - Add Tegra186 and Tegra194 support

Vasily Khoruzhick (2):
      ASoC: dt-bindings: add regulator property to simple amplifier
      ASoC: simple-amplifier: add VCC regulator widget

Vijendar Mukunda (11):
      ASoC: amd: create ACP3x PCM platform device
      ASoC: amd: add ACP3x PCM platform driver
      ASoC: amd: Interrupt handler changes for ACP3x DMA driver
      ASoC: amd: add acp3x pcm driver dma ops
      ASoC: amd: add acp3x i2s ops
      ASoC: amd: add acp3x tdm mode support
      ASoC: amd: add acp3x runtime pm ops
      ASoC: amd: add acp3x system resume pm op
      ASoC: amd: enable acp3x drivers build
      ASoC: amd: Fixed build errors
      ASoC: amd: Switch to SPDX identifier

Wandrille RONCE (1):
      ALSA: hda/realtek: Enable audio jacks of ASUS UX391UA with ALC294

Wei Yongjun (1):
      ASoC: stm32: sai: fix invalid use of sizeof in stm32_sai_add_mclk_provider()

Yangtao Li (2):
      ASoC: nau8825: remove unnecessary unlikely()
      ASoC: fsl_ssi: Change to use DEFINE_SHOW_ATTRIBUTE macro

Young_X (1):
      ASoC: au8540: use 64-bit arithmetic instead of 32-bit

Yu Zhao (2):
      ASoC: use DMA addr rather than CPU pa for acp_audio_dma
      ASoC: use dma_ops of parent device for acp_audio_dma

YueHaibing (1):
      ASoC: amd: remove set but not used variable 'dma_buffer'

Zhuohao Lee (1):
      ASoC: Intel: kbl_da7219_max98927: fix the audio jack button remapping

---
 Documentation/devicetree/bindings/sound/ak4104.txt |    4 +-
 Documentation/devicetree/bindings/sound/ak4118.txt |   22 +
 .../bindings/sound/amlogic,axg-spdifin.txt         |   22 +
 .../devicetree/bindings/sound/audio-graph-card.txt |  205 ++++
 .../bindings/sound/audio-graph-scu-card.txt        |    4 +-
 Documentation/devicetree/bindings/sound/cs4270.txt |    4 +-
 .../bindings/sound/davinci-mcasp-audio.txt         |    5 +
 Documentation/devicetree/bindings/sound/dmic.txt   |    2 +
 .../devicetree/bindings/sound/fsl-sai.txt          |    8 +-
 .../devicetree/bindings/sound/omap-mcpdm.txt       |   10 +
 .../devicetree/bindings/sound/pcm3060.txt          |    6 +
 .../devicetree/bindings/sound/qcom,q6asm.txt       |   27 +
 .../devicetree/bindings/sound/renesas,rsnd.txt     |  395 ++++---
 Documentation/devicetree/bindings/sound/rt5631.txt |    4 +-
 Documentation/devicetree/bindings/sound/rt5663.txt |    6 +
 .../devicetree/bindings/sound/simple-amplifier.txt |    5 +
 .../devicetree/bindings/sound/simple-card.txt      |  137 +++
 .../devicetree/bindings/sound/simple-scu-card.txt  |    2 +-
 .../bindings/sound/sun50i-codec-analog.txt         |    2 +
 .../devicetree/bindings/sound/xlnx,i2s.txt         |   28 +
 MAINTAINERS                                        |   18 +-
 arch/arm/configs/davinci_all_defconfig             |    5 +-
 arch/arm/configs/omap1_defconfig                   |    2 -
 arch/arm/configs/omap2plus_defconfig               |   14 +-
 arch/arm/mach-davinci/board-dm365-evm.c            |    4 +-
 arch/arm/mach-omap1/Makefile                       |    2 +-
 arch/arm/mach-omap2/Makefile                       |    2 +-
 arch/arm/mach-omap2/pdata-quirks.c                 |    4 +-
 drivers/leds/trigger/Kconfig                       |    7 +
 drivers/leds/trigger/Makefile                      |    1 +
 drivers/leds/trigger/ledtrig-audio.c               |   44 +
 drivers/platform/x86/Kconfig                       |   21 +
 drivers/platform/x86/Makefile                      |    1 +
 drivers/platform/x86/dell-laptop.c                 |   27 +-
 drivers/platform/x86/huawei-wmi.c                  |  208 ++++
 drivers/platform/x86/thinkpad_acpi.c               |   67 +-
 include/dt-bindings/sound/qcom,q6afe.h             |    1 +
 include/linux/dell-led.h                           |    7 -
 include/linux/leds.h                               |   20 +
 include/linux/platform_data/davinci_asp.h          |    1 +
 include/linux/thinkpad_acpi.h                      |   16 -
 include/sound/compress_driver.h                    |   19 +
 include/sound/hda_codec.h                          |    1 +
 include/sound/hda_component.h                      |   11 +-
 include/sound/hdaudio.h                            |   14 +-
 include/sound/simple_card_utils.h                  |    6 +-
 include/sound/soc-acpi-intel-match.h               |    1 +
 include/sound/soc-acpi.h                           |   15 +
 include/sound/soc.h                                |   14 +-
 include/uapi/sound/firewire.h                      |   20 +
 sound/aoa/fabrics/layout.c                         |    6 +-
 sound/aoa/soundbus/core.c                          |    4 +-
 sound/aoa/soundbus/i2sbus/core.c                   |    6 +-
 sound/aoa/soundbus/sysfs.c                         |   34 +-
 sound/core/compress_offload.c                      |   18 +-
 sound/core/control.c                               |  123 +--
 sound/core/pcm.c                                   |    2 +
 sound/firewire/Kconfig                             |    2 +
 sound/firewire/amdtp-stream-trace.h                |    4 +-
 sound/firewire/amdtp-stream.c                      |    4 +-
 sound/firewire/bebob/bebob.c                       |    2 +-
 sound/firewire/fireface/Makefile                   |    3 +-
 sound/firewire/fireface/ff-pcm.c                   |   35 +-
 sound/firewire/fireface/ff-proc.c                  |  193 +++-
 sound/firewire/fireface/ff-protocol-ff400.c        |  341 ++----
 sound/firewire/fireface/ff-protocol-ff800.c        |  143 +++
 sound/firewire/fireface/ff-stream.c                |  126 ++-
 sound/firewire/fireface/ff-transaction.c           |  157 +--
 sound/firewire/fireface/ff.c                       |   25 +-
 sound/firewire/fireface/ff.h                       |   42 +-
 sound/firewire/oxfw/oxfw.c                         |    8 +
 sound/firewire/tascam/amdtp-tascam.c               |   51 +-
 sound/firewire/tascam/tascam-hwdep.c               |  115 +-
 sound/firewire/tascam/tascam.h                     |    9 +
 sound/hda/hdac_bus.c                               |    7 +-
 sound/hda/hdac_component.c                         |   39 +-
 sound/hda/hdac_device.c                            |   17 -
 sound/pci/asihpi/asihpi.c                          |    2 +-
 sound/pci/emu10k1/emufx.c                          |    5 +
 sound/pci/hda/Kconfig                              |   62 ++
 sound/pci/hda/dell_wmi_helper.c                    |   48 -
 sound/pci/hda/hda_codec.c                          |   16 +-
 sound/pci/hda/hda_controller.c                     |   11 -
 sound/pci/hda/hda_controller.h                     |    8 +-
 sound/pci/hda/hda_generic.c                        |   31 +
 sound/pci/hda/hda_generic.h                        |    2 +
 sound/pci/hda/hda_intel.c                          |  274 +++--
 sound/pci/hda/hda_jack.c                           |   56 +-
 sound/pci/hda/hda_jack.h                           |   12 +-
 sound/pci/hda/hda_tegra.c                          |   22 +-
 sound/pci/hda/patch_ca0132.c                       |  207 ++--
 sound/pci/hda/patch_conexant.c                     |    1 +
 sound/pci/hda/patch_hdmi.c                         |   14 +-
 sound/pci/hda/patch_realtek.c                      |  106 +-
 sound/pci/hda/thinkpad_helper.c                    |   43 +-
 sound/pci/rme9652/hdsp.c                           |   10 +-
 sound/ppc/pmac.c                                   |    4 +-
 sound/ppc/tumbler.c                                |    4 +-
 sound/soc/Kconfig                                  |    4 +-
 sound/soc/Makefile                                 |    4 +-
 sound/soc/amd/Kconfig                              |    6 +
 sound/soc/amd/Makefile                             |    1 +
 sound/soc/amd/acp-da7219-max98357a.c               |    2 +-
 sound/soc/amd/acp-pcm-dma.c                        |   22 +-
 sound/soc/amd/acp.h                                |    2 +-
 sound/soc/amd/raven/Makefile                       |    6 +
 sound/soc/amd/raven/acp3x-pcm-dma.c                |  777 ++++++++++++++
 sound/soc/amd/raven/acp3x.h                        |   58 +
 sound/soc/amd/raven/chip_offset_byte.h             |  639 +++++++++++
 sound/soc/amd/raven/pci-acp3x.c                    |  156 +++
 sound/soc/codecs/Kconfig                           |    6 +
 sound/soc/codecs/Makefile                          |    2 +
 sound/soc/codecs/ak4104.c                          |   22 +-
 sound/soc/codecs/ak4118.c                          |  438 ++++++++
 sound/soc/codecs/ak4458.c                          |    2 +-
 sound/soc/codecs/ak5558.c                          |   19 +-
 sound/soc/codecs/cs4270.c                          |   23 +-
 sound/soc/codecs/dmic.c                            |   40 +
 sound/soc/codecs/hdac_hda.c                        |    2 +-
 sound/soc/codecs/hdac_hdmi.c                       |   87 +-
 sound/soc/codecs/max98373.c                        |   35 +-
 sound/soc/codecs/max9867.c                         |  505 ++++-----
 sound/soc/codecs/max9867.h                         |   41 +-
 sound/soc/codecs/nau8540.c                         |    2 +-
 sound/soc/codecs/nau8822.c                         |   26 +-
 sound/soc/codecs/nau8822.h                         |    9 +-
 sound/soc/codecs/nau8825.c                         |    4 +-
 sound/soc/codecs/pcm3060.c                         |   28 +-
 sound/soc/codecs/pcm3060.h                         |    3 +
 sound/soc/codecs/pcm3168a.c                        |   40 +-
 sound/soc/codecs/pcm512x.c                         |  121 ++-
 sound/soc/codecs/pcm512x.h                         |    2 +
 sound/soc/codecs/rt5660.c                          |    1 +
 sound/soc/codecs/rt5663.c                          |   75 +-
 sound/soc/codecs/simple-amplifier.c                |    4 +
 sound/soc/codecs/tas6424.c                         |    2 +-
 sound/soc/codecs/tlv320aic31xx.c                   |    2 +-
 sound/soc/codecs/tlv320aic3x.c                     |   10 +
 sound/soc/codecs/tlv320dac33.c                     |    2 +-
 sound/soc/codecs/wm8998.c                          |    2 +-
 sound/soc/codecs/wm9705.c                          |   10 +-
 sound/soc/codecs/wm9712.c                          |   10 +-
 sound/soc/codecs/wm9713.c                          |   10 +-
 sound/soc/codecs/wm_adsp.c                         |   14 +-
 sound/soc/davinci/Kconfig                          |  106 --
 sound/soc/davinci/Makefile                         |   16 -
 sound/soc/fsl/Kconfig                              |    2 +-
 sound/soc/fsl/fsl-asoc-card.c                      |    6 +-
 sound/soc/fsl/fsl_ssi_dbg.c                        |   14 +-
 sound/soc/generic/Kconfig                          |    4 +-
 sound/soc/generic/audio-graph-card.c               |  465 +++++++--
 sound/soc/generic/audio-graph-scu-card.c           |  262 +++--
 sound/soc/generic/simple-card-utils.c              |   45 +-
 sound/soc/generic/simple-card.c                    |  402 +++++--
 sound/soc/generic/simple-scu-card.c                |  264 +++--
 sound/soc/intel/Kconfig                            |   79 +-
 sound/soc/intel/atom/sst/sst_acpi.c                |    4 +
 sound/soc/intel/atom/sst/sst_loader.c              |    8 +-
 sound/soc/intel/atom/sst/sst_pvt.c                 |    4 +-
 sound/soc/intel/boards/Kconfig                     |   26 +-
 sound/soc/intel/boards/Makefile                    |    2 +
 sound/soc/intel/boards/bytcr_rt5640.c              |   33 +-
 sound/soc/intel/boards/bytcr_rt5651.c              |    6 +-
 sound/soc/intel/boards/cht_bsw_max98090_ti.c       |   14 +
 sound/soc/intel/boards/cht_bsw_rt5645.c            |    6 +-
 sound/soc/intel/boards/cht_bsw_rt5672.c            |    2 +-
 sound/soc/intel/boards/glk_rt5682_max98357a.c      |    2 +-
 sound/soc/intel/boards/kbl_da7219_max98927.c       |   14 +-
 sound/soc/intel/boards/kbl_rt5660.c                |  543 ++++++++++
 sound/soc/intel/boards/kbl_rt5663_max98927.c       |   14 +-
 .../soc/intel/boards/kbl_rt5663_rt5514_max98927.c  |   10 +-
 sound/soc/intel/boards/skl_hda_dsp_generic.c       |   22 +-
 sound/soc/intel/boards/skl_nau88l25_max98357a.c    |   14 +-
 sound/soc/intel/boards/skl_nau88l25_ssm4567.c      |   14 +-
 sound/soc/intel/common/Makefile                    |    2 +-
 sound/soc/intel/common/soc-acpi-intel-bxt-match.c  |   36 +
 sound/soc/intel/common/soc-acpi-intel-icl-match.c  |   32 +
 sound/soc/intel/common/soc-acpi-intel-kbl-match.c  |   10 +
 sound/soc/intel/skylake/skl-messages.c             |    8 +
 sound/soc/intel/skylake/skl-nhlt.c                 |    3 +
 sound/soc/intel/skylake/skl-sst-ipc.c              |   50 +-
 sound/soc/intel/skylake/skl.c                      |  202 ++--
 sound/soc/intel/skylake/skl.h                      |    3 -
 sound/soc/mediatek/mt6797/mt6797-afe-pcm.c         |    2 +-
 sound/soc/mediatek/mt8173/mt8173-afe-pcm.c         |    2 +-
 sound/soc/meson/Kconfig                            |    9 +-
 sound/soc/meson/Makefile                           |    2 +
 sound/soc/meson/axg-fifo.h                         |    3 +-
 sound/soc/meson/axg-spdifin.c                      |  521 +++++++++
 sound/soc/meson/axg-toddr.c                        |   15 +-
 sound/soc/omap/Kconfig                             |  129 ---
 sound/soc/omap/Makefile                            |   32 -
 sound/soc/omap/am3517evm.c                         |  141 ---
 sound/soc/omap/mcbsp.c                             | 1104 --------------------
 sound/soc/pxa/Kconfig                              |   26 +-
 sound/soc/pxa/Makefile                             |    1 -
 sound/soc/pxa/raumfeld.c                           |  318 ------
 sound/soc/qcom/Kconfig                             |    2 +
 sound/soc/qcom/lpass-platform.c                    |    2 +-
 sound/soc/qcom/qdsp6/q6afe-dai.c                   |   30 +-
 sound/soc/qcom/qdsp6/q6afe.c                       |    4 +
 sound/soc/qcom/qdsp6/q6asm-dai.c                   |  372 ++++++-
 sound/soc/qcom/qdsp6/q6asm.c                       |    5 +
 sound/soc/qcom/qdsp6/q6routing.c                   |    9 +
 sound/soc/qcom/sdm845.c                            |  186 +++-
 sound/soc/sh/rcar/adg.c                            |   38 +-
 sound/soc/sh/rcar/cmd.c                            |   11 +-
 sound/soc/sh/rcar/core.c                           |  256 ++++-
 sound/soc/sh/rcar/ctu.c                            |  138 +--
 sound/soc/sh/rcar/dma.c                            |   84 +-
 sound/soc/sh/rcar/dvc.c                            |   21 +-
 sound/soc/sh/rcar/gen.c                            |   49 +-
 sound/soc/sh/rcar/mix.c                            |    3 +-
 sound/soc/sh/rcar/rsnd.h                           |  382 +++----
 sound/soc/sh/rcar/src.c                            |   67 +-
 sound/soc/sh/rcar/ssi.c                            |  269 ++---
 sound/soc/sh/rcar/ssiu.c                           |  300 ++++--
 sound/soc/soc-core.c                               |   13 +-
 sound/soc/stm/stm32_sai.c                          |    8 +-
 sound/soc/stm/stm32_sai_sub.c                      |    3 +-
 sound/soc/sunxi/sun50i-codec-analog.c              |    2 +
 sound/soc/ti/Kconfig                               |  209 ++++
 sound/soc/ti/Makefile                              |   44 +
 sound/soc/{omap => ti}/ams-delta.c                 |    0
 sound/soc/{davinci => ti}/davinci-evm.c            |    4 +-
 sound/soc/{davinci => ti}/davinci-i2s.c            |    0
 sound/soc/{davinci => ti}/davinci-i2s.h            |    0
 sound/soc/{davinci => ti}/davinci-mcasp.c          |  123 ++-
 sound/soc/{davinci => ti}/davinci-mcasp.h          |   30 +-
 sound/soc/{davinci => ti}/davinci-vcif.c           |    0
 sound/soc/{davinci => ti}/edma-pcm.c               |    0
 sound/soc/{davinci => ti}/edma-pcm.h               |    4 +-
 sound/soc/{omap => ti}/n810.c                      |    0
 sound/soc/{omap => ti}/omap-abe-twl6040.c          |    0
 sound/soc/{omap => ti}/omap-dmic.c                 |    0
 sound/soc/{omap => ti}/omap-dmic.h                 |    0
 .../soc/{omap/omap-hdmi-audio.c => ti/omap-hdmi.c} |    0
 sound/soc/{omap/mcbsp.h => ti/omap-mcbsp-priv.h}   |  126 +--
 sound/soc/ti/omap-mcbsp-st.c                       |  516 +++++++++
 sound/soc/{omap => ti}/omap-mcbsp.c                |  857 ++++++++++++---
 sound/soc/{omap => ti}/omap-mcbsp.h                |    8 +-
 sound/soc/{omap => ti}/omap-mcpdm.c                |    0
 sound/soc/{omap => ti}/omap-mcpdm.h                |    0
 sound/soc/{omap => ti}/omap-twl4030.c              |    0
 sound/soc/{omap => ti}/omap3pandora.c              |    0
 sound/soc/{omap => ti}/osk5912.c                   |    0
 sound/soc/{omap => ti}/rx51.c                      |    0
 sound/soc/{omap => ti}/sdma-pcm.c                  |    0
 sound/soc/{omap => ti}/sdma-pcm.h                  |    4 +-
 sound/soc/xilinx/Kconfig                           |    8 +
 sound/soc/xilinx/Makefile                          |    2 +
 sound/soc/xilinx/xlnx_i2s.c                        |  185 ++++
 sound/synth/emux/emux_hwdep.c                      |    7 +-
 sound/usb/quirks.c                                 |  129 ++-
 254 files changed, 11685 insertions(+), 5080 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/sound/ak4118.txt
 create mode 100644 Documentation/devicetree/bindings/sound/amlogic,axg-spdifin.txt
 create mode 100644 Documentation/devicetree/bindings/sound/xlnx,i2s.txt
 create mode 100644 drivers/leds/trigger/ledtrig-audio.c
 create mode 100644 drivers/platform/x86/huawei-wmi.c
 delete mode 100644 include/linux/dell-led.h
 delete mode 100644 include/linux/thinkpad_acpi.h
 create mode 100644 sound/firewire/fireface/ff-protocol-ff800.c
 delete mode 100644 sound/pci/hda/dell_wmi_helper.c
 create mode 100644 sound/soc/amd/raven/Makefile
 create mode 100644 sound/soc/amd/raven/acp3x-pcm-dma.c
 create mode 100644 sound/soc/amd/raven/acp3x.h
 create mode 100644 sound/soc/amd/raven/chip_offset_byte.h
 create mode 100644 sound/soc/amd/raven/pci-acp3x.c
 create mode 100644 sound/soc/codecs/ak4118.c
 delete mode 100644 sound/soc/davinci/Kconfig
 delete mode 100644 sound/soc/davinci/Makefile
 create mode 100644 sound/soc/intel/boards/kbl_rt5660.c
 create mode 100644 sound/soc/intel/common/soc-acpi-intel-icl-match.c
 create mode 100644 sound/soc/meson/axg-spdifin.c
 delete mode 100644 sound/soc/omap/Kconfig
 delete mode 100644 sound/soc/omap/Makefile
 delete mode 100644 sound/soc/omap/am3517evm.c
 delete mode 100644 sound/soc/omap/mcbsp.c
 delete mode 100644 sound/soc/pxa/raumfeld.c
 create mode 100644 sound/soc/ti/Kconfig
 create mode 100644 sound/soc/ti/Makefile
 rename sound/soc/{omap => ti}/ams-delta.c (100%)
 rename sound/soc/{davinci => ti}/davinci-evm.c (99%)
 rename sound/soc/{davinci => ti}/davinci-i2s.c (100%)
 rename sound/soc/{davinci => ti}/davinci-i2s.h (100%)
 rename sound/soc/{davinci => ti}/davinci-mcasp.c (94%)
 rename sound/soc/{davinci => ti}/davinci-mcasp.h (95%)
 rename sound/soc/{davinci => ti}/davinci-vcif.c (100%)
 rename sound/soc/{davinci => ti}/edma-pcm.c (100%)
 rename sound/soc/{davinci => ti}/edma-pcm.h (91%)
 rename sound/soc/{omap => ti}/n810.c (100%)
 rename sound/soc/{omap => ti}/omap-abe-twl6040.c (100%)
 rename sound/soc/{omap => ti}/omap-dmic.c (100%)
 rename sound/soc/{omap => ti}/omap-dmic.h (100%)
 rename sound/soc/{omap/omap-hdmi-audio.c => ti/omap-hdmi.c} (100%)
 rename sound/soc/{omap/mcbsp.h => ti/omap-mcbsp-priv.h} (70%)
 create mode 100644 sound/soc/ti/omap-mcbsp-st.c
 rename sound/soc/{omap => ti}/omap-mcbsp.c (51%)
 rename sound/soc/{omap => ti}/omap-mcbsp.h (92%)
 rename sound/soc/{omap => ti}/omap-mcpdm.c (100%)
 rename sound/soc/{omap => ti}/omap-mcpdm.h (100%)
 rename sound/soc/{omap => ti}/omap-twl4030.c (100%)
 rename sound/soc/{omap => ti}/omap3pandora.c (100%)
 rename sound/soc/{omap => ti}/osk5912.c (100%)
 rename sound/soc/{omap => ti}/rx51.c (100%)
 rename sound/soc/{omap => ti}/sdma-pcm.c (100%)
 rename sound/soc/{omap => ti}/sdma-pcm.h (85%)
 create mode 100644 sound/soc/xilinx/Kconfig
 create mode 100644 sound/soc/xilinx/Makefile
 create mode 100644 sound/soc/xilinx/xlnx_i2s.c


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [GIT PULL] sound updates for 4.21
  2018-12-20 15:38 [GIT PULL] sound updates for 4.21 Takashi Iwai
@ 2018-12-25 23:20 ` pr-tracker-bot
  2018-12-27  3:31 ` Linus Torvalds
  1 sibling, 0 replies; 18+ messages in thread
From: pr-tracker-bot @ 2018-12-25 23:20 UTC (permalink / raw)
  To: Takashi Iwai
  Cc: Linus Torvalds, Mark Brown, Liam Girdwood, Linux Kernel Mailing List

The pull request you sent on Thu, 20 Dec 2018 16:38:30 +0100:

> git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git tags/sound-4.21-rc1

has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/8e61e7b5c4de2bea534438bd7a008accd85492b0

Thank you!

-- 
Deet-doot-dot, I am a bot.
https://korg.wiki.kernel.org/userdoc/prtracker

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [GIT PULL] sound updates for 4.21
  2018-12-20 15:38 [GIT PULL] sound updates for 4.21 Takashi Iwai
  2018-12-25 23:20 ` pr-tracker-bot
@ 2018-12-27  3:31 ` Linus Torvalds
  2018-12-28 12:43   ` Ingo Molnar
  1 sibling, 1 reply; 18+ messages in thread
From: Linus Torvalds @ 2018-12-27  3:31 UTC (permalink / raw)
  To: Takashi Iwai, Pierre-Louis Bossart
  Cc: Mark Brown, Liam Girdwood, Linux Kernel Mailing List

On Thu, Dec 20, 2018 at 7:38 AM Takashi Iwai <tiwai@suse.de> wrote:
>
>   git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git tags/sound-4.21-rc1

Hmm.

It turns out that commit c337104b1a16 ("ALSA: HD-Audio: SKL+: abort
probe if DSP is present and Skylake driver selected") causes my laptop
(XPS13 9350) to no longer suspend.

The screen goes dark, but the power light never turns off. There's
nothing in the logs.

> Pierre-Louis Bossart (16):
>       ALSA: HD-Audio: SKL+: abort probe if DSP is present and Skylake driver selected

Sadly, that commit does not revert cleanly, since it's preparatory for
a lot of other changes.

Here's the lspci output:

  /sbin/lspci -s 0:1f.3 -vn
  00:1f.3 0403: 8086:9d70 (rev 21) (prog-if 80)
  Subsystem: 1028:0704
  Flags: bus master, fast devsel, latency 32, IRQ 16
  Memory at dc328000 (64-bit, non-prefetchable) [size=16K]
  Memory at dc300000 (64-bit, non-prefetchable) [size=64K]
  Capabilities: <access denied>
  Kernel driver in use: snd_soc_skl
  Kernel modules: snd_hda_intel, snd_soc_skl

and it's a bog-standard Intel i7-6560U laptop.

I have no real information, except that I bisected the (reliable)
behavior to this commit. Before that commit, suspend/resume works
fine. After that commit, suspend just hangs and leaves a dead machine.

            Linus

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [GIT PULL] sound updates for 4.21
  2018-12-27  3:31 ` Linus Torvalds
@ 2018-12-28 12:43   ` Ingo Molnar
  2018-12-28 17:07     ` Takashi Iwai
  0 siblings, 1 reply; 18+ messages in thread
From: Ingo Molnar @ 2018-12-28 12:43 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: Takashi Iwai, Pierre-Louis Bossart, Mark Brown, Liam Girdwood,
	Linux Kernel Mailing List


* Linus Torvalds <torvalds@linux-foundation.org> wrote:

> On Thu, Dec 20, 2018 at 7:38 AM Takashi Iwai <tiwai@suse.de> wrote:
> >
> >   git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git tags/sound-4.21-rc1
> 
> Hmm.
> 
> It turns out that commit c337104b1a16 ("ALSA: HD-Audio: SKL+: abort
> probe if DSP is present and Skylake driver selected") causes my laptop
> (XPS13 9350) to no longer suspend.

Just a wild guess, I can see two ways in which that commit could make a 
difference on your setup:

1)

If any of these is not set in your .config:

+       select SND_HDA_INTEL_DSP_DETECTION_SKL if SND_SOC_INTEL_SKL
+       select SND_HDA_INTEL_DSP_DETECTION_APL if SND_SOC_INTEL_APL
+       select SND_HDA_INTEL_DSP_DETECTION_KBL if SND_SOC_INTEL_KBL
+       select SND_HDA_INTEL_DSP_DETECTION_GLK if SND_SOC_INTEL_GLK
+       select SND_HDA_INTEL_DSP_DETECTION_CNL if SND_SOC_INTEL_CNL
+       select SND_HDA_INTEL_DSP_DETECTION_CFL if SND_SOC_INTEL_CFL

I.e. I'd enable all of the SND_SOC_INTEL_* options to cover this angle.

2)

There's the added logic of checking whether the DSP is enabled:

+       /* check if this driver can be used on SKL+ Intel platforms */
+       if ((pci_id->driver_data & AZX_DCAPS_INTEL_SHARED) &&
+           pci->class != 0x040300)
+               return -ENODEV;
+

if pci->class is not 0x040300 the driver could end up not detecting the 
device while previously it would.

That code goes through several transformations later on - but the hack 
below should make the commit an invariant. I think. Totally untested 
though.

Thanks,

	Ingo


==============>

 sound/pci/hda/hda_intel.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c
index e42cc2230977..f9e9c87f6d15 100644
--- a/sound/pci/hda/hda_intel.c
+++ b/sound/pci/hda/hda_intel.c
@@ -2056,7 +2056,7 @@ static int azx_probe(struct pci_dev *pci,
 	if (pci_id->driver_data & AZX_DCAPS_INTEL_SHARED) {
 		switch (skl_pci_binding) {
 		case SND_SKL_PCI_BIND_AUTO:
-			if (pci->class != 0x040300) {
+			if (0 && pci->class != 0x040300) {
 				dev_info(&pci->dev, "The DSP is enabled on this platform, aborting probe\n");
 				return -ENODEV;
 			}


^ permalink raw reply related	[flat|nested] 18+ messages in thread

* Re: [GIT PULL] sound updates for 4.21
  2018-12-28 12:43   ` Ingo Molnar
@ 2018-12-28 17:07     ` Takashi Iwai
  2018-12-28 19:04       ` Linus Torvalds
  0 siblings, 1 reply; 18+ messages in thread
From: Takashi Iwai @ 2018-12-28 17:07 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: Linus Torvalds, Takashi Iwai, Pierre-Louis Bossart, Mark Brown,
	Liam Girdwood, Linux Kernel Mailing List

On Fri, 28 Dec 2018 13:43:03 +0100,
Ingo Molnar wrote:
> 
> 
> * Linus Torvalds <torvalds@linux-foundation.org> wrote:
> 
> > On Thu, Dec 20, 2018 at 7:38 AM Takashi Iwai <tiwai@suse.de> wrote:
> > >
> > >   git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git tags/sound-4.21-rc1
> > 
> > Hmm.
> > 
> > It turns out that commit c337104b1a16 ("ALSA: HD-Audio: SKL+: abort
> > probe if DSP is present and Skylake driver selected") causes my laptop
> > (XPS13 9350) to no longer suspend.
> 
> Just a wild guess, I can see two ways in which that commit could make a 
> difference on your setup:
> 
> 1)
> 
> If any of these is not set in your .config:
> 
> +       select SND_HDA_INTEL_DSP_DETECTION_SKL if SND_SOC_INTEL_SKL
> +       select SND_HDA_INTEL_DSP_DETECTION_APL if SND_SOC_INTEL_APL
> +       select SND_HDA_INTEL_DSP_DETECTION_KBL if SND_SOC_INTEL_KBL
> +       select SND_HDA_INTEL_DSP_DETECTION_GLK if SND_SOC_INTEL_GLK
> +       select SND_HDA_INTEL_DSP_DETECTION_CNL if SND_SOC_INTEL_CNL
> +       select SND_HDA_INTEL_DSP_DETECTION_CFL if SND_SOC_INTEL_CFL
> 
> I.e. I'd enable all of the SND_SOC_INTEL_* options to cover this angle.
> 
> 2)
> 
> There's the added logic of checking whether the DSP is enabled:
> 
> +       /* check if this driver can be used on SKL+ Intel platforms */
> +       if ((pci_id->driver_data & AZX_DCAPS_INTEL_SHARED) &&
> +           pci->class != 0x040300)
> +               return -ENODEV;
> +
> 
> if pci->class is not 0x040300 the driver could end up not detecting the 
> device while previously it would.
> 
> That code goes through several transformations later on - but the hack 
> below should make the commit an invariant. I think. Totally untested 
> though.

Yes, Linus pointed out a similar "fix" to make things working again in
a later thread without Cc to ML.

The problem seems to be that this laptop doesn't work with ASoC Intel
SST driver now we're trying to bind when DSP is available.  From
heuristics, it's identified from PCI class number, but this doesn't
seem enough on some models, unfortunately.

And, the old behavior (bind with "legacy" HDA-Intel driver) should be
achieved simply by passing pci_binding=1 option to snd-hda-intel
module, i.e. a patch like below would be enough:

--- a/sound/pci/hda/hda_intel.c
+++ b/sound/pci/hda/hda_intel.c
@@ -172,7 +172,7 @@ module_param_array(beep_mode, bool, NULL, 0444);
 MODULE_PARM_DESC(beep_mode, "Select HDA Beep registration mode "
 			    "(0=off, 1=on) (default=1).");
 #endif
-static int skl_pci_binding;
+static int skl_pci_binding = 1;
 module_param_named(pci_binding, skl_pci_binding, int, 0444);
 MODULE_PARM_DESC(pci_binding, "PCI binding (0=auto, 1=only legacy, 2=only asoc");
 
===

Actually, there are two aspects wrt this problem:

1) Whether ASoC driver cannot work with these Dell machines at all

2) Whether we want to keep binding with the legacy HDA driver even if
   DSP is available

AFAIK, the problem seems specific to some Dell models (XPS13 or such),
and I thought Intel already tested with these laptops.  But maybe the
behavior differs depending on the model number or BIOS.  IIRC, XPS13
already showed a drastic change of the HD-audio binding by BIOS
upgrades in the past, too.  So (1) might be some machine-specific
fixes in the end.

But, even if (1) is fixed somehow, the user-visible behavior may be
slightly different from the earlier kernels (e.g. routing setup
required, etc), and this might annoy existing users.  That's the
question in (2).

If we prefer being conservative and keeping the binding with the
legacy HDA driver as-is, it'd be reasonable to provide (yet) another
Kconfig to choose the default option value above.

Or, we may add some blacklisting (e.g. via DMI matching) in HDA-Intel
driver side to skip the faulty PCI class check.

I'm not sure which solution we'll take in the end, but certainly it's
a bug that has to be fixed soonish.


thanks,

Takashi

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [GIT PULL] sound updates for 4.21
  2018-12-28 17:07     ` Takashi Iwai
@ 2018-12-28 19:04       ` Linus Torvalds
  2018-12-30  9:21         ` Takashi Iwai
  0 siblings, 1 reply; 18+ messages in thread
From: Linus Torvalds @ 2018-12-28 19:04 UTC (permalink / raw)
  To: Takashi Iwai
  Cc: Ingo Molnar, Pierre-Louis Bossart, Mark Brown, Liam Girdwood,
	Linux Kernel Mailing List

On Fri, Dec 28, 2018 at 9:07 AM Takashi Iwai <tiwai@suse.de> wrote:
>
> 1) Whether ASoC driver cannot work with these Dell machines at all

I'm willing to test patches.

Right now, the reason it fails to even load is that "codec_mask" is 0x0001.

And the skl_hda_dsp_generic.c code requires

        // This will be 1 for 0x0001
        codec_count = hweight_long(codec_mask);

        if (codec_count == 1 && codec_mask & IDISP_CODEC_MASK) {
           .. this is ok ..
        } else if (codec_count == 2 && codec_mask & IDISP_CODEC_MASK) {
           .. as is this ..
        } else {
           .. but here we return -EINVAL;
        }

and that basically requires that IDISP_CODEC_MASK be part of
codec_mask. Which it isn't (IDISP_CODEC_MASK is 0x4).

Anyway, as long as the ASoC driver refuses to touch this, the default
pretty much *has* to be the legacy PCI driver.

                Linus

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [GIT PULL] sound updates for 4.21
  2018-12-28 19:04       ` Linus Torvalds
@ 2018-12-30  9:21         ` Takashi Iwai
       [not found]           ` <82bb7f60-c3c2-4715-a0a0-f1f2a8b14c74@linux.intel.com>
  0 siblings, 1 reply; 18+ messages in thread
From: Takashi Iwai @ 2018-12-30  9:21 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: Takashi Iwai, Ingo Molnar, Pierre-Louis Bossart, Mark Brown,
	Liam Girdwood, Linux Kernel Mailing List

On Fri, 28 Dec 2018 20:04:48 +0100,
Linus Torvalds wrote:
> 
> On Fri, Dec 28, 2018 at 9:07 AM Takashi Iwai <tiwai@suse.de> wrote:
> >
> > 1) Whether ASoC driver cannot work with these Dell machines at all
> 
> I'm willing to test patches.
> 
> Right now, the reason it fails to even load is that "codec_mask" is 0x0001.
> 
> And the skl_hda_dsp_generic.c code requires
> 
>         // This will be 1 for 0x0001
>         codec_count = hweight_long(codec_mask);
> 
>         if (codec_count == 1 && codec_mask & IDISP_CODEC_MASK) {
>            .. this is ok ..
>         } else if (codec_count == 2 && codec_mask & IDISP_CODEC_MASK) {
>            .. as is this ..
>         } else {
>            .. but here we return -EINVAL;
>         }
> 
> and that basically requires that IDISP_CODEC_MASK be part of
> codec_mask. Which it isn't (IDISP_CODEC_MASK is 0x4).
> 
> Anyway, as long as the ASoC driver refuses to touch this, the default
> pretty much *has* to be the legacy PCI driver.

Thanks, the above seems to be the likely cause.

This is a good news and a bad news, actually.  The good news is that
we know the cause, and this can be detected earlier, too.  The bad
news is that the possible detection (the probe of codec mask) is done
in an async probe work in the legacy HDA driver, hence the PCI driver
probe() call cannot return -ENODEV for this.

And, it brings me a question: does the audio routing work without
iDISP at all?  The current code looks mandating the iDISP, and I
thought this is a core part of HD-audio routing on DSP.

Intel people, could you clarify this?


If iDISP is mandatory and really missing on these machines, we need
another way to identify such systems without codec mask checks.
Maybe DMI or such listing; ugly but should be still manageable since
the number of devices hitting the problem must be fairly low.

Or, an alternative is to let ASoC driver bind at first, e.g. by
changing the driver name from snd-soc-skl to snd-hda-asoc, and drop
the selective binding from snd-hda-intel, so that it'd work as
catch-all after binding with ASoC fails.

The above would work for the modules, but for built-in, we need to
rearrange the link order, too, supposedly.
(For the mixed case with built-in and module?  I don't know, maybe we
 may forgive us by the presence of module options to control the
 binding.)


BTW, one thing I'd really like to avoid is to rearrange the probe
procedure of the legacy HDA driver (so that we can get codec_mask
during pci probe() call).  The async probe is the result of the many
struggles with the various and complex configurations.   Moving the
codec probe to the beginning isn't trivial and quite risky to break
something else.


thanks,

Takashi

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [GIT PULL] sound updates for 4.21
       [not found]           ` <82bb7f60-c3c2-4715-a0a0-f1f2a8b14c74@linux.intel.com>
@ 2018-12-31  0:19             ` Linus Torvalds
  2018-12-31  0:54               ` Pierre-Louis Bossart
  2018-12-31  8:11             ` Takashi Iwai
  1 sibling, 1 reply; 18+ messages in thread
From: Linus Torvalds @ 2018-12-31  0:19 UTC (permalink / raw)
  To: Pierre-Louis Bossart
  Cc: Takashi Iwai, Ingo Molnar, Mark Brown, Liam Girdwood,
	Linux Kernel Mailing List

On Sun, Dec 30, 2018 at 3:18 PM Pierre-Louis Bossart
<pierre-louis.bossart@linux.intel.com> wrote:
>
> The KabyLake Dell XPS13 was initially used for the ASoC driver for
> HDaudio, so there is no known hardware-related reason why this problem
> happens.

Mine isn't the Kabylake one, it's the older XPS13 9350 (2015 - Skylake) one.

> The simplest way to make the problem go away is to force the legacy
> driver to bind with the (untested) diff below.

That diff is wrong, since it changes the meaning of the binding
numbers, but then the module interface is wrong:

   static int skl_pci_binding;
   module_param_named(pci_binding, skl_pci_binding, int, 0444);
   MODULE_PARM_DESC(pci_binding, "PCI binding (0=auto, 1=only legacy,
2=only asoc");

so I think Takashi's patch to just change the default value of
skl_pci_binding is the better one.

                Linus

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [GIT PULL] sound updates for 4.21
  2018-12-31  0:19             ` Linus Torvalds
@ 2018-12-31  0:54               ` Pierre-Louis Bossart
  0 siblings, 0 replies; 18+ messages in thread
From: Pierre-Louis Bossart @ 2018-12-31  0:54 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: Takashi Iwai, Ingo Molnar, Mark Brown, Liam Girdwood,
	Linux Kernel Mailing List


On 12/30/18 6:19 PM, Linus Torvalds wrote:
> On Sun, Dec 30, 2018 at 3:18 PM Pierre-Louis Bossart
> <pierre-louis.bossart@linux.intel.com> wrote:
>> The KabyLake Dell XPS13 was initially used for the ASoC driver for
>> HDaudio, so there is no known hardware-related reason why this problem
>> happens.
> Mine isn't the Kabylake one, it's the older XPS13 9350 (2015 - Skylake) one.
ok. Skylake and Kabylake are nearly identical in terms of audio support 
so the difference should be minor. I'll try to get a Skylake version so 
that this never happens again.
>
>> The simplest way to make the problem go away is to force the legacy
>> driver to bind with the (untested) diff below.
> That diff is wrong, since it changes the meaning of the binding
> numbers, but then the module interface is wrong:
>
>     static int skl_pci_binding;
>     module_param_named(pci_binding, skl_pci_binding, int, 0444);
>     MODULE_PARM_DESC(pci_binding, "PCI binding (0=auto, 1=only legacy,
> 2=only asoc");
>
> so I think Takashi's patch to just change the default value of
> skl_pci_binding is the better one.

You're right, this description should be changed as well to align the 
text to enum values, but the idea is identical to Takashi's: use the 
HDaudio legacy by default.

-Pierre


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [GIT PULL] sound updates for 4.21
       [not found]           ` <82bb7f60-c3c2-4715-a0a0-f1f2a8b14c74@linux.intel.com>
  2018-12-31  0:19             ` Linus Torvalds
@ 2018-12-31  8:11             ` Takashi Iwai
  2018-12-31 10:24               ` Pierre-Louis Bossart
  2018-12-31 13:43               ` Azat Khuzhin
  1 sibling, 2 replies; 18+ messages in thread
From: Takashi Iwai @ 2018-12-31  8:11 UTC (permalink / raw)
  To: Pierre-Louis Bossart
  Cc: Takashi Iwai, Linus Torvalds, Ingo Molnar, Mark Brown,
	Liam Girdwood, Linux Kernel Mailing List

On Mon, 31 Dec 2018 00:17:58 +0100,
Pierre-Louis Bossart wrote:
> 
> > BTW, one thing I'd really like to avoid is to rearrange the probe
> > procedure of the legacy HDA driver (so that we can get codec_mask
> > during pci probe() call).  The async probe is the result of the many
> > struggles with the various and complex configurations.   Moving the
> > codec probe to the beginning isn't trivial and quite risky to break
> > something else.
> Agree, mucking with the probe isn't something we should look into,
> especially with this Skylake driver being eventually deprecated once
> SOF is at feature parity. This set of autodetection patches for 4.21
> was really targeting CFL/WHL+ devices, where the DSP usage is
> mandatory when directly-attached digital microphones are used. For
> Skylake and kabylake using the legacy by default is just fine.

OK, then how about applying the PCI class check only for such ones
like the patch below?  The macro isn't sexy and can be replaced with
another way, but you have an idea.


thanks,

Takashi

--- a/sound/pci/hda/hda_intel.c
+++ b/sound/pci/hda/hda_intel.c
@@ -380,6 +380,13 @@ enum {
 #define IS_BXT(pci) ((pci)->vendor == 0x8086 && (pci)->device == 0x5a98)
 #define IS_CFL(pci) ((pci)->vendor == 0x8086 && (pci)->device == 0xa348)
 
+/* CFL and later models, preferring ASoC when DSP is available */
+#define IS_CFL_PLUS(pci)	     \
+	((pci)->vendor == 0x8086 &&  \
+	 ((pci)->device == 0xa348 || \
+	  (pci)->device == 0x9dc8 || \
+	  (pci)->device == 0x34c8))
+
 static char *driver_short_names[] = {
 	[AZX_DRIVER_ICH] = "HDA Intel",
 	[AZX_DRIVER_PCH] = "HDA Intel PCH",
@@ -2056,7 +2063,7 @@ static int azx_probe(struct pci_dev *pci,
 	if (pci_id->driver_data & AZX_DCAPS_INTEL_SHARED) {
 		switch (skl_pci_binding) {
 		case SND_SKL_PCI_BIND_AUTO:
-			if (pci->class != 0x040300) {
+			if (pci->class != 0x040300 && IS_CFL_PLUS(pci)) {
 				dev_info(&pci->dev, "The DSP is enabled on this platform, aborting probe\n");
 				return -ENODEV;
 			}



^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [GIT PULL] sound updates for 4.21
  2018-12-31  8:11             ` Takashi Iwai
@ 2018-12-31 10:24               ` Pierre-Louis Bossart
  2018-12-31 18:15                 ` Takashi Iwai
  2018-12-31 13:43               ` Azat Khuzhin
  1 sibling, 1 reply; 18+ messages in thread
From: Pierre-Louis Bossart @ 2018-12-31 10:24 UTC (permalink / raw)
  To: Takashi Iwai
  Cc: Linus Torvalds, Ingo Molnar, Mark Brown, Liam Girdwood,
	Linux Kernel Mailing List


On 12/31/18 2:11 AM, Takashi Iwai wrote:
> On Mon, 31 Dec 2018 00:17:58 +0100,
> Pierre-Louis Bossart wrote:
>>> BTW, one thing I'd really like to avoid is to rearrange the probe
>>> procedure of the legacy HDA driver (so that we can get codec_mask
>>> during pci probe() call).  The async probe is the result of the many
>>> struggles with the various and complex configurations.   Moving the
>>> codec probe to the beginning isn't trivial and quite risky to break
>>> something else.
>> Agree, mucking with the probe isn't something we should look into,
>> especially with this Skylake driver being eventually deprecated once
>> SOF is at feature parity. This set of autodetection patches for 4.21
>> was really targeting CFL/WHL+ devices, where the DSP usage is
>> mandatory when directly-attached digital microphones are used. For
>> Skylake and kabylake using the legacy by default is just fine.
> OK, then how about applying the PCI class check only for such ones
> like the patch below?  The macro isn't sexy and can be replaced with
> another way, but you have an idea.

The two patches which added the PCI class checks were supposed to be a 
simple bullet-proof way of detecting the DSP presence and solving a 
problem of coexistence between two drivers. At this point if we start 
adding quirks and still have unclear issues with HDMI support which 
isn't different for CFL+, it may be wiser to revert them to let the 4.21 
merge window progress? It's frustrating but I'd rather solve this 
problem the right way than with multiple iterations rushed because of 
the merge window timing.

>
>
> thanks,
>
> Takashi
>
> --- a/sound/pci/hda/hda_intel.c
> +++ b/sound/pci/hda/hda_intel.c
> @@ -380,6 +380,13 @@ enum {
>   #define IS_BXT(pci) ((pci)->vendor == 0x8086 && (pci)->device == 0x5a98)
>   #define IS_CFL(pci) ((pci)->vendor == 0x8086 && (pci)->device == 0xa348)
>   
> +/* CFL and later models, preferring ASoC when DSP is available */
> +#define IS_CFL_PLUS(pci)	     \
> +	((pci)->vendor == 0x8086 &&  \
> +	 ((pci)->device == 0xa348 || \
> +	  (pci)->device == 0x9dc8 || \
> +	  (pci)->device == 0x34c8))
> +
>   static char *driver_short_names[] = {
>   	[AZX_DRIVER_ICH] = "HDA Intel",
>   	[AZX_DRIVER_PCH] = "HDA Intel PCH",
> @@ -2056,7 +2063,7 @@ static int azx_probe(struct pci_dev *pci,
>   	if (pci_id->driver_data & AZX_DCAPS_INTEL_SHARED) {
>   		switch (skl_pci_binding) {
>   		case SND_SKL_PCI_BIND_AUTO:
> -			if (pci->class != 0x040300) {
> +			if (pci->class != 0x040300 && IS_CFL_PLUS(pci)) {
>   				dev_info(&pci->dev, "The DSP is enabled on this platform, aborting probe\n");
>   				return -ENODEV;
>   			}
>
>

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [GIT PULL] sound updates for 4.21
  2018-12-31  8:11             ` Takashi Iwai
  2018-12-31 10:24               ` Pierre-Louis Bossart
@ 2018-12-31 13:43               ` Azat Khuzhin
  2018-12-31 15:22                 ` Pierre-Louis Bossart
  1 sibling, 1 reply; 18+ messages in thread
From: Azat Khuzhin @ 2018-12-31 13:43 UTC (permalink / raw)
  To: Takashi Iwai
  Cc: Pierre-Louis Bossart, Linus Torvalds, Ingo Molnar, Mark Brown,
	Liam Girdwood, Linux Kernel Mailing List

> +/* CFL and later models, preferring ASoC when DSP is available */
> +#define IS_CFL_PLUS(pci)            \
> +       ((pci)->vendor == 0x8086 &&  \
> +        ((pci)->device == 0xa348 || \
> +         (pci)->device == 0x9dc8 || \
> +         (pci)->device == 0x34c8))
> +
>  static char *driver_short_names[] = {
>         [AZX_DRIVER_ICH] = "HDA Intel",
>         [AZX_DRIVER_PCH] = "HDA Intel PCH",
> @@ -2056,7 +2063,7 @@ static int azx_probe(struct pci_dev *pci,
>         if (pci_id->driver_data & AZX_DCAPS_INTEL_SHARED) {
>                 switch (skl_pci_binding) {
>                 case SND_SKL_PCI_BIND_AUTO:
> -                       if (pci->class != 0x040300) {
> +                       if (pci->class != 0x040300 && IS_CFL_PLUS(pci)) {
>                                 dev_info(&pci->dev, "The DSP is enabled on this platform, aborting probe\n");
>                                 return -ENODEV;
>                         }

lenovo thinkpad carbon 6th gen - no sound after this patch, and this
patch should fix sound issue for it (not tested, just checking the
condition and pci attrs)
But what interesting is that I cannot remove snd_soc_skl module
without reboot (to adjust "pci_binding=1" so make sound works),
because kernel hang after short period doing it:

# rmmod snd_soc_skl_ssp_clk
# rmmod snd_soc_skl

WARN_ON triggered on rmmod:

Dec 30 19:29:38 WARNING: CPU: 0 PID: 22941 at
sound/hda/hdac_component.c:327 snd_hdac_acomp_exit+0x69/0x90
[snd_hda_core]
Dec 30 19:29:38 Modules linked in: snd_hda_intel snd_usb_audio
snd_usbmidi_lib snd_rawmidi snd_seq_device cdc_ether usbnet r8152 mii
hid_apple hid_generic usbhid hid thunderbolt tun
bluetooth ecdh_generic nf_conntrack_netlink nfnetlink xfrm_user
xfrm_algo xt_addrtype xt_conntrack br_netfilter iptable_mangle
xt_CHECKSUM iptable_nat joydev mousedev rmi_smbus rmi_c
ore ipt_MASQUERADE nf_nat_ipv4 nf_nat nf_conntrack nf_defrag_ipv6
nf_defrag_ipv4 libcrc32c xt_tcpudp overlay bridge stp llc
iptable_filter ccm algif_aead cbc snd_soc_hdac_hdmi des_ge
neric zram arc4 lz4 lz4_compress cmac msr md4 algif_hash i915
snd_soc_dmic snd_soc_skl(-) iwlmvm snd_soc_skl_ipc snd_soc_sst_ipc
snd_soc_sst_dsp snd_hda_ext_core snd_soc_acpi_intel_m
atch snd_soc_acpi mac80211 snd_soc_core snd_compress iTCO_wdt ac97_bus
kvmgt iTCO_vendor_support intel_rapl snd_pcm_dmaengine vfio_mdev mdev
x86_pkg_temp_thermal uvcvideo intel_power
clamp coretemp vfio_iommu_type1 kvm_intel vfio snd_hda_codec
videobuf2_vmalloc i2c_algo_bit
Dec 30 19:29:38  videobuf2_memops iwlwifi videobuf2_v4l2
videobuf2_common snd_hda_core videodev drm_kms_helper tpm_crb kvm
nls_iso8859_1 snd_hwdep cfg80211 drm nls_cp437 snd_pcm irqb
ypass thinkpad_acpi intel_cstate intel_uncore nvram psmouse intel_gtt
e1000e snd_timer agpgart ledtrig_audio intel_rapl_perf syscopyarea snd
input_leds processor_thermal_device pcspk
r tpm_tis tpm_tis_core sysfillrect i2c_i801 media wmi_bmof
intel_wmi_thunderbolt tpm ucsi_acpi typec_ucsi mei_me int3403_thermal
sysimgblt rfkill mei fb_sys_fops typec intel_soc_dts_
iosf intel_pch_thermal rng_core soundcore battery ac
int340x_thermal_zone evdev mac_hid int3400_thermal acpi_thermal_rel
pcc_cpufreq vboxnetflt(OE) vboxnetadp(OE) vboxpci(OE) vboxdrv
(OE) crypto_user ip_tables x_tables ext4 crc32c_generic crc16 mbcache
jbd2 fscrypto algif_skcipher af_alg dm_crypt dm_mod crct10dif_pclmul
crc32_pclmul crc32c_intel ghash_clmulni_int
el serio_raw atkbd libps2 aesni_intel aes_x86_64 xhci_pci crypto_simd
cryptd xhci_hcd glue_helper
Dec 30 19:29:38  wmi i8042 serio vfat fat [last unloaded: snd_soc_skl_ssp_clk]
Dec 30 19:29:38 CPU: 0 PID: 22941 Comm: rmmod Tainted: G     U     OE
   4.20.0-custom-06428-g00c569b567c7 #1
Dec 30 19:29:38 Hardware name: LENOVO 20KH006MRT/20KH006MRT, BIOS
N23ET50W (1.25 ) 06/25/2018
Dec 30 19:29:38 RIP: 0010:snd_hdac_acomp_exit+0x69/0x90 [snd_hda_core]
Dec 30 19:29:38 Code: 0d 83 5f c5 48 89 ef 31 c9 31 d2 48 c7 83 a0 04
00 00 00 00 00 00 48 c7 c6 80 6b ba c0 e8 4f 35 60 c5 31 c0 5b 5d c3
31 c0 c3 <0f> 0b 48 8b 50 08 48 85 d2 74 ae
 48 8b 52 10 48 8b 38 e8 d0 a1 c5
Dec 30 19:29:38 RSP: 0018:ffffa73f42b97de8 EFLAGS: 00010202
Dec 30 19:29:38 RAX: ffff94464d71e7f8 RBX: ffff94464a22c018 RCX:
0000000000000000
Dec 30 19:29:38 RDX: 0000000000000001 RSI: 0000000000000000 RDI:
ffff94464a22c018
Dec 30 19:29:38 RBP: ffff94464fa690b0 R08: ffff944651c02480 R09:
ffff944651c024f8
Dec 30 19:29:38 R10: 0000000000000000 R11: ffffffff86e4a478 R12:
ffff94464fa690b0
Dec 30 19:29:38 R13: ffffffffc0b2e070 R14: ffff94464ffb7c60 R15:
dead000000000100
Dec 30 19:29:38 FS:  00007ffff7983b80(0000) GS:ffff944652400000(0000)
knlGS:0000000000000000
Dec 30 19:29:38 CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
Dec 30 19:29:38 CR2: 0000555555784098 CR3: 0000000304682003 CR4:
00000000003606f0
Dec 30 19:29:38 Call Trace:
Dec 30 19:29:38  skl_free+0x7e/0x90 [snd_soc_skl]
Dec 30 19:29:38  skl_remove+0x9f/0xb0 [snd_soc_skl]
Dec 30 19:29:38  pci_device_remove+0x3b/0xc0
Dec 30 19:29:38  device_release_driver_internal+0x180/0x240
Dec 30 19:29:38  driver_detach+0x37/0x68
Dec 30 19:29:38  bus_remove_driver+0x74/0xc6
Dec 30 19:29:38  pci_unregister_driver+0x3d/0x90
Dec 30 19:29:38  __se_sys_delete_module+0x1a2/0x300
Dec 30 19:29:38  do_syscall_64+0x5b/0x170
Dec 30 19:29:38  entry_SYSCALL_64_after_hwframe+0x44/0xa9
Dec 30 19:29:38 RIP: 0033:0x7ffff7aa247b
Dec 30 19:29:38 Code: 73 01 c3 48 8b 0d e5 19 0c 00 f7 d8 64 89 01 48
83 c8 ff c3 66 2e 0f 1f 84 00 00 00 00 00 90 f3 0f 1e fa b8 b0 00 00
00 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b
 0d b5 19 0c 00 f7 d8 64 89 01 48
Dec 30 19:29:38 RSP: 002b:00007fffffffe1a8 EFLAGS: 00000206 ORIG_RAX:
00000000000000b0
Dec 30 19:29:38 RAX: ffffffffffffffda RBX: 00005555557797b0 RCX:
00007ffff7aa247b
Dec 30 19:29:38 RDX: 000000000000000a RSI: 0000000000000800 RDI:
0000555555779818
Dec 30 19:29:38 RBP: 0000000000000000 R08: 00007fffffffd121 R09:
0000000000000000
Dec 30 19:29:38 R10: 00007ffff7b14ae0 R11: 0000000000000206 R12:
00007fffffffe3d0
Dec 30 19:29:38 R13: 00007fffffffe665 R14: 0000555555779260 R15:
00005555557797b0
Dec 30 19:29:38 snd_soc_skl 0000:00:1f.3: Dropping the link to 0000:00:02.0

And kernel hang I guess after:

Dec 30 19:31:33 snd_hda_intel 0000:00:1f.3: The DSP is enabled on this
platform, aborting probe
Dec 30 19:31:53 general protection fault: 0000 [#1] PREEMPT SMP NOPTI
Dec 30 19:31:53 CPU: 5 PID: 31046 Comm: chromium Tainted: G     U  W
OE     4.20.0-custom-06428-g00c569b567c7 #1
Dec 30 19:31:53 Hardware name: LENOVO 20KH006MRT/20KH006MRT, BIOS
N23ET50W (1.25 ) 06/25/2018
Dec 30 19:31:53 RIP: 0010:__kmalloc_node+0xcd/0x2b0
Dec 30 19:31:53 Code: 41 83 fd ff 74 10 48 8b 00 48 c1 e8 3b 41 39 c5
0f 85 85 00 00 00 41 8b 58 20 49 8b 38 48 8d 8a 00 02 00 00 4c 89 f0
4c 01 f3 <48> 33 1b 49 33 98 30 01 00 00 65 48 0f c7 0f 0f 94 c0 84 c0
74 8b
Dec 30 19:31:53 RSP: 0018:ffffa73f4211fcb0 EFLAGS: 00010282
Dec 30 19:31:53 RAX: c56d53959ec46bfe RBX: c56d53959ec46bfe RCX:
0000000010720205
Dec 30 19:31:53 RDX: 0000000010720005 RSI: 0000000010720005 RDI:
0000000000026160
Dec 30 19:31:53 RBP: 00000000006002c0 R08: ffff944652002f00 R09:
ffffffffc10edb4c
Dec 30 19:31:53 R10: 0000000000000000 R11: ffffffffc10ca618 R12:
0000000000000220
Dec 30 19:31:53 R13: 00000000ffffffff R14: c56d53959ec46bfe R15:
ffff944652002f00
Dec 30 19:31:53 FS:  00007fffe9d8dc80(0000) GS:ffff944652540000(0000)
knlGS:0000000000000000
Dec 30 19:31:53 CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
Dec 30 19:31:53 CR2: 00007fffe1c84000 CR3: 00000004700be001 CR4:
00000000003606e0
Dec 30 19:31:53 Call Trace:
Dec 30 19:31:53  ? i915_gem_execbuffer2_ioctl+0x90/0x350 [i915]
Dec 30 19:31:53  i915_gem_execbuffer2_ioctl+0x90/0x350 [i915]
Dec 30 19:31:53  ? unix_stream_recvmsg+0x53/0x70
Dec 30 19:31:53  ? i915_gem_execbuffer_ioctl+0x2b0/0x2b0 [i915]
Dec 30 19:31:53  drm_ioctl_kernel+0xaf/0xf0 [drm]
Dec 30 19:31:53  drm_ioctl+0x32b/0x3e0 [drm]
Dec 30 19:31:53  ? i915_gem_execbuffer_ioctl+0x2b0/0x2b0 [i915]
Dec 30 19:31:53  ? vfs_writev+0xa2/0xf0
Dec 30 19:31:53  do_vfs_ioctl+0xa4/0x630
Dec 30 19:31:53  ? __sys_recvmsg+0x83/0xa0
Dec 30 19:31:53  ksys_ioctl+0x60/0x90
Dec 30 19:31:53  __x64_sys_ioctl+0x16/0x20
Dec 30 19:31:53  do_syscall_64+0x5b/0x170
Dec 30 19:31:53  entry_SYSCALL_64_after_hwframe+0x44/0xa9
Dec 30 19:31:53 RIP: 0033:0x7ffff2d3880b
Dec 30 19:31:53 Code: 0f 1e fa 48 8b 05 55 b6 0c 00 64 c7 00 26 00 00
00 48 c7 c0 ff ff ff ff c3 66 0f 1f 44 00 00 f3 0f 1e fa b8 10 00 00
00 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d 25 b6 0c 00 f7 d8 64 89
01 48
Dec 30 19:31:53 RSP: 002b:00007fffffffd1e8 EFLAGS: 00000246 ORIG_RAX:
0000000000000010
Dec 30 19:31:53 RAX: ffffffffffffffda RBX: 0000262a4e3f3030 RCX:
00007ffff2d3880b
Dec 30 19:31:53 RDX: 00007fffffffd230 RSI: 0000000040406469 RDI:
000000000000000e
Dec 30 19:31:53 RBP: 00007fffffffd230 R08: 0000262a4ed7e880 R09:
0000262a50407050
Dec 30 19:31:53 R10: 00007fffffffd2d0 R11: 0000000000000246 R12:
0000000040406469
Dec 30 19:31:53 R13: 000000000000000e R14: ffffffffffffffff R15:
0000000000000000

Full log starting from this moment is available here:
  https://gist.github.com/azat/8554aaefce880cc37841dd9141b00bd9

# lspci -nn -vvvvv -s 00:1f.3
00:1f.3 Audio device [0403]: Intel Corporation Sunrise Point-LP HD
Audio [8086:9d71] (rev 21) (prog-if 80)
        Subsystem: Lenovo Sunrise Point-LP HD Audio [17aa:225c]
        Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B- DisINTx+
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort-
<TAbort- <MAbort- >SERR- <PERR- INTx-
        Latency: 64
        Interrupt: pin A routed to IRQ 143
        Region 0: Memory at 2ffb028000 (64-bit, non-prefetchable) [size=16K]
        Region 4: Memory at 2ffb000000 (64-bit, non-prefetchable) [size=64K]
        Capabilities: [50] Power Management version 3
                Flags: PMEClk- DSI- D1- D2- AuxCurrent=55mA
PME(D0-,D1-,D2-,D3hot+,D3cold+)
                Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
        Capabilities: [60] MSI: Enable+ Count=1/1 Maskable- 64bit+
                Address: 00000000fee003d8  Data: 0000
        Kernel driver in use: snd_hda_intel
        Kernel modules: snd_hda_intel, snd_soc_skl

# lspci -m -nn -vvvvv -s 00:1f.3
Device: 00:1f.3
Class:  Audio device [0403]
Vendor: Intel Corporation [8086]
Device: Sunrise Point-LP HD Audio [9d71]
SVendor:        Lenovo [17aa]
SDevice:        Sunrise Point-LP HD Audio [225c]
Rev:    21
ProgIf: 80

# head /sys/bus/pci/devices/0000:00:1f.3/{device,class,vendor}
==> /sys/bus/pci/devices/0000:00:1f.3/device <==
0x9d71
==> /sys/bus/pci/devices/0000:00:1f.3/class <==
0x040380
==> /sys/bus/pci/devices/0000:00:1f.3/vendor <==
0x8086

# dmesg | fgrep snd
Dec 28 13:16:18 snd_hda_intel 0000:00:1f.3: The DSP is enabled on this
platform, aborting probe
Dec 28 13:16:19 snd_soc_skl 0000:00:1f.3: DSP detected with PCI
class/subclass/prog-if info 0x040380
Dec 28 13:16:19 snd_soc_skl 0000:00:1f.3: Linked as a consumer to 0000:00:02.0
Dec 28 13:16:19 snd_soc_skl 0000:00:1f.3: bound 0000:00:02.0 (ops
i915_audio_component_bind_ops [i915])

P.S. "{hostname} kernel: " stripped from the dmesg.

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [GIT PULL] sound updates for 4.21
  2018-12-31 13:43               ` Azat Khuzhin
@ 2018-12-31 15:22                 ` Pierre-Louis Bossart
  2019-01-05  0:34                   ` Azat Khuzhin
  0 siblings, 1 reply; 18+ messages in thread
From: Pierre-Louis Bossart @ 2018-12-31 15:22 UTC (permalink / raw)
  To: Azat Khuzhin, Takashi Iwai
  Cc: Linus Torvalds, Ingo Molnar, Mark Brown, Liam Girdwood,
	Linux Kernel Mailing List


On 12/31/18 7:43 AM, Azat Khuzhin wrote:
>> +/* CFL and later models, preferring ASoC when DSP is available */
>> +#define IS_CFL_PLUS(pci)            \
>> +       ((pci)->vendor == 0x8086 &&  \
>> +        ((pci)->device == 0xa348 || \
>> +         (pci)->device == 0x9dc8 || \
>> +         (pci)->device == 0x34c8))
>> +
>>   static char *driver_short_names[] = {
>>          [AZX_DRIVER_ICH] = "HDA Intel",
>>          [AZX_DRIVER_PCH] = "HDA Intel PCH",
>> @@ -2056,7 +2063,7 @@ static int azx_probe(struct pci_dev *pci,
>>          if (pci_id->driver_data & AZX_DCAPS_INTEL_SHARED) {
>>                  switch (skl_pci_binding) {
>>                  case SND_SKL_PCI_BIND_AUTO:
>> -                       if (pci->class != 0x040300) {
>> +                       if (pci->class != 0x040300 && IS_CFL_PLUS(pci)) {
>>                                  dev_info(&pci->dev, "The DSP is enabled on this platform, aborting probe\n");
>>                                  return -ENODEV;
>>                          }
> lenovo thinkpad carbon 6th gen - no sound after this patch, and this
> patch should fix sound issue for it (not tested, just checking the
> condition and pci attrs)
> But what interesting is that I cannot remove snd_soc_skl module
> without reboot (to adjust "pci_binding=1" so make sound works),
> because kernel hang after short period doing it:
>
> # rmmod snd_soc_skl_ssp_clk
> # rmmod snd_soc_skl
>
> WARN_ON triggered on rmmod:

This is unfortunately a known issue with this driver, Takashi and I had 
a couple of email threads on this. Even without errors removing the 
module doesn't seem to release all resources. I don't like this at all, 
and for the Sound Open Firmware (SOF) driver I mandated module 
load-unload as a functional requirement along with zero warnings w/ 
Sparse, Coccinelle and friends, but on this legacy code I am afraid 
there is no simple fix - at least not in a merge window or a single 
kernel cycle.



^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [GIT PULL] sound updates for 4.21
  2018-12-31 10:24               ` Pierre-Louis Bossart
@ 2018-12-31 18:15                 ` Takashi Iwai
  2018-12-31 20:10                   ` Pierre-Louis Bossart
  0 siblings, 1 reply; 18+ messages in thread
From: Takashi Iwai @ 2018-12-31 18:15 UTC (permalink / raw)
  To: Pierre-Louis Bossart
  Cc: Takashi Iwai, Linus Torvalds, Ingo Molnar, Mark Brown,
	Liam Girdwood, Linux Kernel Mailing List

On Mon, 31 Dec 2018 11:24:41 +0100,
Pierre-Louis Bossart wrote:
> 
> 
> On 12/31/18 2:11 AM, Takashi Iwai wrote:
> > On Mon, 31 Dec 2018 00:17:58 +0100,
> > Pierre-Louis Bossart wrote:
> >>> BTW, one thing I'd really like to avoid is to rearrange the probe
> >>> procedure of the legacy HDA driver (so that we can get codec_mask
> >>> during pci probe() call).  The async probe is the result of the many
> >>> struggles with the various and complex configurations.   Moving the
> >>> codec probe to the beginning isn't trivial and quite risky to break
> >>> something else.
> >> Agree, mucking with the probe isn't something we should look into,
> >> especially with this Skylake driver being eventually deprecated once
> >> SOF is at feature parity. This set of autodetection patches for 4.21
> >> was really targeting CFL/WHL+ devices, where the DSP usage is
> >> mandatory when directly-attached digital microphones are used. For
> >> Skylake and kabylake using the legacy by default is just fine.
> > OK, then how about applying the PCI class check only for such ones
> > like the patch below?  The macro isn't sexy and can be replaced with
> > another way, but you have an idea.
> 
> The two patches which added the PCI class checks were supposed to be a
> simple bullet-proof way of detecting the DSP presence and solving a
> problem of coexistence between two drivers. At this point if we start
> adding quirks and still have unclear issues with HDMI support which
> isn't different for CFL+, it may be wiser to revert them to let the
> 4.21 merge window progress? It's frustrating but I'd rather solve this
> problem the right way than with multiple iterations rushed because of
> the merge window timing.

Fair enough, let's revert them for now.  I'm going to submit the
revert patch.


thanks,

Takashi

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [GIT PULL] sound updates for 4.21
  2018-12-31 18:15                 ` Takashi Iwai
@ 2018-12-31 20:10                   ` Pierre-Louis Bossart
  2018-12-31 21:02                     ` Hans de Goede
  0 siblings, 1 reply; 18+ messages in thread
From: Pierre-Louis Bossart @ 2018-12-31 20:10 UTC (permalink / raw)
  To: Takashi Iwai
  Cc: Linus Torvalds, Ingo Molnar, Mark Brown, Liam Girdwood,
	Linux Kernel Mailing List, Hans de Goede, Azat Khuzhin


On 12/31/18 12:15 PM, Takashi Iwai wrote:
> On Mon, 31 Dec 2018 11:24:41 +0100,
> Pierre-Louis Bossart wrote:
>>
>> On 12/31/18 2:11 AM, Takashi Iwai wrote:
>>> On Mon, 31 Dec 2018 00:17:58 +0100,
>>> Pierre-Louis Bossart wrote:
>>>>> BTW, one thing I'd really like to avoid is to rearrange the probe
>>>>> procedure of the legacy HDA driver (so that we can get codec_mask
>>>>> during pci probe() call).  The async probe is the result of the many
>>>>> struggles with the various and complex configurations.   Moving the
>>>>> codec probe to the beginning isn't trivial and quite risky to break
>>>>> something else.
>>>> Agree, mucking with the probe isn't something we should look into,
>>>> especially with this Skylake driver being eventually deprecated once
>>>> SOF is at feature parity. This set of autodetection patches for 4.21
>>>> was really targeting CFL/WHL+ devices, where the DSP usage is
>>>> mandatory when directly-attached digital microphones are used. For
>>>> Skylake and kabylake using the legacy by default is just fine.
>>> OK, then how about applying the PCI class check only for such ones
>>> like the patch below?  The macro isn't sexy and can be replaced with
>>> another way, but you have an idea.
>> The two patches which added the PCI class checks were supposed to be a
>> simple bullet-proof way of detecting the DSP presence and solving a
>> problem of coexistence between two drivers. At this point if we start
>> adding quirks and still have unclear issues with HDMI support which
>> isn't different for CFL+, it may be wiser to revert them to let the
>> 4.21 merge window progress? It's frustrating but I'd rather solve this
>> problem the right way than with multiple iterations rushed because of
>> the merge window timing.
> Fair enough, let's revert them for now.  I'm going to submit the
> revert patch.

Thanks Takashi. If everyone who has been impacted by this issue can send 
me privately the result of the following two commands it'd help us 
figure out which machines expose the DSP - we may ask for additional 
information, e.g. NHLT tables. We clearly need to widen the validation 
scope since there is obviously a disconnect between what 3rd party BIOS 
expose and the technical consensus within Intel audio teams. Thanks in 
advance for your time.

-Pierre

lspci -s 0:1f.3 -vn

more /sys/bus/pci/devices/0000\:00\:1f.3/class (should return 0x040100 
or 0x040380, if the value is 0x040300 then the DSP is not exposed)

(replace 1f.3 with 0e.0 for ApolloLake/GeminiLake)



^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [GIT PULL] sound updates for 4.21
  2018-12-31 20:10                   ` Pierre-Louis Bossart
@ 2018-12-31 21:02                     ` Hans de Goede
  0 siblings, 0 replies; 18+ messages in thread
From: Hans de Goede @ 2018-12-31 21:02 UTC (permalink / raw)
  To: Pierre-Louis Bossart, Takashi Iwai
  Cc: Linus Torvalds, Ingo Molnar, Mark Brown, Liam Girdwood,
	Linux Kernel Mailing List, Azat Khuzhin

Hi,

On 12/31/18 9:10 PM, Pierre-Louis Bossart wrote:
> 
> On 12/31/18 12:15 PM, Takashi Iwai wrote:
>> On Mon, 31 Dec 2018 11:24:41 +0100,
>> Pierre-Louis Bossart wrote:
>>>
>>> On 12/31/18 2:11 AM, Takashi Iwai wrote:
>>>> On Mon, 31 Dec 2018 00:17:58 +0100,
>>>> Pierre-Louis Bossart wrote:
>>>>>> BTW, one thing I'd really like to avoid is to rearrange the probe
>>>>>> procedure of the legacy HDA driver (so that we can get codec_mask
>>>>>> during pci probe() call).  The async probe is the result of the many
>>>>>> struggles with the various and complex configurations.   Moving the
>>>>>> codec probe to the beginning isn't trivial and quite risky to break
>>>>>> something else.
>>>>> Agree, mucking with the probe isn't something we should look into,
>>>>> especially with this Skylake driver being eventually deprecated once
>>>>> SOF is at feature parity. This set of autodetection patches for 4.21
>>>>> was really targeting CFL/WHL+ devices, where the DSP usage is
>>>>> mandatory when directly-attached digital microphones are used. For
>>>>> Skylake and kabylake using the legacy by default is just fine.
>>>> OK, then how about applying the PCI class check only for such ones
>>>> like the patch below?  The macro isn't sexy and can be replaced with
>>>> another way, but you have an idea.
>>> The two patches which added the PCI class checks were supposed to be a
>>> simple bullet-proof way of detecting the DSP presence and solving a
>>> problem of coexistence between two drivers. At this point if we start
>>> adding quirks and still have unclear issues with HDMI support which
>>> isn't different for CFL+, it may be wiser to revert them to let the
>>> 4.21 merge window progress? It's frustrating but I'd rather solve this
>>> problem the right way than with multiple iterations rushed because of
>>> the merge window timing.
>> Fair enough, let's revert them for now.  I'm going to submit the
>> revert patch.
> 
> Thanks Takashi. If everyone who has been impacted by this issue can send me privately the result of the following two commands it'd help us figure out which machines expose the DSP - we may ask for additional information, e.g. NHLT tables. We clearly need to widen the validation scope since there is obviously a disconnect between what 3rd party BIOS expose and the technical consensus within Intel audio teams. Thanks in advance for your time.
> 
> -Pierre

On my Apollo Lake laptop which is also affected by this:

> lspci -s 0:1f.3 -vn

00:0e.0 0403: 8086:5a98 (rev 0b) (prog-if 80)
         Subsystem: 10ec:111a
         Flags: bus master, fast devsel, latency 0, IRQ 128
         Memory at 91218000 (64-bit, non-prefetchable) [size=16K]
         Memory at 91000000 (64-bit, non-prefetchable) [size=1M]
         Capabilities: <access denied>
         Kernel driver in use: snd_hda_intel
         Kernel modules: snd_hda_intel, snd_soc_skl

> more /sys/bus/pci/devices/0000\:00\:1f.3/class (should return 0x040100 or 0x040380, if the value is 0x040300 then the DSP is not exposed)

0x040380

Regards,

Hans


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [GIT PULL] sound updates for 4.21
  2018-12-31 15:22                 ` Pierre-Louis Bossart
@ 2019-01-05  0:34                   ` Azat Khuzhin
  2019-01-05  2:12                     ` Pierre-Louis Bossart
  0 siblings, 1 reply; 18+ messages in thread
From: Azat Khuzhin @ 2019-01-05  0:34 UTC (permalink / raw)
  To: Pierre-Louis Bossart; +Cc: Linux Kernel Mailing List

> This is unfortunately a known issue with this driver, Takashi and I had
> a couple of email threads on this. Even without errors removing the
> module doesn't seem to release all resources. I don't like this at all,
> and for the Sound Open Firmware (SOF) driver I mandated module
> load-unload as a functional requirement along with zero warnings w/
> Sparse, Coccinelle and friends, but on this legacy code I am afraid
> there is no simple fix - at least not in a merge window or a single
> kernel cycle.

And the fact that kernel crashes after?
Just want extra confirmation

Thanks,
Azat.

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [GIT PULL] sound updates for 4.21
  2019-01-05  0:34                   ` Azat Khuzhin
@ 2019-01-05  2:12                     ` Pierre-Louis Bossart
  0 siblings, 0 replies; 18+ messages in thread
From: Pierre-Louis Bossart @ 2019-01-05  2:12 UTC (permalink / raw)
  To: Azat Khuzhin; +Cc: Linux Kernel Mailing List


On 1/4/19 6:34 PM, Azat Khuzhin wrote:
>> This is unfortunately a known issue with this driver, Takashi and I had
>> a couple of email threads on this. Even without errors removing the
>> module doesn't seem to release all resources. I don't like this at all,
>> and for the Sound Open Firmware (SOF) driver I mandated module
>> load-unload as a functional requirement along with zero warnings w/
>> Sparse, Coccinelle and friends, but on this legacy code I am afraid
>> there is no simple fix - at least not in a merge window or a single
>> kernel cycle.
> And the fact that kernel crashes after?
> Just want extra confirmation
The kernel crash is related to an HDMI issue that we haven't been able 
to reproduce on our development and validation devices so far but that's 
not an excuse and we do need to figure it out. Things work e.g. fine 
with the KBL Dell XPS13 but not on Linus' SKL Dell XPS13 device, so I'll 
get one and will also work on additional devices remotely.

^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2019-01-05  2:12 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-12-20 15:38 [GIT PULL] sound updates for 4.21 Takashi Iwai
2018-12-25 23:20 ` pr-tracker-bot
2018-12-27  3:31 ` Linus Torvalds
2018-12-28 12:43   ` Ingo Molnar
2018-12-28 17:07     ` Takashi Iwai
2018-12-28 19:04       ` Linus Torvalds
2018-12-30  9:21         ` Takashi Iwai
     [not found]           ` <82bb7f60-c3c2-4715-a0a0-f1f2a8b14c74@linux.intel.com>
2018-12-31  0:19             ` Linus Torvalds
2018-12-31  0:54               ` Pierre-Louis Bossart
2018-12-31  8:11             ` Takashi Iwai
2018-12-31 10:24               ` Pierre-Louis Bossart
2018-12-31 18:15                 ` Takashi Iwai
2018-12-31 20:10                   ` Pierre-Louis Bossart
2018-12-31 21:02                     ` Hans de Goede
2018-12-31 13:43               ` Azat Khuzhin
2018-12-31 15:22                 ` Pierre-Louis Bossart
2019-01-05  0:34                   ` Azat Khuzhin
2019-01-05  2:12                     ` Pierre-Louis Bossart

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).