Mark Brown [Thu, 5 Aug 2021 19:15:52 +0000 (20:15 +0100)]
Merge series "ASoC: soc-dapm: cleanup cppcheck warning" from Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>:
Hi Mark
Now I'm posting audio-graph-card2 patch-set, but it seems it needs longer
discussion. Thus I want to post more easy patch first, and reduce my
local patches.
These are cppcheck warning cleanup patches for soc-dapm.
Kuninori Morimoto (12):
ASoC: soc-dapm: cleanup cppcheck warning at dapm_wcache_lookup()
ASoC: soc-dapm: cleanup cppcheck warning at dapm_connect_mux()
ASoC: soc-dapm: cleanup cppcheck warning at dapm_set_mixer_path_status()
ASoC: soc-dapm: cleanup cppcheck warning at dapm_new_pga()
ASoC: soc-dapm: cleanup cppcheck warning at dapm_new_dai_link()
ASoC: soc-dapm: cleanup cppcheck warning at dapm_seq_check_event()
ASoC: soc-dapm: cleanup cppcheck warning at dapm_seq_run()
ASoC: soc-dapm: cleanup cppcheck warning at snd_soc_dapm_del_route()
ASoC: soc-dapm: cleanup cppcheck warning at snd_soc_dapm_add_routes()
ASoC: soc-dapm: cleanup cppcheck warning at snd_soc_dapm_weak_routes()
ASoC: soc-dapm: cleanup cppcheck warning at snd_soc_dapm_new_controls()
ASoC: soc-dapm: cleanup cppcheck warning at soc_dapm_dai_stream_event()
The allocation of the DAI link components (DLCs) passed the wrong
pointer to sizeof. Since simple_dai_props is much larger than
snd_soc_dai_link_component, there was no out of bounds access, only
wasted memory.
Fixes: f2138aed231c8 ("ASoC: simple-card-utils: enable flexible CPU/Codec/Platform") Fixes: 050c7950fd706 ("ASoC: simple-card-utils: alloc dai_link information for CPU/Codec/Platform") Reviewed-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Samuel Holland <samuel@sholland.org> Link: https://lore.kernel.org/r/20210805050706.46833-1-samuel@sholland.org Signed-off-by: Mark Brown <broonie@kernel.org>
Pierre-Louis Bossart [Wed, 4 Aug 2021 19:24:56 +0000 (14:24 -0500)]
ASoC: wcd938x: simplify return value
cppcheck warning:
sound/soc/codecs/wcd938x.c:3701:9: warning: Identical condition and
return expression 'ret', return value is always 0
[identicalConditionAfterEarlyExit]
return ret;
^
sound/soc/codecs/wcd938x.c:3691:6: note: If condition 'ret' is true,
the function will return/exit
if (ret)
^
sound/soc/codecs/wcd938x.c:3701:9: note: Returning identical expression 'ret'
return ret;
^
Pierre-Louis Bossart [Wed, 4 Aug 2021 19:24:54 +0000 (14:24 -0500)]
ASoC: max98090: remove duplicate status reads and useless assignmment
The logic for the jack detection has not changed since the first
commit for this driver. Remove a duplicate read and remove useless
assignment
sound/soc/codecs/max98090.c:2170:6: style: Variable 'reg' is
reassigned a value before the old one has been
used. [redundantAssignment]
reg = snd_soc_component_read(component, M98090_REG_JACK_STATUS);
^
sound/soc/codecs/max98090.c:2161:7: note: reg is assigned
reg = snd_soc_component_read(component, M98090_REG_JACK_STATUS);
^
sound/soc/codecs/max98090.c:2170:6: note: reg is overwritten
reg = snd_soc_component_read(component, M98090_REG_JACK_STATUS);
^
sound/soc/codecs/max98090.c:2170:6: style: Variable 'reg' is
reassigned a value before the old one has been
used. [redundantAssignment]
reg = snd_soc_component_read(component, M98090_REG_JACK_STATUS);
^
sound/soc/codecs/max98090.c:2167:7: note: reg is assigned
reg = snd_soc_component_read(component, M98090_REG_JACK_STATUS);
^
sound/soc/codecs/max98090.c:2170:6: note: reg is overwritten
reg = snd_soc_component_read(component, M98090_REG_JACK_STATUS);
^
Kuninori Morimoto [Thu, 5 Aug 2021 01:11:28 +0000 (10:11 +0900)]
ASoC: soc-dapm: cleanup cppcheck warning at snd_soc_dapm_del_route()
This patch cleanups below cppcheck warning.
sound/soc/soc-dapm.c:3007:30: style: The scope of the variable 'wsource' can be reduced. [variableScope]
struct snd_soc_dapm_widget *wsource, *wsink;
^
sound/soc/soc-dapm.c:3007:40: style: The scope of the variable 'wsink' can be reduced. [variableScope]
struct snd_soc_dapm_widget *wsource, *wsink;
^
Kuninori Morimoto [Thu, 5 Aug 2021 01:11:05 +0000 (10:11 +0900)]
ASoC: soc-dapm: cleanup cppcheck warning at dapm_set_mixer_path_status()
This patch cleanups below cppcheck warning, and its related code.
unsigned int val;
^
sound/soc/soc-dapm.c:789:15: style: The scope of the variable 'val' can be reduced. [variableScope] Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Link: https://lore.kernel.org/r/87v94ku252.wl-kuninori.morimoto.gx@renesas.com Signed-off-by: Mark Brown <broonie@kernel.org>
Kuninori Morimoto [Thu, 5 Aug 2021 01:10:55 +0000 (10:10 +0900)]
ASoC: soc-dapm: cleanup cppcheck warning at dapm_wcache_lookup()
This patch cleanups below cppcheck warning.
sound/soc/soc-dapm.c:653:20: style: The scope of the variable 'wlist' can be reduced. [variableScope]
struct list_head *wlist;
^
sound/soc/soc-dapm.c:655:6: style: The scope of the variable 'i' can be reduced. [variableScope]
int i = 0;
^
Takashi Iwai [Wed, 4 Aug 2021 07:52:23 +0000 (09:52 +0200)]
ASoC: amd: vangogh: Drop superfluous mmap callback
The mmap callback of vangogh driver just calls the default mmap
handler, and it's superfluous, as the PCM core would call it if not
set. Let's drop the superfluous mmap callback.
Mark Brown [Tue, 3 Aug 2021 22:27:25 +0000 (23:27 +0100)]
Merge series "ASoC: soc-ops: cleanup cppcheck warning" from Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>:
Hi Mark
Now I'm posting audio-graph-card2 patch-set, but it seems it needs longer
discussion. Thus I want to post more easy patch first, and reduce my
local patches.
These are cppcheck warning cleanup patches for soc-ops.
Kuninori Morimoto (4):
ASoC: soc-ops: cleanup cppcheck warning at snd_soc_put_volsw_sx()
ASoC: soc-ops: cleanup cppcheck warning at snd_soc_limit_volume()
ASoC: soc-ops: cleanup cppcheck warning at snd_soc_get_xr_sx()
ASoC: soc-ops: cleanup cppcheck warning at snd_soc_put_xr_sx()
Kuninori Morimoto [Tue, 3 Aug 2021 05:01:00 +0000 (14:01 +0900)]
ASoC: soc-ops: cleanup cppcheck warning at snd_soc_put_xr_sx()
This patch cleanups below cppcheck warning.
sound/soc/soc-ops.c:859:18: style: The scope of the variable 'regval' can be reduced. [variableScope]
unsigned int i, regval, regmask;
^
sound/soc/soc-ops.c:859:26: style: The scope of the variable 'regmask' can be reduced. [variableScope]
unsigned int i, regval, regmask;
^
sound/soc/soc-ops.c:860:6: style: The scope of the variable 'err' can be reduced. [variableScope]
int err;
^
Pierre-Louis Bossart [Mon, 2 Aug 2021 15:21:50 +0000 (10:21 -0500)]
ASoC: Intel: update sof_pcm512x quirks
The default SOF topology enables SSP capture and DMICs, even though
both of these hardware capabilities are not always available in
hardware (specific versions of HiFiberry and DMIC kit needed).
For the SSP capture, this leads to annoying "SP5-Codec: ASoC: no
backend capture" and "streamSSP5-Codec: ASoC: no users capture at
close - state 0" errors.
Update the quirks to match what the topology needs, which also allows
for the ability to remove SSP capture and DMIC support.
jairaj arava [Mon, 2 Aug 2021 15:21:49 +0000 (10:21 -0500)]
ASoC: SOF: Intel: Use DMI string to search for adl_mx98373_rt5682 variant
DMI product name is used to support system variants based on
adl_mx98373_rt5682 in current implementation. Replace this DMI search with
DMI_OEM_STRING and coreboot(BIOS used in these systems) is
setting the needed DMI_OEM_STRING field to uniquely identify these
systems.
Mark Brown [Mon, 2 Aug 2021 20:27:55 +0000 (21:27 +0100)]
Merge series "soundwire/ASoC: abstract platform-dependent bases" from Bard Liao <yung-chuan.liao@linux.intel.com>:
shim base and alh base are platform-dependent. This series suggests
to use variables for those bases. It allows us to use different bases
for new platforms.
v2:
- Update the commit message of "soundwire: move intel sdw register
definitions to sdw_intel.h"
Mark Brown [Mon, 2 Aug 2021 20:27:54 +0000 (21:27 +0100)]
Merge series "ASoC: Intel: bytcr_rt5640: Fix HP ElitePad 1000 G2 audio routing" from Hans de Goede <hdegoede@redhat.com>:
Changes in v2:
- Only set lineout_string if BYT_RT5640_LINEOUT is set, since
BYT_RT5640_LINEOUT_AS_HP2 only works if the lineout is enabled in
the first place
Original cover-letter:
The HP Elitepad 1000 G2 has 2 headset jacks:
1. on the dock which uses the output of the codecs built-in HP-amp +
the standard IN2 input which is always used with the headset-jack.
2. on the tablet itself, this uses the line-out of the codec, combined
with an external HP-amp + IN1 for the headset-mic.
This series adds support for this, resolving:
https://bugzilla.kernel.org/show_bug.cgi?id=213415
Note this series does not add jack-detect support. I plan to add that
with a follow-up series when I can make some time to implement that.
Regards,
Hans
Hans de Goede (6):
ASoC: Intel: bytcr_rt5640: Move "Platform Clock" routes to the maps
for the matching in-/output
ASoC: Intel: bytcr_rt5640: Add line-out support
ASoC: Intel: bytcr_rt5640: Add a byt_rt5640_get_codec_dai() helper
ASoC: Intel: bytcr_rt5640: Add support for a second headphones output
ASoC: Intel: bytcr_rt5640: Add support for a second headset mic input
ASoC: Intel: bytcr_rt5640: Fix HP ElitePad 1000 G2 quirk
Hans de Goede [Mon, 2 Aug 2021 14:25:01 +0000 (16:25 +0200)]
ASoC: Intel: bytcr_rt5640: Fix HP ElitePad 1000 G2 quirk
The HP Elitepad 1000 G2 has 2 headset jacks:
1. on the dock which uses the output of the codecs built-in HP-amp +
the standard IN2 input which is always used with the headset-jack.
2. on the tablet itself, this uses the line-out of the codec, combined
with an external HP-amp + IN1 for the headset-mic.
Fix the HP ElitePad 1000 G2 to properly reflect this now that the
machine-driver supports this setup.
Note this also changes the mapping for the internal mic. from
IN1 (which was pointing to the 2nd headset-jack mic) to DMIC2
which is the actual input for the internal mics.
Hans de Goede [Mon, 2 Aug 2021 14:25:00 +0000 (16:25 +0200)]
ASoC: Intel: bytcr_rt5640: Add support for a second headset mic input
Some devices (HP Elitepad 1000 G2) have 2 headset jacks (1 on the dock,
2nd on the tablet itself). The 2nd headset mic input on these is
connected to in1 (the internal mics on the HP Elitepad 1000 G2 use DMIC2).
Add support for this through a new BYT_RT5640_HSMIC2_ON_IN1 quirk.
Hans de Goede [Mon, 2 Aug 2021 14:24:59 +0000 (16:24 +0200)]
ASoC: Intel: bytcr_rt5640: Add support for a second headphones output
Some devices (HP Elitepad 1000 G2) have a second headphones output
(1 on the dock, 2nd on the tablet itself) which is implemented through
the line-out output of the codec combined with an external hp-amp
which gets enabled through the codec's GPIO1 pin.
Add support for this through a new BYT_RT5640_LINEOUT_AS_HP2 quirk,
note users are expected to use this combined with the
BYT_RT5640_LINEOUT quirk. If that quirk is not set the new quirk is
ignored.
HDA_DSP_REG_SNDW_WAKE_STS is actually (SDW_SHIM_BASE + SDW_SHIM_WAKESTS)
and SDW_SHIM_BASE is platform-dependent. Removing HDA_DSP_REG_SNDW_WAKE_STS
and use (hdev->desc->sdw_shim_base + SDW_SHIM_WAKESTS) instead.
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com> Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com> Link: https://lore.kernel.org/r/20210723115451.7245-4-yung-chuan.liao@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
soundwire: move intel sdw register definitions to sdw_intel.h
Those Intel sdw registers will be used by ASoC SOF drivers in the
following commits. So move those definitions to sdw_intel.h and it can
be visible to SOF drivers.
Mark Brown [Mon, 2 Aug 2021 14:42:31 +0000 (15:42 +0100)]
Merge series "ASoC: soc-topology: cleanup cppcheck warning" from Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>:
Hi Mark
Now I'm posting audio-graph-card2 patch-set, but it seems it needs longer
discussion. Thus I want to post more easy patch first, and reduce my
local patches.
These are cppcheck warning cleanup patches for soc-topology.
Kuninori Morimoto (5):
ASoC: soc-topology: cleanup cppcheck warning at soc_tplg_process_headers()
ASoC: soc-topology: cleanup cppcheck warning at soc_tplg_dai_elems_load()
ASoC: soc-topology: cleanup cppcheck warning at soc_tplg_dapm_widget_elems_load()
ASoC: soc-topology: cleanup cppcheck warning at soc_tplg_kcontrol_elems_load()
ASoC: soc-topology: cleanup cppcheck warning at snd_soc_find_dai_link()
Kuninori Morimoto [Mon, 2 Aug 2021 06:01:04 +0000 (15:01 +0900)]
ASoC: soc-topology: cleanup cppcheck warning at soc_tplg_kcontrol_elems_load()
This patch cleanups below cppcheck warning.
sound/soc/soc-topology.c:1038:31: style: The scope of the variable 'control_hdr' can be reduced. [variableScope]
struct snd_soc_tplg_ctl_hdr *control_hdr;
^
Kuninori Morimoto [Mon, 2 Aug 2021 06:00:52 +0000 (15:00 +0900)]
ASoC: soc-topology: cleanup cppcheck warning at soc_tplg_dapm_widget_elems_load()
This patch cleanups below cppcheck warning.
sound/soc/soc-topology.c:1599:35: style: The scope of the variable 'widget' can be reduced. [variableScope]
struct snd_soc_tplg_dapm_widget *widget;
^
sound/soc/soc-topology.c:1600:6: style: The scope of the variable 'ret' can be reduced. [variableScope]
int ret, count, i;
^
Kuninori Morimoto [Mon, 2 Aug 2021 06:00:42 +0000 (15:00 +0900)]
ASoC: soc-topology: cleanup cppcheck warning at soc_tplg_dai_elems_load()
This patch cleanups below cppcheck warning.
sound/soc/soc-topology.c:2350:27: style: The scope of the variable 'dai' can be reduced. [variableScope]
struct snd_soc_tplg_dai *dai;
^
sound/soc/soc-topology.c:2352:9: style: The scope of the variable 'ret' can be reduced. [variableScope]
int i, ret;
^
Mark Brown [Thu, 29 Jul 2021 16:24:46 +0000 (17:24 +0100)]
Merge series "ASoC: soc-core: cleanup cppcheck warning" from Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>:
Hi Mark
Now I'm posting audio-graph-card2 patch-set, but it seems it needs longer
discussion. Thus I want to post more easy patch first, and reduce my
local patches.
These are cppcheck warning cleanup patches for soc-core.
Kuninori Morimoto (7):
ASoC: soc-core: cleanup cppcheck warning at snd_soc_set_dmi_name()
ASoC: soc-core: cleanup cppcheck warning at snd_soc_get_dai_name()
ASoC: soc-core: cleanup cppcheck warning at snd_soc_daifmt_parse_format()
ASoC: soc-core: cleanup cppcheck warning at snd_soc_unregister_component()
ASoC: soc-core: cleanup cppcheck warning at snd_soc_add_controls()
ASoC: soc-core: cleanup cppcheck warning at snd_soc_of_parse_audio_simple_widgets()
ASoC: soc-core: cleanup cppcheck warning at snd_soc_of_parse_audio_routing()
These are only assigned to the ops field in the snd_soc_dai_link struct
which is a pointer to const struct snd_soc_ops. Make them const to allow
the compiler to put them in read-only memory.
ASoC: soc-core: cleanup cppcheck warning at snd_soc_get_dai_name()
This patch cleanups below cppcheck warning.
sound/soc/soc-core.c:3203:22: style: The scope of the variable 'component_of_node' can be reduced. [variableScope]
struct device_node *component_of_node;
^
sound/soc/soc-core.c:1721:33: style: The scope of the variable 'product_version' can be reduced. [variableScope] Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Link: https://lore.kernel.org/r/87wnp9yl6y.wl-kuninori.morimoto.gx@renesas.com Signed-off-by: Mark Brown <broonie@kernel.org>
Mark Brown [Tue, 27 Jul 2021 15:14:20 +0000 (16:14 +0100)]
Merge series "ASoC: soc-pcm: cleanup cppcheck warning" from Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>:
Hi Mark
Now I'm posting audio-graph-card2 patch-set, but it seems it needs longer
discussion. Thus I want to post more easy patch first, and reduce my
local patches.
These are cppcheck warning cleanup patches for soc-pcm.
Kuninori Morimoto (5):
ASoC: soc-pcm: cleanup cppcheck warning at soc_pcm_apply_msb()
ASoC: soc-pcm: cleanup cppcheck warning at soc_pcm_components_close()
ASoC: soc-pcm: cleanup cppcheck warning at soc_get_playback_capture()
ASoC: soc-pcm: cleanup cppcheck warning at dpcm_be_is_active()
ASoC: soc-pcm: cleanup cppcheck warning at dpcm_runtime_setup_be_chan()
Shuming Fan [Tue, 27 Jul 2021 08:48:46 +0000 (16:48 +0800)]
ASoC: rt5682: enable SAR ADC power saving mode during suspend
The SAR ADC power saving mode could reduce power consumption on MICVDD rail.
Therefore, this patch saves power consumption during suspend state if the headset was connected.
ASoC: soc-pcm: cleanup cppcheck warning at dpcm_runtime_setup_be_chan()
This patch cleanups below cppcheck warning.
sound/soc/soc-pcm.c:1624:30: style: The scope of the variable 'codec_stream' can be reduced. [variableScope]
struct snd_soc_pcm_stream *codec_stream;
^
ASoC: soc-pcm: cleanup cppcheck warning at soc_get_playback_capture()
This patch cleanups below cppcheck warning.
sound/soc/soc-pcm.c:2578:22: style: The scope of the variable 'codec_dai' can be reduced. [variableScope]
struct snd_soc_dai *codec_dai;
^
sound/soc/soc-pcm.c:2580:6: style: The scope of the variable 'stream' can be reduced. [variableScope]
int stream;
^
ASoC: soc-pcm: cleanup cppcheck warning at soc_pcm_apply_msb()
This patch cleanups below cppcheck warning.
sound/soc/soc-pcm.c:446:29: style: The scope of the variable 'pcm_codec' can be reduced. [variableScope]
struct snd_soc_pcm_stream *pcm_codec, *pcm_cpu;
^
sound/soc/soc-pcm.c:446:41: style: The scope of the variable 'pcm_cpu' can be reduced. [variableScope]
struct snd_soc_pcm_stream *pcm_codec, *pcm_cpu;
^
Jack Yu [Mon, 26 Jul 2021 09:15:41 +0000 (09:15 +0000)]
ASoC: rt1015: Remove unnecessary flush work on rt1015 driver
Remove workqueue of flush work in rt1015 driver since we don't need it
after internal discussion, and there is no impact on performance
without this workqueue.
ACP5.x IP has multiple I2S controllers and DMA controller.
Create platform devices for I2S HS controller instance, I2S SP controller
instance and DMA controller.
Pass PCI resources like MMIO, irq to these platform devices.
The same quirk is used for LAPBC510 and LAPBC710 skews who use the
same audio design, with an RT711 headset codec using JD1 mode and one
RT1308 amplifier, along with 4 DMICs.
port_map field was added prior to adding static port map support in soundwire.
This makes port_map array in struct wcd938x_sdw_priv redundant and unused,
so remove this.