* [GIT PULL] sound updates for 4.17-rc1
@ 2018-04-05 8:27 Takashi Iwai
2018-04-05 17:50 ` Linus Torvalds
0 siblings, 1 reply; 9+ messages in thread
From: Takashi Iwai @ 2018-04-05 8:27 UTC (permalink / raw)
To: Linus Torvalds; +Cc: Mark Brown, Liam Girdwood, linux-kernel
Linus,
please pull sound updates for v4.17-rc1 from:
git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git tags/sound-4.17-rc1
The topmost commit is a820ccbe21e8ce8e86c39cd1d3bc8c7d1cbb949b
----------------------------------------------------------------
sound updates for 4.17-rc1
This became a large update. The changes are scattered widely,
and majority of them are attributed to ASoC componentization.
The gitk output made me dizzy, but it's slightly better than
London tube.
OK, below are some highlights:
- Continued hardening works in ALSA PCM core; most of the
existing syzkaller reports should have been covered.
- USB-audio got the initial USB Audio Class 3 support, as well
as UAC2 jack detection support and more DSD-device support.
- ASoC componentization: finally each individual driver was
converted to components framework, which is more future-proof
for further works. Most of conversations were systematic.
- Lots of fixes for Intel Baytrail / Cherrytrail devices with
Realtek codecs, typically tablets and small PCs.
- Fixes / cleanups for Samsung Odroid systems
- Cleanups in Freescale SSI driver
- New ASoC drivers:
* AKM AK4458 and AK5558 codecs
* A few AMD based machine drivers
* Intel Kabylake machine drivers
* Maxim MAX9759 codec
* Motorola CPCAP codec
* Socionext Uniphier SoCs
* TI PCM1789 and TDA7419 codecs
- Retirement of Blackfin drivers along with architecture removal.
----------------------------------------------------------------
Abhijeet Kumar (4):
ALSA: hda: Copying sync power state helper to core
ALSA: hda: Make use of core codec functions to sync power state
ASoC: hdac_hdmi : Ensuring proper setting of output widget power state
ASoC: Intel: Skylake: Fix typo
Adam Thomson (2):
ASoC: da7219: Add common clock usage for providing DAI clks
ASoC: da7219: clkdev_drop usage depends on CONFIG_COMMON_CLK
Akshu Agrawal (5):
ASoC: AMD: Add machine driver for ST DA7219 MAX98357
ASoC: dwc: Extends DW_I2S_QUIRK_COMP_PARAM1 to playback
ASoC: ADAU7002: Adding ACPI id
ASoC: amd: Use single dai for da7219 playback and capture
ASoC: amd: Enable da7219 master clock using common clock framework
Andrew Chant (3):
ALSA: usb-audio: fix uac control query argument
ALSA: usb-audio: UAC2 jack detection
ALSA: usb-audio: update clock valid control
Arnd Bergmann (1):
ASoC: remove blackfin drivers
Bard Liao (6):
ASoC: rt5665: remove rt5668 support
ASoC: rt5659: fix wrong bit define for ADC L2 power.
ASoC: rt5659: fix wrong control register for ADC2 power
ASoC: rt5659: Separate adc 1/2 clock control
ASoC: rt286: don't turn off HV and VREF if headset is detected
ASoC: rt298: don't turn off HV and VREF if headset is detected
Charles Keepax (2):
ASoC: arizona: Fixup some minor formatting issues
ASoC: wm_adsp: Support streams which can start/stop with DSP active
Colin Ian King (9):
ASoC: Intel: Skylake: make function skl_clk_round_rate static
ASoC: uniphier: remove redundant check of blk_id
ASoC: TSCS42xx: make const array norm_addrs static, reduces object code size
ASoC: sirf: remove duplicated bit-wise or of USP_RXFIFO_THD_INT
ASoC: pxa: remove duplicated bit-wise or of SNDRV_PCM_FMTBIT_S24_LE
ASoC: cygnus: remove redundant assignment to pointer 'res'
ALSA: echoaudio: remove redundant initialization of pointer 'pipe'
ASoC: da7219: make structure da7219_dai_clks_ops static
ALSA: usb-audio: fix memory leak on cval
Corentin Labbe (2):
ASoC: samsung: clean makefile about inexistant files
ASoC: sn95031: remove dead makefile about sn95031
Cosmin-Gabriel Samoila (4):
ASoC: ak4458: Add support for AK4458 DAC driver
ASoC: ak4458: Add bindings for AK4458 DAC
ASoC: ak4458: Modify SPDX license format
ASoC: ak4458: Sort headers alphabetically
Dan Carpenter (2):
ASoC: uniphier: fix an error code in uniphier_aio_comprdma_new()
ALSA: usb-audio: silence a static checker warning
Daniel Baluta (3):
ASoC: ak5558: Add support for AK5558 ADC driver
ASoC: ak5558: Add bindings for AK5558 ADC
ASoC: ak5558: Fix style for SPDX identifier
Ezequiel Garcia (3):
ASoC: rockchip: Fix dai_name for HDMI codec
ASoC: rockchip: Fix compatible string in example
ASoC: rockchip: rk3288-hdmi-analog: Select needed codecs
Fabio Estevam (17):
ASoC: fsl-asoc-card: Use 'snd_pcm_format_t' type when appropriate
ASoC: fsl_esai: Use 'const _be *' type for iprop
ASoC: fsl_utils: Use 'const _be *' type for iprop
ASoC: fsl_ssi: Use 'const _be *' type for iprop
ASoC: wm9712: Use empty struct initializer
ASoC: tlv320aic3x: Use empty struct initializer
ASoC: adau17x1: Use empty struct initializer
ASoC: wm9713: Use empty struct initializer
ASoC: soc-dapm: Use empty struct initializer
ASoC: soc-generic-dmaengine-pcm: Add a DMA debugfs_prefix entry
ASoC: soc-generic-dmaengine-pcm: Fix error handling
ASoC: soc-generic-dmaengine-pcm: Fix sparse warnings
ASoC: Revert "ASoC: soc-generic-dmaengine-pcm: Fix error handling"
ASoC: imx-wm8962: Remove machine driver
ASoC: wm8524: Remove unit address
ASoC: sgtl5000: Pass the required '#sound-dai-cells'
ASoC: tscs42xx: Remove owner assignment from i2c_driver
Geert Uytterhoeven (3):
ASoC: rt5514: Fix rt5514_spi_burst_read() buffer passing
ASoC: rt5514: Fix uninitialized calibration value
ASoC: rsnd: Document R-Car M3-W support
Guneshwor Singh (2):
ASoC: Intel: Skylake: Refine skl widget type check
ALSA: hda: Add Icelake PCI ID
Hans de Goede (45):
ASoC: Intel: sst: Fix error-code check in sst_pause_stream()
ASoC: Intel: sst: Remove 2 unused members from stream_info struct
ASoC: Intel: sst: Remove unnecessary sst_init_stream() function
ASoC: Intel: sst: Remove unused STREAM_DECODE and STREAM_RESET states
ASoC: Intel: sst: Add sst_realloc_stream() function
ASoC: Intel: sst: Free streams on suspend, re-alloc on resume
ASoC: rt5651: Remove unused rt5651_platform_data
ASoC: rt5651: Move all jack-detect initialization to rt5651_set_jack_detect
ASoC: rt5651: Move 2 functions higher up in rt5651.c
ASoC: rt5651: Use standard component set_jack callback
ASoC: rt5651: Add rt5651_apply_properties() helper function
ASoC: rt5651: Remove is_sys_clk_from_pll()
ASoC: rt5651: Fix bias_level confusion
ASoC: rt5651: Do not modify the LDO voltage control bits from set_bias_level()
ASoC: rt5651: Do not modify jd and PLL power bits from set_bias_level()
ASoC: rt5651: Remove programming of PWR regs before force_bias_level() call
ASoC: rt5651: Only configure LDO voltage once at boot
ASoC: rt5651: Remove "JD Power" dapm supply
ASoC: rt5651: Enable LDO and micbias1 supplies for jack-type detection
ASoC: rt5651: Only configure OVCD once at set_jack time
ASoC: rt5651: Always keep OVCD enabled
ASoC: rt5651: Make rt5651_apply_properties() private
ASoC: rt5651: Add devicetree-bindings for jack-detect
ASoC: rt5651: Configure jack-detect source through a device-property
ASoC: rt5651: Allow specifying over-current threshold through a device-property
ASoC: rt5651: Allow specifying the OVCD scale-factor through a device-property
ASoC: rt5651: Enable sticky mode for OVCD
ASoC: rt5651: Enable Platform Clock during jack-type detect
ASoC: rt5651: Add rt5651_jack_inserted() helper
ASoC: rt5651: Rewrite jack-type detection
ASoC: Intel: bytcr_rt5651: Not being able to find the codec ACPI-dev is an error
ASoC: Intel: bytcr_rt5651: Pass jack-src info via device-properties
ASoC: Intel: bytcr_rt5651: Actually honor the DMIC_EN quirk if specified
ASoC: Intel: bytcr_rt5651: Only create jack if we have a jack-detect source
ASoC: Intel: bytcr_rt5651: Add quirk micbias OVCD configuration
ASoC: Intel: bytcr_rt5651: Configure PLL1 before using it
ASoC: Intel: bytcr_rt5651: Drop snd_soc_dai_set_bclk_ratio() call
ASoC: Intel: bytcr_rt5651: Rename IN3_MAP to IN1_HS_IN3_MAP
ASoC: Intel: bytcr_rt5651: Add new IN2_HS_IN3 input map and a quirk using it
ASoC: Intel: bytcr_rt5651: Add support for Bay Trail CR / SSP0 using boards
ASoC: Intel: bytcr_rt5651: Add quirk for the VIOS LTH17 laptop
ASoC: Intel: bytcr_rt5651: Change defaults to enable jack-detect, analog mics
ASoC: Intel: bytcr_rt5651: Select RCCLK on init()
ASoC: rt5651: move definitions of dt-binding constants to include/dt-bindings
ASoC: rt5651: Fix jack-dectect typo in the dt-bindings documentation
Jaejoong Kim (1):
ALSA: Use scnprintf() instead of snprintf() for show
James Kelly (1):
ASoC: ssm2602: Replace reg_default_raw with reg_default
Joey Pabalinas (1):
ALSA: ice1712: replace strcpy() with strlcpy()
John Hsu (3):
ASoC: Intel: add nau8824 sound card
ASoC: Intel: fix argument error in nau8824 machine
ASoC: nau8824: recover system clock when device changes
Katsuhiro Suzuki (15):
ASoC: uniphier: add DT bindings documentation for UniPhier AIO
ASoC: uniphier: add support for UniPhier AIO common driver
ASoC: uniphier: add support for UniPhier AIO DMA driver
ASoC: uniphier: add support for UniPhier AIO CPU DAI driver
ASoC: uniphier: add support for UniPhier AIO compress audio
ASoC: uniphier: add support for UniPhier LD11/LD20 AIO driver
ASoC: uniphier: evea: fix typo 'eva' -> 'evea'
ASoC: uniphier: evea: fix lisence comment style
ASoC: uniphier: fix broken sound if use SRC in replay
ASoC: add DT bindings documentation for ROHM BD28623 codec
ASoC: support ROHM BD28623 codec
ASoC: uniphier: add support for UniPhier PXs2 AIO
ASoC: uniphier: evea: add switch for changing source of line-in
ASoC: uniphier: add syscon property to binding document
ASoC: uniphier: add syscon property for UniPhier sound system
Krzysztof Kozlowski (1):
ASoC: samsung: Mark unused Odroid compatibles as deprecated
Kuninori Morimoto (243):
ASoC: ac97: replace codec to component
ASoC: wm0010: replace codec to component
ASoC: wm8804: replace codec to component
ASoC: cs4271: replace codec to component
ASoC: wm2000: replace codec to component
ASoC: wm2200: replace codec to component
ASoC: wm5100: replace codec to component
ASoC: wm8350: replace codec to component
ASoC: wm8400: replace codec to component
ASoC: wm8580: replace codec to component
ASoC: wm8524: replace codec to component
ASoC: wm8510: replace codec to component
ASoC: wm8523: replace codec to component
ASoC: wm8711: replace codec to component
ASoC: wm8750: replace codec to component
ASoC: wm8737: replace codec to component
ASoC: wm8776: replace codec to component
ASoC: wm8770: replace codec to component
ASoC: wm8727: replace codec to component
ASoC: wm8731: replace codec to component
ASoC: wm8782: replace codec to component
ASoC: wm8728: replace codec to component
ASoC: wm8741: replace codec to component
ASoC: wm8753: replace codec to component
ASoC: wm8900: replace codec to component
ASoC: wm8903: replace codec to component
ASoC: wm8955: replace codec to component
ASoC: wm8960: replace codec to component
ASoC: wm8985: replace codec to component
ASoC: wm8971: replace codec to component
ASoC: wm8978: replace codec to component
ASoC: wm8974: replace codec to component
ASoC: wm8990: replace codec to component
ASoC: wm8988: replace codec to component
ASoC: wm8983: replace codec to component
ASoC: wm8962: replace codec to component
ASoC: wm8996: replace codec to component
ASoC: wm8991: replace codec to component
ASoC: wm8995: replace codec to component
ASoC: wm8961: replace codec to component
ASoC: wm8940: replace codec to component
ASoC: wm8904: replace codec to component
ASoC: wm9081: replace codec to component
ASoC: wm9090: replace codec to component
ASoC: wm9867: replace codec to component
ASoC: wm1250-ev1: replace codec to component
ASoC: ak4613: replace codec to component
ASoC: ak4642: replace codec to component
ASoC: ak5386: replace codec to component
ASoC: ak4671: replace codec to component
ASoC: ak4104: replace codec to component
ASoC: ak4535: replace codec to component
ASoC: ak4641: replace codec to component
ASoC: ak4554: replace codec to component
ASoC: rt274: replace codec to component
ASoC: rt5616: replace codec to component
ASoC: rt5640: replace codec to component
ASoC: rt5651: replace codec to component
ASoC: rt5514: replace codec to component
ASoC: rt5659: replace codec to component
ASoC: rt5670: replace codec to component
ASoC: rt5660: replace codec to component
ASoC: rt5631: replace codec to component
ASoC: rt5665: replace codec to component
ASoC: cs4270: replace codec to component
ASoC: cs4349: replace codec to component
ASoC: cs4265: replace codec to component
ASoC: cs35l32: replace codec to component
ASoC: cs35l33: replace codec to component
ASoC: cs35l35: replace codec to component
ASoC: cs35l34: replace codec to component
ASoC: cs42xx8: replace codec to component
ASoC: cs42l73: replace codec to component
ASoC: cs42l52: replace codec to component
ASoC: cs42l56: replace codec to component
ASoC: cs42l51: replace codec to component
ASoC: cs42l42: replace codec to component
ASoC: cs43130: replace codec to component
ASoC: cs53l30: replace codec to component
ASoC: da732x: replace codec to component
ASoC: da7210: replace codec to component
ASoC: da7218: replace codec to component
ASoC: da7213: replace codec to component
ASoC: da9055: replace codec to component
ASoC: max9860: replace codec to component
ASoC: max9850: replace codec to component
ASoC: max98371: replace codec to component
ASoC: max98095: replace codec to component
ASoC: max98090: replace codec to component
ASoC: max98926: replace codec to component
ASoC: max98088: replace codec to component
ASoC: max98925: replace codec to component
ASoC: max98927: replace codec to component
ASoC: max98357a: replace codec to component
ASoC: max98373: replace codec to component
ASoC: adav80x: replace codec to component
ASoC: adau1373: replace codec to component
ASoC: adau7002: replace codec to component
ASoC: adau1977: replace codec to component
ASoC: adau17x1/adau1761/adau1781: replace codec to component
ASoC: tlv320aic23: replace codec to component
ASoC: tlv320aic26: replace codec to component
ASoC: tlv320aic3x: replace codec to component
ASoC: tlv320dac33: replace codec to component
ASoC: tlv320aic32x4: replace codec to component
ASoC: tlv320aic31xx: replace codec to component
ASoC: cx20442: replace codec to component
ASoC: tscs42xx: replace codec to component
ASoC: pcm179x: replace codec to component
ASoC: pcm3008: replace codec to component
ASoC: pcm1681: replace codec to component
ASoC: pcm512x: replace codec to component
ASoC: pcm5102a: replace codec to component
ASoC: pcm3168a: replace codec to component
ASoC: twl6040: replace codec to component
ASoC: twl4030: replace codec to component
ASoC: msm8916-wcd-analog: replace codec to component
ASoC: msm8916-wcd-digital: replace codec to component
ASoC: spdif_transmitter: replace codec to component
ASoC: spdif_receiver: replace codec to component
ASoC: tas5720: replace codec to component
ASoC: tas2552: replace codec to component
ASoC: sun4i: replace codec to component
ASoC: sun8i: replace codec to component
ASoC: ads117x: replace codec to component
ASoC: ab8500: replace codec to component
ASoC: ad193x: replace codec to component
ASoC: ad1836: replace codec to component
ASoC: ad73311: replace codec to component
ASoC: ssm4567: replace codec to component
ASoC: ssm2602: replace codec to component
ASoC: ssm2518: replace codec to component
ASoC: sta350: replace codec to component
ASoC: sta32x: replace codec to component
ASoC: sta529: replace codec to component
ASoC: tas5086: replace codec to component
ASoC: tas571x: replace codec to component
ASoC: nau8824: replace codec to component
ASoC: nau8810: replace codec to component
ASoC: nau8540: replace codec to component
ASoC: es8316: replace codec to component
ASoC: es7134: replace codec to component
ASoC: es8328: replace codec to component
ASoC: alc5632: replace codec to component
ASoC: alc5623: replace codec to component
ASoC: hdmi-codec: replace codec to component
ASoC: bt-sco: replace codec to component
ASoC: vc4_hdmi: replace codec to component
ASoC: zx_aud96p22: replace codec to component
ASoC: wl1273: replace codec to component
ASoC: mc13783: replace codec to component
ASoC: sgtl5000: replace codec to component
ASoC: sirf-audio: replace codec to component
ASoC: inno_rk3036: replace codec to component
ASoC: isabelle: replace codec to component
ASoC: tfa9879: replace codec to component
ASoC: dmic: replace codec to component
ASoC: sti-sas: replace codec to component
ASoC: gtm601: replace codec to component
ASoC: 88pm860x: replace codec to component
ASoC: pistachio: replace codec to component
ASoC: lm49453: replace codec to component
ASoC: cq93vc: replace codec to component
ASoC: jz4740: replace codec to component
ASoC: uda1380: replace codec to component
ASoC: ml26124: replace codec to component
ASoC: si476x: replace codec to component
ASoC: uda134x: replace codec to component
ASoC: ics43432: replace codec to component
ASoC: uniphier: evea: replace codec to component
ASoC: pcm186x: replace codec to component
ASoC: tas6424: replace codec to component
ASoC: atmel-pdmic: replace codec to component
ASoC: atmel-classd: replace codec to component
ASoC: hdac_hdmi/nau8825/rt286/rt298/rt5663/da7219: replace codec to component
ASoC: rt5645/rt5677: replace codec to component
ASoC: wm8993/wm8994/wm8958: replace codec to component
ASoC: remove rtd->platform checck
ASoC: soc-utils: replace platform to component
ASoC: soc-generic-dmaengine-pcm: replace platform to component
ASoC: intel: atom: replace platform to component
ASoC: intel: skylake: replace platform to component
ASoC: intel: baytrail: replace platform to component
ASoC: intel: haswell: replace platform to component
ASoC: bcm: cygnus: replace platform to component
ASoC: sh: rsnd: replace platform to component
ASoC: sh: dma-sh7760: replace platform to component
ASoC: sh: fsi: replace platform to component
ASoC: sh: siu: replace platform to component
ASoC: atmel: replace platform to component
ASoC: amd: replace platform to component
ASoC: cs47l24: replace platform to component
ASoC: rt5514-spi: replace platform to component
ASoC: wm5110: replace platform to component
ASoC: wm5102: replace platform to component
ASoC: davinci-i2s: replace platform to component
ASoC: fsl: dma: replace platform to component
ASoC: fsl: asrc: replace platform to component
ASoC: fsl: imx: replace platform to component
ASoC: fsl: mpc5200: replace platform to component
ASoC: dwc-pcm: replace platform to component
ASoC: kirkwood: replace platform to component
ASoC: pxa: mmp: replace platform to component
ASoC: pxa: pxa2xx: replace platform to component
ASoC: qcom: lpass-platform: replace platform to component
ASoC: samsung: idma: replace platform to component
ASoC: xtfpga-i2s: replace platform to component
ASoC: blackfin: bf5xx-ac97-pcm: replace platform to component
ASoC: blackfin: bf5xx-i2s-pcm: replace platform to component
ASoC: omap-pcm: replace platform to component
ASoC: au1x: dbdma2: replace platform to component
ASoC: au1x: dma: replace platform to component
ASoC: nuc900-pcm: replace platform to component
ASoC: txx9aclc: replace platform to component
ASoC: mt2701/mt8173: replace platform to component
ASoC: stm: stm32_adfsdm: replace platform to component
ASoC: soc-utils: replace codec to component
ASoC: adau1701: replace codec to component
ASoC: rsnd: indicate IRQ error status for debug
ASoC: rsnd: suppress rsnd_dai_call() debug message
ASoC: wm9081: fixup wm9081_digital_mute() reg read
ASoC: wm9712: replace codec to component
ASoC: wm9713: replace codec to component
ASoC: ad73311: replace codec to component
ASoC: stac9766: replace codec to component
ASoC: wm9705: replace codec to component
ASoC: ad1980: replace codec to component
ASoC: uniphier: aio-dma: replace platform to component
ASoC: arizona: replace codec to component
ASoC: ak4613: don't have .use_pmdown_time
ASoC: ak4642: don't have .use_pmdown_time
ASoC: soc-core: soc_probe_dai() code simplification
ASoC: intel: kbl_da7219_max98357: replace codec to component
ASoC: amd: acp-da7219-max98357: replace codec to component
ASoC: ak4458: replace codec to component
ASoC: ak5558: replace codec to component
ASoC: pxa/mioa701_wm9713: replace codec to component
ASoC: dmic: don't use codec anymore
soc-core: don't call kfree() for component
ASoC: twl6040: remove duplicated remove callback
ASoC: amd: don't use codec anymore
ASoC: Intel: bytcr_rt5651: don't use codec anymore
ASoC: cpcap: replace codec to component
Ladislav Michl (6):
ASoC: max9867: Show Kconfig entry
ASoC: max9867: Improve error logging
ASoC: max9867: Fix codec capabilities
ASoC: max9867: DSP mode
ASoC: atmel: Remove redundant dev_err() call in probe function
ASoC: max9867: Drop probe function
Liam Girdwood (3):
ASoC: pcm: improve debug output for DPCM BE searching.
ASoC: topology: Check widget kcontrols before deref.
ASoC: topology: Fix kcontrol name string handling
Maciej S. Szmigiero (5):
ALSA: emu10k1: remove reserved_page
ALSA: emu10k1: use dma_set_mask_and_coherent()
ALSA: emu10k1: add optional debug printouts with DMA addresses
ALSA: emu10k1: make sure synth DMA pages are allocated with DMA functions
ALSA: emu10k1: add a IOMMU workaround
Mark Brown (2):
ASoC: Intel: Fix build
ASoC: core: Fix typo roup->group
Martin Hundebøll (1):
ASoC: soc-core: remove error due to probe deferral
Masahiro Yamada (1):
ASoC: uniphier: remove superfluous <linux/mfd/syscon.h> inclusion
Masanari Iida (1):
ASoC: mediatek: mt2701: Fix a typo in printk
Matt Porter (2):
ASoC: add tda7419 audio processor binding
ASoC: add tda7419 audio processor driver
Matt Ranostay (1):
ALSA: hda-beep: add SPDX identifiers
Matthias Kaehlcke (1):
ASoC: dmic: Add optional wakeup delay
Michal Oleszczyk (2):
ASoC: sgtl5000: add 'Audio Switch' block implementation
ASoC: sgtl5000: add 5 band graphic equalizer
Mukunda, Vijendar (2):
ASoC: amd: renaming pcm substream names and bytescount params
ASoC: amd: Coding style changes for acp dma driver
Mylène Josserand (2):
ASoC: codecs: Add support for PCM1789
ASoC: Add bindings for PCM1789
Naveen Manohar (3):
ASoC: Intel: Add Kabylake-y Dialog Maxim machine driver
ASoC: Intel: Add Kabylake Dialog+Maxim machine driver entry
ASoC: Intel: kbl: Enable mclk and ssp sclk early for rt5663
Neil Armstrong (2):
ASoC: Add DT bindings documentation for max9759 amplifier
ASoC: max9759: Add Amplifier Driver
Nicolin Chen (17):
ASoC: fsl_ssi: Redefine RX and TX macros
ASoC: fsl_ssi: Keep ssi->i2s_net updated
ASoC: fsl_ssi: Clean up set_dai_tdm_slot()
ASoC: fsl_ssi: Maintain a mask of active streams
ASoC: fsl_ssi: Rename fsl_ssi_disable_val macro
ASoC: fsl_ssi: Clear FIFO directly in fsl_ssi_config()
ASoC: fsl_ssi: Clean up helper functions of trigger()
ASoC: fsl_ssi: Add DAIFMT define for AC97
ASoC: fsl_ssi: Clean up fsl_ssi_setup_regvals()
ASoC: fsl_ssi: Set xFEN0 and xFEN1 together
ASoC: fsl_ssi: Use snd_soc_init_dma_data instead
ASoC: fsl_ssi: Move one-time configurations to probe()
ASoC: fsl_ssi: Setup AC97 in fsl_ssi_hw_init()
ASoC: fsl_ssi: Clean up _fsl_ssi_set_dai_fmt()
ASoC: fsl_ssi: Add bool synchronous to mark synchronous mode
ASoC: fsl_ssi: Move DT related code to a separate probe()
ASoC: fsl_ssi: Use ssi->streams instead of reading register
Nikita Yushchenko (1):
ASoC: rsnd: set pm_ops in hibernate-compatible way
Nobutaka Okabe (3):
ALSA: usb-audio: Add native DSD support for Luxman DA-06
ALSA: usb-audio: FIX native DSD support for TEAC UD-501 DAC
ALSA: usb-audio: Integrate native DSD support for ITF-USB based DACs.
Olivier Moysan (4):
ASoC: dmaengine_pcm: add processing support
ASoC: stm32: Add S/PDIF to SAI bindings
ASoC: stm32: sai: Add support of S/PDIF playback
ASoC: dmaengine_pcm: document process callback
Pawse, GuruprasadX (2):
ASoC: Intel: Skylake: Add BE DAI for WoV usecase
ASoC: Intel: board: Add BE DAI link for WoV and update DAPM machine map.
Peng Donglin (1):
ASoC: use DEFINE_SHOW_ATTRIBUTE() to decrease code duplication
Peter Ujfalusi (6):
ASoC: tlv320aic31xx: Fix master mode clock I2S bus clocks
ASoC: tlv320aic31xx: Rename AIF_IN from 'DAC IN' to 'AIF IN'
ASoC: tlv320aic31xx: Do not force power on the DAC/ADC in clock master mode
ASoC: hdmi-codec: Fix module unloading caused kernel crash
ASoC: twl6040: Add back missing write callback
ASoC: soc-io: Fix snd_soc_component_update_bits_legacy
Ranjani Sridharan (1):
ASoC: topology: create TLV data for dapm widgets
Richard Fitzgerald (3):
ASoC: wm_adsp: Don't init cache from DSP memory if control is write-only
ASoC: wm_adsp: Fix some signedness errors in register access
ALSA: control: Fix a bunch of whitespace errors
Robert Rosengren (1):
ALSA: aloop: Mark paused device as inactive
Ruslan Bilovol (2):
ALSA: usb-audio: move audioformat quirks to quirks.c
ALSA: usb: initial USB Audio Device Class 3.0 support
Ryder Lee (1):
ASoC: mediatek: remove "simple-mfd" in the example
Sanyog Kale (1):
ASoC: Intel: Skylake: Disable clock and power gating during FW/LIB download
Sebastian Reichel (1):
ASoC: cpcap: new codec
Srinivas Kandagatla (1):
ASoC: dapm: add support to pinctrl dapm
Sriram Periyasamy (1):
ASoC: Intel: Skylake: Find module id from UUID for bind params
Steven Eckhoff (1):
ASoC: TSCS42xx: Add missing headers
Sylwester Nawrocki (19):
ASoC: samsung: Add the DT binding files entry to MAINTAINERS
ASoC: samsung: i2s: Ensure the RCLK rate is properly determined
ASoC: samsung: i2s: Update clock-output-names property documentation
ASoC: samsung: i2s: Ensure names of supplied clocks are unique
ASoC: samsung: i2s: Prevent external abort on exynos5433 I2S1 access
ASoC: samsung: i2s: Define the parameters list for SAMSUNG_I2S_OPCLK
ASoC: samsung,tm2-audio DT binding documentation update
ASoC: samsung: Add support for HDMI audio on TM2 board
ASoC: samsung: Add missing #sound-dai-cells property documentation
ASoC: Use proper DT compatible string for Hardkernel Odroid boards
ASoC: max98090: Add #sound-dai-cells property documentation
ASoC: Add snd_soc_of_put_dai_link_codecs() helper function
ASoC: samsung: i2s: Fix rclk_srcrate handling
ASoC: samsung: Drop uneeded RCLKSRC setting in the Snow driver
ASoC: samsung: Snow DT bindings update
ASoC: samsung: Add HDMI audio support for Snow
ASoC: samsung: odroid: Fix 32000 sample rate handling
ASoC: samsung: odroid: Drop sample rates that cannot be supported from hw_params()
ASoC: samsung: Use snd_soc_of_put_dai_link_codecs() in odroid.c
Takashi Iwai (8):
ALSA: vmaster: Propagate slave error
ALSA: vmaster: Zero-clear ctl before calling slave get
ALSA: pcm: Remove VLA usage
ALSA: pcm: Use krealloc() for resizing the rules array
ALSA: pcm: Avoid potential races between OSS ioctls and read/write
ALSA: pcm: Return -EBUSY for OSS ioctls changing busy streams
ALSA: pcm: Fix mutex unbalance in OSS emulation ioctls
ALSA: pcm: Fix UAF at PCM release via PCM timer access
Vijendar Mukunda (1):
ASoC: amd: modifications in dma stop sequence
Wei Yongjun (1):
ASoC: mediatek: mt2701: drop unnessary snd_soc_unregister_component()
Wu Fengguang (2):
ASoC: uniphier: aiodma_rb_get_rp() can be static
ASoC: rt5659: rt5659_intel_hd_header_probe_setup() can be static
kbuild test robot (1):
ASoC: ak4458: ak4458_regmap can be static
oder_chiou@realtek.com (2):
ASoC: rt5659: Add the support of Intel HDA Header
ASoC: rt5659: Remove the routing path of the power widget "LDO2"
olivier moysan (2):
ASoC: stm32: spdifrx: fix typo in function name.
ASoC: stm32: spdifrx: Use default dai name
weiyongjun (A) (2):
ASoC: wm8400: Use devm_snd_soc_register_component()
ASoC: da7210: Use devm_snd_soc_register_component()
---
Documentation/devicetree/bindings/sound/ak4458.txt | 23 +
Documentation/devicetree/bindings/sound/ak5558.txt | 22 +
Documentation/devicetree/bindings/sound/da7219.txt | 6 +
Documentation/devicetree/bindings/sound/dmic.txt | 2 +
.../devicetree/bindings/sound/fsl-asoc-card.txt | 1 -
.../devicetree/bindings/sound/imx-audio-wm8962.txt | 53 -
.../devicetree/bindings/sound/max98090.txt | 2 +
.../devicetree/bindings/sound/maxim,max9759.txt | 18 +
.../devicetree/bindings/sound/mt2701-afe-pcm.txt | 2 +-
.../devicetree/bindings/sound/pcm1789.txt | 22 +
.../devicetree/bindings/sound/renesas,rsnd.txt | 1 +
.../bindings/sound/rockchip,rk3288-hdmi-analog.txt | 2 +-
.../devicetree/bindings/sound/rohm,bd28623.txt | 29 +
Documentation/devicetree/bindings/sound/rt5651.txt | 17 +
Documentation/devicetree/bindings/sound/rt5665.txt | 4 +-
.../devicetree/bindings/sound/samsung,odroid.txt | 8 +-
.../bindings/sound/samsung,tm2-audio.txt | 14 +-
.../devicetree/bindings/sound/samsung-i2s.txt | 22 +-
.../devicetree/bindings/sound/sgtl5000.txt | 3 +
Documentation/devicetree/bindings/sound/snow.txt | 13 +-
.../devicetree/bindings/sound/st,stm32-sai.txt | 6 +
.../devicetree/bindings/sound/tda7419.txt | 38 +
.../devicetree/bindings/sound/uniphier,aio.txt | 45 +
Documentation/devicetree/bindings/sound/wm8524.txt | 2 +-
MAINTAINERS | 7 -
arch/x86/include/asm/platform_sst_audio.h | 1 +
drivers/gpu/drm/vc4/vc4_hdmi.c | 47 +-
include/dt-bindings/sound/rt5651.h | 15 +
include/linux/usb/audio-v2.h | 8 +-
include/linux/usb/audio-v3.h | 395 +++++
include/sound/da7219.h | 2 +
include/sound/dmaengine_pcm.h | 7 +
include/sound/emu10k1.h | 4 +-
include/sound/hdaudio.h | 2 +
include/sound/pcm_oss.h | 1 +
include/sound/rt5651.h | 29 -
include/sound/rt5659.h | 1 +
include/sound/soc-dapm.h | 16 +
include/sound/soc.h | 14 +-
include/uapi/linux/usb/audio.h | 1 +
include/uapi/sound/asound.h | 1 +
sound/core/control.c | 18 +-
sound/core/init.c | 4 +-
sound/core/oss/pcm_oss.c | 185 ++-
sound/core/pcm.c | 8 +-
sound/core/pcm_lib.c | 8 +-
sound/core/pcm_native.c | 19 +-
sound/core/vmaster.c | 7 +-
sound/drivers/aloop.c | 12 +-
sound/hda/hdac_device.c | 35 +
sound/pci/echoaudio/echoaudio.c | 3 +-
sound/pci/emu10k1/emu10k1_main.c | 71 +-
sound/pci/emu10k1/emupcm.c | 10 +-
sound/pci/emu10k1/memory.c | 101 +-
sound/pci/hda/hda_beep.c | 17 +-
sound/pci/hda/hda_beep.h | 17 +-
sound/pci/hda/hda_codec.c | 28 +-
sound/pci/hda/hda_intel.c | 3 +
sound/pci/hda/hda_local.h | 6 +-
sound/pci/ice1712/juli.c | 8 +-
sound/pci/ice1712/quartet.c | 8 +-
sound/soc/Kconfig | 1 -
sound/soc/Makefile | 1 -
sound/soc/amd/Kconfig | 9 +
sound/soc/amd/Makefile | 2 +
sound/soc/amd/acp-da7219-max98357a.c | 276 ++++
sound/soc/amd/acp-pcm-dma.c | 206 +--
sound/soc/amd/acp-rt5645.c | 4 +-
sound/soc/amd/acp.h | 8 +-
sound/soc/atmel/atmel-classd.c | 65 +-
sound/soc/atmel/atmel-pcm-pdc.c | 6 +-
sound/soc/atmel/atmel-pdmic.c | 67 +-
sound/soc/au1x/dbdma2.c | 13 +-
sound/soc/au1x/dma.c | 12 +-
sound/soc/bcm/cygnus-pcm.c | 7 +-
sound/soc/bcm/cygnus-ssp.c | 2 +-
sound/soc/blackfin/Kconfig | 205 ---
sound/soc/blackfin/Makefile | 40 -
sound/soc/blackfin/bf5xx-ac97-pcm.c | 480 ------
sound/soc/blackfin/bf5xx-ac97.c | 388 -----
sound/soc/blackfin/bf5xx-ac97.h | 57 -
sound/soc/blackfin/bf5xx-ad1836.c | 109 --
sound/soc/blackfin/bf5xx-ad193x.c | 131 --
sound/soc/blackfin/bf5xx-ad1980.c | 109 --
sound/soc/blackfin/bf5xx-ad73311.c | 212 ---
sound/soc/blackfin/bf5xx-i2s-pcm.c | 373 -----
sound/soc/blackfin/bf5xx-i2s-pcm.h | 17 -
sound/soc/blackfin/bf5xx-i2s.c | 391 -----
sound/soc/blackfin/bf5xx-sport.c | 1102 --------------
sound/soc/blackfin/bf5xx-sport.h | 174 ---
sound/soc/blackfin/bf5xx-ssm2602.c | 126 --
sound/soc/blackfin/bf6xx-i2s.c | 239 ---
sound/soc/blackfin/bf6xx-sport.c | 425 ------
sound/soc/blackfin/bf6xx-sport.h | 82 -
sound/soc/blackfin/bfin-eval-adau1373.c | 173 ---
sound/soc/blackfin/bfin-eval-adau1701.c | 113 --
sound/soc/blackfin/bfin-eval-adau1x61.c | 142 --
sound/soc/blackfin/bfin-eval-adau1x81.c | 129 --
sound/soc/blackfin/bfin-eval-adav80x.c | 145 --
sound/soc/codecs/88pm860x-codec.c | 166 +--
sound/soc/codecs/88pm860x-codec.h | 4 +-
sound/soc/codecs/Kconfig | 50 +-
sound/soc/codecs/Makefile | 17 +-
sound/soc/codecs/ab8500-codec.c | 295 ++--
sound/soc/codecs/ac97.c | 46 +-
sound/soc/codecs/ad1836.c | 68 +-
sound/soc/codecs/ad193x-i2c.c | 7 -
sound/soc/codecs/ad193x-spi.c | 7 -
sound/soc/codecs/ad193x.c | 46 +-
sound/soc/codecs/ad1980.c | 87 +-
sound/soc/codecs/ad73311.c | 27 +-
sound/soc/codecs/adau1373.c | 84 +-
sound/soc/codecs/adau1701.c | 101 +-
sound/soc/codecs/adau1761.c | 88 +-
sound/soc/codecs/adau1781.c | 51 +-
sound/soc/codecs/adau17x1.c | 69 +-
sound/soc/codecs/adau17x1.h | 8 +-
sound/soc/codecs/adau1977-i2c.c | 7 -
sound/soc/codecs/adau1977-spi.c | 7 -
sound/soc/codecs/adau1977.c | 59 +-
sound/soc/codecs/adau7002.c | 30 +-
sound/soc/codecs/adav801.c | 7 -
sound/soc/codecs/adav803.c | 7 -
sound/soc/codecs/adav80x.c | 130 +-
sound/soc/codecs/ads117x.c | 27 +-
sound/soc/codecs/ak4104.c | 68 +-
sound/soc/codecs/ak4458.c | 657 ++++++++
sound/soc/codecs/ak4458.h | 86 ++
sound/soc/codecs/ak4535.c | 78 +-
sound/soc/codecs/ak4554.c | 27 +-
sound/soc/codecs/ak4613.c | 72 +-
sound/soc/codecs/ak4641.c | 91 +-
sound/soc/codecs/ak4642.c | 104 +-
sound/soc/codecs/ak4671.c | 67 +-
sound/soc/codecs/ak5386.c | 62 +-
sound/soc/codecs/ak5558.c | 415 ++++++
sound/soc/codecs/ak5558.h | 52 +
sound/soc/codecs/alc5623.c | 147 +-
sound/soc/codecs/alc5632.c | 138 +-
sound/soc/codecs/arizona.c | 249 ++--
sound/soc/codecs/arizona.h | 24 +-
sound/soc/codecs/bd28623.c | 242 +++
sound/soc/codecs/bt-sco.c | 21 +-
sound/soc/codecs/cpcap.c | 1562 ++++++++++++++++++++
sound/soc/codecs/cq93vc.c | 33 +-
sound/soc/codecs/cs35l32.c | 45 +-
sound/soc/codecs/cs35l33.c | 186 ++-
sound/soc/codecs/cs35l34.c | 127 +-
sound/soc/codecs/cs35l35.c | 104 +-
sound/soc/codecs/cs4265.c | 98 +-
sound/soc/codecs/cs4270.c | 124 +-
sound/soc/codecs/cs4271-i2c.c | 7 -
sound/soc/codecs/cs4271-spi.c | 7 -
sound/soc/codecs/cs4271.c | 105 +-
sound/soc/codecs/cs42l42.c | 154 +-
sound/soc/codecs/cs42l42.h | 2 +-
sound/soc/codecs/cs42l51-i2c.c | 8 -
sound/soc/codecs/cs42l51.c | 81 +-
sound/soc/codecs/cs42l52.c | 146 +-
sound/soc/codecs/cs42l56.c | 158 +-
sound/soc/codecs/cs42l73.c | 122 +-
sound/soc/codecs/cs42xx8-i2c.c | 1 -
sound/soc/codecs/cs42xx8.c | 57 +-
sound/soc/codecs/cs43130.c | 243 +--
sound/soc/codecs/cs43130.h | 2 +-
sound/soc/codecs/cs4349.c | 39 +-
sound/soc/codecs/cs47l24.c | 136 +-
sound/soc/codecs/cs53l30.c | 57 +-
sound/soc/codecs/cx20442.c | 89 +-
sound/soc/codecs/da7210.c | 181 ++-
sound/soc/codecs/da7213.c | 328 ++--
sound/soc/codecs/da7218.c | 498 +++----
sound/soc/codecs/da7218.h | 2 +-
sound/soc/codecs/da7219-aad.c | 236 +--
sound/soc/codecs/da7219-aad.h | 12 +-
sound/soc/codecs/da7219.c | 434 ++++--
sound/soc/codecs/da7219.h | 11 +-
sound/soc/codecs/da732x.c | 241 +--
sound/soc/codecs/da9055.c | 186 ++-
sound/soc/codecs/dmic.c | 92 +-
sound/soc/codecs/es7134.c | 27 +-
sound/soc/codecs/es8316.c | 80 +-
sound/soc/codecs/es8328-i2c.c | 7 -
sound/soc/codecs/es8328-spi.c | 7 -
sound/soc/codecs/es8328.c | 147 +-
sound/soc/codecs/gtm601.c | 28 +-
sound/soc/codecs/hdac_hdmi.c | 65 +-
sound/soc/codecs/hdac_hdmi.h | 2 +-
sound/soc/codecs/hdmi-codec.c | 30 +-
sound/soc/codecs/ics43432.c | 16 +-
sound/soc/codecs/inno_rk3036.c | 70 +-
sound/soc/codecs/isabelle.c | 57 +-
sound/soc/codecs/jz4740.c | 50 +-
sound/soc/codecs/lm49453.c | 65 +-
sound/soc/codecs/max9759.c | 207 +++
sound/soc/codecs/max98088.c | 314 ++--
sound/soc/codecs/max98090.c | 319 ++--
sound/soc/codecs/max98090.h | 4 +-
sound/soc/codecs/max98095.c | 448 +++---
sound/soc/codecs/max98095.h | 2 +-
sound/soc/codecs/max98357a.c | 29 +-
sound/soc/codecs/max98371.c | 43 +-
sound/soc/codecs/max98371.h | 1 -
sound/soc/codecs/max98373.c | 75 +-
sound/soc/codecs/max9850.c | 80 +-
sound/soc/codecs/max9860.c | 70 +-
sound/soc/codecs/max9867.c | 91 +-
sound/soc/codecs/max9867.h | 1 -
sound/soc/codecs/max98925.c | 72 +-
sound/soc/codecs/max98925.h | 2 +-
sound/soc/codecs/max98926.c | 56 +-
sound/soc/codecs/max98926.h | 2 +-
sound/soc/codecs/max98927.c | 82 +-
sound/soc/codecs/max98927.h | 2 +-
sound/soc/codecs/mc13783.c | 68 +-
sound/soc/codecs/ml26124.c | 103 +-
sound/soc/codecs/msm8916-wcd-analog.c | 207 +--
sound/soc/codecs/msm8916-wcd-digital.c | 115 +-
sound/soc/codecs/nau8540.c | 79 +-
sound/soc/codecs/nau8810.c | 73 +-
sound/soc/codecs/nau8824.c | 153 +-
sound/soc/codecs/nau8824.h | 2 +-
sound/soc/codecs/nau8825.c | 107 +-
sound/soc/codecs/nau8825.h | 2 +-
sound/soc/codecs/pcm1681.c | 62 +-
sound/soc/codecs/pcm1789-i2c.c | 62 +
sound/soc/codecs/pcm1789.c | 274 ++++
sound/soc/codecs/pcm1789.h | 17 +
sound/soc/codecs/pcm179x-i2c.c | 6 -
sound/soc/codecs/pcm179x-spi.c | 6 -
sound/soc/codecs/pcm179x.c | 45 +-
sound/soc/codecs/pcm179x.h | 1 -
sound/soc/codecs/pcm186x-i2c.c | 8 -
sound/soc/codecs/pcm186x-spi.c | 8 -
sound/soc/codecs/pcm186x.c | 143 +-
sound/soc/codecs/pcm186x.h | 1 -
sound/soc/codecs/pcm3008.c | 36 +-
sound/soc/codecs/pcm3168a.c | 51 +-
sound/soc/codecs/pcm5102a.c | 16 +-
sound/soc/codecs/pcm512x.c | 162 +-
sound/soc/codecs/rt274.c | 206 ++-
sound/soc/codecs/rt286.c | 205 ++-
sound/soc/codecs/rt286.h | 2 +-
sound/soc/codecs/rt298.c | 217 ++-
sound/soc/codecs/rt298.h | 2 +-
sound/soc/codecs/rt5514-spi.c | 36 +-
sound/soc/codecs/rt5514.c | 128 +-
sound/soc/codecs/rt5514.h | 2 +-
sound/soc/codecs/rt5616.c | 219 ++-
sound/soc/codecs/rt5631.c | 324 ++--
sound/soc/codecs/rt5640.c | 260 ++--
sound/soc/codecs/rt5640.h | 6 +-
sound/soc/codecs/rt5645.c | 370 +++--
sound/soc/codecs/rt5645.h | 4 +-
sound/soc/codecs/rt5651.c | 752 +++++-----
sound/soc/codecs/rt5651.h | 23 +-
sound/soc/codecs/rt5659.c | 472 +++---
sound/soc/codecs/rt5659.h | 21 +-
sound/soc/codecs/rt5660.c | 145 +-
sound/soc/codecs/rt5660.h | 2 +-
sound/soc/codecs/rt5663.c | 600 ++++----
sound/soc/codecs/rt5663.h | 4 +-
sound/soc/codecs/rt5665.c | 350 +++--
sound/soc/codecs/rt5665.h | 3 +-
sound/soc/codecs/rt5670.c | 295 ++--
sound/soc/codecs/rt5670.h | 10 +-
sound/soc/codecs/rt5677.c | 205 ++-
sound/soc/codecs/rt5677.h | 4 +-
sound/soc/codecs/sgtl5000.c | 275 ++--
sound/soc/codecs/sgtl5000.h | 7 +
sound/soc/codecs/si476x.c | 42 +-
sound/soc/codecs/sirf-audio-codec.c | 58 +-
sound/soc/codecs/spdif_receiver.c | 26 +-
sound/soc/codecs/spdif_transmitter.c | 26 +-
sound/soc/codecs/ssm2518.c | 57 +-
sound/soc/codecs/ssm2602-i2c.c | 7 -
sound/soc/codecs/ssm2602-spi.c | 7 -
sound/soc/codecs/ssm2602.c | 96 +-
sound/soc/codecs/ssm4567.c | 44 +-
sound/soc/codecs/sta32x.c | 134 +-
sound/soc/codecs/sta350.c | 117 +-
sound/soc/codecs/sta529.c | 69 +-
sound/soc/codecs/stac9766.c | 77 +-
sound/soc/codecs/sti-sas.c | 84 +-
sound/soc/codecs/tas2552.c | 178 ++-
sound/soc/codecs/tas5086.c | 94 +-
sound/soc/codecs/tas571x.c | 55 +-
sound/soc/codecs/tas5720.c | 151 +-
sound/soc/codecs/tas6424.c | 99 +-
sound/soc/codecs/tda7419.c | 654 ++++++++
sound/soc/codecs/tfa9879.c | 50 +-
sound/soc/codecs/tlv320aic23-i2c.c | 7 -
sound/soc/codecs/tlv320aic23-spi.c | 7 -
sound/soc/codecs/tlv320aic23.c | 120 +-
sound/soc/codecs/tlv320aic26.c | 83 +-
sound/soc/codecs/tlv320aic31xx.c | 339 +++--
sound/soc/codecs/tlv320aic31xx.h | 1 +
sound/soc/codecs/tlv320aic32x4.c | 207 ++-
sound/soc/codecs/tlv320aic3x.c | 295 ++--
sound/soc/codecs/tlv320dac33.c | 402 +++--
sound/soc/codecs/tscs42xx.c | 244 +--
sound/soc/codecs/twl4030.c | 383 +++--
sound/soc/codecs/twl6040.c | 269 ++--
sound/soc/codecs/twl6040.h | 10 +-
sound/soc/codecs/uda134x.c | 78 +-
sound/soc/codecs/uda1380.c | 160 +-
sound/soc/codecs/wl1273.c | 93 +-
sound/soc/codecs/wl1273.h | 2 +-
sound/soc/codecs/wm0010.c | 181 ++-
sound/soc/codecs/wm1250-ev1.c | 27 +-
sound/soc/codecs/wm2000.c | 78 +-
sound/soc/codecs/wm2200.c | 157 +-
sound/soc/codecs/wm5100.c | 260 ++--
sound/soc/codecs/wm5100.h | 2 +-
sound/soc/codecs/wm5102.c | 154 +-
sound/soc/codecs/wm5110.c | 222 ++-
sound/soc/codecs/wm8350.c | 183 ++-
sound/soc/codecs/wm8350.h | 4 +-
sound/soc/codecs/wm8400.c | 211 ++-
sound/soc/codecs/wm8510.c | 149 +-
sound/soc/codecs/wm8523.c | 98 +-
sound/soc/codecs/wm8524.c | 56 +-
sound/soc/codecs/wm8580.c | 150 +-
sound/soc/codecs/wm8711.c | 116 +-
sound/soc/codecs/wm8727.c | 29 +-
sound/soc/codecs/wm8728.c | 82 +-
sound/soc/codecs/wm8731.c | 101 +-
sound/soc/codecs/wm8737.c | 109 +-
sound/soc/codecs/wm8741.c | 133 +-
sound/soc/codecs/wm8750.c | 115 +-
sound/soc/codecs/wm8753.c | 289 ++--
sound/soc/codecs/wm8770.c | 131 +-
sound/soc/codecs/wm8776.c | 105 +-
sound/soc/codecs/wm8782.c | 27 +-
sound/soc/codecs/wm8804.c | 100 +-
sound/soc/codecs/wm8900.c | 251 ++--
sound/soc/codecs/wm8903.c | 211 ++-
sound/soc/codecs/wm8903.h | 2 +-
sound/soc/codecs/wm8904.c | 355 +++--
sound/soc/codecs/wm8940.c | 159 +-
sound/soc/codecs/wm8955.c | 189 ++-
sound/soc/codecs/wm8958-dsp2.c | 278 ++--
sound/soc/codecs/wm8960.c | 249 ++--
sound/soc/codecs/wm8961.c | 241 ++-
sound/soc/codecs/wm8962.c | 397 +++--
sound/soc/codecs/wm8962.h | 2 +-
sound/soc/codecs/wm8971.c | 108 +-
sound/soc/codecs/wm8974.c | 143 +-
sound/soc/codecs/wm8978.c | 185 ++-
sound/soc/codecs/wm8983.c | 170 +--
sound/soc/codecs/wm8985.c | 201 ++-
sound/soc/codecs/wm8988.c | 127 +-
sound/soc/codecs/wm8990.c | 179 ++-
sound/soc/codecs/wm8991.c | 167 +--
sound/soc/codecs/wm8993.c | 237 +--
sound/soc/codecs/wm8994.c | 810 +++++-----
sound/soc/codecs/wm8994.h | 8 +-
sound/soc/codecs/wm8995.c | 286 ++--
sound/soc/codecs/wm8996.c | 401 +++--
sound/soc/codecs/wm8996.h | 4 +-
sound/soc/codecs/wm8997.c | 72 +-
sound/soc/codecs/wm8998.c | 115 +-
sound/soc/codecs/wm9081.c | 228 ++-
sound/soc/codecs/wm9090.c | 109 +-
sound/soc/codecs/wm9705.c | 83 +-
sound/soc/codecs/wm9712.c | 111 +-
sound/soc/codecs/wm9713.c | 203 ++-
sound/soc/codecs/wm_adsp.c | 99 +-
sound/soc/codecs/wm_adsp.h | 14 +-
sound/soc/codecs/wm_hubs.c | 254 ++--
sound/soc/codecs/wm_hubs.h | 18 +-
sound/soc/codecs/zx_aud96p22.c | 35 +-
sound/soc/davinci/davinci-i2s.c | 13 +-
sound/soc/dwc/dwc-i2s.c | 4 +
sound/soc/dwc/dwc-pcm.c | 5 +-
sound/soc/fsl/Kconfig | 11 -
sound/soc/fsl/Makefile | 2 -
sound/soc/fsl/fsl-asoc-card.c | 6 +-
sound/soc/fsl/fsl_asrc.c | 10 -
sound/soc/fsl/fsl_asrc.h | 3 +-
sound/soc/fsl/fsl_asrc_dma.c | 14 +-
sound/soc/fsl/fsl_dma.c | 27 +-
sound/soc/fsl/fsl_esai.c | 2 +-
sound/soc/fsl/fsl_ssi.c | 758 +++++-----
sound/soc/fsl/fsl_ssi.h | 3 -
sound/soc/fsl/fsl_utils.c | 2 +-
sound/soc/fsl/imx-pcm-fiq.c | 6 +-
sound/soc/fsl/imx-wm8962.c | 312 ----
sound/soc/fsl/mpc5200_dma.c | 16 +-
sound/soc/fsl/wm1133-ev1.c | 6 +-
sound/soc/img/pistachio-internal-dac.c | 34 +-
sound/soc/intel/atom/sst-atom-controls.c | 36 +-
sound/soc/intel/atom/sst-mfld-platform-compress.c | 4 +-
sound/soc/intel/atom/sst-mfld-platform-pcm.c | 32 +-
sound/soc/intel/atom/sst-mfld-platform.h | 4 +-
sound/soc/intel/atom/sst/sst.c | 24 +-
sound/soc/intel/atom/sst/sst.h | 20 +-
sound/soc/intel/atom/sst/sst_acpi.c | 3 +-
sound/soc/intel/atom/sst/sst_drv_interface.c | 19 -
sound/soc/intel/atom/sst/sst_pvt.c | 8 -
sound/soc/intel/atom/sst/sst_stream.c | 117 +-
sound/soc/intel/baytrail/sst-baytrail-pcm.c | 66 +-
sound/soc/intel/boards/Kconfig | 25 +
sound/soc/intel/boards/Makefile | 4 +
sound/soc/intel/boards/bdw-rt5677.c | 41 +-
sound/soc/intel/boards/broadwell.c | 17 +-
sound/soc/intel/boards/bxt_da7219_max98357a.c | 12 +-
sound/soc/intel/boards/bxt_rt298.c | 27 +-
sound/soc/intel/boards/byt-rt5640.c | 4 +-
sound/soc/intel/boards/bytcr_rt5640.c | 8 +-
sound/soc/intel/boards/bytcr_rt5651.c | 466 +++++-
sound/soc/intel/boards/cht_bsw_nau8824.c | 282 ++++
sound/soc/intel/boards/cht_bsw_rt5645.c | 8 +-
sound/soc/intel/boards/cht_bsw_rt5672.c | 18 +-
sound/soc/intel/boards/haswell.c | 3 +-
sound/soc/intel/boards/kbl_da7219_max98357a.c | 613 ++++++++
sound/soc/intel/boards/kbl_rt5663_max98927.c | 19 +-
.../soc/intel/boards/kbl_rt5663_rt5514_max98927.c | 14 +-
sound/soc/intel/boards/skl_nau88l25_max98357a.c | 12 +-
sound/soc/intel/boards/skl_nau88l25_ssm4567.c | 12 +-
sound/soc/intel/boards/skl_rt286.c | 12 +-
sound/soc/intel/common/soc-acpi-intel-cht-match.c | 9 +
sound/soc/intel/haswell/sst-haswell-ipc.h | 2 +
sound/soc/intel/haswell/sst-haswell-pcm.c | 118 +-
sound/soc/intel/skylake/skl-debug.c | 2 +-
sound/soc/intel/skylake/skl-messages.c | 9 +-
sound/soc/intel/skylake/skl-pcm.c | 72 +-
sound/soc/intel/skylake/skl-ssp-clk.c | 4 +-
sound/soc/intel/skylake/skl-sst-ipc.h | 3 +
sound/soc/intel/skylake/skl-topology.c | 133 +-
sound/soc/intel/skylake/skl-topology.h | 15 +-
sound/soc/intel/skylake/skl.c | 40 +
sound/soc/intel/skylake/skl.h | 6 +-
sound/soc/kirkwood/kirkwood-dma.c | 3 +-
sound/soc/kirkwood/kirkwood-i2s.c | 20 +-
sound/soc/kirkwood/kirkwood.h | 4 +-
sound/soc/mediatek/common/mtk-afe-fe-dai.c | 16 +-
.../soc/mediatek/common/mtk-afe-platform-driver.c | 9 +-
.../soc/mediatek/common/mtk-afe-platform-driver.h | 3 +-
sound/soc/mediatek/mt2701/mt2701-afe-pcm.c | 54 +-
sound/soc/mediatek/mt8173/mt8173-afe-pcm.c | 42 +-
sound/soc/mediatek/mt8173/mt8173-max98090.c | 4 +-
sound/soc/mediatek/mt8173/mt8173-rt5650-rt5514.c | 6 +-
sound/soc/mediatek/mt8173/mt8173-rt5650-rt5676.c | 12 +-
sound/soc/mediatek/mt8173/mt8173-rt5650.c | 12 +-
sound/soc/nuc900/nuc900-pcm.c | 5 +-
sound/soc/omap/ams-delta.c | 20 +-
sound/soc/omap/omap-abe-twl6040.c | 8 +-
sound/soc/omap/omap-pcm.c | 5 +-
sound/soc/pxa/mioa701_wm9713.c | 30 +-
sound/soc/pxa/mmp-pcm.c | 11 +-
sound/soc/pxa/mmp-sspa.c | 1 -
sound/soc/pxa/pxa2xx-pcm.c | 5 +-
sound/soc/pxa/ttc-dkb.c | 6 +-
sound/soc/qcom/lpass-platform.c | 42 +-
sound/soc/rockchip/Kconfig | 3 +
sound/soc/rockchip/rk3288_hdmi_analog.c | 2 +-
sound/soc/rockchip/rk3399_gru_sound.c | 4 +-
sound/soc/rockchip/rockchip_rt5645.c | 8 +-
sound/soc/samsung/Makefile | 3 -
sound/soc/samsung/i2s-regs.h | 11 +-
sound/soc/samsung/i2s.c | 52 +-
sound/soc/samsung/i2s.h | 11 +-
sound/soc/samsung/idma.c | 5 +-
sound/soc/samsung/littlemill.c | 8 +-
sound/soc/samsung/lowland.c | 12 +-
sound/soc/samsung/odroid.c | 33 +-
sound/soc/samsung/snow.c | 229 ++-
sound/soc/samsung/speyside.c | 12 +-
sound/soc/samsung/tm2_wm5110.c | 206 ++-
sound/soc/samsung/tobermory.c | 6 +-
sound/soc/sh/dma-sh7760.c | 5 +-
sound/soc/sh/fsi.c | 24 +-
sound/soc/sh/rcar/core.c | 36 +-
sound/soc/sh/rcar/rsnd.h | 20 +
sound/soc/sh/rcar/src.c | 22 +-
sound/soc/sh/rcar/ssi.c | 16 +-
sound/soc/sh/siu.h | 2 +-
sound/soc/sh/siu_dai.c | 10 +-
sound/soc/sh/siu_pcm.c | 9 +-
sound/soc/sirf/sirf-usp.h | 2 +-
sound/soc/soc-ac97.c | 84 +-
sound/soc/soc-core.c | 117 +-
sound/soc/soc-dapm.c | 46 +-
sound/soc/soc-generic-dmaengine-pcm.c | 121 +-
sound/soc/soc-io.c | 7 +-
sound/soc/soc-pcm.c | 11 +
sound/soc/soc-topology.c | 35 +-
sound/soc/soc-utils.c | 28 +-
sound/soc/stm/stm32_adfsdm.c | 7 +-
sound/soc/stm/stm32_sai.c | 2 +
sound/soc/stm/stm32_sai.h | 2 +
sound/soc/stm/stm32_sai_sub.c | 153 +-
sound/soc/stm/stm32_spdifrx.c | 7 +-
sound/soc/sunxi/sun4i-codec.c | 71 +-
sound/soc/sunxi/sun8i-codec.c | 23 +-
sound/soc/tegra/tegra_wm8903.c | 8 +-
sound/soc/txx9/txx9aclc.c | 26 +-
sound/soc/uniphier/Kconfig | 33 +
sound/soc/uniphier/Makefile | 8 +
sound/soc/uniphier/aio-compress.c | 438 ++++++
sound/soc/uniphier/aio-core.c | 1138 ++++++++++++++
sound/soc/uniphier/aio-cpu.c | 578 ++++++++
sound/soc/uniphier/aio-dma.c | 319 ++++
sound/soc/uniphier/aio-ld11.c | 431 ++++++
sound/soc/uniphier/aio-pxs2.c | 320 ++++
sound/soc/uniphier/aio-reg.h | 465 ++++++
sound/soc/uniphier/aio.h | 359 +++++
sound/soc/uniphier/evea.c | 102 +-
sound/soc/xtensa/xtfpga-i2s.c | 17 +-
sound/usb/card.c | 7 +-
sound/usb/card.h | 2 +-
sound/usb/clock.c | 231 ++-
sound/usb/clock.h | 4 +-
sound/usb/format.c | 93 +-
sound/usb/format.h | 6 +-
sound/usb/mixer.c | 511 +++++--
sound/usb/quirks.c | 102 +-
sound/usb/quirks.h | 4 +
sound/usb/stream.c | 395 ++++-
520 files changed, 29431 insertions(+), 23352 deletions(-)
create mode 100644 Documentation/devicetree/bindings/sound/ak4458.txt
create mode 100644 Documentation/devicetree/bindings/sound/ak5558.txt
delete mode 100644 Documentation/devicetree/bindings/sound/imx-audio-wm8962.txt
create mode 100644 Documentation/devicetree/bindings/sound/maxim,max9759.txt
create mode 100644 Documentation/devicetree/bindings/sound/pcm1789.txt
create mode 100644 Documentation/devicetree/bindings/sound/rohm,bd28623.txt
create mode 100644 Documentation/devicetree/bindings/sound/tda7419.txt
create mode 100644 Documentation/devicetree/bindings/sound/uniphier,aio.txt
create mode 100644 include/dt-bindings/sound/rt5651.h
create mode 100644 include/linux/usb/audio-v3.h
delete mode 100644 include/sound/rt5651.h
create mode 100644 sound/soc/amd/acp-da7219-max98357a.c
delete mode 100644 sound/soc/blackfin/Kconfig
delete mode 100644 sound/soc/blackfin/Makefile
delete mode 100644 sound/soc/blackfin/bf5xx-ac97-pcm.c
delete mode 100644 sound/soc/blackfin/bf5xx-ac97.c
delete mode 100644 sound/soc/blackfin/bf5xx-ac97.h
delete mode 100644 sound/soc/blackfin/bf5xx-ad1836.c
delete mode 100644 sound/soc/blackfin/bf5xx-ad193x.c
delete mode 100644 sound/soc/blackfin/bf5xx-ad1980.c
delete mode 100644 sound/soc/blackfin/bf5xx-ad73311.c
delete mode 100644 sound/soc/blackfin/bf5xx-i2s-pcm.c
delete mode 100644 sound/soc/blackfin/bf5xx-i2s-pcm.h
delete mode 100644 sound/soc/blackfin/bf5xx-i2s.c
delete mode 100644 sound/soc/blackfin/bf5xx-sport.c
delete mode 100644 sound/soc/blackfin/bf5xx-sport.h
delete mode 100644 sound/soc/blackfin/bf5xx-ssm2602.c
delete mode 100644 sound/soc/blackfin/bf6xx-i2s.c
delete mode 100644 sound/soc/blackfin/bf6xx-sport.c
delete mode 100644 sound/soc/blackfin/bf6xx-sport.h
delete mode 100644 sound/soc/blackfin/bfin-eval-adau1373.c
delete mode 100644 sound/soc/blackfin/bfin-eval-adau1701.c
delete mode 100644 sound/soc/blackfin/bfin-eval-adau1x61.c
delete mode 100644 sound/soc/blackfin/bfin-eval-adau1x81.c
delete mode 100644 sound/soc/blackfin/bfin-eval-adav80x.c
create mode 100644 sound/soc/codecs/ak4458.c
create mode 100644 sound/soc/codecs/ak4458.h
create mode 100644 sound/soc/codecs/ak5558.c
create mode 100644 sound/soc/codecs/ak5558.h
create mode 100644 sound/soc/codecs/bd28623.c
create mode 100644 sound/soc/codecs/cpcap.c
create mode 100644 sound/soc/codecs/max9759.c
create mode 100644 sound/soc/codecs/pcm1789-i2c.c
create mode 100644 sound/soc/codecs/pcm1789.c
create mode 100644 sound/soc/codecs/pcm1789.h
create mode 100644 sound/soc/codecs/tda7419.c
delete mode 100644 sound/soc/fsl/imx-wm8962.c
create mode 100644 sound/soc/intel/boards/cht_bsw_nau8824.c
create mode 100644 sound/soc/intel/boards/kbl_da7219_max98357a.c
create mode 100644 sound/soc/uniphier/aio-compress.c
create mode 100644 sound/soc/uniphier/aio-core.c
create mode 100644 sound/soc/uniphier/aio-cpu.c
create mode 100644 sound/soc/uniphier/aio-dma.c
create mode 100644 sound/soc/uniphier/aio-ld11.c
create mode 100644 sound/soc/uniphier/aio-pxs2.c
create mode 100644 sound/soc/uniphier/aio-reg.h
create mode 100644 sound/soc/uniphier/aio.h
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [GIT PULL] sound updates for 4.17-rc1
2018-04-05 8:27 [GIT PULL] sound updates for 4.17-rc1 Takashi Iwai
@ 2018-04-05 17:50 ` Linus Torvalds
2018-04-05 18:18 ` Takashi Iwai
2018-04-05 19:04 ` Mark Brown
0 siblings, 2 replies; 9+ messages in thread
From: Linus Torvalds @ 2018-04-05 17:50 UTC (permalink / raw)
To: Takashi Iwai; +Cc: Mark Brown, Liam Girdwood, Linux Kernel Mailing List
[-- Attachment #1: Type: text/plain, Size: 997 bytes --]
On Thu, Apr 5, 2018 at 1:27 AM, Takashi Iwai <tiwai@suse.de> wrote:
>
> This became a large update. The changes are scattered widely,
> and majority of them are attributed to ASoC componentization.
> The gitk output made me dizzy, but it's slightly better than
> London tube.
The patter with empty pointless merges from Mark Brown continues.
Mark, we talked about this already. YOU ARE DOING SOMETHING HORRIBLY
WRONG. You already admitted to automated merging, I already told you
not to do that.
Stop it already.
I'm going to ask Takashi to stop pulling stuff from you, and *I* am
going to stop pulling stuff from you, as long as you have these
idiotic automated daily empty merges.
I'm attaching a screenshot of part of this to give as an example of
what I see when I pull.
STOP MERGING THE SAME BRANCHES OVER AND OVER AGAIN, DAMMIT!
If you have merged a branch once, don't do it again tomorrow.
I have pulled this, but I won't pull this kind idiotic mess again.
Linus
[-- Attachment #2: broonie.png --]
[-- Type: image/png, Size: 134108 bytes --]
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [GIT PULL] sound updates for 4.17-rc1
2018-04-05 17:50 ` Linus Torvalds
@ 2018-04-05 18:18 ` Takashi Iwai
2018-04-05 18:31 ` Linus Torvalds
2018-04-05 19:04 ` Mark Brown
1 sibling, 1 reply; 9+ messages in thread
From: Takashi Iwai @ 2018-04-05 18:18 UTC (permalink / raw)
To: Linus Torvalds; +Cc: Mark Brown, Liam Girdwood, Linux Kernel Mailing List
On Thu, 05 Apr 2018 19:50:26 +0200,
Linus Torvalds wrote:
>
> On Thu, Apr 5, 2018 at 1:27 AM, Takashi Iwai <tiwai@suse.de> wrote:
> >
> > This became a large update. The changes are scattered widely,
> > and majority of them are attributed to ASoC componentization.
> > The gitk output made me dizzy, but it's slightly better than
> > London tube.
>
> The patter with empty pointless merges from Mark Brown continues.
>
> Mark, we talked about this already. YOU ARE DOING SOMETHING HORRIBLY
> WRONG. You already admitted to automated merging, I already told you
> not to do that.
>
> Stop it already.
>
> I'm going to ask Takashi to stop pulling stuff from you, and *I* am
> going to stop pulling stuff from you, as long as you have these
> idiotic automated daily empty merges.
>
> I'm attaching a screenshot of part of this to give as an example of
> what I see when I pull.
Argh, it's my fault that I overlooked that part, sorry.
The recent merges were still complex (extremely fine-split branches)
but they were no empty merges. Then I seem to have overlooked the
middle carelessly.
All the empty merges were during my previous vacation, so it must have
been the leftover of the previous bad pull request. Oh well.
Takashi
> STOP MERGING THE SAME BRANCHES OVER AND OVER AGAIN, DAMMIT!
>
> If you have merged a branch once, don't do it again tomorrow.
>
> I have pulled this, but I won't pull this kind idiotic mess again.
>
> Linus
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [GIT PULL] sound updates for 4.17-rc1
2018-04-05 18:18 ` Takashi Iwai
@ 2018-04-05 18:31 ` Linus Torvalds
0 siblings, 0 replies; 9+ messages in thread
From: Linus Torvalds @ 2018-04-05 18:31 UTC (permalink / raw)
To: Takashi Iwai; +Cc: Mark Brown, Liam Girdwood, Linux Kernel Mailing List
On Thu, Apr 5, 2018 at 11:18 AM, Takashi Iwai <tiwai@suse.de> wrote:
>
> All the empty merges were during my previous vacation, so it must have
> been the leftover of the previous bad pull request. Oh well.
Oh, so they might be from the bad old times when Mark was still doing
this, and be a symptom of something that has already stopped?
Let's hope so, and that the problem is already fixed and this was just
a remnant from before that fix went into effect.
Thanks,
Linus
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [GIT PULL] sound updates for 4.17-rc1
2018-04-05 17:50 ` Linus Torvalds
2018-04-05 18:18 ` Takashi Iwai
@ 2018-04-05 19:04 ` Mark Brown
2018-04-05 19:32 ` Linus Torvalds
1 sibling, 1 reply; 9+ messages in thread
From: Mark Brown @ 2018-04-05 19:04 UTC (permalink / raw)
To: Linus Torvalds; +Cc: Takashi Iwai, Liam Girdwood, Linux Kernel Mailing List
[-- Attachment #1: Type: text/plain, Size: 3298 bytes --]
On Thu, Apr 05, 2018 at 10:50:26AM -0700, Linus Torvalds wrote:
> Mark, we talked about this already. YOU ARE DOING SOMETHING HORRIBLY
> WRONG. You already admitted to automated merging, I already told you
> not to do that.
Ah, sorry - my impression was rather that the issue was the mess caused
by the history being too complex for git to eliminate null merges. IIRC
you didn't say much when I explained what the automation is there for
which I (apparently incorrectly) took as as being OK with the
automation, just not the results it ended up doing in that particular
pull request.
> I'm attaching a screenshot of part of this to give as an example of
> what I see when I pull.
I agree it's not super lovely.
I looked at the image and also rechecked the history I'm seeing in gitk
and I didn't spot cases where one topic branch was merged more than once
though it's possible I missed something. I do see a couple of cases
where I merged the fix branch up into the topic branch more than once in
order to resolve some conflicts that'd otherwise have been painful for
anyone working on things, and one case where I applied a fix twice for
some reason. There *are* a very large number of commits with very
similar subject lines sitting in branches but I'm not seeing any
instances of the previous problem, AFAICT it's that there's lots of
branches since Morimoto-san ended up touching almost every driver and I
put them on per-driver branches like I usually do.
> STOP MERGING THE SAME BRANCHES OVER AND OVER AGAIN, DAMMIT!
> If you have merged a branch once, don't do it again tomorrow.
Just to be clear the merges I did one day get thrown away the next if
they weren't included in a pull request, the scripts only try to merge
anything once and are done this way mainly to try to avoid generating
pull requests which have incremental merges of the same branch.
I'm a little bit confused about what's best to do here. The reason I'm
throwing the merge away and redoing it is that you've previously said
that you don't want to see main development branches that contain
nothing but long strings of merges, if I keep the same set of branches
and just do the merges incrementally every time a branch is added or
changes then there'd be even more merges which I'm pretty sure you
wouldn't be at all happy with either.
I could also just stop doing topic branches but that makes any cross
tree merges that need doing painfully big, this was why I started doing
topics so much. I could go half way to that and try to figure out in
advance which things will end up needing cross tree merges but that
never worked out that well in the past. I suppose I could also just
duplicate commits to make the topic branches if things need cross tree
merges after the fact, that's not great either though it does make for a
minimal number of branches while avoiding messy cross tree merges.
In the absence of any other feedback I guess I should just stop using
topic branches so much and go back to putting everything I don't
explicitly know will need a cross tree merge on just one fixes and one
-next branch and hope we don't need too many cross tree merges I didn't
anticipate. Or possibly keep the fixes branches since they do get
individually used much more often and there's far fewer of them.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [GIT PULL] sound updates for 4.17-rc1
2018-04-05 19:04 ` Mark Brown
@ 2018-04-05 19:32 ` Linus Torvalds
2018-04-06 1:11 ` Mark Brown
0 siblings, 1 reply; 9+ messages in thread
From: Linus Torvalds @ 2018-04-05 19:32 UTC (permalink / raw)
To: Mark Brown; +Cc: Takashi Iwai, Liam Girdwood, Linux Kernel Mailing List
On Thu, Apr 5, 2018 at 12:04 PM, Mark Brown <broonie@kernel.org> wrote:
>
> I'm a little bit confused about what's best to do here. The reason I'm
> throwing the merge away and redoing it is that you've previously said
> that you don't want to see main development branches that contain
> nothing but long strings of merges, if I keep the same set of branches
> and just do the merges incrementally every time a branch is added or
> changes then there'd be even more merges which I'm pretty sure you
> wouldn't be at all happy with either.
Don't do the merges AT ALL. Not until the branch is done. Stop the
whole "daily merges" entirely. It's wrong.
The whole idea with a topic branch is that it's a topic branch. You do
the development on that branch, and then at the END of development you
merge it once and that branch is now *dead*. If you continue using
that branch, you shouldn't be merging it.
So nobody ever sees empty merges, because by definition they never
happen. You only merge a branch once, and obviously only when it
actually had real changes in it.
And if you do daily merges for testing, then do them into a *testing*
branch. Those daily merges have nothing what-so-ever to do with what
you should send upstream, they are for testing.
In short: do not do any automated merges for upstreaming AT ALL.
Automated merging for that is WRONG. Don't do it.
It really is that simple.
So we have roughly three entirely different cases:
(1) testing (daily, weekly, hourly, "on demand", "when I feel like
it", or for linux-next, or whatever).
This has absolutely *nothing* to do with upstreaming, and
shouldn't ever be in your development branch.
Have a separate branch for testing (or for "linux-next pulls
this"), and then you can do automated merging in that branch, but the
whole point is that is a throw-away branch for checking things out.
The kinds of things you check out can be many different things,
like "does it merge at all and have conflicts?" or "does it build?" or
"does it work?".
The more of this kind of automation you do the better. Do it
daily. Do it every hour. Have a test-farm that does a build every
single time any branch changes at all. Whatever floats your boat.
And nobody will ever complain, because nobody will ever even
*see* it. Except perhaps in the sense of "Wow, Mark really does a
great job, and all his branches just always work", because all the
daily testing you do means that you see any problems long before
anybody else sees it.
(2) if you have an EXPLICIT REASON to merge
You have two branches that have an actual dependency, or some
other interaction, and you want to merge them together.
THIS IS NEVER EVER AUTOMATED!
It shouldn't even be scripted, because this shouldn't be about
tens of branches anyway, and it certainly shouldn't be something all
that common, or something is seriously wrong.
And btw, in this case the merge commit message should talk about
what the dependency was, which is another reason why this shouldn't be
scripted or automated.
(3) if you are done and ready with a branch, and it's time to just
say "the development on this branch is all done, now I will ask
upstream to pull it, and I'll merge this into my upstream branch"
THIS IS NEVER AUTOMATED!
Sure, you might script it ("I have 35+ branches that I will send
out, I use a script to merge them all together"), but the act of
running that script is not something daily, it's something like "I am
now ready to ask Takashi to take this", so you do it before you do the
pull request to upstream.
See? Three cases. One of them may well be entirely automated and
possibly have a lot of merges, but that one will never ever be
relevant for upstream, and should never be in a branch that you expose
upstream anyway.
And you don't do merges and then undo them. If you do the automated
thing, just do them in a throw-away branch, so even then you never
need to undo them - because you just throw them away afterwards.
Now exactly when you decide to throw it away is entirely up to you.
Maybe you create a new branch each time you do a test build. Or maybe
you keep the same "merge after merge after merge" branch for a while,
and you only throw them away when you have done the "send upstream"
thing. Nobody will care, because nobody will ever see that outside of
the automation scripts.
Are there possibly other cases that are relevant? Maybe. But the above
should be the basic guideline. Upstream should basically have minimal
merges, because it really just makes history harder to see. The empty
merges in particular that clearly have no actual *reason* for them.
That's another way of seeing the same issue: if you cannot write an
actual explicit reason for the merge, it damn well should never EVER
show up upstream.
You have a lot of merges that have no actual merge commit message at
all. They say what they do, but they don't explain it. That should be
a big warning sign to you.
That's ok for automated testing (like pushing to linux-next or 0day
build-bot or whatever). But those things have *nothing* to do with
upstreaming, except in the indirect sense ("I've done a lot of testing
on these changes, so now I'm happy to merge them for upstreaming").
See the difference?
Linus
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [GIT PULL] sound updates for 4.17-rc1
2018-04-05 19:32 ` Linus Torvalds
@ 2018-04-06 1:11 ` Mark Brown
2018-04-06 1:31 ` Linus Torvalds
0 siblings, 1 reply; 9+ messages in thread
From: Mark Brown @ 2018-04-06 1:11 UTC (permalink / raw)
To: Linus Torvalds; +Cc: Takashi Iwai, Liam Girdwood, Linux Kernel Mailing List
[-- Attachment #1: Type: text/plain, Size: 6087 bytes --]
On Thu, Apr 05, 2018 at 12:32:52PM -0700, Linus Torvalds wrote:
> The whole idea with a topic branch is that it's a topic branch. You do
> the development on that branch, and then at the END of development you
> merge it once and that branch is now *dead*. If you continue using
> that branch, you shouldn't be merging it.
Right, so even with things that aren't just "all the development on
driver X" stuff I do fairly often get cases where there's ongoing
development, for example where things have been split up for ease of
review but each series is still useful in itself. If I'm creating topic
branches less aggressively it'd usually be either for cross tree merges
or because I expect further development in that area it'd be useful to
group together for posterity. You seem to be saying don't do the latter
which is fine so long as I know it.
> So nobody ever sees empty merges, because by definition they never
> happen. You only merge a branch once, and obviously only when it
> actually had real changes in it.
Like I say I'm pretty sure all the merges there now are bringing some
content in so that at least shouldn't have been an issue.
> And if you do daily merges for testing, then do them into a *testing*
> branch. Those daily merges have nothing what-so-ever to do with what
> you should send upstream, they are for testing.
> In short: do not do any automated merges for upstreaming AT ALL.
> Automated merging for that is WRONG. Don't do it.
OK. The way I've been thinking about this has been that I'm doing the
daily merges for testing and then what I have for upstream is a snapshot
of something that had successful testing, I try to avoid modifying
whatever the last thing in -next was.
> (1) testing (daily, weekly, hourly, "on demand", "when I feel like
> it", or for linux-next, or whatever).
...
> The more of this kind of automation you do the better. Do it
> daily. Do it every hour. Have a test-farm that does a build every
> single time any branch changes at all. Whatever floats your boat.
>
> And nobody will ever complain, because nobody will ever even
> *see* it. Except perhaps in the sense of "Wow, Mark really does a
> great job, and all his branches just always work", because all the
> daily testing you do means that you see any problems long before
> anybody else sees it.
Some of the test automation people occasionally complain about the load
I put on their systems already.
> (2) if you have an EXPLICIT REASON to merge
> You have two branches that have an actual dependency, or some
> other interaction, and you want to merge them together.
> THIS IS NEVER EVER AUTOMATED!
> It shouldn't even be scripted, because this shouldn't be about
> tens of branches anyway, and it certainly shouldn't be something all
> that common, or something is seriously wrong.
> And btw, in this case the merge commit message should talk about
> what the dependency was, which is another reason why this shouldn't be
> scripted or automated.
Indeed, I'm doing this already except I rarely manually write a commit
message (90% of them are relatively obvious "pull in X API so we can use
it" or "merge up the fixes branch" stuff but yeah, could do better).
The merges are only ever generated by hand.
> (3) if you are done and ready with a branch, and it's time to just
> say "the development on this branch is all done, now I will ask
> upstream to pull it, and I'll merge this into my upstream branch"
> THIS IS NEVER AUTOMATED!
> Sure, you might script it ("I have 35+ branches that I will send
> out, I use a script to merge them all together"), but the act of
> running that script is not something daily, it's something like "I am
> now ready to ask Takashi to take this", so you do it before you do the
> pull request to upstream.
Hrm, OK. This I find unclear in that if you're saying it's OK to script
the merge of lots of branches I'm having trouble seeing the distinction
between that and the test merges you're talking about. Any verbiage in
the individual merge commits if they're done en masse is going to at
best be very formulaic unless I do something like use git notes to store
a brief blurb about the topic of the branch (and even then it's likely
to get quite repetitive). I'm seeing merge commits from other people
that look rather like that may be happening, and others that look like
they're pretty much just using git shortlog as the merge message.
I've been approaching things from the point of view that I merge
everything and then I write a signed tag explaining what that was all
about, I'd really like to be able to roll up the entire transaction but
the way to do that is a cthulhu merge which has other issues.
> You have a lot of merges that have no actual merge commit message at
> all. They say what they do, but they don't explain it. That should be
> a big warning sign to you.
It really doesn't set off alarm bells for me when reading logs, perhaps
as a result of having worked on things outside upstream (and outside the
kernel) where there were a lot of pretty routine and mechanical process
merges going on.
> That's ok for automated testing (like pushing to linux-next or 0day
> build-bot or whatever). But those things have *nothing* to do with
> upstreaming, except in the indirect sense ("I've done a lot of testing
> on these changes, so now I'm happy to merge them for upstreaming").
> See the difference?
Honestly what I'm getting from this is that I should try to minimize the
number of topic branches I create since anything that generates a
non-trivial number of them is going to want automation which seems like
it's going to cause problems one way or another. I appreciate that
you're talking mainly about commit messages on the merges in this mail
but the issues there are partly a product of volume and you have been
complaining about what the gitk looks like too which is definitely a
product of volume.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [GIT PULL] sound updates for 4.17-rc1
2018-04-06 1:11 ` Mark Brown
@ 2018-04-06 1:31 ` Linus Torvalds
2018-04-06 12:18 ` Mark Brown
0 siblings, 1 reply; 9+ messages in thread
From: Linus Torvalds @ 2018-04-06 1:31 UTC (permalink / raw)
To: Mark Brown; +Cc: Takashi Iwai, Liam Girdwood, Linux Kernel Mailing List
On Thu, Apr 5, 2018 at 6:11 PM, Mark Brown <broonie@kernel.org> wrote:
>
>> (3) if you are done and ready with a branch, and it's time to just
>> say "the development on this branch is all done, now I will ask
>> upstream to pull it, and I'll merge this into my upstream branch"
>
>> THIS IS NEVER AUTOMATED!
>
>> Sure, you might script it ("I have 35+ branches that I will send
>> out, I use a script to merge them all together"), but the act of
>> running that script is not something daily, it's something like "I am
>> now ready to ask Takashi to take this", so you do it before you do the
>> pull request to upstream.
>
> Hrm, OK. This I find unclear in that if you're saying it's OK to script
> the merge of lots of branches I'm having trouble seeing the distinction
> between that and the test merges you're talking about.
The distinction is in intent and timing - and resulting history.
The "merge for release" happens once - when you are ready to send it
out. The end result is a single merge that brings in the changes to
the code, and a history that is legible and understandable.
So if you have 50 branches with new code, and they all have the
changes you were working on, maybe there's a lot of merges (not
necessarily 50 of them, since you use octopus merges, but easily ten).
But the merges they are are the *only* thing that brings in the new
code, and when you look at history, the code development within one
topic branch is nice and linear and there aren't odd other merges in
the middle.
That makes it a *lot* easier to follow a certain strand of development
(namely the strand of your topic branch). There aren't five other
random merges that pull in the changes part-way through.
So the "merge for release" is something that has been THOUGHT about.
Maybe there was scripting simply because there were lots of branches,
but it was all ready and intentional, and none of it should have been
merged in some half-way ready state. By definition, the branches you
merged were *ready*.
Otherwise you shouldn't have been merging them for an upstream pull
request at all!
See?
In contrast, the "merge for testing" happens at random times and
happens multiple times. There is no *thought* behind the merge that
brings in the code, it's literally just "I'm testing everything I
have". It's not necessarily just scripted in the sense of "I have 50
branches", but it is scripted and automated in a much bigger sense -
you don't even care if things are ready, you just want to run build
tests and maybe boot tests on whatever you happen to have at the time.
See how completely different such a merge is?
So what I'm trying to explain is that upstream does not want to see
those "whatever you happen to have at the time" merges. They are
*WRONG*. They actively make it harder to see the history of the code.
Linus
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [GIT PULL] sound updates for 4.17-rc1
2018-04-06 1:31 ` Linus Torvalds
@ 2018-04-06 12:18 ` Mark Brown
0 siblings, 0 replies; 9+ messages in thread
From: Mark Brown @ 2018-04-06 12:18 UTC (permalink / raw)
To: Linus Torvalds; +Cc: Takashi Iwai, Liam Girdwood, Linux Kernel Mailing List
On Thu, Apr 05, 2018 at 06:31:37PM -0700, Linus Torvalds wrote:
> On Thu, Apr 5, 2018 at 6:11 PM, Mark Brown <broonie@kernel.org> wrote:
[No signature, managed to leave my smartcard at home, sorry :/]
> >> (3) if you are done and ready with a branch, and it's time to just
> >> say "the development on this branch is all done, now I will ask
> >> upstream to pull it, and I'll merge this into my upstream branch"
> >> THIS IS NEVER AUTOMATED!
> >> Sure, you might script it ("I have 35+ branches that I will send
> >> out, I use a script to merge them all together"), but the act of
> >> running that script is not something daily, it's something like "I am
> >> now ready to ask Takashi to take this", so you do it before you do the
> >> pull request to upstream.
> > Hrm, OK. This I find unclear in that if you're saying it's OK to script
> > the merge of lots of branches I'm having trouble seeing the distinction
> > between that and the test merges you're talking about.
> The distinction is in intent and timing - and resulting history.
> The "merge for release" happens once - when you are ready to send it
> out. The end result is a single merge that brings in the changes to
> the code, and a history that is legible and understandable.
> So if you have 50 branches with new code, and they all have the
> changes you were working on, maybe there's a lot of merges (not
> necessarily 50 of them, since you use octopus merges, but easily ten).
Indeed, that's what my script is doing.
> But the merges they are are the *only* thing that brings in the new
> code, and when you look at history, the code development within one
> topic branch is nice and linear and there aren't odd other merges in
> the middle.
> That makes it a *lot* easier to follow a certain strand of development
> (namely the strand of your topic branch). There aren't five other
> random merges that pull in the changes part-way through.
Indeed - that's what most of the branches do. The main cases where
there are merges are "merge up the fixes because it's broken without or
conflicts a lot" and "merge this new API we're about to start using".
Like I said in my last e-mail I can easily write a bit of blurb for
those ones, there's definitely room for improvement there.
> So the "merge for release" is something that has been THOUGHT about.
> Maybe there was scripting simply because there were lots of branches,
> but it was all ready and intentional, and none of it should have been
> merged in some half-way ready state. By definition, the branches you
> merged were *ready*.
> Otherwise you shouldn't have been merging them for an upstream pull
> request at all!
> See?
Honestly not really; to me the end result of doing that without manually
writing some blurb on each branch (and adding some delays and so on) is
going to be identical to that a for test merge as far as someone reading
the history is concerned so I'm no further forwards unless I just have
much fewer branches like I say. It really feels like the big gap here
is that you see creating branches and merging them as much more
substantial operations than I do, like I said in the prior e-mail I
think a lot of that is coming from other things I've worked with where
merges were more common.
I do already go through a process of thinking about what's in there much
like you describe both before deciding to tag things, and then carry on
doing so as I write the signed tag. It doesn't usually involve me
rebuilding the merge simply because normally the outcome is that
everything is already fine (that is the goal), and even on the occasions
where I do rebuild I can't see a way to usefully convey that with
automation. When I look at other people's merge for pull type stuff I'm
not seeing any obvious ideas beyond going down to single branch merges
and it seems like without reducing the number that'd also set off your
alarm bells.
I think I get and agree with what you're saying about the thought
process behind what to send upstream, what I'm not getting is how to
convey it.
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2018-04-06 12:18 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-04-05 8:27 [GIT PULL] sound updates for 4.17-rc1 Takashi Iwai
2018-04-05 17:50 ` Linus Torvalds
2018-04-05 18:18 ` Takashi Iwai
2018-04-05 18:31 ` Linus Torvalds
2018-04-05 19:04 ` Mark Brown
2018-04-05 19:32 ` Linus Torvalds
2018-04-06 1:11 ` Mark Brown
2018-04-06 1:31 ` Linus Torvalds
2018-04-06 12:18 ` Mark Brown
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).