| Age | Commit message (Collapse) | Author | Files | Lines |
|
Update power domains exit function calling from runtime resume
to remove function which was wrongly placed and causing crash in
device suspend and resume.
Fixes: 9e3d83c52844 ("ASoC: codecs: Add power domains support in digital macro codecs")
Signed-off-by: Srinivasa Rao Mandadapu <quic_srivasam@quicinc.com>
Co-developed-by: Venkata Prasad Potturu <quic_potturu@quicinc.com>
Signed-off-by: Venkata Prasad Potturu <quic_potturu@quicinc.com>
Link: https://lore.kernel.org/r/1647355531-4150-1-git-send-email-quic_srivasam@quicinc.com
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
The device_node pointer is returned by of_parse_phandle() with refcount
incremented. We should use of_node_put() on it when done.
This is similar to commit 64b92de9603f
("ASoC: wcd9335: fix a leaked reference by adding missing of_node_put")
Fixes: a61f3b4f476e ("ASoC: wcd934x: add support to wcd9340/wcd9341 codec")
Signed-off-by: Miaoqian Lin <linmq006@gmail.com>
Link: https://lore.kernel.org/r/20220316083631.14103-1-linmq006@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
It will be safe when getting the calibration params after power-on.
All powers are ready to read the calibration params from EFUSE.
Signed-off-by: Shuming Fan <shumingf@realtek.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20220315093740.12008-1-shumingf@realtek.com
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
In the error handling path, the clk_prepare_enable() function
call should be balanced by a corresponding 'clk_disable_unprepare()'
call , as already done in the remove function.
Fixes: de66b3455023 ("ASoC: codecs: msm8916-wcd-analog: add MBHC support")
Signed-off-by: Miaoqian Lin <linmq006@gmail.com>
Link: https://lore.kernel.org/r/20220316041924.17560-1-linmq006@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
Fix the missing clk_disable_unprepare() before return
from msm8916_wcd_digital_probe in the error handling case.
Fixes: 150db8c5afa1 ("ASoC: codecs: Add msm8916-wcd digital codec")
Signed-off-by: Miaoqian Lin <linmq006@gmail.com>
Link: https://lore.kernel.org/r/20220307084523.28687-1-linmq006@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
ASoC: Potential fixes for v5.17
Rather more fixes here than I'm comfortable with, we've had several
vendors noticing issues late in the release cycle all of which are valid
and reasonable fixes but it adds up to a much larger change set than I'd
like. Several of the AMD fixes look like cleanups from the subject
lines but are actually fixing user visible problems as well.
If you were to merge this for 5.18 rather than 5.17 it wouldn't be the
end of the world, stable will probably backport everything anyway.
|
|
The compressed stream code has a bunch of structs that are used to
represent DSP memory but have not been marked __packed. This isn't
safe, they could get padded on a 64-bit build.
Signed-off-by: Simon Trimmer <simont@opensource.cirrus.com>
Link: https://lore.kernel.org/r/20220309130017.2816-1-simont@opensource.cirrus.com
Acked-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
Fix the missing clk_disable_unprepare() before return
from rk817_platform_probe() in the error handling case.
Fixes: 0d6a04da9b25 ("ASoC: Add Rockchip rk817 audio CODEC support")
Signed-off-by: Miaoqian Lin <linmq006@gmail.com>
Tested-by: Chris Morgan <macromorgan@hotmail.com>
Link: https://lore.kernel.org/r/20220307090146.4104-1-linmq006@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
Merge series from Stephan Gerhold <stephan@gerhold.net>:
This series adds a simple driver and DT schema for the Awinic AW8738
audio amplifier. It's fairly simple - the main difference to
simple-amplifier is that there is a "one-wire pulse control" that
allows configuring the amplifier to one of a few pre-defined modes.
This can be used to configure the speaker-guard function (primarily
the power limit for the amplifier).
|
|
DETECT_MODE and PLL_START must be zero while HP_PDN and ADC_PDN are
both 1. If this condition is broken it can discharge FILT+ and it
can then take up to 1 second for FILT+ to recharge.
There is no workaround required for this, simply avoiding settings
and sequences that would break the requirement. The driver already
meets the requirement.
But it is not obvious from reading the code that this requirement
exists, or what is ensuring it is met. So it would not currently be
obvious to someone changing the code that there is certain special
behaviour that must be maintained.
To avoid accidental breakage in the future:
- Add comments into the register definitions to warn about this so
that anyone changing the code around DETECT_MODE and PLL_START is
aware of this requirement.
- Add a comment where PLL_START is written to 1 to highlight the
requirement and why it is satisfied.
- Add a comment in cs42l42_setup_hs_type_detect() when DETECT_MODE is
initialized.
Signed-off-by: Richard Fitzgerald <rf@opensource.cirrus.com>
Link: https://lore.kernel.org/r/20220304144015.398656-1-rf@opensource.cirrus.com
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
The parts supported by this driver can have product-specific
firmware and tunings files. Typically these have been used on
embedded systems where the manufacturer is responsible for
installing the correct product-specific firmware files into
/lib/firmware. However, the linux-firmware repository places all
available firmwares into /lib/firmware and it is up to the driver to
select the correct product-specific firmware from that directory.
For example a product containing four smart amplifiers may provide
firmware specific for that product and each of the amplifiers may
have coefficient files containing tunings for their placement in the
mechanical design.
This change extends firmware (wmfw) and coefficient (bin) filenames
to be of the general form:
<cirrus/>part-dspN-fwtype<-system_name<-asoc_component_prefix>>.type
Where the cirrus subdirectory, system_name and asoc_component_prefix
are optional.
New files will be placed in the cirrus subdirectory to avoid
polluting the main /lib/firmware/ location. The generic name must be
searched in /lib/firmware before /lib/firmware/cirrus so that a
generic file in the new location does not override existing
product-specific files in the legacy location.
The search order for firmware files is:
- cirrus/part-dspN-fwtype-system_name-asoc_component_prefix.wmfw
- cirrus/part-dspN-fwtype-system_name.wmfw
- part-dspN-fwtype.wmfw
- cirrus/part-dspN-fwtype.wmfw
- Qualifications are added to the filename so that rightwards is more
specific.
- The system_name is provided by the codec driver.
- The asoc_component_prefix is used to identify tunings for individual
parts because it would already exist to disambiguate the controls
and it makes it obvious which firmware file applies to which device.
The optional coefficient file must have the same filename
construction as the discovered wmfw except:
- where the wmfw has only system_name then the bin file can
optionally include the asoc_component_prefix. This is to allow a
common wmfw for all amps but separate tunings per amp.
Signed-off-by: Simon Trimmer <simont@opensource.cirrus.com>
Acked-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Link: https://lore.kernel.org/r/20220303155016.122125-1-simont@opensource.cirrus.com
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
cs35l41_private is not used on cs35l41_handle_pdata
Signed-off-by: Lucas Tanure <tanureal@opensource.cirrus.com>
Acked-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Link: https://lore.kernel.org/r/20220304150721.3802-5-tanureal@opensource.cirrus.com
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
This device only has 4 TX channels.
Fixes: fe1024d50477b ("ASoC: cs35l41: Combine adjacent register writes")
Signed-off-by: Lucas Tanure <tanureal@opensource.cirrus.com>
Acked-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Link: https://lore.kernel.org/r/20220304150721.3802-3-tanureal@opensource.cirrus.com
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
Changes:
1. Revise rt5682s_sar_power_mode and rt5682s_headset_detect to be more
rational.
2. Manually set to the jack-unplugging state via rt5682s_headset_detect
during going to suspend. Close unnecessary powers and prepare for
re-detecting the CBJ during resuming.
3. Simplize rt5682s_resume.
Signed-off-by: Derek Fang <derek.fang@realtek.com>
Link: https://lore.kernel.org/r/20220307102154.26065-1-derek.fang@realtek.com
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
As the potential failure of the wm8350_register_irq(),
it should be better to check it and return error if fails.
Also, use 'free_' in order to avoid the same code.
Fixes: a6ba2b2dabb5 ("ASoC: Implement WM8350 headphone jack detection")
Signed-off-by: Jiasheng Jiang <jiasheng@iscas.ac.cn>
Acked-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Link: https://lore.kernel.org/r/20220304023821.391936-1-jiasheng@iscas.ac.cn
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
The Awinic AW8738 is a simple audio amplifier using a single GPIO.
The main difference to simple-amplifier is that there is a "one-wire
pulse control" that allows configuring the amplifier to one of a few
pre-defined modes. This can be used to configure the speaker-guard
function (primarily the power limit for the amplifier).
Add a simple driver that allows setting it up in the device tree
with a specified mode number.
Signed-off-by: Jonathan Albrieux <jonathan.albrieux@gmail.com>
Co-developed-by: Stephan Gerhold <stephan@gerhold.net>
Signed-off-by: Stephan Gerhold <stephan@gerhold.net>
Link: https://lore.kernel.org/r/20220304102452.26856-3-stephan@gerhold.net
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
Global enable must happen before CSPL_MBOX_CMD_RESUME command
is sent. Move it to PRE_PMU as both events use
SND_SOC_DAPM_OUT_DRV_E macro.
Signed-off-by: Lucas Tanure <tanureal@opensource.cirrus.com>
Acked-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Link: https://lore.kernel.org/r/20220303173059.269657-4-tanureal@opensource.cirrus.com
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
This device only has 4 TX channels.
Fixes: fe1024d50477b ("ASoC: cs35l41: Combine adjacent register writes")
Signed-off-by: Lucas Tanure <tanureal@opensource.cirrus.com>
Acked-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Link: https://lore.kernel.org/r/20220303173059.269657-3-tanureal@opensource.cirrus.com
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
Fix GPIO2 polarity and direction configuration
Fixes: fe1024d50477b ("ASoC: cs35l41: Combine adjacent register writes")
Signed-off-by: David Rhodes <drhodes@opensource.cirrus.com>
Acked-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Link: https://lore.kernel.org/r/20220303173059.269657-2-tanureal@opensource.cirrus.com
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
Back-merge of 5.17-devel branch for further work on Intel LPE HDMI stuff
Signed-off-by: Takashi Iwai <tiwai@suse.de>
|
|
This patch fix the second dai driver's dai widget can't connect to the
endpoint. Because "bt-sco-pcm" and "bt-sco-pcm-wb" dai driver have the
same stream_name, so it will cause they have the same widget name.
Therefor it will just create only one route when do snd_soc_dapm_add_route
that only find the widget through the widget name.
Signed-off-by: Jiaxin Yu <jiaxin.yu@mediatek.com>
Link: https://lore.kernel.org/r/20220302013533.29068-1-jiaxin.yu@mediatek.com
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
pcm name can be "Analog" and "Alt Analog", cpcm->name can be
"Analog Codec DAI" and "Alt Analog Codec DAI". When pcm_name
is "Analog", "Analog Codec DAI" and "Alt Analog Codec DAI" are
both satisfy the 'if (strstr(cpcm->name, pcm_name))' condition,
which may cause the returned cpcm to be "Alt Analog Codec DAI".
Even if we get the pcm name by id, and "Analog Codec DAI" goes
into the loop before "Alt Analog Codec DAI", but I still think
we'd better have multiple insurances against unexpected return
values. After, we can correctly return the expected result
even if other relevant places are changed.
Signed-off-by: Meng Tang <tangmeng@uniontech.com>
Link: https://lore.kernel.org/r/20220302094351.3487-1-tangmeng@uniontech.com
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
WSA SoundWire Controller does not support Clock stop and performs a soft reset
on suspend resume path. Its recommended that WSA881x codecs connected to this
are also reset using a hard reset during suspend resume.
So this codec driver performs a hard reset during suspend resume cycle.
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Link: https://lore.kernel.org/r/20220228144235.24208-1-srinivas.kandagatla@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
Merge series from Srinivasa Rao Mandadapu <quic_srivasam@quicinc.com>:
This patch set is to add power domains support for RX, TX and VA macros.
|
|
As part of moving to remove the old style defines for the bus clocks update
the es7241 driver to use more modern terminology for clocking.
Signed-off-by: Mark Brown <broonie@kernel.org>
Link: https://lore.kernel.org/r/20220222223300.3120298-1-broonie@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
As part of moving to remove the old style defines for the bus clocks update
the max98927 driver to use more modern terminology for clocking.
Signed-off-by: Mark Brown <broonie@kernel.org>
Link: https://lore.kernel.org/r/20220222234026.712070-10-broonie@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
As part of moving to remove the old style defines for the bus clocks update
the max98926 driver to use more modern terminology for clocking.
Signed-off-by: Mark Brown <broonie@kernel.org>
Link: https://lore.kernel.org/r/20220222234026.712070-9-broonie@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
As part of moving to remove the old style defines for the bus clocks update
the max98925 driver to use more modern terminology for clocking.
Signed-off-by: Mark Brown <broonie@kernel.org>
Link: https://lore.kernel.org/r/20220222234026.712070-8-broonie@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
As part of moving to remove the old style defines for the bus clocks update
the max9867 driver to use more modern terminology for clocking.
Signed-off-by: Mark Brown <broonie@kernel.org>
Link: https://lore.kernel.org/r/20220222234026.712070-7-broonie@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
As part of moving to remove the old style defines for the bus clocks update
the max9860 driver to use more modern terminology for clocking.
Signed-off-by: Mark Brown <broonie@kernel.org>
Link: https://lore.kernel.org/r/20220222234026.712070-6-broonie@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
As part of moving to remove the old style defines for the bus clocks update
the max9850 driver to use more modern terminology for clocking.
Signed-off-by: Mark Brown <broonie@kernel.org>
Link: https://lore.kernel.org/r/20220222234026.712070-5-broonie@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
As part of moving to remove the old style defines for the bus clocks update
the max98390 driver to use more modern terminology for clocking.
Signed-off-by: Mark Brown <broonie@kernel.org>
Link: https://lore.kernel.org/r/20220222234026.712070-4-broonie@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
As part of moving to remove the old style defines for the bus clocks update
the max98371 driver to use more modern terminology for clocking.
Signed-off-by: Mark Brown <broonie@kernel.org>
Link: https://lore.kernel.org/r/20220222234026.712070-3-broonie@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
As part of moving to remove the old style defines for the bus clocks update
the max98095 driver to use more modern terminology for clocking.
Signed-off-by: Mark Brown <broonie@kernel.org>
Link: https://lore.kernel.org/r/20220222234026.712070-2-broonie@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
As part of moving to remove the old style defines for the bus clocks update
the max98088 driver to use more modern terminology for clocking.
Signed-off-by: Mark Brown <broonie@kernel.org>
Link: https://lore.kernel.org/r/20220222234026.712070-1-broonie@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
As part of moving to remove the old style defines for the bus clocks update
the uda134x driver to use more modern terminology for clocking.
Signed-off-by: Mark Brown <broonie@kernel.org>
Link: https://lore.kernel.org/r/20220223003409.1820405-1-broonie@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
As part of moving to remove the old style defines for the bus clocks update
the ml26124 driver to use more modern terminology for clocking.
Signed-off-by: Mark Brown <broonie@kernel.org>
Link: https://lore.kernel.org/r/20220223001636.1321505-1-broonie@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
As part of moving to remove the old style defines for the bus clocks update
the pcm512x driver to use more modern terminology for clocking.
Signed-off-by: Mark Brown <broonie@kernel.org>
Link: https://lore.kernel.org/r/20220223014846.2765382-4-broonie@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
As part of moving to remove the old style defines for the bus clocks update
the pcm3168a driver to use more modern terminology for clocking.
Signed-off-by: Mark Brown <broonie@kernel.org>
Link: https://lore.kernel.org/r/20220223014846.2765382-3-broonie@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
As part of moving to remove the old style defines for the bus clocks update
the pcm186x driver to use more modern terminology for clocking.
Signed-off-by: Mark Brown <broonie@kernel.org>
Link: https://lore.kernel.org/r/20220223014846.2765382-2-broonie@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
As part of moving to remove the old style defines for the bus clocks update
the pcm1681 driver to use more modern terminology for clocking.
Signed-off-by: Mark Brown <broonie@kernel.org>
Link: https://lore.kernel.org/r/20220223014846.2765382-1-broonie@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
As part of moving to remove the old style defines for the bus clocks update
the pcm3060 driver to use more modern terminology for clocking.
Signed-off-by: Mark Brown <broonie@kernel.org>
Link: https://lore.kernel.org/r/20220223014731.2765283-1-broonie@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
As part of moving to remove the old style defines for the bus clocks update
the mc13783 driver to use more modern terminology for clocking.
Signed-off-by: Mark Brown <broonie@kernel.org>
Link: https://lore.kernel.org/r/20220223001416.1235951-1-broonie@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
As part of moving to remove the old style defines for the bus clocks update
the isabelle driver to use more modern terminology for clocking.
Signed-off-by: Mark Brown <broonie@kernel.org>
Link: https://lore.kernel.org/r/20220222225014.3691208-1-broonie@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
As part of moving to remove the old style defines for the bus clocks update
the es8328 driver to use more modern terminology for clocking.
Signed-off-by: Mark Brown <broonie@kernel.org>
Link: https://lore.kernel.org/r/20220222223534.3212743-1-broonie@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
As part of moving to remove the old style defines for the bus clocks update
the inno_rk3036 driver to use more modern terminology for clocking.
Signed-off-by: Mark Brown <broonie@kernel.org>
Link: https://lore.kernel.org/r/20220222224816.3636987-1-broonie@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
As part of moving to remove the old style defines for the bus clocks update
the es8316 driver to use more modern terminology for clocking.
Signed-off-by: Mark Brown <broonie@kernel.org>
Link: https://lore.kernel.org/r/20220222223453.3190333-1-broonie@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
As part of moving to remove the old style defines for the bus clocks update
the wl1273 driver to use more modern terminology for clocking.
Signed-off-by: Mark Brown <broonie@kernel.org>
Link: https://lore.kernel.org/r/20220223003810.1947495-1-broonie@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
As part of moving to remove the old style defines for the bus clocks update
the es7134 driver to use more modern terminology for clocking.
Signed-off-by: Mark Brown <broonie@kernel.org>
Link: https://lore.kernel.org/r/20220222222715.2994339-1-broonie@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
As part of moving to remove the old style defines for the bus clocks update
the twl4030 driver to use more modern terminology for clocking.
Signed-off-by: Mark Brown <broonie@kernel.org>
Acked-by: Peter Ujfalusi <peter.ujfalusi@gmail.com>
Link: https://lore.kernel.org/r/20220223003046.1697784-1-broonie@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
|