aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2018-12-07ASoC: sdm845: Add TDM configuration for speakerCheng-Yi Chiang1-1/+68
Set TDM time slots and DAI format for speaker codec. Signed-off-by: Cheng-Yi Chiang <[email protected]> Acked-by: Srinivas Kandagatla <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-12-07ASoC: max9867: Fix signal pathsLadislav Michl2-94/+102
Sound capture and line bypass currently do not work as well as some mixer controls. Fix that by building proper audio paths and adjusting volume controls to match datasheet. Signed-off-by: Ladislav Michl <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-12-07ASoC: max9867: Calculate LRCLK dividerLadislav Michl2-128/+110
Drop "Common NI Values Table" and calculate LRCLK divider, then add allowed rate constraints based on master clock frequency. Signed-off-by: Ladislav Michl <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-12-07ASoC: max9867: Fix power managementLadislav Michl2-28/+46
Implement set_bias_level to drive shutdown bit, so device is put to sleep when unused. Signed-off-by: Ladislav Michl <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-12-07ASoC: max9867: Remove useless assignmentLadislav Michl1-4/+2
ret is assigned later, no need to initialize it. Signed-off-by: Ladislav Michl <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-12-06ASoC: codecs: ak4104: move to GPIO consumer APIDaniel Mack1-15/+7
Get the reset GPIO through the GPIO consumer API. This allows specifying the DT property as "reset-gpios" without breaking existing DT users. Signed-off-by: Daniel Mack <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-12-06ASoC: dt-bindings: ak4104: use 'reset-gpios' rather than 'reset-gpio'Daniel Mack1-2/+2
Bindings should use 'reset-gpios', not 'reset-gpio'. The driver needs to switch to the gpiod consume API to handle this correctly. Signed-off-by: Daniel Mack <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-12-06ASoC: codecs: cs4270: move to GPIO consumer APIDaniel Mack1-16/+7
Get the reset GPIO through the GPIO consumer API. This allows specifying the DT property as "reset-gpios" without breaking existing DT users. Signed-off-by: Daniel Mack <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-12-06ASoC: dt-bindings: cs4270: use 'reset-gpios' rather than 'reset-gpio'Daniel Mack1-2/+2
Bindings should use 'reset-gpios', not 'reset-gpio'. The driver needs to switch to the gpiod consume API to handle this correctly. Signed-off-by: Daniel Mack <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-12-06ASoC: Use of_node_name_eq for node name comparisonsRob Herring2-4/+4
Convert string compares of DT node names to use of_node_name_eq helper instead. This removes direct access to the node name pointer. For the FSL ASoC card, the full node names appear to be "ssi", "esai", and "sai", so there's not any reason to use strstr and of_node_name_eq can be used instead. Cc: Timur Tabi <[email protected]> Cc: Nicolin Chen <[email protected]> Cc: Xiubo Li <[email protected]> Cc: Fabio Estevam <[email protected]> Cc: Liam Girdwood <[email protected]> Cc: Mark Brown <[email protected]> Cc: Jaroslav Kysela <[email protected]> Cc: Takashi Iwai <[email protected]> Cc: [email protected] Cc: [email protected] Signed-off-by: Rob Herring <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-12-06ASoC: use dma_ops of parent device for acp_audio_dmaYu Zhao1-2/+5
AMD platform device acp_audio_dma can only be created by parent PCI device driver (drivers/gpu/drm/amd/amdgpu/amdgpu_acp.c). Pass struct device of the parent to snd_pcm_lib_preallocate_pages() so dma_alloc_coherent() can use correct dma_ops. Otherwise, it will use default dma_ops which is nommu_dma_ops on x86_64 even when IOMMU is enabled and set to non passthrough mode. Though platform device inherits some dma related fields during its creation in mfd_add_device(), we can't simply pass its struct device to snd_pcm_lib_preallocate_pages() because dma_ops is not among the inherited fields. Even it were, drivers/iommu/amd_iommu.c would ignore it because get_device_id() doesn't handle platform device. This change shouldn't give us any trouble even struct device of the parent becomes null or represents some non PCI device in the future, because get_dma_ops() correctly handles null struct device or uses the default dma_ops if struct device doesn't have it set. Signed-off-by: Yu Zhao <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-12-06ASoC: use DMA addr rather than CPU pa for acp_audio_dmaYu Zhao2-11/+6
We shouldn't assume CPU physical address we get from page_to_phys() is same as DMA address we get from dma_alloc_coherent(). On x86_64, we won't run into any problem with the assumption when dma_ops is nommu_dma_ops. However, DMA address is IOVA when IOMMU is enabled. And it's most likely different from CPU physical address when AMD IOMMU is not in passthrough mode. Signed-off-by: Yu Zhao <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-12-04ASoC: max98373: Added max98373_reset for stable amp resetRyan Lee1-6/+29
This patch added max98373_reset function to avoid amp software reset failure and code duplication. Reset verification step has been added for stable amp reset and it repeats verification maximum 3 times when it is failed. Chip revision ID is available when the amp is in the idle state which means software reset is completed well. Additional 10ms delay was added for every retrial and maximum 30ms delay can be applied. Signed-off-by: Ryan Lee <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-12-04ASoC: audio-graph-card: use cpu/codec pointer on graph_dai_propsKuninori Morimoto1-23/+34
In DPCM case, it uses CPU-dummy / dummy-Codec dai links, and non DPCM case, it uses CPU-Codec dai links. Now, we want to merge audio-graph-card and audio-graph-scu-card. These sound cards are using silimar but not same logic on each functions. Then, of course we want to share same logic. To compromise, this patch uses cpu/codec pointer on audio-graph-card. It is same logic with audio-graph-scu-card, thus easy merging. This is prepare for merging audio card Signed-off-by: Kuninori Morimoto <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-12-04ASoC: audio-graph-scu-card: care multi DPCM codec_confKuninori Morimoto1-11/+29
Current audio-graph-scu-card didn't care about codec_conf for multi DPCM case. This patch cares it. Signed-off-by: Kuninori Morimoto <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-12-04ASoC: audio-graph-scu-card: use cpu/codec pointer on graph_dai_propsKuninori Morimoto1-23/+49
In DPCM case, it uses CPU-dummy / dummy-Codec dai links, and non DPCM case, it uses CPU-Codec dai links. Now, we want to merge audio-graph-card and audio-graph-scu-card. These sound cards are using silimar but not same logic on each functions. Then, of course we want to share same logic. To compromise, this patch uses cpu/codec pointer on audio-graph-scu-card. It is same logic with audio-graph-card, thus easy merging. This is prepare for merging audio card Signed-off-by: Kuninori Morimoto <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-12-04ASoC: audio-graph-scu-card: care link / dai countKuninori Morimoto1-14/+62
In DPCM case, it uses CPU-dummy / dummy-Codec dai links. If sound card is caring only DPCM, link count = dai count, but, if non DPCM case, link count != dai count. Now, we want to merge audio-graph-card and audio-graph-scu-card, then, we need to care both link / dai count more carefly This patch cares it, and prepare for merging audio card Signed-off-by: Kuninori Morimoto <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-12-04ASoC: simple-card-utils: fixup asoc_simple_card_get_dai_id() countingKuninori Morimoto1-19/+3
asoc_simple_card_get_dai_id() returns DAI ID, but it is based on DT node's "endpoint" position. Almost all cases 1 port has 1 endpoint, thus, it was no problem. But in reality, port : endpoint = 1 : N, thus, counting endpoint is BUG, it should based on "port" ID. This patch fixup it. Signed-off-by: Kuninori Morimoto <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-12-04ASoC: rsnd: add missing TDM Split mode support for simple-cardKuninori Morimoto1-2/+51
commit f69f452243e4e1 ("ASoC: rsnd: add TDM Split mode support") added TDM Split mode support for rsnd driver. But, it cares audio-graph-card style only. We can't use TDM Split mode on simple-card style now. This patch fixup this issue. Fixes: f69f452243e4e1 ("ASoC: rsnd: add TDM Split mode support") Signed-off-by: Kuninori Morimoto <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-12-04ASoC: rsnd: fixup mod ID for CTU regmap read/writeKuninori Morimoto3-3/+13
commit c16015f36cc12824 ("ASoC: rsnd: add .get_id/.get_id_sub") add new .get_id/.get_id_sub to indicate module ID/subID. It is used for SSIU and CTU. In SSIU case, subID indicates BUSIF, but register settings is based on SSIU ID. OTOH, in CTU case, subID indicates CTU channel, and register settings is based on it. This means regmap read/write function needs to care it. This patch fixup this issue. It can't play MIXed sound without this patch. Fixes: c16015f36cc12824 ("ASoC: rsnd: add .get_id/.get_id_sub") Signed-off-by: Kuninori Morimoto <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-12-04ASoC: rsnd: indicates Channel and Mode for debugKuninori Morimoto1-1/+9
For TDM debug purpose, indicating Channel and Mode is very useful. This patch indicate it if it has #define DEBUG Signed-off-by: Kuninori Morimoto <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-12-03ASoC: pxa: remove raumfeld machine driverDaniel Mack3-329/+0
These boards are now fully ported to devicetree and make use of the simple-card driver, so the platform specific machine driver can be removed. Signed-off-by: Daniel Mack <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-12-03ASoC: Intel: common: add ACPI matching tables for ICLPierre-Louis Bossart3-1/+34
Entry needed for ICL RVP w/ RT274 Signed-off-by: Pierre-Louis Bossart <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-12-03ASoC: dt-bindings: use a generic node name for rt5631Lubomir Rintel1-2/+2
The example should follow the practice or using a generic node name instead of the precise programming model, as recommended by the DTSpec. Signed-off-by: Lubomir Rintel <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-11-29ASoC: au8540: use 64-bit arithmetic instead of 32-bitYoung_X1-1/+1
Add suffix ULL to constant 256 in order to give the compiler complete information about the proper arithmetic to use. Notice that such constant is used in a context that expects an expression of type u64 (64 bits, unsigned) and the following expression is currently being evaluated using 32-bit arithmetic: 256 * fs * 2 * mclk_src_scaling[i].param Signed-off-by: Young_X <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-11-28ASoC: dmic: introduce module_param wakeup_delayJenny TC1-0/+5
Introducing a module param for wakeup_delay in order to align with modeswitch_delay parameter. With this change, both wakeup_delay and modeswitch_delay parameters can be passed as module parameters. Signed-off-by: Jenny TC <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-11-28ASoC: dmic: introduce mode switch delayJenny TC2-0/+37
On startup, applications such as PulseAudio or CRAS enable playback or capture on all PCM devices to verify that configurations are correct, and close them immediately. For DMICs, this can result in the clock being turned off very quickly, which may not compatible with internal state machine transition requirements. This patch add a mode-switch delay which will prevent the clock from being turned off without complying with manufacturer timing specifications. While the DMIC clock may be controlled at a lower level, be it with hardware or firmware, applying the delay during the STOP_TRIGGER phase ensures that there is no race condition, e.g. with the hardware/firmware turning off the clock earlier Signed-off-by: Sathyanarayana Nujella <[email protected]> Signed-off-by: Jairaj Arava <[email protected]> Signed-off-by: Harsha Priya <[email protected]> Signed-off-by: Jenny TC <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-11-28dt-bindings: sound: omap-mcpdm: Update documentation for pdmclkPeter Ujfalusi1-0/+10
McPDM module receives it's functional clock from external source. This clock is the pdmclk provided by the twl6040 audio IC. If the clock is not available all register accesses to McPDM fails and the module is not operational. Signed-off-by: Peter Ujfalusi <[email protected]> Acked-by: Rob Herring <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-11-28ASoC: qcom: sdm845: Create and setup jack in init callbackCheng-Yi Chiang1-2/+55
Add a callback for init ops on dai_link to create and setup jack. Signed-off-by: Rohit kumar <[email protected]> Signed-off-by: Cheng-Yi Chiang <[email protected]> Acked-by: Srinivas Kandagatla <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-11-28ASoC: qcom: sdm845: Add board specific dapm widgetsCheng-Yi Chiang1-0/+10
Add board specific dapm widgets so these widgets can be used in the route. Signed-off-by: Rohit kumar <[email protected]> Signed-off-by: Cheng-Yi Chiang <[email protected]> Acked-by: Srinivas Kandagatla <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-11-28ASoC: davinci-mcasp: Implement configurable dismod handlingPeter Ujfalusi3-1/+20
If the dismod is specified in the DT node, use the specified custom value to configure the drive on state of the inactive TX slots. If the dismod is not present or booted in legacy mode, the dismod is set to low as it was the original behavior. Signed-off-by: Peter Ujfalusi <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-11-28ASoC: davinci-mcasp: Document dismod optional propertyPeter Ujfalusi1-0/+5
The dismod property can be used to specify the drive on level of inactive TX slots. Signed-off-by: Peter Ujfalusi <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-11-28ASoC: davinci-mcasp: Update PDIR (pin direction) register handlingPeter Ujfalusi2-32/+85
When McASP is master and the PDIR for the clock pins are configured as outputs before the clocking is configured it will output whatever clock is generated at the moment internally. The clock will switch to the correct rate only when the we start the clock generators. To avoid this we must only set the pin as output after the clock is configured and enabled. AXR pins configured as outputs behaves somehow interesting as well: when McASP is not enabled and the pin is selected as output it will not honor the DISMOD settings for the inactive state, but will pull the pin down. Add a new bitfield and mark the pins there which needs to be output and set the pins only at the time when they will behave correctly. On stream stop configure the pins back to input which makes them to obey the global pin configuration regarding to pull up/down. Signed-off-by: Peter Ujfalusi <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-11-28ASoC: davinci-mcasp: Clear TXSTAT register before activating serializersPeter Ujfalusi1-0/+2
Follow the guideline from the TRM: Before starting, clear the respective transmitter and receiver status registers To avoid stale state stored in the status registers. Signed-off-by: Peter Ujfalusi <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-11-28ASoC: Intel: Skylake: Add FW reply for MCLK/SCLK IPCSubhransu S. Prusty1-0/+6
If mclk/sclk is already running, FW responds with IPC reply MCLK/SCLK already running. Add these to the IPC reply lookup table. Signed-off-by: Subhransu S. Prusty <[email protected]> Signed-off-by: Sriram Periyasamy <[email protected]> Signed-off-by: Vinod Koul <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-11-28ASoC: Intel: Skylake: Make DSP replies more human readableSubhransu S. Prusty1-11/+33
Add more meaning to the IPC replies for easy debugging. Replace the switch case with a lookup table to lookup for the IPC replies and print in human readable form. Signed-off-by: Subhransu S. Prusty <[email protected]> Signed-off-by: Sriram Periyasamy <[email protected]> Signed-off-by: Vinod Koul <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-11-26ASoC: max9867: Fix whitespaceLadislav Michl1-7/+5
Minor changes to match coding style. Signed-off-by: Ladislav Michl <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-11-26ASoC: soc.h: makes snd_soc_of_parse_audio_prefix() inlineKuninori Morimoto1-3/+9
commit 3b7103562c03c ("ASoC: soc-core: add snd_soc_of_parse_node_prefix()") maked snd_soc_of_parse_audio_prefix() as #define. But it'd be better to make this a static inline rather than a #define. It helps with error messages and type safety. This patch makes it inline. Signed-off-by: Kuninori Morimoto <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-11-26ASoC: rsnd: tidyup for SSIU subnodeKuninori Morimoto1-0/+5
commit da48a6eb82ea2 ("ASoC: rsnd: add SSIU BUSIF support for Document") updated Documentation for SSIU, but 1) we want to keep old/deprecated DMA description, 2) it is missing SSIU subnode properties. This patch tidyup these Signed-off-by: Kuninori Morimoto <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-11-26ASoC: amd: Fix a NULL vs IS_ERR() check in probeDan Carpenter1-2/+2
The platform_device_register_full() function doesn't return NULL, it returns error pointers. Fixes: 7894a7e7ea3d ("ASoC: amd: create ACP3x PCM platform device") Signed-off-by: Dan Carpenter <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-11-23ASoC: audio-graph-card: tidyup define positionKuninori Morimoto1-5/+5
commit f986907c9225 ("ASoC: audio-graph-card: add widgets and routing for external amplifier support") added new function asoc_graph_card_outdrv_event(), but the inserted position breaks define area. This patch tidyup it Signed-off-by: Kuninori Morimoto <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-11-23ASoC: audio-graph-card: tidyup typo SND_AUDIO_GRAPH_CARDKuninori Morimoto1-1/+1
1 "simple" is enough on Kconfig help Signed-off-by: Kuninori Morimoto <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-11-23ASoC: audio-graph-scu-card: tidyup asoc_simple_card_parse_daifmt() timingKuninori Morimoto1-38/+16
Current audio-graph-scu-card driver is parsing codec position for DPCM and consider DAI format. But, current operation is doing totally pointless, because 1) asoc_simple_card_parse_daifmt() will be called not only for 1st codec on current implementation, and it will be used as fixed format 2) it should be called for each CPU/Codec pair. Let's tidyup asoc_simple_card_parse_daifmt() timing. Signed-off-by: Kuninori Morimoto <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-11-23ASoC: audio-graph-scu-card: tidyup "convert-rate/channels" parsingKuninori Morimoto1-0/+7
audio-graph-scu-card.c is supporting "convert-rate/channels" which is used for DPCM. But, sound card might have multi codecs, and each codec might need each convert-rate/channels. This patch supports each codec's convert-rate/channles support. top node convert-rate/channels will overwrite settings if exist. It can't support each codec's convert-rate/channels if sound card had multi codecs without this patch. Signed-off-by: Kuninori Morimoto <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-11-23ASoC: audio-graph-scu-card: tidyup "convert-rate/channels" parsing on DocKuninori Morimoto1-1/+1
audio-graph-scu-card.c is supporting "convert-rate/channels" which is used for DPCM. But, sound card might have multi codecs, and each codec might need each convert-rate/channels. This patch supports each codec's convert-rate/channles support. top node convert-rate/channels will overwrite settings if exist. It can't support each codec's convert-rate/channels if sound card had multi codecs without this patch. Signed-off-by: Kuninori Morimoto <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-11-23ASoC: audio-graph-scu-card: tidyup "prefix" parsingKuninori Morimoto1-0/+10
audio-graph-scu-card.c is supporting "prefix" which is used to avoid DAI naming conflict when CPU/Codec matching. But, sound card might have multi sub-devices, and each codec might need each prefix. Now, ASoC is supporting snd_soc_of_parse_node_prefix(), let's support it on audio-graph-scu-card, too. It is keeping existing DT style. It can't support each codec's prefix if sound card had multi sub-devices without this patch. Signed-off-by: Kuninori Morimoto <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-11-23ASoC: audio-graph-scu-card: tidyup "prefix" parsing on DocKuninori Morimoto1-1/+1
audio-graph-scu-card.c is supporting "prefix" which is used to avoid DAI naming conflict when CPU/Codec matching. But, sound card might have multi sub-devices, and each codec might need each prefix. Now, ASoC is supporting snd_soc_of_parse_node_prefix(), let's support it on audio-graph-scu-card, too. It is keeping existing DT style. It can't support each codec's prefix if sound card had multi sub-devices without this patch. Signed-off-by: Kuninori Morimoto <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-11-23ASoC: simple-scu-card: tidyup "prefix" parsingKuninori Morimoto1-0/+7
simple-scu-card.c is supporting "prefix" which is used to avoid DAI naming conflict when CPU/Codec matching. But, sound card might have multi sub-devices, and each codec might need each prefix. Now, ASoC is supporting snd_soc_of_parse_node_prefix(), let's support it on audio-graph-scu-card, too. It is keeping existing DT style. It can't support each codec's prefix if sound card had multi sub-devices without this patch. Signed-off-by: Kuninori Morimoto <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-11-23ASoC: simple-scu-card: tidyup "prefix" parsing on DocKuninori Morimoto1-1/+1
simple-scu-card.c is supporting "prefix" which is used to avoid DAI naming conflict when CPU/Codec matching. But, sound card might have multi sub-devices, and each codec might need each prefix. Now, ASoC is supporting snd_soc_of_parse_node_prefix(), let's support it on audio-graph-scu-card, too. It is keeping existing DT style. It can't support each codec's prefix if sound card had multi sub-devices without this patch. Signed-off-by: Kuninori Morimoto <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2018-11-23ASoC: soc-core: add snd_soc_of_parse_node_prefix()Kuninori Morimoto2-7/+10
Current ASoC has snd_soc_of_parse_audio_prefix() to get codec_conf settings from DT which is used to avoid DAI naming conflict when CPU/Codec matching. Currently, it is parsing from "top node", but, we want to parse from "each sub node" if sound card had multi cpus/codecs. This patch adds new snd_soc_of_parse_node_prefix() to allow parsing settings from selected node. It is keeping existing snd_soc_of_parse_audio_prefix() by using macro. Signed-off-by: Kuninori Morimoto <[email protected]> Signed-off-by: Mark Brown <[email protected]>