Don't populate the const array norm_addrs on the stack, instead make it
static. Makes the object code smaller by over 230 bytes. Also re-format
array data as the insertion of the static keywork made the first line
overly long.
Before:
text data bss dec hex filename
53780 34752 256 88788 15ad4 linux/sound/soc/codecs/tscs42xx.o
After:
text data bss dec hex filename
53461 34840 256 88557 159ed linux/sound/soc/codecs/tscs42xx.o
(gcc version 7.2.0 x86_64)
Signed-off-by: Colin Ian King <colin.king@canonical.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
In usecases like hot plug-unplug DP panel or modeset during a playback,
sometimes we observe no audio after codec resets. During no audio
condition, we have noticed that the power state of the pin or the
connector is D3. Optimizing the way we set the power mitigates the
issue. With this changes the verb is sent to set the power state and
waits until actual state reaches target state. Thus ensuring power
state is set.
Signed-off-by: Abhijeet Kumar <abhijeet.kumar@intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
{ 0 } only clears the first member of the structure.
The first member of the snd_soc_dapm_update struct is a pointer,
and writing 0 to a pointer results in a sparse warning.
Use the empty struct initializer that clears all the struct members
and fixes the sparse warning.
Cc: Charles Keepax <ckeepax@opensource.cirrus.com>
Signed-off-by: Fabio Estevam <fabio.estevam@nxp.com>
Acked-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
{ 0 } only clears the first member of the structure.
The first member of the snd_soc_dapm_update struct is a pointer,
and writing 0 to a pointer results in a sparse warning.
Use the empty struct initializer that clears all the struct members
and fixes the sparse warning.
Signed-off-by: Fabio Estevam <fabio.estevam@nxp.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Current implementation mute codec in global way (DAC block).
That means when user routes sound not from I2S but from
AUX source (LINE_IN) it also will be muted by alsa core.
This should not happen.
Signed-off-by: Michal Oleszczyk <oleszczyk.m@gmail.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
In the reset state of the codec we do not have complete playback or capture
routes.
The audio playback/capture will not work due to missing clock signals on
the I2S bus if PLL, MDAC/NDAC/DAC MADC/NADC/ADC is powered down.
To make sure that even if all output/input is disconnected the codec is
generating clocks, we need to have valid DAPM route in every case to power
up the must needed parts of the codec.
I have verified that switching DAC (during playback) or ADC (during
capture) will stop the I2S clocks, so the only solution is to connect the
'Off' routes as well to output/input.
The routes will be only added if the codec is clock master. In case the
role changes runtime, the applied routes are removed.
Tested on am43x-epos-evm with aic3111 codec in master mode.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Reviewed-by: Jyri Sarha <jsarha@ti.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
{ 0 } only clears the first member of the structure.
The first member of the snd_soc_dapm_update struct is a pointer,
and writing 0 to a pointer results in the following sparse warning:
sound/soc/codecs/tlv320aic3x.c:175:47: warning: Using plain integer as NULL pointer
Use the empty struct initializer that clears all the struct members
and fixes the sparse warning.
Signed-off-by: Fabio Estevam <fabio.estevam@nxp.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
{ 0 } only clears the first member of the structure.
The first member of the snd_soc_dapm_update struct is a pointer,
and writing 0 to a pointer results in the following sparse warning:
sound/soc/codecs/wm9712.c:229:47: warning: Using plain integer as NULL pointer
Use the empty struct initializer that clears all the struct members
and fixes the sparse warning.
Signed-off-by: Fabio Estevam <fabio.estevam@nxp.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
snd_soc_runtime_ignore_pmdown_time() returns "ignore pmdown time"
decision. Then, it collects each component driver's .use_pmdown_time
settings by using AND operation.
But, ak4613 has no reason to ignore/use pmdown time.
Thus, It should has use_pmdown_time=0, it means it doesn't have
decision right of "ignore pmdown time".
Otherwise, ak4642 paired driver's pmdown_time settings doesn't
have meaning. In other words, "ignore pmdown time" is determined
irrespective of the value of paired driver's settings
(= ignore will be 0 by ak4642).
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
snd_soc_runtime_ignore_pmdown_time() returns "ignore pmdown time"
decision. Then, it collects each component driver's .use_pmdown_time
settings by using AND operation.
But, ak4613 has no reason to ignore/use pmdown time.
Thus, It should has use_pmdown_time=0, it means it doesn't have
decision right of "ignore pmdown time".
Otherwise, ak4613 paired driver's pmdown_time settings doesn't
have meaning. In other words, "ignore pmdown time" is determined
irrespective of the value of paired driver's settings
(= ignore will be 0 by ak4613).
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Remove rt5668 support from rt5665 codec driver since rt5668 will
not go into mass production.
Signed-off-by: Bard Liao <bardliao@realtek.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
All sn95031 stuff was removed in commit 987da3fe17 ("ASoC: sn95031: remove this code")
Since SND_SOC_SN95031 was gone, remove makefile about it.
Signed-off-by: Corentin Labbe <clabbe@baylibre.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Now platform can be replaced to component, let's do it.
This patch merges rt5514_spi_dai_component into rt5514_spi_component
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Now we can replace Codec to Component. Let's do it.
Because Intel/Mediatek platforms are using rt5645/rt5677,
we need to update these all related drivers in same time.
Otherwise compile error/warning happen
rt5645:
xxx_codec_xxx() -> xxx_component_xxx()
.idle_bias_off = 1 -> .idle_bias_on = 0
.ignore_pmdown_time = 0 -> .use_pmdown_time = 1
- -> .endianness = 1
- -> .non_legacy_dai_naming = 1
rt5677:
xxx_codec_xxx() -> xxx_component_xxx()
.idle_bias_off = 1 -> .idle_bias_on = 0
.ignore_pmdown_time = 0 -> .use_pmdown_time = 1
- -> .endianness = 1
- -> .non_legacy_dai_naming = 1
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>