#
ff32fcca |
| 09-May-2023 |
Maxime Ripard <maxime@cerno.tech> |
Merge drm/drm-next into drm-misc-next
Start the 6.5 release cycle.
Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
Revision tags: v6.4-rc1 |
|
#
1c15ca4e |
| 27-Apr-2023 |
Linus Torvalds <torvalds@linux-foundation.org> |
Merge tag 'sound-6.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
Pull sound updates from Takashi Iwai: "At this time, it's an interesting mixture of changes for both old and
Merge tag 'sound-6.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
Pull sound updates from Takashi Iwai: "At this time, it's an interesting mixture of changes for both old and new stuff. Majority of changes are about ASoC (lots of systematic changes for converting remove callbacks to void, and cleanups), while we got the fixes and the enhancements of very old PCI cards, too.
Here are some highlights:
ALSA/ASoC Core: - Continued effort of more ASoC core cleanups - Minor improvements for XRUN handling in indirect PCM helpers - Code refactoring of PCM core code
ASoC: - Continued feature and simplification work on SOF, including addition of a no-DSP mode for bringup, HDA MLink and extensions to the IPC4 protocol - Hibernation support for CS35L45 - More DT binding conversions - Support for Cirrus Logic CS35L56, Freescale QMC, Maxim MAX98363, nVidia systems with MAX9809x and RT5631, Realtek RT712, Renesas R-Car Gen4, Rockchip RK3588 and TI TAS5733
ALSA: - Lots of works for legacy emu10k1 and ymfpci PCI drivers - PCM kselftest fixes and enhancements"
* tag 'sound-6.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (586 commits) ALSA: emu10k1: use high-level I/O in set_filterQ() ALSA: emu10k1: use high-level I/O functions also during init ALSA: emu10k1: fix error handling in snd_audigy_i2c_volume_put() ALSA: emu10k1: don't stop DSP in _snd_emu10k1_{,audigy_}init_efx() ALSA: emu10k1: fix SNDRV_EMU10K1_IOCTL_SINGLE_STEP ALSA: emu10k1: skip Sound Blaster-specific hacks for E-MU cards ALSA: emu10k1: fixup DSP defines ALSA: emu10k1: pull in some register definitions from kX-project ALSA: emu10k1: remove some bogus defines ALSA: emu10k1: eliminate some unused defines ALSA: emu10k1: fix lineup of EMU_HANA_* defines ALSA: emu10k1: comment updates ALSA: emu10k1: fix snd_emu1010_fpga_read() input masking for rev2 cards ALSA: emu10k1: remove unused emu->pcm_playback_efx_substream field ALSA: emu10k1: remove unused `resume` parameter from snd_emu10k1_init() ALSA: emu10k1: minor optimizations ALSA: emu10k1: remove remaining cruft from snd_emu10k1_emu1010_init() ALSA: emu10k1: remove apparently pointless EMU_HANA_OPTION_CARDS reads ALSA: emu10k1: remove apparently pointless FPGA reads ALSA: emu10k1: stop doing weird things with HCFG in snd_emu10k1_emu1010_init() ...
show more ...
|
#
baa6584a |
| 24-Apr-2023 |
Takashi Iwai <tiwai@suse.de> |
Merge tag 'asoc-v6.4' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-next
ASoC: Updates for v6.4
The bulk of the commits here are for the conversion of drivers to use voi
Merge tag 'asoc-v6.4' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-next
ASoC: Updates for v6.4
The bulk of the commits here are for the conversion of drivers to use void remove callbacks but there's a reasonable amount of other stuff going on, the pace of development with the SOF code continues to be high and there's a bunch of new drivers too:
- More core cleanups from Morimto-san. - Update drivers to have remove() callbacks returning void, mostly mechanical with some substantial changes. - Continued feature and simplification work on SOF, including addition of a no-DSP mode for bringup, HDA MLink and extensions to the IPC4 protocol. - Hibernation support for CS35L45. - More DT binding conversions. - Support for Cirrus Logic CS35L56, Freescale QMC, Maxim MAX98363, nVidia systems with MAX9809x and RT5631, Realtek RT712, Renesas R-Car Gen4, Rockchip RK3588 and TI TAS5733.
show more ...
|
Revision tags: v6.3, v6.3-rc7, v6.3-rc6, v6.3-rc5, v6.3-rc4 |
|
#
4af574f5 |
| 21-Mar-2023 |
Mark Brown <broonie@kernel.org> |
ALSA/ASoC: Convert to platform remove callback
Merge series from Uwe Kleine-König <u.kleine-koenig@pengutronix.de>:
Hello,
this series adapts the platform drivers below sound/ to use the .remove_n
ALSA/ASoC: Convert to platform remove callback
Merge series from Uwe Kleine-König <u.kleine-koenig@pengutronix.de>:
Hello,
this series adapts the platform drivers below sound/ to use the .remove_new() callback. Compared to the traditional .remove() callback .remove_new() returns no value. This is a good thing because the driver core doesn't (and cannot) cope for errors during remove. The only effect of a non-zero return value in .remove() is that the driver core emits a warning. The device is removed anyhow and an early return from .remove() usually yields a resource leak.
By changing the remove callback to return void driver authors cannot reasonably assume any more that there is some kind of cleanup later.
The first two patches simplify a driver each to return zero unconditionally, and then all drivers are trivially converted to .remove_new().
There are nearly no interdependencies in this patch set---only 1 <- 11 and 2 <- 16. So even if some individual problems are found (I don't expect that), the other patches can (and from my POV should) still be applied.
Best regards Uwe
Uwe Kleine-König (173): ALSA: sh: aica: Drop if blocks with always false condition ASoC: amd: acp: rembrandt: Drop if blocks with always false condition ALSA: pxa2xx: Convert to platform remove callback returning void ALSA: atmel: ac97: Convert to platform remove callback returning void ALSA: mts64: Convert to platform remove callback returning void ALSA: portman2x4: Convert to platform remove callback returning void ALSA: mips/hal2: Convert to platform remove callback returning void ALSA: mips/sgio2audio: Convert to platform remove callback returning void ALSA: hda/tegra: Convert to platform remove callback returning void ALSA: ppc/powermac: Convert to platform remove callback returning void ALSA: sh: aica: Convert to platform remove callback returning void ALSA: sh_dac_audio: Convert to platform remove callback returning void ASoC: adi: axi-i2s: Convert to platform remove callback returning void ASoC: adi: axi-spdif: Convert to platform remove callback returning void ASoC: amd: acp-pcm-dma: Convert to platform remove callback returning void ASoC: amd: acp: rembrandt: Convert to platform remove callback returning void ASoC: amd: acp: renoir: Convert to platform remove callback returning void ASoC: amd: ps: Convert to platform remove callback returning void ASoC: amd: raven: acp3x-pcm-dma: Convert to platform remove callback returning void ASoC: amd: raven: acp3x-pdm-dma: Convert to platform remove callback returning void ASoC: amd: vangogh: acp5x-pcm-dma: Convert to platform remove callback returning void ASoC: amd: yc: acp6x-pdm-dma: Convert to platform remove callback returning void ASoC: apple: mca: Convert to platform remove callback returning void ASoC: atmel: atmel-i2s: Convert to platform remove callback returning void ASoC: atmel: atmel_wm8904: Convert to platform remove callback returning void ASoC: atmel: mchp-i2s-mcc: Convert to platform remove callback returning void ASoC: atmel: mchp-pdmc: Convert to platform remove callback returning void ASoC: atmel: mchp-spdifrx: Convert to platform remove callback returning void ASoC: atmel: mchp-spdiftx: Convert to platform remove callback returning void ASoC: atmel: mikroe-proto: Convert to platform remove callback returning void ASoC: atmel: sam9g20_wm8731: Convert to platform remove callback returning void ASoC: atmel: sam9x5_wm8731: Convert to platform remove callback returning void ASoC: atmel: tse850-pcm5142: Convert to platform remove callback returning void ASoC: au1x: ac97c: Convert to platform remove callback returning void ASoC: au1x: i2sc: Convert to platform remove callback returning void ASoC: au1x: psc-ac97: Convert to platform remove callback returning void ASoC: au1x: psc-i2s: Convert to platform remove callback returning void ASoC: bcm: bcm63xx-i2s-whistler: Convert to platform remove callback returning void ASoC: bcm: cygnus-ssp: Convert to platform remove callback returning void ASoC: cirrus: edb93xx: Convert to platform remove callback returning void ASoC: cirrus: ep93xx-i2s: Convert to platform remove callback returning void ASoC: codecs: cs47l15: Convert to platform remove callback returning void ASoC: codecs: cs47l24: Convert to platform remove callback returning void ASoC: codecs: cs47l35: Convert to platform remove callback returning void ASoC: codecs: cs47l85: Convert to platform remove callback returning void ASoC: codecs: cs47l90: Convert to platform remove callback returning void ASoC: codecs: cs47l92: Convert to platform remove callback returning void ASoC: codecs: inno_rk3036: Convert to platform remove callback returning void ASoC: codecs: lpass-rx-macro: Convert to platform remove callback returning void ASoC: codecs: lpass-tx-macro: Convert to platform remove callback returning void ASoC: codecs: lpass-va-macro: Convert to platform remove callback returning void ASoC: codecs: lpass-wsa-macro: Convert to platform remove callback returning void ASoC: codecs: msm8916-wcd-analog: Convert to platform remove callback returning void ASoC: codecs: msm8916-wcd-digital: Convert to platform remove callback returning void ASoC: codecs: rk817_codec: Convert to platform remove callback returning void ASoC: codecs: wcd938x: Convert to platform remove callback returning void ASoC: codecs: wm5102: Convert to platform remove callback returning void ASoC: codecs: wm5110: Convert to platform remove callback returning void ASoC: codecs: wm8994: Convert to platform remove callback returning void ASoC: codecs: wm8997: Convert to platform remove callback returning void ASoC: codecs: wm8998: Convert to platform remove callback returning void ASoC: dwc: dwc-i2s: Convert to platform remove callback returning void ASoC: fsl: eukrea-tlv320: Convert to platform remove callback returning void ASoC: fsl: fsl_asrc: Convert to platform remove callback returning void ASoC: fsl: fsl_aud2htx: Convert to platform remove callback returning void ASoC: fsl: fsl_audmix: Convert to platform remove callback returning void ASoC: fsl: fsl_dma: Convert to platform remove callback returning void ASoC: fsl: fsl_easrc: Convert to platform remove callback returning void ASoC: fsl: fsl_esai: Convert to platform remove callback returning void ASoC: fsl: fsl_mqs: Convert to platform remove callback returning void ASoC: fsl: fsl_rpmsg: Convert to platform remove callback returning void ASoC: fsl: fsl_sai: Convert to platform remove callback returning void ASoC: fsl: fsl_spdif: Convert to platform remove callback returning void ASoC: fsl: fsl_ssi: Convert to platform remove callback returning void ASoC: fsl: fsl_xcvr: Convert to platform remove callback returning void ASoC: fsl: imx-audmux: Convert to platform remove callback returning void ASoC: fsl: imx-pcm-rpmsg: Convert to platform remove callback returning void ASoC: fsl: imx-sgtl5000: Convert to platform remove callback returning void ASoC: fsl: mpc5200_psc_ac97: Convert to platform remove callback returning void ASoC: fsl: mpc5200_psc_i2s: Convert to platform remove callback returning void ASoC: fsl: mpc8610_hpcd: Convert to platform remove callback returning void ASoC: fsl: p1022_ds: Convert to platform remove callback returning void ASoC: fsl: p1022_rdk: Convert to platform remove callback returning void ASoC: fsl: pcm030-audio-fabric: Convert to platform remove callback returning void ASoC: generic: test-component: Convert to platform remove callback returning void ASoC: img: img-i2s-in: Convert to platform remove callback returning void ASoC: img: img-i2s-out: Convert to platform remove callback returning void ASoC: img: img-parallel-out: Convert to platform remove callback returning void ASoC: img: img-spdif-in: Convert to platform remove callback returning void ASoC: img: img-spdif-out: Convert to platform remove callback returning void ASoC: img: pistachio-internal-dac: Convert to platform remove callback returning void ASoC: Intel: sst-mfld-platform-pcm: Convert to platform remove callback returning void ASoC: Intel: sst: Convert to platform remove callback returning void ASoC: Intel: bytcht_es8316: Convert to platform remove callback returning void ASoC: Intel: bytcr_rt5640: Convert to platform remove callback returning void ASoC: Intel: boards: bytcr_rt5651: Convert to platform remove callback returning void ASoC: Intel: bytcr_wm5102: Convert to platform remove callback returning void ASoC: Intel: cht_bsw_max98090_ti: Convert to platform remove callback returning void ASoC: Intel: sof_es8336: Convert to platform remove callback returning void ASoC: Intel: sof_pcm512x: Convert to platform remove callback returning void ASoC: Intel: sof_sdw: Convert to platform remove callback returning void ASoC: Intel: sof_wm8804: Convert to platform remove callback returning void ASoC: Intel: catpt: Convert to platform remove callback returning void ASoC: Intel: skl-ssp-clk: Convert to platform remove callback returning void ASoC: kirkwood: kirkwood-i2s: Convert to platform remove callback returning void ASoC: mediatek: mtk-btcvsd: Convert to platform remove callback returning void ASoC: mediatek: mt2701-afe-pcm: Convert to platform remove callback returning void ASoC: mediatek: mt6797-afe-pcm: Convert to platform remove callback returning void ASoC: mediatek: mt8173-afe-pcm: Convert to platform remove callback returning void ASoC: mediatek: mt8183-afe-pcm: Convert to platform remove callback returning void ASoC: mediatek: mt8188-afe-pcm: Convert to platform remove callback returning void ASoC: mediatek: mt8192-afe-pcm: Convert to platform remove callback returning void ASoC: mediatek: mt8195-afe-pcm: Convert to platform remove callback returning void ASoC: meson: aiu: Convert to platform remove callback returning void ASoC: mxs: mxs-sgtl5000: Convert to platform remove callback returning void ASoC: pxa: mmp-sspa: Convert to platform remove callback returning void ASoC: pxa: pxa2xx-ac97: Convert to platform remove callback returning void ASoC: qcom: qdsp6: Convert to platform remove callback returning void ASoC: rockchip: rockchip_i2s: Convert to platform remove callback returning void ASoC: rockchip: rockchip_i2s_tdm: Convert to platform remove callback returning void ASoC: rockchip: rockchip_pdm: Convert to platform remove callback returning void ASoC: rockchip: rockchip_rt5645: Convert to platform remove callback returning void ASoC: rockchip: rockchip_spdif: Convert to platform remove callback returning void ASoC: samsung: arndale: Convert to platform remove callback returning void ASoC: samsung: i2s: Convert to platform remove callback returning void ASoC: samsung: odroid: Convert to platform remove callback returning void ASoC: samsung: pcm: Convert to platform remove callback returning void ASoC: samsung: snow: Convert to platform remove callback returning void ASoC: samsung: spdif: Convert to platform remove callback returning void ASoC: sh: fsi: Convert to platform remove callback returning void ASoC: sh: hac: Convert to platform remove callback returning void ASoC: sh: rcar: Convert to platform remove callback returning void ASoC: sh: rz-ssi: Convert to platform remove callback returning void ASoC: sh: siu_dai: Convert to platform remove callback returning void ASoC: sprd: sprd-mcdt: Convert to platform remove callback returning void ASoC: stm: stm32_adfsdm: Convert to platform remove callback returning void ASoC: stm: stm32_i2s: Convert to platform remove callback returning void ASoC: stm: stm32_sai_sub: Convert to platform remove callback returning void ASoC: stm: stm32_spdifrx: Convert to platform remove callback returning void ASoC: sunxi: sun4i-codec: Convert to platform remove callback returning void ASoC: sunxi: sun4i-i2s: Convert to platform remove callback returning void ASoC: sunxi: sun4i-spdif: Convert to platform remove callback returning void ASoC: sunxi: sun50i-dmic: Convert to platform remove callback returning void ASoC: sunxi: sun8i-codec: Convert to platform remove callback returning void ASoC: tegra: tegra186_asrc: Convert to platform remove callback returning void ASoC: tegra: tegra186_dspk: Convert to platform remove callback returning void ASoC: tegra: tegra20_ac97: Convert to platform remove callback returning void ASoC: tegra: tegra20_i2s: Convert to platform remove callback returning void ASoC: tegra: tegra210_admaif: Convert to platform remove callback returning void ASoC: tegra: tegra210_adx: Convert to platform remove callback returning void ASoC: tegra: tegra210_ahub: Convert to platform remove callback returning void ASoC: tegra: tegra210_amx: Convert to platform remove callback returning void ASoC: tegra: tegra210_dmic: Convert to platform remove callback returning void ASoC: tegra: tegra210_i2s: Convert to platform remove callback returning void ASoC: tegra: tegra210_mixer: Convert to platform remove callback returning void ASoC: tegra: tegra210_mvc: Convert to platform remove callback returning void ASoC: tegra: tegra210_ope: Convert to platform remove callback returning void ASoC: tegra: tegra210_sfc: Convert to platform remove callback returning void ASoC: tegra: tegra30_ahub: Convert to platform remove callback returning void ASoC: tegra: tegra30_i2s: Convert to platform remove callback returning void ASoC: ti: ams-delta: Convert to platform remove callback returning void ASoC: ti: davinci-i2s: Convert to platform remove callback returning void ASoC: ti: davinci-mcasp: Convert to platform remove callback returning void ASoC: ti: omap-hdmi: Convert to platform remove callback returning void ASoC: ti: omap-mcbsp: Convert to platform remove callback returning void ASoC: uniphier: evea: Convert to platform remove callback returning void ASoC: ux500: mop500: Convert to platform remove callback returning void ASoC: ux500: ux500_msp_dai: Convert to platform remove callback returning void ASoC: xilinx: xlnx_formatter_pcm: Convert to platform remove callback returning void ASoC: xilinx: xlnx_spdif: Convert to platform remove callback returning void ASoC: xtensa: xtfpga-i2s: Convert to platform remove callback returning void ALSA: sparc/cs4231: Convert to platform remove callback returning void ALSA: sparc/dbri: Convert to platform remove callback returning void
sound/arm/pxa2xx-ac97.c | 6 ++---- sound/atmel/ac97c.c | 6 ++---- sound/drivers/mts64.c | 6 ++---- sound/drivers/portman2x4.c | 6 ++---- sound/mips/hal2.c | 5 ++--- sound/mips/sgio2audio.c | 5 ++--- sound/pci/hda/hda_tegra.c | 6 ++---- sound/ppc/powermac.c | 5 ++--- sound/sh/aica.c | 7 ++----- sound/sh/sh_dac_audio.c | 5 ++--- sound/soc/adi/axi-i2s.c | 6 ++---- sound/soc/adi/axi-spdif.c | 6 ++---- sound/soc/amd/acp-pcm-dma.c | 6 ++---- sound/soc/amd/acp/acp-rembrandt.c | 13 +++---------- sound/soc/amd/acp/acp-renoir.c | 5 ++--- sound/soc/amd/ps/ps-pdm-dma.c | 5 ++--- sound/soc/amd/raven/acp3x-pcm-dma.c | 5 ++--- sound/soc/amd/renoir/acp3x-pdm-dma.c | 5 ++--- sound/soc/amd/vangogh/acp5x-pcm-dma.c | 5 ++--- sound/soc/amd/yc/acp6x-pdm-dma.c | 5 ++--- sound/soc/apple/mca.c | 5 ++--- sound/soc/atmel/atmel-i2s.c | 6 ++---- sound/soc/atmel/atmel_wm8904.c | 6 ++---- sound/soc/atmel/mchp-i2s-mcc.c | 6 ++---- sound/soc/atmel/mchp-pdmc.c | 6 ++---- sound/soc/atmel/mchp-spdifrx.c | 6 ++---- sound/soc/atmel/mchp-spdiftx.c | 6 ++---- sound/soc/atmel/mikroe-proto.c | 6 ++---- sound/soc/atmel/sam9g20_wm8731.c | 6 ++---- sound/soc/atmel/sam9x5_wm8731.c | 6 ++---- sound/soc/atmel/tse850-pcm5142.c | 6 ++---- sound/soc/au1x/ac97c.c | 6 ++---- sound/soc/au1x/i2sc.c | 6 ++---- sound/soc/au1x/psc-ac97.c | 6 ++---- sound/soc/au1x/psc-i2s.c | 6 ++---- sound/soc/bcm/bcm63xx-i2s-whistler.c | 5 ++--- sound/soc/bcm/cygnus-ssp.c | 6 ++---- sound/soc/cirrus/edb93xx.c | 6 ++---- sound/soc/cirrus/ep93xx-i2s.c | 5 ++--- sound/soc/codecs/cs47l15.c | 6 ++---- sound/soc/codecs/cs47l24.c | 6 ++---- sound/soc/codecs/cs47l35.c | 6 ++---- sound/soc/codecs/cs47l85.c | 6 ++---- sound/soc/codecs/cs47l90.c | 6 ++---- sound/soc/codecs/cs47l92.c | 6 ++---- sound/soc/codecs/inno_rk3036.c | 6 ++---- sound/soc/codecs/lpass-rx-macro.c | 6 ++---- sound/soc/codecs/lpass-tx-macro.c | 6 ++---- sound/soc/codecs/lpass-va-macro.c | 6 ++---- sound/soc/codecs/lpass-wsa-macro.c | 6 ++---- sound/soc/codecs/msm8916-wcd-analog.c | 6 ++---- sound/soc/codecs/msm8916-wcd-digital.c | 6 ++---- sound/soc/codecs/rk817_codec.c | 6 ++---- sound/soc/codecs/wcd938x.c | 6 ++---- sound/soc/codecs/wm5102.c | 6 ++---- sound/soc/codecs/wm5110.c | 6 ++---- sound/soc/codecs/wm8994.c | 6 ++---- sound/soc/codecs/wm8997.c | 6 ++---- sound/soc/codecs/wm8998.c | 6 ++---- sound/soc/dwc/dwc-i2s.c | 5 ++--- sound/soc/fsl/eukrea-tlv320.c | 6 ++---- sound/soc/fsl/fsl_asrc.c | 6 ++---- sound/soc/fsl/fsl_aud2htx.c | 6 ++---- sound/soc/fsl/fsl_audmix.c | 6 ++---- sound/soc/fsl/fsl_dma.c | 6 ++---- sound/soc/fsl/fsl_easrc.c | 6 ++---- sound/soc/fsl/fsl_esai.c | 6 ++---- sound/soc/fsl/fsl_mqs.c | 5 ++--- sound/soc/fsl/fsl_rpmsg.c | 6 ++---- sound/soc/fsl/fsl_sai.c | 6 ++---- sound/soc/fsl/fsl_spdif.c | 6 ++---- sound/soc/fsl/fsl_ssi.c | 6 ++---- sound/soc/fsl/fsl_xcvr.c | 5 ++--- sound/soc/fsl/imx-audmux.c | 6 ++---- sound/soc/fsl/imx-pcm-rpmsg.c | 6 ++---- sound/soc/fsl/imx-sgtl5000.c | 6 ++---- sound/soc/fsl/mpc5200_psc_ac97.c | 5 ++--- sound/soc/fsl/mpc5200_psc_i2s.c | 5 ++--- sound/soc/fsl/mpc8610_hpcd.c | 6 ++---- sound/soc/fsl/p1022_ds.c | 6 ++---- sound/soc/fsl/p1022_rdk.c | 6 ++---- sound/soc/fsl/pcm030-audio-fabric.c | 6 ++---- sound/soc/generic/test-component.c | 6 ++---- sound/soc/img/img-i2s-in.c | 6 ++---- sound/soc/img/img-i2s-out.c | 6 ++---- sound/soc/img/img-parallel-out.c | 6 ++---- sound/soc/img/img-spdif-in.c | 6 ++---- sound/soc/img/img-spdif-out.c | 6 ++---- sound/soc/img/pistachio-internal-dac.c | 6 ++---- sound/soc/intel/atom/sst-mfld-platform-pcm.c | 5 ++--- sound/soc/intel/atom/sst/sst_acpi.c | 5 ++--- sound/soc/intel/boards/bytcht_es8316.c | 5 ++--- sound/soc/intel/boards/bytcr_rt5640.c | 5 ++--- sound/soc/intel/boards/bytcr_rt5651.c | 5 ++--- sound/soc/intel/boards/bytcr_wm5102.c | 5 ++--- sound/soc/intel/boards/cht_bsw_max98090_ti.c | 6 ++---- sound/soc/intel/boards/sof_es8336.c | 6 ++---- sound/soc/intel/boards/sof_pcm512x.c | 6 ++---- sound/soc/intel/boards/sof_sdw.c | 6 ++---- sound/soc/intel/boards/sof_wm8804.c | 5 ++--- sound/soc/intel/catpt/device.c | 6 ++---- sound/soc/intel/skylake/skl-ssp-clk.c | 6 ++---- sound/soc/kirkwood/kirkwood-i2s.c | 6 ++---- sound/soc/mediatek/common/mtk-btcvsd.c | 5 ++--- sound/soc/mediatek/mt2701/mt2701-afe-pcm.c | 6 ++---- sound/soc/mediatek/mt6797/mt6797-afe-pcm.c | 6 ++---- sound/soc/mediatek/mt8173/mt8173-afe-pcm.c | 5 ++--- sound/soc/mediatek/mt8183/mt8183-afe-pcm.c | 6 ++---- sound/soc/mediatek/mt8188/mt8188-afe-pcm.c | 6 ++---- sound/soc/mediatek/mt8192/mt8192-afe-pcm.c | 5 ++--- sound/soc/mediatek/mt8195/mt8195-afe-pcm.c | 5 ++--- sound/soc/meson/aiu.c | 6 ++---- sound/soc/mxs/mxs-sgtl5000.c | 6 ++---- sound/soc/pxa/mmp-sspa.c | 7 +++---- sound/soc/pxa/pxa2xx-ac97.c | 5 ++--- sound/soc/qcom/qdsp6/q6routing.c | 6 ++---- sound/soc/rockchip/rockchip_i2s.c | 6 ++---- sound/soc/rockchip/rockchip_i2s_tdm.c | 6 ++---- sound/soc/rockchip/rockchip_pdm.c | 6 ++---- sound/soc/rockchip/rockchip_rt5645.c | 6 ++---- sound/soc/rockchip/rockchip_spdif.c | 6 ++---- sound/soc/samsung/arndale.c | 5 ++--- sound/soc/samsung/i2s.c | 8 +++----- sound/soc/samsung/odroid.c | 6 ++---- sound/soc/samsung/pcm.c | 6 ++---- sound/soc/samsung/snow.c | 6 ++---- sound/soc/samsung/spdif.c | 6 ++---- sound/soc/sh/fsi.c | 6 ++---- sound/soc/sh/hac.c | 5 ++--- sound/soc/sh/rcar/core.c | 6 ++---- sound/soc/sh/rz-ssi.c | 6 ++---- sound/soc/sh/siu_dai.c | 5 ++--- sound/soc/sprd/sprd-mcdt.c | 6 ++---- sound/soc/stm/stm32_adfsdm.c | 6 ++---- sound/soc/stm/stm32_i2s.c | 6 ++---- sound/soc/stm/stm32_sai_sub.c | 6 ++---- sound/soc/stm/stm32_spdifrx.c | 6 ++---- sound/soc/sunxi/sun4i-codec.c | 6 ++---- sound/soc/sunxi/sun4i-i2s.c | 6 ++---- sound/soc/sunxi/sun4i-spdif.c | 6 ++---- sound/soc/sunxi/sun50i-dmic.c | 6 ++---- sound/soc/sunxi/sun8i-codec.c | 6 ++---- sound/soc/tegra/tegra186_asrc.c | 6 ++---- sound/soc/tegra/tegra186_dspk.c | 6 ++---- sound/soc/tegra/tegra20_ac97.c | 6 ++---- sound/soc/tegra/tegra20_i2s.c | 6 ++---- sound/soc/tegra/tegra210_admaif.c | 6 ++---- sound/soc/tegra/tegra210_adx.c | 6 ++---- sound/soc/tegra/tegra210_ahub.c | 6 ++---- sound/soc/tegra/tegra210_amx.c | 6 ++---- sound/soc/tegra/tegra210_dmic.c | 6 ++---- sound/soc/tegra/tegra210_i2s.c | 6 ++---- sound/soc/tegra/tegra210_mixer.c | 6 ++---- sound/soc/tegra/tegra210_mvc.c | 6 ++---- sound/soc/tegra/tegra210_ope.c | 6 ++---- sound/soc/tegra/tegra210_sfc.c | 6 ++---- sound/soc/tegra/tegra30_ahub.c | 6 ++---- sound/soc/tegra/tegra30_i2s.c | 6 ++---- sound/soc/ti/ams-delta.c | 5 ++--- sound/soc/ti/davinci-i2s.c | 6 ++---- sound/soc/ti/davinci-mcasp.c | 6 ++---- sound/soc/ti/omap-hdmi.c | 5 ++--- sound/soc/ti/omap-mcbsp.c | 6 ++---- sound/soc/uniphier/evea.c | 6 ++---- sound/soc/ux500/mop500.c | 6 ++---- sound/soc/ux500/ux500_msp_dai.c | 6 ++---- sound/soc/xilinx/xlnx_formatter_pcm.c | 5 ++--- sound/soc/xilinx/xlnx_spdif.c | 5 ++--- sound/soc/xtensa/xtfpga-i2s.c | 5 ++--- sound/sparc/cs4231.c | 6 ++---- sound/sparc/dbri.c | 6 ++---- 171 files changed, 345 insertions(+), 654 deletions(-)
base-commit: fe15c26ee26efa11741a7b632e9f23b01aca4cc6 -- 2.39.2
show more ...
|
Revision tags: v6.3-rc3 |
|
#
a0f4aa0a |
| 15-Mar-2023 |
Uwe Kleine-König <u.kleine-koenig@pengutronix.de> |
ALSA: sh_dac_audio: Convert to platform remove callback returning void
The .remove() callback for a platform driver returns an int which makes many driver authors wrongly assume it's possible to do
ALSA: sh_dac_audio: Convert to platform remove callback returning void
The .remove() callback for a platform driver returns an int which makes many driver authors wrongly assume it's possible to do error handling by returning an error code. However the value returned is (mostly) ignored and this typically results in resource leaks. To improve here there is a quest to make the remove callback return void. In the first step of this quest all drivers are converted to .remove_new() which already returns void.
Trivially convert this driver from always returning zero in the remove callback to the void returning variant.
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Acked-by: Takashi Iwai <tiwai@suse.de> Acked-by: Nicolas Ferre <nicolas.ferre@microchip.com> Link: https://lore.kernel.org/r/20230315150745.67084-13-u.kleine-koenig@pengutronix.de Signed-off-by: Mark Brown <broonie@kernel.org>
show more ...
|
Revision tags: v6.3-rc2, v6.3-rc1, v6.2, v6.2-rc8, v6.2-rc7, v6.2-rc6, v6.2-rc5, v6.2-rc4, v6.2-rc3, v6.2-rc2, v6.2-rc1, v6.1, v6.1-rc8, v6.1-rc7, v6.1-rc6, v6.1-rc5, v6.1-rc4, v6.1-rc3, v6.1-rc2, v6.1-rc1, v6.0, v6.0-rc7, v6.0-rc6, v6.0-rc5, v6.0-rc4, v6.0-rc3, v6.0-rc2, v6.0-rc1, v5.19, v5.19-rc8, v5.19-rc7, v5.19-rc6, v5.19-rc5, v5.19-rc4, v5.19-rc3, v5.19-rc2, v5.19-rc1, v5.18, v5.18-rc7, v5.18-rc6, v5.18-rc5, v5.18-rc4, v5.18-rc3, v5.18-rc2, v5.18-rc1, v5.17, v5.17-rc8, v5.17-rc7, v5.17-rc6, v5.17-rc5, v5.17-rc4, v5.17-rc3, v5.17-rc2, v5.17-rc1, v5.16, v5.16-rc8, v5.16-rc7, v5.16-rc6, v5.16-rc5, v5.16-rc4, v5.16-rc3, v5.16-rc2, v5.16-rc1, v5.15, v5.15-rc7, v5.15-rc6, v5.15-rc5, v5.15-rc4, v5.15-rc3, v5.15-rc2, v5.15-rc1, v5.14, v5.14-rc7, v5.14-rc6, v5.14-rc5, v5.14-rc4, v5.14-rc3, v5.14-rc2, v5.14-rc1, v5.13, v5.13-rc7, v5.13-rc6, v5.13-rc5 |
|
#
942baad2 |
| 02-Jun-2021 |
Joonas Lahtinen <joonas.lahtinen@linux.intel.com> |
Merge drm/drm-next into drm-intel-gt-next
Pulling in -rc2 fixes and TTM changes that next upcoming patches depend on.
Signed-off-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
|
Revision tags: v5.13-rc4, v5.13-rc3 |
|
#
c37fe6af |
| 18-May-2021 |
Mark Brown <broonie@kernel.org> |
Merge tag 'v5.13-rc2' into spi-5.13
Linux 5.13-rc2
|
#
85ebe5ae |
| 18-May-2021 |
Tony Lindgren <tony@atomide.com> |
Merge branch 'fixes-rc1' into fixes
|
#
d22fe808 |
| 17-May-2021 |
Rodrigo Vivi <rodrigo.vivi@intel.com> |
Merge drm/drm-next into drm-intel-next
Time to get back in sync...
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
|
Revision tags: v5.13-rc2, v5.13-rc1 |
|
#
d0034a7a |
| 04-May-2021 |
Dmitry Torokhov <dmitry.torokhov@gmail.com> |
Merge branch 'next' into for-linus
Prepare input updates for 5.13 merge window.
|
#
355b6029 |
| 26-Apr-2021 |
Maxime Ripard <maxime@cerno.tech> |
Merge drm/drm-next into drm-misc-next
Christian needs some patches from drm/next
Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
Revision tags: v5.12 |
|
#
fd49e8ee |
| 22-Apr-2021 |
Paolo Bonzini <pbonzini@redhat.com> |
Merge branch 'kvm-sev-cgroup' into HEAD
|
#
d0d252b8 |
| 20-Apr-2021 |
Ingo Molnar <mingo@kernel.org> |
Merge tag 'v5.12-rc8' into sched/core, to pick up fixes
Signed-off-by: Ingo Molnar <mingo@kernel.org>
|
#
b7f8f259 |
| 19-Apr-2021 |
Tyler Hicks <code@tyhicks.com> |
Merge tag 'v5.12-rc7' into ecryptfs/next
Required to pick up idmapped mount changes which changed some function parameters.
|
Revision tags: v5.12-rc8 |
|
#
1658d624 |
| 14-Apr-2021 |
Lee Jones <lee.jones@linaro.org> |
Merge tags 'ib-mfd-clk-gpio-regulator-rtc-v5.13', 'ib-mfd-extcon-v5.13', 'ib-mfd-input-v5.13-1', 'ib-mfd-platform-x86-v5.13', 'ib-mfd-power-v5.13', 'ib-mfd-pwm-rtc-v5.13-1' and 'ib-regulator-list-ram
Merge tags 'ib-mfd-clk-gpio-regulator-rtc-v5.13', 'ib-mfd-extcon-v5.13', 'ib-mfd-input-v5.13-1', 'ib-mfd-platform-x86-v5.13', 'ib-mfd-power-v5.13', 'ib-mfd-pwm-rtc-v5.13-1' and 'ib-regulator-list-ramp-helpers-v5.13' into ibs-for-mfd-merged
Immutable branch between MFD, Clock, GPIO, Regulator and RTC due for the v5.13 merge window
Immutable branch between MFD and Extcon due for the v5.13 merge window
Immutable branch between MFD and Input due for the v5.13 merge window
Immutable branch between MFD and Platform/x86 due for the v5.13 merge window
Immutable branch between MFD and Power due for the v5.13 merge window
Immutable branch between MFD, PWM and RTC due for the v5.13 merge window
show more ...
|
#
213cc929 |
| 13-Apr-2021 |
Daniel Vetter <daniel.vetter@ffwll.ch> |
Merge drm/drm-fixes into drm-next
msm-next pull request has a baseline with stuff from -fixes, roll forward first.
Some simple conflicts in amdgpu, ttm and one in i915 where git gets confused and t
Merge drm/drm-fixes into drm-next
msm-next pull request has a baseline with stuff from -fixes, roll forward first.
Some simple conflicts in amdgpu, ttm and one in i915 where git gets confused and tries to add the same function twice.
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
show more ...
|
Revision tags: v5.12-rc7 |
|
#
2375843b |
| 10-Apr-2021 |
Wolfram Sang <wsa@kernel.org> |
Merge branch 'i2c/software-nodes' into i2c/for-5.13
|
#
95944087 |
| 05-Apr-2021 |
Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
Merge 5.12-rc6 into tty-next
We need the serial/tty fixes in here as well.
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
#
422d2245 |
| 05-Apr-2021 |
Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
Merge 5.12-rc6 into char-misc-next
We need the char/misc fixes in here as well.
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
Revision tags: v5.12-rc6 |
|
#
aaa8c4e0 |
| 02-Apr-2021 |
Mark Brown <broonie@kernel.org> |
Merge series "Support ROHM BD71815 PMIC" from Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com>:
Patch series introducing support for ROHM BD71815 PMIC
ROHM BD71815 is a power management IC used
Merge series "Support ROHM BD71815 PMIC" from Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com>:
Patch series introducing support for ROHM BD71815 PMIC
ROHM BD71815 is a power management IC used in some battery powered systems. It contains regulators, GPO(s), charger + coulomb counter, RTC and a clock gate.
All regulators can be controlled via I2C. LDO4 can additionally be set to be enabled/disabled by a GPIO. LDO3 voltage could be selected from two voltages written into separate VSEL reisters using GPIO but this mode is not supported by driver. On top of that the PMIC has the typical HW state machine which is present also on many other ROHM PMICs.
IC contains two GPOs - but one of the GPOs is marked as GND in data-sheet. Thus the driver by default only exposes one GPO. The second GPO can be enabled by special DT property.
RTC is almost similar to what is on BD71828. For currently used features only the register address offset to RTC block differs.
The charger driver is not included in this series. ROHM has a charger driver with some fuel-gauging logig written in but this is not included here. I am working on separating the logic from HW specific driver and supporting both BD71815 and BD71828 chargers in separate patch series.
Changelog v5: Regulator: - Added regmap helper for regulator ramp-delay and taken it in use (patches 13, 14, 16 - they can be just dropped if ramp-delay helper is not a good idea. Patch 15 implements old-fashioned ramp-delay) GPIO: - styling changes to GPIO (Mostly suggested by Andy) - implemented init_valid_mask (but can't count on it yet) Changelog v4: - Sorted ROHM chip ID enum - Statcized DVS structures in regulator driver - Minor styling for regulator driver - rebased on v5.12-rc4 Changelog v3: - GPIO clean-up as suggested by Bartosz - MFD clean-up as suggested by Lee - clk-mode dt-binding handling in MFD driver corrected to reflect new property values. - Dropped already applied patches - Rebased on v5.12-rc2 Changelog v2: - Rebased on top of v5.11-rc3 - Added another "preliminary patch" which fixes HW-dvs voltage handling (patch 1) - split regulator patch to two. - changed dt-binding patch ordering. regulators: - staticized probe - removed some unnecessary defines - updated comments - split rohm-regulator patch adding SNVS and supporting simple linear mapping into two - one adding support for mapping, other adding SNVS. GPIO: - removed unnecessary headers - clarified dev/parent->dev usage - removed forgotten #define DEBUG dt-bindings: - changed patch order to meet ref-dependencies - added missing regulator nodes - changed string property for clk mode to tristated MFD: - header cleanups. CLK: - fixed commit message
--
Matti Vaittinen (19): rtc: bd70528: Do not require parent data mfd: bd718x7: simplify by cleaning unnecessary device data dt_bindings: bd71828: Add clock output mode dt_bindings: regulator: Add ROHM BD71815 PMIC regulators dt_bindings: mfd: Add ROHM BD71815 PMIC mfd: Add ROHM BD71815 ID mfd: Sort ROHM chip ID list for better readability mfd: Support for ROHM BD71815 PMIC core gpio: support ROHM BD71815 GPOs regulator: helpers: Export helper voltage listing regulator: rohm-regulator: linear voltage support regulator: rohm-regulator: Support SNVS HW state. regulator: Add regmap helper for ramp-delay setting regulator: bd718x7, bd71828: Use ramp-delay helper regulator: Support ROHM BD71815 regulators regulator: bd71815: use ramp-delay helper clk: bd718x7: Add support for clk gate on ROHM BD71815 PMIC rtc: bd70528: Support RTC on ROHM BD71815 MAINTAINERS: Add ROHM BD71815AGW
.../bindings/mfd/rohm,bd71815-pmic.yaml | 201 ++++++ .../bindings/mfd/rohm,bd71828-pmic.yaml | 6 + .../regulator/rohm,bd71815-regulator.yaml | 116 ++++ MAINTAINERS | 3 + drivers/clk/clk-bd718x7.c | 9 +- drivers/gpio/Kconfig | 10 + drivers/gpio/Makefile | 1 + drivers/gpio/gpio-bd71815.c | 193 ++++++ drivers/mfd/Kconfig | 15 +- drivers/mfd/rohm-bd71828.c | 486 +++++++++---- drivers/mfd/rohm-bd718x7.c | 43 +- drivers/regulator/Kconfig | 11 + drivers/regulator/Makefile | 1 + drivers/regulator/bd71815-regulator.c | 651 ++++++++++++++++++ drivers/regulator/bd71828-regulator.c | 51 +- drivers/regulator/bd718x7-regulator.c | 60 +- drivers/regulator/helpers.c | 101 ++- drivers/regulator/rohm-regulator.c | 23 +- drivers/rtc/Kconfig | 6 +- drivers/rtc/rtc-bd70528.c | 104 +-- include/linux/mfd/rohm-bd71815.h | 562 +++++++++++++++ include/linux/mfd/rohm-bd71828.h | 3 + include/linux/mfd/rohm-bd718x7.h | 13 - include/linux/mfd/rohm-generic.h | 15 +- include/linux/regulator/driver.h | 7 + 25 files changed, 2393 insertions(+), 298 deletions(-) create mode 100644 Documentation/devicetree/bindings/mfd/rohm,bd71815-pmic.yaml create mode 100644 Documentation/devicetree/bindings/regulator/rohm,bd71815-regulator.yaml create mode 100644 drivers/gpio/gpio-bd71815.c create mode 100644 drivers/regulator/bd71815-regulator.c create mode 100644 include/linux/mfd/rohm-bd71815.h
base-commit: 0d02ec6b3136c73c09e7859f0d0e4e2c4c07b49b -- 2.25.4
-- Matti Vaittinen, Linux device drivers ROHM Semiconductors, Finland SWDC Kiviharjunlenkki 1E 90220 OULU FINLAND
~~~ "I don't think so," said Rene Descartes. Just then he vanished ~~~ Simon says - in Latin please. ~~~ "non cogito me" dixit Rene Descarte, deinde evanescavit ~~~ Thanks to Simon Glass for the translation =]
show more ...
|
#
e855e80d |
| 02-Apr-2021 |
Ingo Molnar <mingo@kernel.org> |
Merge tag 'v5.12-rc5' into WIP.x86/core, to pick up recent NOP related changes
In particular we want to have this upstream commit:
b90829704780: ("bpf: Use NOP_ATOMIC5 instead of emit_nops(&prog,
Merge tag 'v5.12-rc5' into WIP.x86/core, to pick up recent NOP related changes
In particular we want to have this upstream commit:
b90829704780: ("bpf: Use NOP_ATOMIC5 instead of emit_nops(&prog, 5) for BPF_TRAMP_F_CALL_ORIG")
... before merging in x86/cpu changes and the removal of the NOP optimizations, and applying PeterZ's !retpoline objtool series.
Signed-off-by: Ingo Molnar <mingo@kernel.org>
show more ...
|
#
ad858508 |
| 31-Mar-2021 |
Mark Brown <broonie@kernel.org> |
Merge tag 'mute-led-rework' of https://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound into asoc-5.13
ALSA: control - add generic LED API
This patchset tries to resolve the diversity in the aud
Merge tag 'mute-led-rework' of https://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound into asoc-5.13
ALSA: control - add generic LED API
This patchset tries to resolve the diversity in the audio LED control among the ALSA drivers. A new control layer registration is introduced which allows to run additional operations on top of the elementary ALSA sound controls.
A new control access group (three bits in the access flags) was introduced to carry the LED group information for the sound controls. The low-level sound drivers can just mark those controls using this access group. This information is not exported to the user space, but user space can manage the LED sound control associations through sysfs (last patch) per Mark's request. It makes things fully configurable in the kernel and user space (UCM).
The actual state ('route') evaluation is really easy (the minimal value check for all channels / controls / cards). If there's more complicated logic for a given hardware, the card driver may eventually export a new read-only sound control for the LED group and do the logic itself.
The new LED trigger control code is completely separated and possibly optional (there's no symbol dependency). The full code separation allows eventually to move this LED trigger control to the user space in future. Actually it replaces the already present functionality in the kernel space (HDA drivers) and allows a quick adoption for the recent hardware (ASoC codecs including SoundWire).
snd_ctl_led 24576 0
The sound driver implementation is really easy:
1) call snd_ctl_led_request() when control LED layer should be automatically activated / it calls module_request("snd-ctl-led") on demand / 2) mark all related kcontrols with SNDRV_CTL_ELEM_ACCESS_SPK_LED or SNDRV_CTL_ELEM_ACCESS_MIC_LED
Link: https://lore.kernel.org/r/20210317172945.842280-1-perex@perex.cz Signed-off-by: Takashi Iwai <tiwai@suse.de>
show more ...
|
#
5b1ed7df |
| 30-Mar-2021 |
Takashi Iwai <tiwai@suse.de> |
Merge tag 'tags/mute-led-rework' into for-next
ALSA: control - add generic LED API
This patchset tries to resolve the diversity in the audio LED control among the ALSA drivers. A new control layer
Merge tag 'tags/mute-led-rework' into for-next
ALSA: control - add generic LED API
This patchset tries to resolve the diversity in the audio LED control among the ALSA drivers. A new control layer registration is introduced which allows to run additional operations on top of the elementary ALSA sound controls.
A new control access group (three bits in the access flags) was introduced to carry the LED group information for the sound controls. The low-level sound drivers can just mark those controls using this access group. This information is not exported to the user space, but user space can manage the LED sound control associations through sysfs (last patch) per Mark's request. It makes things fully configurable in the kernel and user space (UCM).
The actual state ('route') evaluation is really easy (the minimal value check for all channels / controls / cards). If there's more complicated logic for a given hardware, the card driver may eventually export a new read-only sound control for the LED group and do the logic itself.
The new LED trigger control code is completely separated and possibly optional (there's no symbol dependency). The full code separation allows eventually to move this LED trigger control to the user space in future. Actually it replaces the already present functionality in the kernel space (HDA drivers) and allows a quick adoption for the recent hardware (ASoC codecs including SoundWire).
snd_ctl_led 24576 0
The sound driver implementation is really easy:
1) call snd_ctl_led_request() when control LED layer should be automatically activated / it calls module_request("snd-ctl-led") on demand / 2) mark all related kcontrols with SNDRV_CTL_ELEM_ACCESS_SPK_LED or SNDRV_CTL_ELEM_ACCESS_MIC_LED
Link: https://lore.kernel.org/r/20210317172945.842280-1-perex@perex.cz Signed-off-by: Takashi Iwai <tiwai@suse.de>
show more ...
|
#
feecb817 |
| 29-Mar-2021 |
Ingo Molnar <mingo@kernel.org> |
Merge tag 'v5.12-rc5' into locking/core, to pick up fixes
Signed-off-by: Ingo Molnar <mingo@kernel.org>
|
#
b0a752d4 |
| 29-Mar-2021 |
Arnaldo Carvalho de Melo <acme@redhat.com> |
Merge remote-tracking branch 'torvalds/master' into perf/core
To pick up fixes sent via perf/urgent and in the BPF tools/ directories.
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
|