aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2023-01-31ASoC: soc-dai.h: add missing snd_soc_dai_set_widget()Kuninori Morimoto1-2/+10
Current ASoC has snd_soc_dai_get_widget() (= _get_) but doesn't have _set_ function. This patch adds it. This patch also cleanup unnecessary line break for _get_ function. Signed-off-by: Kuninori Morimoto <[email protected]> Reviewed-by: Charles Keepax <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
2023-01-30ASoC: topology: Fixes and cleanupsMark Brown2-111/+74
Merge series from Amadeusz Sławiński <[email protected]>: Following is series of fixes and cleanups for core topology code. Few patches fixing various problems all around and few fixing function names.
2023-01-30ASoC: dt-bindings: audio-graph-port related updateMark Brown6-86/+184
Merge series from Kuninori Morimoto <[email protected]>: Audio-Graph-Card and Simple-Audio-Card are similar Card and are sharing same utils. Thus we can also sharing same schema. This patch-set fixup some Renesas's "make dtbs_check".
2023-01-30ASoC: dt-bindings: Add schema for "awinic,aw88395"Weidong Wang1-0/+53
Add a DT schema for describing Awinic AW88395 audio amplifiers. They are controlled using I2C. Signed-off-by: Weidong Wang <[email protected]> Reviewed-by: Krzysztof Kozlowski <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
2023-01-30ASoC: codecs: Aw88395 chip register file, data type file and Kconfig MakefileWeidong Wang4-0/+547
The Awinic AW88395 is an I2S/TDM input, high efficiency digital Smart K audio amplifier with an integrated 10.25V smart boost convert Signed-off-by: Nick Li <[email protected]> Signed-off-by: Bruce zhao <[email protected]> Signed-off-by: Weidong Wang <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
2023-01-30ASoC: codecs: Aw88395 function for ALSA Audio DriverWeidong Wang2-0/+1942
The Awinic AW88395 is an I2S/TDM input, high efficiency digital Smart K audio amplifier with an integrated 10.25V smart boost convert Signed-off-by: Nick Li <[email protected]> Signed-off-by: Bruce zhao <[email protected]> Signed-off-by: Ben Yi <[email protected]> Signed-off-by: Weidong Wang <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
2023-01-30ASoC: codecs: ACF bin parsing and check library file for aw88395Weidong Wang2-0/+1158
The Awinic AW88395 is an I2S/TDM input, high efficiency digital Smart K audio amplifier with an integrated 10.25V smart boost convert Signed-off-by: Nick Li <[email protected]> Signed-off-by: Bruce zhao <[email protected]> Signed-off-by: Weidong Wang <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
2023-01-30ASoC: codecs: Add i2c and codec registration for aw88395 and their ↵Weidong Wang2-0/+638
associated operation functions The Awinic AW88395 is an I2S/TDM input, high efficiency digital Smart K audio amplifier with an integrated 10.25V smart boost convert Signed-off-by: Nick Li <[email protected]> Signed-off-by: Bruce zhao <[email protected]> Signed-off-by: Weidong Wang <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
2023-01-30MAINTAINERS: add the Renesas IDT821034 codec entryHerve Codina1-0/+7
After contributing the driver, add myself as the maintainer for the Renesas IDT821034 codec. Signed-off-by: Herve Codina <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
2023-01-30ASoC: codecs: Add support for the Renesas IDT821034 codecHerve Codina3-0/+1193
The Renesas IDT821034 codec is four channel PCM codec with on-chip filters and programmable gain setting. It also provides SLIC (Subscriber Line Interface Circuit) signals as GPIOs. Signed-off-by: Herve Codina <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
2023-01-30ASoC: Add Renesas IDT821034 codec bindingsHerve Codina1-0/+75
The Renesas IDT821034 codec is a quad PCM codec with programmable gain. Signed-off-by: Herve Codina <[email protected]> Reviewed-by: Krzysztof Kozlowski <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
2023-01-30ASoC: mchp-spdifrx: document data structuresClaudiu Beznea1-0/+29
Document data structures used by mchp-spdifrx driver. Signed-off-by: Claudiu Beznea <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
2023-01-30ASoC: mchp-spdifrx: add runtime pm supportClaudiu Beznea1-44/+166
Add runtime PM support for Microchip SPDIFRX driver. On runtime suspend the clocks are disabled and regmap is set in caching mode. On runtime resume the clocks are enabled and regmap is synced with the device. Signed-off-by: Claudiu Beznea <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
2023-01-30ASoC: mchp-spdifrx: remove struct mchp_spdifrx_dev::fmt memberClaudiu Beznea1-1/+0
Remove member fmt of struct mchp_spdifrx_dev as it is not used anywhere. Signed-off-by: Claudiu Beznea <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
2023-01-30ASoC: mchp-spdifrx: use unsigned long to store clk_get_rate() valueClaudiu Beznea1-1/+1
clk_get_rate() returns an unsigned long. Use a variable of type unsigned long to store it. Signed-off-by: Claudiu Beznea <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
2023-01-30ASoC: mchp-spdifrx: disable all interrupts in mchp_spdifrx_dai_remove()Claudiu Beznea1-1/+1
CSC interrupts which might be used in controls are on bits 8 and 9 of SPDIFRX_IDR register. Thus disable all the interrupts that are exported by driver. Fixes: ef265c55c1ac ("ASoC: mchp-spdifrx: add driver for SPDIF RX") Signed-off-by: Claudiu Beznea <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
2023-01-30ASoC: mchp-spdifrx: fix controls that works with completion mechanismClaudiu Beznea1-66/+77
Channel status get and channel subcode get controls relies on data returned by controls when certain IRQs are raised. To achieve that completions are used b/w controls and interrupt service routine. The concurrent accesses to these controls are protected by struct snd_card::controls_rwsem. Issues identified: - reinit_completion() may be called while waiting for completion which should be avoided - in case of multiple threads waiting, the complete() call in interrupt will signal only one waiting thread per interrupt which may lead to timeout for the others - in case of channel status get as the CSC interrupt is not refcounted ISR may disable interrupt for threads that were just enabled it. To solve these the access to controls were protected by a mutex. Along with this there is no need for spinlock to protect the software cache reads/updates b/w controls and ISR as the update is happening only when requested from control, and only one reader can reach the control. Fixes: ef265c55c1ac ("ASoC: mchp-spdifrx: add driver for SPDIF RX") Signed-off-by: Claudiu Beznea <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
2023-01-30ASoC: mchp-spdifrx: fix return value in case completion times outClaudiu Beznea1-2/+3
wait_for_completion_interruptible_timeout() returns 0 in case of timeout. Check this into account when returning from function. Fixes: ef265c55c1ac ("ASoC: mchp-spdifrx: add driver for SPDIF RX") Signed-off-by: Claudiu Beznea <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
2023-01-30ASoC: mchp-spdifrx: fix controls which rely on rsr registerClaudiu Beznea1-50/+142
The SPDIFRX block is clocked by 2 clocks: peripheral and generic clocks. Peripheral clock feeds user interface (registers) and generic clock feeds the receiver. To enable the receiver the generic clock needs to be enabled and also the ENABLE bit of MCHP_SPDIFRX_MR register need to be set. The signal control exported by mchp-spdifrx driver reports wrong status when the receiver is disabled. This can happen when requesting the signal and the capture was not previously started. To solve this the receiver needs to be enabled (by enabling generic clock and setting ENABLE bit of MR register) before reading the signal status. As with this fix there are 2 paths now that need to control the generic clock and ENABLE bit of SPDIFRX_MR register (one path though controls, one path though configuration) a mutex has been introduced. We can't rely on subsystem locking as the controls are protected by struct snd_card::controls_rwsem semaphore and configuration is protected by a different lock (embedded in snd_pcm_stream_lock_irq()). The introduction of mutex is also extended to other controls which rely on SPDIFRX_RSR.ULOCK bit as it has been discovered experimentally that having both clocks enabled but not the receiver (through ENABLE bit of SPDIFRX.MR) leads to inconsistent values of SPDIFRX_RSR.ULOCK. Thus on some controls we rely on software state (dev->trigger_enabled protected by mutex) to retrieve proper values. Fixes: ef265c55c1ac ("ASoC: mchp-spdifrx: add driver for SPDIF RX") Signed-off-by: Claudiu Beznea <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
2023-01-30ASoC: topology: Use unload() op directlyAmadeusz Sławiński2-21/+29
struct snd_soc_dobj only needs pointer to the unload function, instead however, there is pointer to all topology operations. Change code to use the function pointer instead of pointer to structure containing all operations. Reviewed-by: Cezary Rojewski <[email protected]> Reviewed-by: Ranjani Sridharan <[email protected]> Signed-off-by: Amadeusz Sławiński <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
2023-01-30ASoC: topology: Unify kcontrol removal codeAmadeusz Sławiński1-42/+6
Functions removing bytes, enum and mixer kcontrols are identical. Unify them under one function and use it to free associated kcontrols. Reviewed-by: Cezary Rojewski <[email protected]> Reviewed-by: Ranjani Sridharan <[email protected]> Signed-off-by: Amadeusz Sławiński <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
2023-01-30ASoC: topology: Remove unnecessary check for EOFAmadeusz Sławiński1-6/+1
Caller already checks if hdr_pos is behind EOF, before calling soc_tplg_valid_header(), so there is no need to recheck it again. This also allows to remove behaviour of return 0 - forcing the caller to break out of while loop. Reviewed-by: Cezary Rojewski <[email protected]> Reviewed-by: Ranjani Sridharan <[email protected]> Signed-off-by: Amadeusz Sławiński <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
2023-01-30ASoC: topology: Return an error on complete() failureAmadeusz Sławiński1-1/+1
Function soc_tplg_dapm_complete() detects an error and logs it, but doesn't return failure to the caller, fix it by returning the error. Reviewed-by: Cezary Rojewski <[email protected]> Reviewed-by: Ranjani Sridharan <[email protected]> Signed-off-by: Amadeusz Sławiński <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
2023-01-30ASoC: topology: Pass correct pointer instead of castingAmadeusz Sławiński1-6/+6
Instead of passing address of structure, the containing structure is cast to target structure. While it works - the expected structure is the first field of containing one - it is bad practice, fix this by passing pointer to structure field. Reviewed-by: Cezary Rojewski <[email protected]> Reviewed-by: Ranjani Sridharan <[email protected]> Signed-off-by: Amadeusz Sławiński <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
2023-01-30ASoC: topology: Remove unnecessary forward declarationsAmadeusz Sławiński1-3/+0
There is no need to forward declare functions if their use is after their definition. Reviewed-by: Cezary Rojewski <[email protected]> Reviewed-by: Ranjani Sridharan <[email protected]> Signed-off-by: Amadeusz Sławiński <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
2023-01-30ASoC: topology: Rename remove_ handlersAmadeusz Sławiński1-16/+16
Those are the only functions missing soc_tplg_ prefix, add it for consistency. Reviewed-by: Cezary Rojewski <[email protected]> Reviewed-by: Ranjani Sridharan <[email protected]> Signed-off-by: Amadeusz Sławiński <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
2023-01-30ASoC: topology: Fix function nameAmadeusz Sławiński1-2/+2
Functions other than soc_valid_header have soc_tplg_ prefix. Rename function to follow convention in file. Reviewed-by: Cezary Rojewski <[email protected]> Reviewed-by: Ranjani Sridharan <[email protected]> Signed-off-by: Amadeusz Sławiński <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
2023-01-30ASoC: topology: Fix typo in functions nameAmadeusz Sławiński1-16/+16
Topology is being abbreviated to "tplg", not "tplc", however, few functions have typo in name, fix it. Reviewed-by: Cezary Rojewski <[email protected]> Reviewed-by: Ranjani Sridharan <[email protected]> Signed-off-by: Amadeusz Sławiński <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
2023-01-30ASoC: topology: Remove unused SOC_TPLG_PASS_PINS constantAmadeusz Sławiński1-3/+2
The constant is unused, so it can be safely removed. Reviewed-by: Cezary Rojewski <[email protected]> Reviewed-by: Ranjani Sridharan <[email protected]> Signed-off-by: Amadeusz Sławiński <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
2023-01-30ASoC: topology: Properly access value coming from topology fileAmadeusz Sławiński1-1/+1
When accessing values coming from topology, le32_to_cpu should be used. One of recent commits missed that. Fixes: 86e2d14b6d1a ("ASoC: topology: Add header payload_size verification") Reviewed-by: Cezary Rojewski <[email protected]> Reviewed-by: Ranjani Sridharan <[email protected]> Signed-off-by: Amadeusz Sławiński <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
2023-01-30ASoC: dt-bindings: add entry for TAS5720A-Q1 driverSteffen Aschbacher1-0/+2
Add entry for the TAS5720A-Q1 driver in the dt-bindings doc. Acked-by: Krzysztof Kozlowski <[email protected]> Signed-off-by: Steffen Aschbacher <[email protected]> Signed-off-by: Alexandru Ardelean <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
2023-01-30ASoC: tas5720: set bit 7 in ANALOG_CTRL_REG for TAS5720A-Q1 during probeSteffen Aschbacher2-0/+14
Set the reserved bit 7 in the ANALOG_CTRL_REG for the TAS5720A-Q1 device, when probing. The datasheet mentions that the bit should be 1 during reset/powerup. The device did not initialize before setting this value to 1. So, this could be a quirk of this device. Or it could be a quirk with the board on which it was tested. That is why this patch is separate from the patch that adds support for the TAS5720A-Q1 device. Signed-off-by: Steffen Aschbacher <[email protected]> Signed-off-by: Alexandru Ardelean <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
2023-01-30ASoC: codecs: tas5720: add support for TAS5720A-Q1 (automotive) variantSteffen Aschbacher2-13/+106
This change adds support the TAS5720A-Q1 audio codec, in the same driver as tas5720. Functionally, this driver is pretty similar to it's TAS5720x variant. The first 3 registers are the same, so the main control and device identification can happen with these registers. The next registers differ. This variant offers control (in the registers) for 2 speakers, which is implemented here (in a basic manner). Signed-off-by: Steffen Aschbacher <[email protected]> Signed-off-by: Alexandru Ardelean <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
2023-01-30ASoC: codecs: tas5720: split a tas5720_mute_soc_component() functionAlexandru Ardelean1-4/+7
This is to be re-used in tas5720_mute() (which is part of the dai_ops) and also in the tas5720_fault_check_work() hook. The benefit here isn't too great (now). It's only when we add support for a new device with a slightly different regmap that this becomes more useful. Signed-off-by: Alexandru Ardelean <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
2023-01-30ASoC: dt-bindings: fsl-sai: Simplify the VFxxx dmas bindingMarek Vasut1-30/+8
Get rid of the vf610 sai special case, instead update the vfxxx.dtsi DT to use the same DMA channel ordering as all the other devices. The sai DMA channel ordering has not been aligned with other IP DMA channel ordering in the vfxxx.dtsi anyway. Signed-off-by: Marek Vasut <[email protected]> Reviewed-by: Krzysztof Kozlowski <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
2023-01-30ASoC: SMA1303: Fix spelling mistake "Invald" -> "Invalid"Colin Ian King1-2/+2
There are spelling mistakes in dev_err messages. Fix them. Signed-off-by: Colin Ian King <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
2023-01-30ASoC: amd: acp: Refactor bit width calculationVenkata Prasad Potturu1-4/+4
Refactor bit width calculation using params_physical_width() instead hard-code values. Signed-off-by: Venkata Prasad Potturu <[email protected]> Link: https://lore.kernel.org/r/[email protected] Reviewed-by: Peter Ujfalusi <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2023-01-30ASoC: dt-bindings: simple-card: add missing #address-cells/#size-cellsKuninori Morimoto1-0/+4
In case of using MIXer with Simple Audio Card, it needs below DT. simple-audio-card,dai-link@1 { cpu@0 { ... }; cpu@1 { ... }; ... }; This case, it requires "reg = <xxx>" which needs #address-cells/#size-cells, but simple-audio-card.yaml is missing these. This patch adds it. Without this patch, we will get below warning. ${LINUX}/arch/arm64/boot/dts/renesas/r8a77950-ulcb.dtb: sound: simple-audio-card,dai-link@0: '#address-cells', '#size-cells' do not match any of the regexes: '^codec(@[0-9a-f]+)?', '^cpu(@[0-9a-f]+)?', 'pinctrl-[0-9]+' From schema: ${LINUX}/Documentation/devicetree/bindings/sound/simple-card.yaml Link: https://lore.kernel.org/r/[email protected] Reported-by: Rob Herring <[email protected]> Signed-off-by: Kuninori Morimoto <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
2023-01-30ASoC: dt-bindings: renesas,rsnd: #sound-dai-cells is not mandatoryKuninori Morimoto1-1/+1
Current renesas,rsnd is requesting #sound-dai-cells, but it is needed in case of it is using "simple-card", but not needed in case of "audio-graph". We will get below warning without this patch. This patch fiup it. ${LINUX}/arch/arm64/boot/dts/renesas/r8a77950-salvator-x.dtb: sound@ec500000: '#sound-dai-cells' is a required property From schema: ${LINUX}/Documentation/devicetree/bindings/sound/renesas,rsnd.yaml Signed-off-by: Kuninori Morimoto <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
2023-01-30ASoC: dt-bindings: renesas,rsnd: tidyup rcar_sound,srcKuninori Morimoto1-4/+0
Some SRC is not implemented on some SoC, thus interrupts/dmas/dma-names are not mandatory. This patch solve it. Without this patch we will get below error when 'make DT_CHECKER_FLAGS=-m dt_binding_check'. dtschema/dtc warnings/errors: ${LINUX}/Documentation/devicetree/bindings/sound/renesas,rsnd.example.dtb: \ sound@ec500000: Unevaluated properties are not allowed ('rcar_sound,src' was unexpected) From schema: /builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/sound/renesas,rsnd.yaml Link: https://lore.kernel.org/r/[email protected] Reported-by: Rob Herring <[email protected]> Signed-off-by: Kuninori Morimoto <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
2023-01-30ASoC: dt-bindings: renesas,rsnd: add missing playback/captureKuninori Morimoto1-3/+22
renesas,rsnd.yaml is possible to use ports/port/endpoint if it is using Audio Graph Card/Card2 for sound. The schema is defined under audio-graph-port.yaml. rsnd driver needs "playback/capture" property under endpoint, but it is not defined in audio-graph-port.yaml. This patch adds missing "playback/capture" properties under endpoint. Without this patch, we will get below warning ${LINUX}/arch/arm64/boot/dts/renesas/r8a77950-salvator-x.dtb: sound@ec500000: ports:port@0:endpoint: Unevaluated properties are not allowed ('playback', 'capture' were unexpected) From schema: ${LINUX}/Documentation/devicetree/bindings/sound/renesas,rsnd.yaml Signed-off-by: Kuninori Morimoto <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
2023-01-30ASoC: dt-bindings: ak4613: enable Of-graph (Audio-Graph-Card) styleKuninori Morimoto1-0/+7
ak4613 is possible to use Of-graph (Audio-Graph-Card) style, but we need to indicate it. Otherwise we will get below warning. This patch add it. ${LINUX}/arch/arm64/boot/dts/renesas/r8a77950-salvator-x.dtb: codec@10: 'port' does not match any of the regexes: '^asahi-kasei,in[1-2]-single-end$', '^asahi-kasei,out[1-6]-single-end$', 'pinctrl-[0-9]+' From schema: ${LINUX}/Documentation/devicetree/bindings/sound/ak4613.yaml Signed-off-by: Kuninori Morimoto <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
2023-01-30ASoC: dt-bindings: ti,pcm3168a: Convert to json-schemaGeert Uytterhoeven2-56/+107
Convert the Texas Instruments PCM3168A Audio Codec Device Tree binding documentation to json-schema. Add missing properties. Drop unneeded pinctrl properties from example. Link: https://lore.kernel.org/r/[email protected] Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Geert Uytterhoeven <[email protected]> Signed-off-by: Kuninori Morimoto <[email protected]> Reviewed-by: Rob Herring <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
2023-01-30ASoC: dt-bindings: audio-graph-port: remove prefixKuninori Morimoto1-3/+0
Audio Graph port doesn't use prefix. This patch removes it. Signed-off-by: Kuninori Morimoto <[email protected]> Acked-by: Rob Herring <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
2023-01-30ASoC: dt-bindings: audio-graph-port: add clocks on endpointKuninori Morimoto1-0/+9
Audio Graph endpoint is possible to have clocks, and system-clock-xxx, but these are missing on audio-graph-port.yaml. These have been already defined on simple-card.yaml. This patch re-use these. We will get below warning without this patch. ${LINUX}/arch/arm64/boot/dts/renesas/r8a77950-ulcb-kf.dtb: audio-codec@44: ports:port@0:endpoint: Unevaluated properties are not allowed ('clocks' was unexpected) From schema: ${LINUX}/Documentation/devicetree/bindings/sound/ti,pcm3168a.yaml Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Kuninori Morimoto <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
2023-01-30ASoC: dt-bindings: audio-graph-port: add missing mclk-fsKuninori Morimoto1-5/+3
audio-graph-port is missing "mclk-fs" on ports/port, it is used not only endpoint. It is already defined on simple-card. This patch fixup it. Without this patch, we will get below warning. ${LINUX}/arch/arm64/boot/dts/renesas/r8a77951-ulcb-kf.dtb: audio-codec@44: ports: 'mclk-fs' does not match any of the regexes: '^port@[0-9a-f]+$', 'pinctrl-[0-9]+' From schema: ${LINUX}/Documentation/devicetree/bindings/sound/ti,pcm3168a.yaml Signed-off-by: Kuninori Morimoto <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
2023-01-30ASoC: dt-bindings: audio-graph-port: add definitions/portsKuninori Morimoto1-0/+12
Audio Graph user needs "ports" not only "port". This patch adds standard "ports" as definitions to use it easily. If user needs standard "ports", it can use ports: $ref: audio-graph-port.yaml#/definitions/ports If user want to use custom ports, it can re-use audio-graph-port.yaml#/definitions/port-base" audio-graph-port.yaml#/definitions/endpoint-base" Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Kuninori Morimoto <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
2023-01-30ASoC: dt-bindings: audio-graph-port: use definitions for port/endpointKuninori Morimoto1-17/+22
Audio Graph base driver might need to add its own properties. In such case, having definitions for port/endpoint is easy to handle it. This patch adds definitions for port/endpoint. Signed-off-by: Kuninori Morimoto <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
2023-01-28ASoC: soc-compress.c: fixup private_data on snd_soc_new_compress()Kuninori Morimoto1-1/+1
commit d3268a40d4b19f ("ASoC: soc-compress.c: fix NULL dereference") enables DPCM capture, but it should independent from playback. This patch fixup it. Fixes: d3268a40d4b1 ("ASoC: soc-compress.c: fix NULL dereference") Link: https://lore.kernel.org/r/[email protected] Acked-by: Charles Keepax <[email protected]> Acked-by: Pierre-Louis Bossart <[email protected]> Signed-off-by: Kuninori Morimoto <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
2023-01-28ASoC: kirkwood: Iterate over array indexes instead of using pointer mathKees Cook1-1/+1
Walking the dram->cs array was seen as accesses beyond the first array item by the compiler. Instead, use the array index directly. This allows for run-time bounds checking under CONFIG_UBSAN_BOUNDS as well. Seen with GCC 13 with -fstrict-flex-arrays: ../sound/soc/kirkwood/kirkwood-dma.c: In function 'kirkwood_dma_conf_mbus_windows.constprop': ../sound/soc/kirkwood/kirkwood-dma.c:90:24: warning: array subscript 0 is outside array bounds of 'const struct mbus_dram_window[0]' [-Warray-bounds=] 90 | if ((cs->base & 0xffff0000) < (dma & 0xffff0000)) { | ~~^~~~~~ Cc: Liam Girdwood <[email protected]> Cc: Mark Brown <[email protected]> Cc: Jaroslav Kysela <[email protected]> Cc: Takashi Iwai <[email protected]> Cc: [email protected] Signed-off-by: Kees Cook <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>