Age | Commit message (Collapse) | Author | Files | Lines |
|
This patch syncs naming rule.
- xxx_rates;
+ xxx_rate;
- xxx_samplebits;
+ xxx_sample_bits;
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Link: https://lore.kernel.org/r/87mtxaolhz.wl-kuninori.morimoto.gx@renesas.com
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
This patch syncs naming rule.
- xxx_rates;
+ xxx_rate;
- xxx_samplebits;
+ xxx_sample_bits;
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Link: https://lore.kernel.org/r/87o8hqoli4.wl-kuninori.morimoto.gx@renesas.com
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
This patch syncs naming rule.
- xxx_rates;
+ xxx_rate;
- xxx_samplebits;
+ xxx_sample_bits;
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Link: https://lore.kernel.org/r/87pn26oli8.wl-kuninori.morimoto.gx@renesas.com
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
This patch syncs naming rule.
- xxx_rates;
+ xxx_rate;
- xxx_samplebits;
+ xxx_sample_bits;
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Link: https://lore.kernel.org/r/87r1mmolie.wl-kuninori.morimoto.gx@renesas.com
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
This patch syncs naming rule.
- xxx_rates;
+ xxx_rate;
- xxx_samplebits;
+ xxx_sample_bits;
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Link: https://lore.kernel.org/r/87sg72olij.wl-kuninori.morimoto.gx@renesas.com
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
This patch syncs naming rule.
- xxx_rates;
+ xxx_rate;
- xxx_samplebits;
+ xxx_sample_bits;
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Link: https://lore.kernel.org/r/87turiolio.wl-kuninori.morimoto.gx@renesas.com
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
This patch syncs naming rule.
- xxx_rates;
+ xxx_rate;
- xxx_samplebits;
+ xxx_sample_bits;
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Link: https://lore.kernel.org/r/87v9byolj1.wl-kuninori.morimoto.gx@renesas.com
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
snd_pcm_runtime / snd_soc_dai / snd_soc_dai_driver / snd_soc_dai_link
have related parameter which is similar but not same naming.
struct snd_pcm_runtime {
...
(A) unsigned int rate;
...
(B) unsigned int sample_bits;
...
};
struct snd_soc_dai {
...
(A) unsigned int rate;
(B) unsigned int sample_bits;
...
};
struct snd_soc_dai_driver {
...
(A) unsigned int symmetric_rates:1;
(B) unsigned int symmetric_samplebits:1;
...
};
struct snd_soc_dai_link {
...
(A) unsigned int symmetric_rates:1;
(B) unsigned int symmetric_samplebits:1;
...
};
Because it is similar but not same naming rule,
code can be verbose / can't share macro.
This patch sync naming rule for framework.
- xxx_rates;
+ xxx_rate;
- xxx_samplebits;
+ xxx_sample_bits;
old name will be removed if all drivers were switched
to new naming rule.
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Link: https://lore.kernel.org/r/87wnweolj6.wl-kuninori.morimoto.gx@renesas.com
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
commit a39748d03cbc ("ASoC: soc-pcm: cleanup soc_pcm_apply_symmetry()")
was applied by miscommunication.
To more cleanup code, and to be easy review, this patch reverts it.
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Link: https://lore.kernel.org/r/87y2guoljm.wl-kuninori.morimoto.gx@renesas.com
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
Topology can be created without ops overrides, in that case trying to
assign any value would lead to dereferencing NULL pointer.
Other places in code have either checks for tplg->ops or loop using
*_count variables, hence they can't dereference NULL pointer and there
is no need to add more checks.
Signed-off-by: Amadeusz Sławiński <amadeuszx.slawinski@linux.intel.com>
Link: https://lore.kernel.org/r/20210114163602.911205-3-amadeuszx.slawinski@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
As snd_soc_tplg_component_load is exported function, which means it is
part of API, there should be checks if it is called with proper
parameters.
Signed-off-by: Amadeusz Sławiński <amadeuszx.slawinski@linux.intel.com>
Link: https://lore.kernel.org/r/20210114163602.911205-2-amadeuszx.slawinski@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
snd_soc_tplg_component_load
In order to ensure correct behaviour of topology API, add unit tests
exercising topology functionality.
Add topology containing PCM template and tests for parsing it. Also
adds test cases simulating modules reloads in case of separate drivers
for card and component.
Signed-off-by: Amadeusz Sławiński <amadeuszx.slawinski@linux.intel.com>
Tested-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20210120152846.1703655-6-amadeuszx.slawinski@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
to snd_soc_tplg_component_load
In order to ensure correct behaviour of topology API, add unit tests
exercising topology functionality.
Add "empty" topology template and tests for parsing it. Also adds few
variants with bad magic numbers.
Signed-off-by: Amadeusz Sławiński <amadeuszx.slawinski@linux.intel.com>
Tested-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20210120152846.1703655-5-amadeuszx.slawinski@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
snd_soc_tplg_component_load
In order to ensure correct behaviour of topology API, add unit tests
exercising topology functionality.
Start with adding cases for passing various arguments to
snd_soc_tplg_component_load as it is part of exposed topology API.
First test case adds test passing NULL component as argument.
Following one adds test case for passing NULL ops as argument.
Finally add test case passing NULL fw as argument.
Signed-off-by: Amadeusz Sławiński <amadeuszx.slawinski@linux.intel.com>
Tested-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20210120152846.1703655-4-amadeuszx.slawinski@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
Suspending/resuming with an HDMI dongle attached leads to crashes from
an audio regmap.
Unable to handle kernel paging request at virtual address ffffffc018068000
Mem abort info:
ESR = 0x96000047
EC = 0x25: DABT (current EL), IL = 32 bits
SET = 0, FnV = 0
EA = 0, S1PTW = 0
Data abort info:
ISV = 0, ISS = 0x00000047
CM = 0, WnR = 1
swapper pgtable: 4k pages, 39-bit VAs, pgdp=0000000081b12000
[ffffffc018068000] pgd=0000000275d14003, pud=0000000275d14003, pmd=000000026365d003, pte=0000000000000000
Internal error: Oops: 96000047 [#1] PREEMPT SMP
Call trace:
regmap_mmio_write32le+0x2c/0x40
regmap_mmio_write+0x48/0x6c
_regmap_bus_reg_write+0x34/0x44
_regmap_write+0x100/0x150
regcache_default_sync+0xc0/0x138
regcache_sync+0x188/0x26c
lpass_platform_pcmops_resume+0x48/0x54 [snd_soc_lpass_platform]
snd_soc_component_resume+0x28/0x40
soc_resume_deferred+0x6c/0x178
process_one_work+0x208/0x3c8
worker_thread+0x23c/0x3e8
kthread+0x144/0x178
ret_from_fork+0x10/0x18
Code: d503201f d50332bf f94002a8 8b344108 (b9000113)
I can reliably reproduce this problem by running 'tail' on the registers
file in debugfs for the hdmi regmap.
# tail /sys/kernel/debug/regmap/62d87000.lpass-lpass_hdmi/registers
[ 84.658733] Unable to handle kernel paging request at virtual address ffffffd0128e800c
This crash happens because we're trying to read registers from the
regmap beyond the length of the mapping created by ioremap().
The number of hdmi_rdma_channels determines the size of the regmap via
this code in sound/soc/qcom/lpass-cpu.c:
lpass_hdmi_regmap_config.max_register = LPAIF_HDMI_RDMAPER_REG(variant, variant->hdmi_rdma_channels);
According to debugfs the size of the regmap is 0x68010 but according to
the DTS file posted in [1] the size is only 0x68000 (see the first reg
property of the lpass_cpu node). Let's change the number of channels to
be 3 instead of 4 so the math works out to have a max register of
0x67010, nicely fitting inside of the region size of 0x68000.
Note: I tried to bump up the size of the register region to the next
page to include the 0x68010 register but then the tail command caused
SErrors with an async abort, implying that the register region doesn't
exist or it isn't clocked because the bus is telling us that the
register read failed. I reduce the number of channels and played audio
through the HDMI channel and it kept working so I think this is correct.
Fixes: 2ad63dc8df6b ("ASoC: qcom: sc7180: Add support for audio over DP")
Link: https://lore.kernel.org/r/1601448168-18396-2-git-send-email-srivasam@codeaurora.org [1]
Cc: V Sujith Kumar Reddy <vsujithk@codeaurora.org>
Cc: Srinivasa Rao <srivasam@codeaurora.org>
Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Cc: Cheng-Yi Chiang <cychiang@chromium.org>
Signed-off-by: Stephen Boyd <swboyd@chromium.org>
Link: https://lore.kernel.org/r/20210115203329.846824-1-swboyd@chromium.org
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
At probing a UAC2/UAC3 device like NUX MG-300 USB interface, we get
error messages "RANGE setting not yet supported". It comes the place
where the driver tries to determine the resolution of mixer volumes
via SET_CUR_RES and GET_CUR_RES verbs. Those verbs aren't supported
on UAC2 and UAC3, hence the driver warns like the above. Although the
driver handles this error and works as expected, it's still ugly to
show such errors unnecessarily.
This patch papers over the errors by applying the resolution detection
only for UAC1 and skipping it for UAC2/UAC3.
Reported-by: Mike Oliphant <oliphant@nostatic.org>
Link: https://lore.kernel.org/r/20210120213932.1971-2-tiwai@suse.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>
|
|
The current USB-audio driver gets an error at probing NUX MG-300 about
parsing the clocks. This is because the firmware doesn't return the
proper connection of the clock selector that is connected to a single
clock; it's likely that the firmware was lazy^w optimized and the
inquiry wasn't handled. Actually it makes little sense to inquire and
set up the single connection explicitly.
This patch fixes the issue by simply skipping the clock selector
inquiry if it's a single connection.
Reported-by: Mike Oliphant <oliphant@nostatic.org>
Link: https://lore.kernel.org/r/20210120213932.1971-1-tiwai@suse.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>
|
|
Shih <tzungbi@google.com>:
The 1st and 2nd patches refactor the machine driver.
The 3rd patch changes the platform driver to support TDM 8 channel output.
The 4th patch adds an optional DT property.
The 5th patch makes the machine driver support DP audio if the optional DT
property is specified.
Tzung-Bi Shih (5):
ASoC: mediatek: mt8192-mt6359: move headset_jack to card specific data
ASoC: mediatek: mt8192-mt6359: simplify mt8192_rt5682_init
ASoC: mediatek: mt8192: change mclk_multiple of TDM from 128 to 512
ASoC: dt-bindings: mt8192-mt6359: add hdmi-codec property
ASoC: mediatek: mt8192-mt6359: support audio over DP
.../sound/mt8192-mt6359-rt1015-rt5682.yaml | 5 ++
sound/soc/mediatek/mt8192/mt8192-dai-tdm.c | 2 +-
.../mt8192/mt8192-mt6359-rt1015-rt5682.c | 54 ++++++++++++++++---
3 files changed, 52 insertions(+), 9 deletions(-)
--
2.30.0.284.gd98b1dd5eaa7-goog
|
|
<arnd@kernel.org>
Arnd Bergmann <arnd@arndb.de>:
From: Arnd Bergmann <arnd@arndb.de>
A few Arm platforms are getting removed in v5.12, this removes
the corresponding sound drivers.
Link: https://lore.kernel.org/linux-arm-kernel/20210120124812.2800027-1-arnd@kernel.org/T/
Arnd Bergmann (2):
ASoC: remove sirf prima/atlas drivers
ASoC: remove zte zx drivers
.../bindings/sound/sirf-audio-codec.txt | 17 -
.../devicetree/bindings/sound/sirf-usp.txt | 27 -
.../devicetree/bindings/sound/zte,tdm.txt | 30 -
.../bindings/sound/zte,zx-aud96p22.txt | 24 -
.../devicetree/bindings/sound/zte,zx-i2s.txt | 45 --
.../bindings/sound/zte,zx-spdif.txt | 27 -
sound/soc/Kconfig | 2 -
sound/soc/Makefile | 2 -
sound/soc/codecs/Makefile | 4 -
sound/soc/codecs/sirf-audio-codec.c | 575 ------------------
sound/soc/codecs/zx_aud96p22.c | 401 ------------
sound/soc/sirf/Kconfig | 21 -
sound/soc/sirf/Makefile | 8 -
sound/soc/sirf/sirf-audio-port.c | 86 ---
sound/soc/sirf/sirf-audio.c | 160 -----
sound/soc/sirf/sirf-usp.c | 435 -------------
sound/soc/sirf/sirf-usp.h | 292 ---------
sound/soc/zte/Kconfig | 26 -
sound/soc/zte/Makefile | 4 -
sound/soc/zte/zx-i2s.c | 452 --------------
sound/soc/zte/zx-spdif.c | 363 -----------
sound/soc/zte/zx-tdm.c | 458 --------------
22 files changed, 3459 deletions(-)
delete mode 100644 Documentation/devicetree/bindings/sound/sirf-audio-codec.txt
delete mode 100644 Documentation/devicetree/bindings/sound/sirf-usp.txt
delete mode 100644 Documentation/devicetree/bindings/sound/zte,tdm.txt
delete mode 100644 Documentation/devicetree/bindings/sound/zte,zx-aud96p22.txt
delete mode 100644 Documentation/devicetree/bindings/sound/zte,zx-i2s.txt
delete mode 100644 Documentation/devicetree/bindings/sound/zte,zx-spdif.txt
delete mode 100644 sound/soc/codecs/sirf-audio-codec.c
delete mode 100644 sound/soc/codecs/zx_aud96p22.c
delete mode 100644 sound/soc/sirf/Kconfig
delete mode 100644 sound/soc/sirf/Makefile
delete mode 100644 sound/soc/sirf/sirf-audio-port.c
delete mode 100644 sound/soc/sirf/sirf-audio.c
delete mode 100644 sound/soc/sirf/sirf-usp.c
delete mode 100644 sound/soc/sirf/sirf-usp.h
delete mode 100644 sound/soc/zte/Kconfig
delete mode 100644 sound/soc/zte/Makefile
delete mode 100644 sound/soc/zte/zx-i2s.c
delete mode 100644 sound/soc/zte/zx-spdif.c
delete mode 100644 sound/soc/zte/zx-tdm.c
--
2.29.2
|
|
<srinivas.kandagatla@linaro.org>:
LPASS driver is partially broken on DragonBoard DB410c on 5.10 and
its totally broken on other Supported Qualcomm SoCs.
This was due to DAI ids being over written by the SoC specific header files
in the dt-bindings.
Idea of having SoC specific headers is not doable when we are dealing with
a common driver. So this patchset attempts to fix this properly by creating
a common dt-bindings header for lpass which can be updated with new entries
if required. This patchset also add an simple of_xlate function to resolve
the dai names and different SoCs might not have 1:1 mapping for the
dai_driver array with dai ids.
Changes since v1:
- removed array indexes as suggested by Stephan G.
- rebased to sound/for-next branch
- collected Srinivasa tested-by tag for sc7180 platform.
Thanks,
srini
Srinivas Kandagatla (2):
ASoC: dt-bindings: lpass: Fix and common up lpass dai ids
ASoC: qcom: Fix broken support to MI2S TERTIARY and QUATERNARY
include/dt-bindings/sound/apq8016-lpass.h | 7 +++----
include/dt-bindings/sound/qcom,lpass.h | 15 +++++++++++++++
include/dt-bindings/sound/sc7180-lpass.h | 6 ++----
sound/soc/qcom/lpass-cpu.c | 22 ++++++++++++++++++++++
sound/soc/qcom/lpass-platform.c | 12 ++++++++++++
sound/soc/qcom/lpass-sc7180.c | 9 +++------
sound/soc/qcom/lpass.h | 2 +-
7 files changed, 58 insertions(+), 15 deletions(-)
create mode 100644 include/dt-bindings/sound/qcom,lpass.h
--
2.21.0
|
|
from Tzung-Bi Shih <tzungbi@google.com>:
hdmi-codec is an optional property. The 2 patches fix DAI link binding
error when the property doesn't exist in DTS.
Tzung-Bi Shih (2):
ASoC: mediatek: mt8183-mt6358: ignore TDM DAI link by default
ASoC: mediatek: mt8183-da7219: ignore TDM DAI link by default
sound/soc/mediatek/mt8183/mt8183-da7219-max98357.c | 5 ++++-
sound/soc/mediatek/mt8183/mt8183-mt6358-ts3a227-max98357.c | 5 ++++-
2 files changed, 8 insertions(+), 2 deletions(-)
--
2.30.0.284.gd98b1dd5eaa7-goog
|
|
Sławiński<amadeuszx.slawinski@linux.intel.com>:
This series adds unit tests for ASoC topology.
First fix problems found when developing and running test cases and
then add tests implementation.
Tests themselves are quite simple and just call
snd_soc_tplg_component_load() with various parameters and check the
result. Tests themselves are described in more detail in commits
adding them.
Goal is to expand the amount of test cases in following patches.
Prerequisity for this patchset are 2 patches which have already been
sent:
https://lore.kernel.org/alsa-devel/20210114163602.911205-1-amadeuszx.slawinski@linux.intel.com/T/#t
Description on how typical test case itself works:
In order to load topology we need to have 3 things:
card, codec component & platform component.
In typical test case we register card and platform component and bind
to dummy codec. There are of course execeptions, when we want to
test behaviour of topology API when component or card is missing.
Note that this is bit different from typical scenario (in SOF and skylake
drivers) where card is registered by machine driver and component by
platform driver, as we register both when setting up test.
If you check the test case most of them have similar architecture of:
1.
/* run test */
ret = snd_soc_register_card(&kunit_comp->card);
if (ret != 0 && ret != -EPROBE_DEFER)
KUNIT_FAIL(test, "Failed to register card");
2.
ret = snd_soc_component_initialize(&kunit_comp->comp, &test_component, test_dev);
KUNIT_EXPECT_EQ(test, 0, ret);
3.
ret = snd_soc_add_component(&kunit_comp->comp, NULL, 0);
KUNIT_EXPECT_EQ(test, 0, ret);
Ad. 1.
First we register card, which in most tests returns -EPROBE_DEFER
(from snd_soc_bind_card()), as platform component is not yet created.
I test for both 0 and -EPROBE_DEFER, as it makes it easier to reshuffle
this code around if needed and there is one test case which does it in
different order.
Ad. 2.
Then we initialize platform component with structure pointing at proper
probe function, which calls snd_soc_tplg_component_load() with test
parameters and checks expected result.
Ad. 3.
And then in follow up we call snd_soc_add_component() which creates
platform component for us and calls snd_soc_try_rebind_card() which
if everything is bound properly calls previously set probe function.
Amadeusz Sławiński (5):
ASoC: topology: Properly unregister DAI on removal
Revert "ASoC: soc-devres: add devm_snd_soc_register_dai()"
ASoC: topology: KUnit: Add KUnit tests passing various arguments to
snd_soc_tplg_component_load
ASoC: topology: KUnit: Add KUnit tests passing empty topology with
variants to snd_soc_tplg_component_load
ASoC: topology: KUnit: Add KUnit tests passing topology with PCM to
snd_soc_tplg_component_load
include/sound/soc.h | 4 -
sound/soc/Kconfig | 17 +
sound/soc/Makefile | 5 +
sound/soc/soc-devres.c | 37 --
sound/soc/soc-topology-test.c | 843 ++++++++++++++++++++++++++++++++++
sound/soc/soc-topology.c | 9 +-
6 files changed, 870 insertions(+), 45 deletions(-)
create mode 100644 sound/soc/soc-topology-test.c
--
2.25.1
|
|
The zte zx platform is getting removed, so this driver is no
longer needed.
Cc: Jun Nie <jun.nie@linaro.org>
Cc: Shawn Guo <shawnguo@kernel.org>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Link: https://lore.kernel.org/r/20210120162553.21666-3-arnd@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
The CSR SiRF prima2/atlas platforms are getting removed, so this driver
is no longer needed.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Barry Song <baohua@kernel.org>
Link: https://lore.kernel.org/r/20210120162553.21666-2-arnd@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
Since the recent refactoring, it's been reported that some USB-audio
devices (typically webcams) are no longer detected properly by
PulseAudio. The debug session revealed that it's failing at probing
by PA to try the sample rate 44.1kHz while the device has discrete
sample rates other than 44.1kHz. But the puzzle was that arecord
works as is, and some other devices with the discrete rates work,
either.
After all, this turned out to be the lack of the dependencies in a few
hw constraint rules: snd_pcm_hw_rule_add() has the (variable)
arguments specifying the dependent parameters, and some functions
didn't set the target parameter itself as the dependencies. This
resulted in an invalid parameter that could be generated only in a
certain call pattern. This bug itself has been present in the code,
but it didn't trigger errors just because the rules were casually
avoiding such a corner case. After the recent refactoring and
cleanup, however, the hw constraints work "as expected", and the
problem surfaced now.
For fixing the problem above, this patch adds the missing dependent
parameters to each snd_pcm_hw_rule() call.
Fixes: bc4e94aa8e72 ("ALSA: usb-audio: Handle discrete rates properly in hw constraints")
BugLink: http://bugzilla.opensuse.org/show_bug.cgi?id=1181014
Link: https://lore.kernel.org/r/20210120204554.30177-1-tiwai@suse.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>
|
|
The only way this driver can be probed is via devicetree, which always
provides driver data.
Remove the unneeded of_device_get_match_data() error check, as it
can never fail.
Signed-off-by: Fabio Estevam <festevam@gmail.com>
Link: https://lore.kernel.org/r/20210118123815.1630882-6-festevam@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
The only way this driver can be probed is via devicetree, which always
provides driver data.
Remove the unneeded of_device_get_match_data() error check, as it
can never fail.
Signed-off-by: Fabio Estevam <festevam@gmail.com>
Link: https://lore.kernel.org/r/20210118123815.1630882-5-festevam@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
The only way this driver can be probed is via devicetree, which always
provides driver data.
Remove the unneeded of_device_get_match_data() error check, as it
can never fail.
Signed-off-by: Fabio Estevam <festevam@gmail.com>
Link: https://lore.kernel.org/r/20210118123815.1630882-4-festevam@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
The of_id variable is not used, so just remove it.
Signed-off-by: Fabio Estevam <festevam@gmail.com>
Link: https://lore.kernel.org/r/20210118123815.1630882-3-festevam@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
The retrieval of driver data via of_device_get_match_data() can make
the code simpler.
Use of_device_get_match_data() to simplify the code.
Signed-off-by: Fabio Estevam <festevam@gmail.com>
Link: https://lore.kernel.org/r/20210118123815.1630882-2-festevam@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
The retrieval of driver data via of_device_get_match_data() can make
the code simpler.
Use of_device_get_match_data() to simplify the code.
Signed-off-by: Fabio Estevam <festevam@gmail.com>
Link: https://lore.kernel.org/r/20210118123815.1630882-1-festevam@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
If the DTS property is specified, the DP bridge should populate a
"hdmi-codec" platform device (sound/soc/codecs/hdmi-codec.c).
The "hdmi-codec" device is the communication relayer between the ASoC
machine driver and the DP bridge. For example:
- Notifies DP bridge when setting hw_param.
- Notifies ASoC when jack detection events.
Signed-off-by: Tzung-Bi Shih <tzungbi@google.com>
Link: https://lore.kernel.org/r/20210120080850.699354-6-tzungbi@google.com
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
mclk = rate * mclk_multiple
bclk = rate * channel * sample_width
If TDM outputs 8 channels and 32 bits, bclk will be greater than mclk.
Changes the ratio from 128 to 512.
Signed-off-by: Tzung-Bi Shih <tzungbi@google.com>
Link: https://lore.kernel.org/r/20210120080850.699354-4-tzungbi@google.com
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
Returns snd_soc_component_set_jack() directly in mt8192_rt5682_init.
No need to have another block to check the return value.
Signed-off-by: Tzung-Bi Shih <tzungbi@google.com>
Link: https://lore.kernel.org/r/20210120080850.699354-3-tzungbi@google.com
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
Moves headset_jack to card specific data.
Signed-off-by: Tzung-Bi Shih <tzungbi@google.com>
Link: https://lore.kernel.org/r/20210120080850.699354-2-tzungbi@google.com
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
hdmi-codec is an optional property. Ignore to bind TDM DAI link
if the property isn't specified.
Fixes: 5bdbe9771177 ("ASoC: mediatek: mt8183-da7219: use hdmi-codec")
Signed-off-by: Tzung-Bi Shih <tzungbi@google.com>
Link: https://lore.kernel.org/r/20210120092237.1553938-3-tzungbi@google.com
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
hdmi-codec is an optional property. Ignore to bind TDM DAI link
if the property isn't specified.
Fixes: f2024dc55fcb ("ASoC: mediatek: mt8183: use hdmi-codec")
Signed-off-by: Tzung-Bi Shih <tzungbi@google.com>
Link: https://lore.kernel.org/r/20210120092237.1553938-2-tzungbi@google.com
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
DAIs need to be removed when topology unload function is called (usually
done when component is being removed). We can't do this when device is
being removed, as structures we operate on when removing DAI can already
be freed.
Fixes: 6ae4902f2f34 ("ASoC: soc-topology: use devm_snd_soc_register_dai()")
Signed-off-by: Amadeusz Sławiński <amadeuszx.slawinski@linux.intel.com>
Tested-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20210120152846.1703655-2-amadeuszx.slawinski@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
The allocation uses sizeof(u32) when it should use sizeof(unsigned long)
so it leads to memory corruption later in the function when the data is
initialized.
Fixes: 5aebe7c7f9c2 ("ASoC: topology: fix endianness issues")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Link: https://lore.kernel.org/r/YAf+8QZoOv+ct526@mwanda
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
BIT_WIDTH field in I2S_CTL register is two bits wide, however
recent regmap field conversion patch trimmed it down to one bit.
Fix this by correcting the bit range!
Fixes: b5022a36d28f ("ASoC: qcom: lpass: Use regmap_field for i2sctl and dmactl registers")
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Link: https://lore.kernel.org/r/20210119174700.32639-1-srinivas.kandagatla@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
Apparently, the DMI board name LNVNB161216 is also used also
for products with the digital microphones connected to the AMD's
audio bridge. Refine the DMI table - use product name identifiers
extracted from https://bugzilla.redhat.com/show_bug.cgi?id=1892115 .
The report for Lenovo Yoga Slim 7 14ARE05 (82A2) is in buglink.
BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=211299
Cc: <stable@kernel.org>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Cc: Mark Brown <broonie@kernel.org>
Link: https://lore.kernel.org/r/20210120144211.817937-1-perex@perex.cz
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
lpass hdmi support patch totally removed support for MI2S TERTIARY
and QUATERNARY.
One of the major issue was spotted with the design of having
separate SoC specific header files for the common lpass driver.
This design is prone to break as an when new SoC header is added
as the common DAI ids of other SoCs will be overwritten by the
new ones.
Having a common header qcom,lpass.h should fix the issue and any new
DAI ids should be added to the common header.
With this change lpass also needs a new of_xlate function to resolve
dai name.
Fixes: 7cb37b7bd0d3 ("ASoC: qcom: Add support for lpass hdmi driver")
Reported-by: Jun Nie <jun.nie@linaro.org>
Reported-by: Stephan Gerhold <stephan@gerhold.net>
Tested-by: Srinivasa Rao <srivasam@codeaurora.org>
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Tested-by: Stephan Gerhold <stephan@gerhold.net>
Link: https://lore.kernel.org/r/20210119171527.32145-3-srinivas.kandagatla@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
This series adds audio graph based sound card support for Tegra210
platforms like Jetson-TX1 an Jetson-Nano. The following preparatory
audio graph enhancement series is already merged.
* https://patchwork.kernel.org/project/alsa-devel/list/?series=375629&state=*
Following are the summary of changes:
* Add graph/audio-graph based schemas or schema updates for Tegra210
component and machine drivers.
* Add Tegra audio graph machine driver.
* Add required DT support for Jetson-TX1/Nano.
This work is based on earlier discussion of DPCM usage for Tegra
and simple card driver updates.
* https://lkml.org/lkml/2020/4/30/519
* https://lkml.org/lkml/2020/6/27/4
Original v6 series was sent about 6-7 weeks back. The dependency commit,
https://lore.kernel.org/alsa-devel/1610948585-16286-1-git-send-email-spujar@nvidia.com/
is now merged. Resending this now to appear in the top of the mail list.
Changelog
=========
v5 -> v6
--------
* Added ports or port description in YAML docs for Tegra AHUB
devices and graph card in patch 1/6 and 2/6. Reference of
audio-graph-port.yaml is used for AHUB devices.
* Dropped redundant NULL check return for of_device_get_match_data()
in patch 3/6.
* Added 'Reviewed-by' tag from Jon Hunter.
* No changes in remaining patches.
v4 -> v5
--------
* Audio graph related changes were sent in separate v5 series as
mentioned above and are dropped from current series.
* Graph and audio graph doc patches are dropped from this series
and are sent separately as mentioned above.
* Minor change with phandle label for TX1 and Nano platform DT files.
* No changes in other patches.
v3 -> v4
--------
* Added new patches to convert graph.txt and audio-graph-card.txt
to corresponding json-schema files. Later these references
are used in Tegra audio graph schema.
* AHUB component binding docs are updated to reflect the usage
of ports/port/endpoint
* More common stuff is moved into graph_parse_of() and this is
used by both generic and Tegra audio graph.
* DT binding for Tegra audio graph is updated to included "ports { }"
* As per the suggestion 'void *data' member is dropped from
'asoc_simple_priv' and instead container method is used to
maintain required custom data internal to Tegra audio graph.
v2 -> v3
--------
* Dropped new compatible addition in generic graph driver
after reviewing it with Morimoto-san. Instead added Tegra
audio graph driver and new compatibles are added in the same.
* Added new patches to expose new members for customization
in audio graph driver.
* Added new patch for Tegra audio graph driver and related
documentation.
* Minor change in below commit where mutex version of helper is used
"ASoC: audio-graph: Identify 'no_pcm' DAI links for DPCM"
* DT binding is updated to use the newly exposed compatibles
* No changes in other patches
v1 -> v2
--------
* Re-organized ports/endpoints description for ADMAIF and XBAR.
Updated DT patches accordingly.
* After above change, multiple Codec endpoint support is not
required and hence dropped for now. This will be considered
separately if at all required in future.
* Re-ordered patches in the series.
Sameer Pujar (6):
ASoC: dt-bindings: tegra: Add graph bindings
ASoC: dt-bindings: tegra: Add json-schema for Tegra audio graph card
ASoC: tegra: Add audio graph based card driver
arm64: defconfig: Enable Tegra audio graph card driver
arm64: tegra: Audio graph header for Tegra210
arm64: tegra: Audio graph sound card for Jetson Nano and TX1
.../sound/nvidia,tegra-audio-graph-card.yaml | 187 +++++++++++++++
.../bindings/sound/nvidia,tegra186-dspk.yaml | 18 +-
.../bindings/sound/nvidia,tegra210-admaif.yaml | 13 +-
.../bindings/sound/nvidia,tegra210-ahub.yaml | 13 +-
.../bindings/sound/nvidia,tegra210-dmic.yaml | 18 +-
.../bindings/sound/nvidia,tegra210-i2s.yaml | 18 +-
.../boot/dts/nvidia/tegra210-audio-graph.dtsi | 153 ++++++++++++
arch/arm64/boot/dts/nvidia/tegra210-p2371-2180.dts | 262 +++++++++++++++++++++
arch/arm64/boot/dts/nvidia/tegra210-p3450-0000.dts | 146 ++++++++++++
arch/arm64/configs/defconfig | 1 +
sound/soc/tegra/Kconfig | 9 +
sound/soc/tegra/Makefile | 2 +
sound/soc/tegra/tegra_audio_graph_card.c | 251 ++++++++++++++++++++
13 files changed, 1085 insertions(+), 6 deletions(-)
create mode 100644 Documentation/devicetree/bindings/sound/nvidia,tegra-audio-graph-card.yaml
create mode 100644 arch/arm64/boot/dts/nvidia/tegra210-audio-graph.dtsi
create mode 100644 sound/soc/tegra/tegra_audio_graph_card.c
--
2.7.4
|
|
Iwai <tiwai@suse.de>:
Simple conversions from two dma_set_mask*() calls into the single
dma_set_mask_and_coherent().
Just a minor code refactoring, no functional changes.
Takashi
===
Takashi Iwai (3):
ASoC: intel: skl: Simplify with dma_set_mask_and_coherent()
ASoC: SOF: intel: Simplify with dma_set_mask_and_coherent()
ASoC: tegra: Simplify with dma_set_mask_and_coherent()
sound/soc/intel/skylake/skl.c | 8 ++------
sound/soc/sof/intel/hda.c | 8 ++------
sound/soc/tegra/tegra_pcm.c | 6 +-----
3 files changed, 5 insertions(+), 17 deletions(-)
--
2.26.2
|
|
After hibernation, HDA controller can't be runtime-suspended after
commit 215a22ed31a1 ("ALSA: hda: Refactor codjc PM to use
direct-complete optimization"), which enables direct-complete for HDA
codec.
The HDA codec driver didn't expect direct-complete will be disabled
after it returns a positive value from prepare() callback. However,
there are some places that PM core can disable direct-complete. For
instance, system hibernation or when codec has subordinates like LEDs.
So if the codec is prepared for direct-complete but PM core still calls
codec's suspend or freeze callback, partially revert the commit and take
the original approach, which uses pm_runtime_force_*() helpers to
ensure PM refcount are balanced. Meanwhile, still keep prepare() and
complete() callbacks to enable direct-complete and request a resume for
jack detection, respectively.
Reported-by: Kenneth R. Crudup <kenny@panix.com>
Fixes: 215a22ed31a1 ("ALSA: hda: Refactor codec PM to use direct-complete optimization")
Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
Link: https://lore.kernel.org/r/20210119152145.346558-1-kai.heng.feng@canonical.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>
|
|
ASoC: cpcap: Implement set_tdm_slot for voice call support
For using cpcap for voice calls, we need to route audio directly from
the modem to cpcap for TDM (Time Division Multiplexing). The voice call
is direct data between the modem and cpcap with no CPU involvment. In
this mode, the cpcap related audio mixer controls work for the speaker
selection and volume though.
To do this, we need to implement standard snd_soc_dai_set_tdm_slot()
for cpcap. Then the modem codec driver can use snd_soc_dai_set_sysclk(),
snd_soc_dai_set_fmt(), and snd_soc_dai_set_tdm_slot() to configure a
voice call.
Let's add cpcap_voice_set_tdm_slot() for this, and cpcap_voice_call()
helper to configure the additional registers needed for voice call.
Let's also clear CPCAP_REG_VAUDIOC on init in case we have the bit for
CPCAP_BIT_VAUDIO_MODE0 set on init.
Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Pavel Machek <pavel@ucw.cz>
Link: https://lore.kernel.org/r/20210112174704.GA13496@duo.ucw.cz
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
It is not guaranteed that I2S RX is disabled when the kernel booting.
For example, if the kernel crashes while it is enabled, it will keep
enabled until the next time EC reboots. Reset I2S RX when probing to
fix this issue.
Signed-off-by: Yu-Hsuan Hsu <yuhsuan@chromium.org>
Reviewed-by: Enric Balletbo i Serra <enric.balletbo@collabora.com>
Link: https://lore.kernel.org/r/20210115075301.47995-2-yuhsuan@chromium.org
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
Add Tegra audio machine driver which is based on generic audio graph card
driver. It re-uses most of the common stuff from audio graph driver and
uses the same DT binding. Required Tegra specific customizations are done
in the driver and additional DT bindings are required for clock handling.
Details on the customizations done:
- Update PLL rates at runtime: Tegra HW supports multiple sample rates
(multiples of 8x and 11.025x) and both of these groups require different
PLL rates. Hence there is a requirement to update this at runtime.
This is achieved by providing a custom 'snd_soc_ops' and in hw_param()
callback PLL rate is updated as per the sample rate.
- Internal structure 'tegra_audio_graph_data' is used to maintain clock
handles of PLL.
- The 'force_dpcm' flag is set to use DPCM for all DAI links.
- The 'component_chaining' flag is set to use DPCM with component model.
Signed-off-by: Sameer Pujar <spujar@nvidia.com>
Reviewed-by: Jon Hunter <jonathanh@nvidia.com>
Link: https://lore.kernel.org/r/1611048496-24650-4-git-send-email-spujar@nvidia.com
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
ASoC tegra PCM code still has explicit calls of dma_set_mask() and
dma_set_coherent_mask().
Let's simplify with dma_set_mask_and_coherent().
Cc: Thierry Reding <thierry.reding@gmail.com>
Cc: Jonathan Hunter <jonathanh@nvidia.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Link: https://lore.kernel.org/r/20210114133337.1039-4-tiwai@suse.de
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
ASoC Intel SOF driver still has explicit calls of dma_set_mask() and
dma_set_coherent_mask().
Let's simplify with dma_set_mask_and_coherent().
Cc: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Cc: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Cc: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Link: https://lore.kernel.org/r/20210114133337.1039-3-tiwai@suse.de
Signed-off-by: Mark Brown <broonie@kernel.org>
|