aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2018-11-15ASoC: rt5663: Add regulator supportCheng-Yi Chiang1-7/+61
Add regulator support to turn on cpvdd and avdd in probe. If a regulator is not given from device tree, a dummy regulator will be used. Signed-off-by: Cheng-Yi Chiang <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-11-15ASoC: ak4118: Add support for AK4118 S/PDIF transceiverAdrien Charruel3-0/+446
The AK4118A is a digital audio transceiver supporting 8 input channels at 192kHz and with 24bits resolution. It converts the S/PDIF signal to I2S format and is configurable over I2C. This driver introduce a minimal support of the AK4118, like selecting the input channel, reading input frequency and detecting some errors. Datasheet is available here: https://www.akm.com/akm/en/file/datasheet/AK4118AEQ.pdf Signed-off-by: Adrien Charruel <[email protected]> Signed-off-by: Clément Péron <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-11-15ASoC: dt-bindings: add bindings for AK4118 transceiverClément Péron1-0/+22
Document the bindings for AK4118 S/PDIF transceiver Signed-off-by: Clément Péron <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-11-15ASoC: pcm186x: Fix device reset-registers trigger valueAndreas Dannenberg1-1/+1
According to the current device datasheet (TI Lit # SLAS831D, revised March 2018) the value written to the device's PAGE register to trigger a complete register reset should be 0xfe, not 0xff. So go ahead and update to the correct value. Reported-by: Stephane Le Provost <[email protected]> Tested-by: Stephane Le Provost <[email protected]> Signed-off-by: Andreas Dannenberg <[email protected]> Acked-by: Andrew F. Davis <[email protected]> Signed-off-by: Mark Brown <[email protected]> Cc: [email protected]
2018-11-15ASoC: amd: remove set but not used variable 'dma_buffer'YueHaibing1-2/+0
Fixes gcc '-Wunused-but-set-variable' warning: sound/soc/amd/raven/acp3x-pcm-dma.c: In function 'acp3x_dma_hw_params': sound/soc/amd/raven/acp3x-pcm-dma.c:333:25: warning: variable 'dma_buffer' set but not used [-Wunused-but-set-variable] It never used since introduction in commit 8de1b5ed0337 ("ASoC: amd: add acp3x system resume pm op") Signed-off-by: YueHaibing <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-11-15ASoC: amd: Switch to SPDX identifierVijendar Mukunda5-47/+22
Adopt the SPDX license identifier headers to ease license compliance management. Reviewed-by: Alex Deucher <[email protected]> Signed-off-by: Vijendar Mukunda <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-11-15ASoC: amd: Fixed build errorsVijendar Mukunda1-0/+1
Fixed build errors. - Implicit declaration of pci_enable_msi() & pci_disable_msi() api's for openrisc architecture. - type defaults to 'int' in declaration of 'module_pci_driver' Enabled build for x86 architecture. Reviewed-by: Alex Deucher <[email protected]> Signed-off-by: Vijendar Mukunda <[email protected]> Tested-by: Ravulapati Vishnu vardhan Rao <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-11-15ASoC: nau8822: convert to SPDX identifiersDavid Lin1-1/+1
This patch fixes typo in the comment. Signed-off-by: David Lin <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-11-15ASoC: nau8822: convert to SPDX identifiersDavid Lin2-21/+16
This patch updates license to SPDX-License-Identifier instead of verbose license text. Signed-off-by: David Lin <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-11-14ASoC: dapm: Recalculate audio map forcely when card instantiatedTzung-Bi Shih1-0/+1
Audio map are possible in wrong state before card->instantiated has been set to true. Imaging the following examples: time 1: at the beginning in:-1 in:-1 in:-1 in:-1 out:-1 out:-1 out:-1 out:-1 SIGGEN A B Spk time 2: after someone called snd_soc_dapm_new_widgets() (e.g. create_fill_widget_route_map() in sound/soc/codecs/hdac_hdmi.c) in:1 in:0 in:0 in:0 out:0 out:0 out:0 out:1 SIGGEN A B Spk time 3: routes added in:1 in:0 in:0 in:0 out:0 out:0 out:0 out:1 SIGGEN -----> A -----> B ---> Spk In the end, the path should be powered on but it did not. At time 3, "in" of SIGGEN and "out" of Spk did not propagate to their neighbors because snd_soc_dapm_add_path() will not invalidate the paths if the card has not instantiated (i.e. card->instantiated is false). To correct the state of audio map, recalculate the whole map forcely. Signed-off-by: Tzung-Bi Shih <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-11-14ASoC: omap-abe-twl6040: Fix missing audio card caused by deferred probingPeter Ujfalusi1-38/+29
The machine driver fails to probe in next-20181113 with: [ 2.539093] omap-abe-twl6040 sound: ASoC: CODEC DAI twl6040-legacy not registered [ 2.546630] omap-abe-twl6040 sound: devm_snd_soc_register_card() failed: -517 ... [ 3.693206] omap-abe-twl6040 sound: ASoC: Both platform name/of_node are set for TWL6040 [ 3.701446] omap-abe-twl6040 sound: ASoC: failed to init link TWL6040 [ 3.708007] omap-abe-twl6040 sound: devm_snd_soc_register_card() failed: -22 [ 3.715148] omap-abe-twl6040: probe of sound failed with error -22 Bisect pointed to a merge commit: first bad commit: [0f688ab20a540aafa984c5dbd68a71debebf4d7f] Merge remote-tracking branch 'net-next/master' and a diff between a working kernel does not reveal anything which would explain the change in behavior. Further investigation showed that on the second try of loading fails because the dai_link->platform is no longer NULL and it might be pointing to uninitialized memory. The fix is to move the snd_soc_dai_link and snd_soc_card inside of the abe_twl6040 struct, which is dynamically allocated every time the driver probes. Signed-off-by: Peter Ujfalusi <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-11-14ASoC: amd: fix memory leak of i2s_data on error returnColin Ian King1-0/+1
Currently when snd_pcm_hw_constraint_integer fails there is a memory leak of i2s_data on the error return path. Fix this by kfree'ing i2s_data before returning. Detected by CoverityScan, CID#1475479 ("Resource leak") Fixes: 0b87d6bcd648 ("ASoC: amd: add acp3x pcm driver dma ops") Signed-off-by: Colin Ian King <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-11-13ASoC: pcm3060: Add DT property for single-ended outputKirill Marinushkin2-0/+15
DAC output may be differential (default) or single-ended. Signed-off-by: Kirill Marinushkin <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-11-13ASoC: pcm3060: Rename output widgetsKirill Marinushkin1-8/+4
In the initial commit [1], I added differential output of the codec as separate `+` and `-` widgets: OUTL+ OUTR+ OUTL- OUTR- Later, in the commit [2], I added a device tree property to configure the output as single-ended or differential. Having this property, the `+` and `-` separation in widgets seems for me confusing. There are no functional benefits in such separation, so I find reasonable to get rid of it: OUTL OUTR The new naming is more friendly for sound cards, and is better aligned with other codec drivers in kernel. Renaming the output widgets now should not be a problem from the backwards- compatibility perspective, as the driver for PCM3060 is added into the mainline very recently, and did not yet appear in any releases. [1] commit 6ee47d4a8dac ("ASoC: pcm3060: Add codec driver") [2] commit a78c62de00d5 ("ASoC: pcm3060: Add DT property for single-ended output") Signed-off-by: Kirill Marinushkin <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-11-13ASoC: stm32: sai: fix invalid use of sizeof in stm32_sai_add_mclk_provider()Wei Yongjun1-1/+1
sizeof() when applied to a pointer typed expression gives the size of the pointer, not that of the pointed data. Fixes: 8307b2afd386 ("ASoC: stm32: sai: set sai as mclk clock provider") Signed-off-by: Wei Yongjun <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-11-13ASoC: qcom: Set dai_link id to each dai_linkRohit kumar1-3/+6
Frontend dai_link id is used for closing ADM sessions. During concurrent usecase when one session is closed, it closes other ADM session associated with other usecase too. Dai_link->id should always point to Frontend dai id. Set cpu_dai id as dai_link id to fix the issue. Signed-off-by: Rohit kumar <[email protected]> Acked-by: Srinivas Kandagatla <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-11-13ASoC: sun8i-codec: add missing route for ADCVasily Khoruzhick1-1/+5
sun8i-codec misses a route from ADC to AIF1 Slot 0 ADC. Add it to the driver to avoid adding it to every dts. Fixes: eda85d1fee05d ("ASoC: sun8i-codec: Add ADC support for a33") Signed-off-by: Vasily Khoruzhick <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-11-13ASoC: amd: enable acp3x drivers buildVijendar Mukunda3-0/+10
ACP3x drivers can be built by selecting necessary kernel config option. The patch enables build support of the same. Signed-off-by: Maruthi Bayyavarapu <[email protected]> Tested-by: Ravulapati Vishnu vardhan Rao <[email protected]> Signed-off-by: Vijendar Mukunda <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-11-13ASoC: amd: add acp3x system resume pm opVijendar Mukunda1-0/+46
When system wide suspend happens, ACP will be powered off. When system resumes, all the runtime configuration data for ACP needs to be programmed again. Added 'resume'pm call back to ACP pm ops. Signed-off-by: Maruthi Bayyavarapu <[email protected]> Tested-by: Ravulapati Vishnu vardhan Rao <[email protected]> Signed-off-by: Vijendar Mukunda <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-11-13ASoC: amd: add acp3x runtime pm opsVijendar Mukunda1-0/+39
Added runtime PM operations for ACP3x PCM platform device. Signed-off-by: Maruthi Bayyavarapu <[email protected]> Tested-by: Ravulapati Vishnu vardhan Rao <[email protected]> Signed-off-by: Vijendar Mukunda <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-11-13ASoC: amd: add acp3x tdm mode supportVijendar Mukunda2-0/+69
ACP3x I2S (CPU DAI) can act in normal I2S and TDM modes. Added support for TDM mode. Desired mode can be selected from ASoC machine driver. Signed-off-by: Maruthi Bayyavarapu <[email protected]> Tested-by: Ravulapati Vishnu vardhan Rao <[email protected]> Signed-off-by: Vijendar Mukunda <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-11-13ASoC: amd: add acp3x i2s opsVijendar Mukunda1-3/+86
ACP3x has a i2s controller block for playback and capture. This patch adds ACP3x i2s DAI operations. Signed-off-by: Maruthi Bayyavarapu <[email protected]> Tested-by: Ravulapati Vishnu vardhan Rao <[email protected]> Signed-off-by: Vijendar Mukunda <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-11-13ASoC: amd: add acp3x pcm driver dma opsVijendar Mukunda2-7/+275
ACP3x has a DMA controller to access system memory. This controller transfers data from/to system memory to/from the ACP internal FIFO. The patch adds PCM driver DMA operations. Signed-off-by: Maruthi Bayyavarapu <[email protected]> Tested-by: Ravulapati Vishnu vardhan Rao <[email protected]> Signed-off-by: Vijendar Mukunda <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-11-13ASoC: amd: Interrupt handler changes for ACP3x DMA driverVijendar Mukunda1-0/+46
Whenever audio data equal to the I2S FIFO watermark level are produced/consumed, interrupt is generated. Acknowledge the interrupt. Signed-off-by: Maruthi Bayyavarapu <[email protected]> Tested-by: Ravulapati Vishnu vardhan Rao <[email protected]> Signed-off-by: Vijendar Mukunda <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-11-13ASoC: amd: add ACP3x PCM platform driverVijendar Mukunda2-0/+270
PCM platform driver binds to the platform device created by ACP3x PCI device. PCM driver registers ALSA DMA and CPU DAI components with ASoC framework. Signed-off-by: Maruthi Bayyavarapu <[email protected]> Tested-by: Ravulapati Vishnu vardhan Rao <[email protected]> Signed-off-by: Vijendar Mukunda <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-11-13ASoC: amd: create ACP3x PCM platform deviceVijendar Mukunda2-1/+73
ACP 3x IP has I2S controller device as one of IP blocks. Create a platform device for it, so that the PCM platform driver can be bound to this device. Pass PCI resources like MMIO, irq to the platform device. Signed-off-by: Maruthi Bayyavarapu <[email protected]> Tested-by: Ravulapati Vishnu vardhan Rao <[email protected]> Signed-off-by: Vijendar Mukunda <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-11-13ASoC: AMD: add ACP3.0 PCI driverMaruthi Srinivas Bayyavarapu2-0/+110
ACP 3.0 is a PCI audio device. This patch adds PCI driver to bind to this device and get PCI resources. Signed-off-by: Maruthi Bayyavarapu <[email protected]> Signed-off-by: Sanju R Mehta <[email protected]> Tested-by: Ravulapati Vishnu vardhan Rao <[email protected]> Signed-off-by: Vijendar Mukunda <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-11-13ASoC: AMD: add ACP 3.x IP register headerMaruthi Srinivas Bayyavarapu1-0/+655
ACP 3.x is a new audio block in raven. Added register header of the same. Signed-off-by: Maruthi Bayyavarapu <[email protected]> Signed-off-by: Vijendar Mukunda <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-11-13ASoC: Intel: Power down links before turning off display audio powerPierre-Louis Bossart2-12/+11
On certain platforms, Display HDMI HDA codec was not going to sleep state after the use when links are powered down after turning off the display power. As per the HW recommendation, links are powered down before turning off the display power to ensure that the codec goes to sleep state. This patch was updated from an earlier version submitted upstream [1] which conflicted with the changes merged for HDaudio codec support with the Intel DSP. [1] https://patchwork.kernel.org/patch/10540213/ Signed-off-by: Sriram Periyasamy <[email protected]> Signed-off-by: Sanyog Kale <[email protected]> Signed-off-by: Pierre-Louis Bossart <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-11-13ASoC: Intel: hdac_hdmi: add Icelake supportBard liao1-9/+54
Add Icelake device id. Also, Icelake's pin2port mapping table is complicated. So we use a mapping table to do the pin2port mapping. Signed-off-by: Bard liao <[email protected]> Acked-by: Pierre-Louis Bossart <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-11-13ASoC: wm_adsp: Factor out common init codeRichard Fitzgerald1-6/+8
Factor out the duplicated initialization statements from wm_adsp1_init() and wm_adsp2_init() into new function wm_adsp_common_init(). The entire content of wm_adsp1_init() is the common code but it is convenient to retain this exported function to hide what we currently treat as common init (which might change in the future) and also make clear the difference between an ADSP1 entry point and common code. Signed-off-by: Richard Fitzgerald <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-11-13ASoC: wm_adsp: Fix dma-unsafe read of scratch registersRichard Fitzgerald1-17/+20
Stack memory isn't DMA-safe so it isn't safe to use either regmap_raw_read or regmap_bulk_read to read into stack memory. The two functions to read the scratch registers were using stack memory and regmap_raw_read. It's not worth allocating memory just for this trivial read, and it isn't time-critical. A simple regmap_read for each register is sufficient. Signed-off-by: Richard Fitzgerald <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-11-13ASoC: rockchip: add missing slave_config setting for I2SKatsuhiro Suzuki1-0/+1
This patch adds missing prepare_sleve_config that is needed for setup the DMA slave channel for I2S. Signed-off-by: Katsuhiro Suzuki <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-11-13ASoC: omap-mcbsp: No need to initialize max_xx_thres when it is not usedPeter Ujfalusi1-3/+0
Initializing to -EINVAL is not correct as the variables are unsigned and if buffer_size is 0 then they are not used anyway. Signed-off-by: Peter Ujfalusi <[email protected]> Acked-by: Jarkko Nikula <[email protected]> Tested-by: Jarkko Nikula <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-11-13ASoC: omap-mcbsp: Remove redundant check for mcbsp->pdataPeter Ujfalusi1-3/+3
The driver will not probe if the pdata is not provided or created. Signed-off-by: Peter Ujfalusi <[email protected]> Acked-by: Jarkko Nikula <[email protected]> Tested-by: Jarkko Nikula <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-11-13ASoC: omap-mcbsp: Re-arrange files for core McBSP and Sidetone function splitPeter Ujfalusi6-1315/+1269
The mcbsp.c was copied a while back from arch/arm/plat-omap/mcbsp.c and it contained a mix of McBSP and McBSP sidetone functions. Create new file structure with the following split: omap-mcbsp.c - McBSP related functions omap-mcbsp-st.c - McBSP sidetone functionality omap-mcbsp-priv.h - Private header for internal use omap-mcbsp.h - Header for user drivers I have tried to do the code move with minimal code change, cleanup patches can be based on the new structure. Signed-off-by: Peter Ujfalusi <[email protected]> Acked-by: Jarkko Nikula <[email protected]> Tested-by: Jarkko Nikula <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-11-13ASoC: omap-mcbsp: Move out the FIFO check from set_threshold and get_delayPeter Ujfalusi2-12/+8
Check if the McBSP have FIFO in the omap_mcbsp_set_threshold() and omap_mcbsp_dai_delay() delay function to skip calling the lower layer if it is not needed. Signed-off-by: Peter Ujfalusi <[email protected]> Acked-by: Jarkko Nikula <[email protected]> Tested-by: Jarkko Nikula <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-11-13ASoC: omap-mcbsp: Simplify the mcbsp_start/_stop function parametersPeter Ujfalusi3-9/+12
We either start/stop TX or RX, never both. Move the tx/rx direction selection within the functions. Signed-off-by: Peter Ujfalusi <[email protected]> Acked-by: Jarkko Nikula <[email protected]> Tested-by: Jarkko Nikula <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-11-13ASoC: omap-mcbsp: Clean up the interrupt handlersPeter Ujfalusi1-14/+14
The parameter name of dev_id is leftover from the old times when we passed numeric ID as data for the interrupt handlers. The mcbsp_rx and mcbsp_tx is misleading as they are pointers to the mcbsp struct. Signed-off-by: Peter Ujfalusi <[email protected]> Acked-by: Jarkko Nikula <[email protected]> Tested-by: Jarkko Nikula <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-11-13ASoC: omap-mcbsp: Skip dma_data.maxburst initializationPeter Ujfalusi1-3/+0
It is configured runtime so no need to initialize it. Signed-off-by: Peter Ujfalusi <[email protected]> Acked-by: Jarkko Nikula <[email protected]> Tested-by: Jarkko Nikula <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-11-13ASoC: omap-mcbsp: Clean up dma_data addr initialization codePeter Ujfalusi1-13/+14
Make the omap_mcbsp_dma_reg_params() a bit more intuitive to read for the first glance by using SNDRV_PCM_STREAM_PLAYBACK/CAPTURE and to group the outermost if case by stream direction. While there, fix the outdated comment for the function. Signed-off-by: Peter Ujfalusi <[email protected]> Acked-by: Jarkko Nikula <[email protected]> Tested-by: Jarkko Nikula <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-11-09ASoC: rsnd: use ring buffer for rsnd_mod_name()Kuninori Morimoto1-1/+8
commit c0ea089dbad4 ("ASoC: rsnd: rsnd_mod_name() handles both name and ID") merged "name" and "ID" on rsnd_mod_name() to handle sub-ID (= for CTU/BUSIF). Then, it decided to share static char to avoid pointless memory. But, it doesn't work correctry in below case, because last called name will be used. dev_xxx(dev, "%s is connected to %s\n", rsnd_mod_name(mod_a), /* ssiu[00] */ rsnd_mod_name(mod_b)); /* ssi[0] */ -> rcar_sound ec500000.sound: ssi[0] is connected to ssi[0] ~~~~~~ ~~~~~~ We still don't want to have pointless memory, so let's use ring buffer. 16byte x 5 is very enough for this purpose. dev_xxx(dev, "%s is connected to %s\n", rsnd_mod_name(mod_a), /* ssiu[00] */ rsnd_mod_name(mod_b)); /* ssi[0] */ -> rcar_sound ec500000.sound: ssiu[00] is connected to ssi[0] ~~~~~~~~ ~~~~~~ Signed-off-by: Kuninori Morimoto <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-11-09ASoC: sun8i-codec: fix crash on module removalVasily Khoruzhick1-6/+0
drvdata is actually sun8i_codec, not snd_soc_card, so it crashes when calling snd_soc_card_get_drvdata(). Drop card and scodec vars anyway since we don't need to disable/unprepare clocks - it's already done by calling runtime_suspend() Drop clk_disable_unprepare() calls for the same reason. Fixes: 36c684936fae7 ("ASoC: Add sun8i digital audio codec") Signed-off-by: Vasily Khoruzhick <[email protected]> Acked-by: Maxime Ripard <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-11-07ASoC: fsl_ssi: Change to use DEFINE_SHOW_ATTRIBUTE macroYangtao Li1-12/+2
Use DEFINE_SHOW_ATTRIBUTE macro to simplify the code. Signed-off-by: Yangtao Li <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-11-06ASoC: rsnd: add TDM Split mode supportKuninori Morimoto4-12/+67
This patch adds TDM Split mode support. rsnd driver is assuming audio-graph-scu-card is used for Sound Card. This is very simple sample DT settings to use it. sound_card: sound { compatible = "audio-graph-scu-card"; ... convert-channels = <8>; /* TDM Split */ dais = <&rsnd_port0 /* playback ch1/ch2 */ &rsnd_port1 /* playback ch3/ch4 */ &rsnd_port2 /* playback ch5/ch6 */ &rsnd_port3 /* playback ch7/ch8 */ >; }; audio-codec { ... port { codec_0: endpoint@1 { remote-endpoint = <&rsnd_ep0>; }; codec_1: endpoint@2 { remote-endpoint = <&rsnd_ep1>; }; codec_2: endpoint@3 { remote-endpoint = <&rsnd_ep2>; }; codec_3: endpoint@4 { remote-endpoint = <&rsnd_ep3>; }; }; }; &rcar_sound { ... ports { rsnd_port0: port@0 { rsnd_ep0: endpoint { remote-endpoint = <&codec_0>; ... playback = <&ssiu30 &ssi3>; }; }; rsnd_port1: port@1 { rsnd_ep1: endpoint { remote-endpoint = <&codec_1>; ... playback = <&ssiu31 &ssi3>; }; }; rsnd_port2: port@2 { rsnd_ep2: endpoint { remote-endpoint = <&codec_2>; ... playback = <&ssiu32 &ssi3>; }; }; rsnd_port3: port@3 { rsnd_ep3: endpoint { remote-endpoint = <&codec_3>; ... playback = <&ssiu33 &ssi3>; }; }; }; }; Signed-off-by: Kuninori Morimoto <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-11-06ASoC: rsnd: add TDM Split mode support for DocumentKuninori Morimoto1-0/+91
This patch adds TDM Split mode support. rsnd driver is assuming audio-graph-scu-card is used for Sound Card. Signed-off-by: Kuninori Morimoto <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-11-06ASoC: rsnd: add SSIU BUSIF supportKuninori Morimoto5-29/+215
Gen2 has BUSIF0-3, Gen3 has BUSIF0-7 on some SSIU. Current driver is assuming it is using BUSIF0 as default. Thus, SSI is attaching SSIU (with BUSIF0) by using rsnd_ssiu_attach(). But, TDM split mode also needs other BUSIF to use it. This patch adds missing SSIU BUSIFx support. BUSIF is handled by SSIU instead of SSI anymore. Thus, its settings no longer needed on SSI node on DT. This patch removes its settings from Document, but driver is still keeping compatibility. Thus, old DT style is still working. But, to avoid confusing, it doesn't indicate old compatibility things on Document. New SoC should have SSIU on DT from this patch. 1) old style DT is still supported (= no rcar_sound,ssiu node on DT) 2) If ssiu is not indicated on playback/capture, BUSIF0 will be used as default playback = <&ssi3>; /* ssiu30 will be selected */ 3) you can select own ssiu playback = <&ssi32 &ssi3>; /* ssiu32 will be selected */ Signed-off-by: Kuninori Morimoto <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-11-06ASoC: rsnd: add SSIU BUSIF support for DocumentKuninori Morimoto1-44/+43
Gen2 has BUSIF0-3, Gen3 has BUSIF0-7 on some SSIU. Current driver is assuming it is using BUSIF0 as default. Thus, SSI is attaching SSIU (with BUSIF0) by using rsnd_ssiu_attach(). But, TDM split mode also needs other BUSIF to use it. This patch adds missing SSIU BUSIFx support. BUSIF is handled by SSIU instead of SSI anymore. Thus, its settings no longer needed on SSI node on DT. This patch removes its settings from Document, but driver is still keeping compatibility. Thus, old DT style is still working. But, to avoid confusing, it doesn't indicate old compatibility things on Document. New SoC should have SSIU on DT from this patch. 1) old style DT is still supported (= no rcar_sound,ssiu node on DT) 2) If ssiu is not indicated on playback/capture, BUSIF0 will be used as default playback = <&ssi3>; /* ssiu30 will be selected */ 3) you can select own ssiu playback = <&ssi32 &ssi3>; /* ssiu32 will be selected */ Signed-off-by: Kuninori Morimoto <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-11-06ASoC: rsnd: tidyup Document for DT bindingKuninori Morimoto1-116/+98
It has duplicated DT example code on Document. This patch tidyup these. Signed-off-by: Kuninori Morimoto <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-11-06ASoC: rsnd: handle DPCM converted rate/chan under coreKuninori Morimoto4-85/+39
converted rate/chan are handled each rated module, but it will be used other module too. For examle, converted channel is currently used for CTU, but, it will be used for TDM Split mode, too. This patch move/merge SRC/CTU hw_param under core.c and handles converted rate/chan under rsnd_dai_stream. Signed-off-by: Kuninori Morimoto <[email protected]> Signed-off-by: Mark Brown <[email protected]>