IF YOU WOULD LIKE TO GET AN ACCOUNT, please write an
email to Administrator. User accounts are meant only to access repo
and report issues and/or generate pull requests.
This is a purpose-specific Git hosting for
BaseALT
projects. Thank you for your understanding!
Только зарегистрированные пользователи имеют доступ к сервису!
Для получения аккаунта, обратитесь к администратору.
Series introducing a modified boot sequence for the Intel Ice Lake
platform. While no bugs are currently open for this, the current
DSP boot implementation does not follow the full programming sequence.
This patchset is the first instance where SOF driver uses data in
the extended manifest (part of the firmware binary), to influence
the boot process. IPC cannot be used to get this information, as it
is already needed for early boot.
This change is backwards compatible with old firmware versions,
where extended manifest is not available.
Fred Oh (5):
ASoC: SOF: ops: add parse_platform_ext_manifest() op
ASoC: SOF: Intel: hda: define parse_platform_ext_manifest op
ASoC: SOF: ext_manifest: parse cavs extra config data elem
ASoC: SOF: ops: modify the signature of stall op
ASoC: SOF: Intel: hda: add sof_icl_ops for ICL platforms
include/sound/sof/ext_manifest.h | 1 +
sound/soc/sof/intel/Makefile | 2 +-
sound/soc/sof/intel/apl.c | 3 +
sound/soc/sof/intel/cnl.c | 19 +---
sound/soc/sof/intel/ext_manifest.h | 35 +++++++
sound/soc/sof/intel/hda-loader.c | 100 ++++++++++++++++++++
sound/soc/sof/intel/hda.h | 11 +++
sound/soc/sof/intel/icl.c | 145 +++++++++++++++++++++++++++++
sound/soc/sof/intel/tgl.c | 3 +
sound/soc/sof/loader.c | 3 +
sound/soc/sof/ops.h | 14 ++-
sound/soc/sof/sof-pci-dev.c | 2 +-
sound/soc/sof/sof-priv.h | 7 +-
13 files changed, 324 insertions(+), 21 deletions(-)
create mode 100644 sound/soc/sof/intel/ext_manifest.h
create mode 100644 sound/soc/sof/intel/icl.c
--
2.28.0
Hi,
this is a set of patches to address the errors appearing on the
machine that has no I2S DMIC on AMD machine but probed.
Takashi
===
Takashi Iwai (2):
ASoC: amd: Downgrade print level for invalid ACP mode
ASoC: amd: Return -ENODEV for non-existing ACPI call
sound/soc/amd/raven/pci-acp3x.c | 2 +-
sound/soc/amd/renoir/rn-pci-acp3x.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
--
2.26.2
Add support for the Analog Devices ADAU1372 audio CODEC.
[Alexandre Belloni: allow 32kHz for TDM4 in slave mode]
Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Link: https://lore.kernel.org/r/20201127123030.1610574-2-alexandre.belloni@bootlin.com
Signed-off-by: Mark Brown <broonie@kernel.org>
soc-core.c don't need sound/jack.h anymore, but asoc.h needs it.
This patch fixup header magic.
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Link: https://lore.kernel.org/r/87y2iju3zm.wl-kuninori.morimoto.gx@renesas.com
Signed-off-by: Mark Brown <broonie@kernel.org>
AMD Renoir driver tries to identify the presence of DMIC by evaluating
ACPI _WOV entry, and it returns -EINVAL when the ACPI call failed.
This ended up an error message like
snd_rn_pci_acp3x: probe of 0000:04:00.5 failed with error -22
although the system is correctly set up.
For avoiding such a superfluous error message, change the return value
to -ENODEV. Then the driver core just skips to the next one without
complaining.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Link: https://lore.kernel.org/r/20201127143200.16272-3-tiwai@suse.de
Signed-off-by: Mark Brown <broonie@kernel.org>
The acp3x raven driver skips the probing when the given device isn't
connected with I2S. This skip behavior itself is fine, but the driver
also emits an error message "Invalid ACP audio mode" with KERN_ERR.
This isn't nice since it appears on the boot screen even if a boot
splash is running, although this itself is no real error.
Downgrade the print level to KERN_INFO so that this message won't
appear on the console unnecessarily.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Link: https://lore.kernel.org/r/20201127143200.16272-2-tiwai@suse.de
Signed-off-by: Mark Brown <broonie@kernel.org>
Yet another quirk for Pioneer DJ DDJ-SR2, which is quite similar like
other DJ DDJ models but with slightly different EPs or channels.
Reported-by: Geraldo <geraldogabriel@gmail.com>
Link: https://lore.kernel.org/r/20201130083714.10640-1-tiwai@suse.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>
HP Spectre x360 Convertible 15" version (SSID 103c:827f) needs the
same quirk to make the mute LED working like other models.
System Information
Manufacturer: HP
Product Name: HP Spectre x360 Convertible 15-bl1XX
Sound Codec:
Codec: Realtek ALC295
Vendor Id: 0x10ec0295
Subsystem Id: 0x103c827f
Revision Id: 0x100002
Reported-by: <christoph.plattner@gmx.at>
Cc: <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20201128090015.7743-1-tiwai@suse.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>
The check for the FW_FEATURE_PS3_LV1 firmware feature is already performed
in ps3_system_bus_init() before registering the driver. So if the probe
function is actually used, this feature is already known to be available.
The check for the match id is also superfluous; the condition is always
true because the bus' match function (ps3_system_bus_match()) only
considers this driver for devices having:
dev->match_id == snd_ps3_bus_driver_info.match_id.
Suggested-by: Geert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: Leonard Goehrs <l.goehrs@pengutronix.de>
Reviewed-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Tested-by: Geoff Levand <geoff@infradead.org>
Link: https://lore.kernel.org/r/20201127152259.1470079-1-l.goehrs@pengutronix.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>
The remove callback is only called for devices that were probed
successfully before. As the matching probe function cannot complete
without error if dev->match_id != PS3_MATCH_ID_SOUND, we don't have to
check this here.
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Reviewed-by: Geert Uytterhoeven <geert@linux-m68k.org>
Tested-by: Geoff Levand <geoff@infradead.org>
Link: https://lore.kernel.org/r/20201126165950.2554997-1-u.kleine-koenig@pengutronix.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>
This patch allows the Pioneer DJ DDJ-RR to be seen as a USB audio
device under Linux and therefore usable in such applications as
Mixxx.
Tested Master Audio out, headphones (both output jacks) and microphone
input. All work perfectly.
Signed-off-by: Daniel Martin <dmanlfc@gmail.com>
Link: https://lore.kernel.org/r/20201128084035.2958-1-tiwai@suse.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>
The setup of unsolicited event callbacks should be done only once at
the parser phase, not in the init phase that is called multiple times
at each resume.
This patch moves the unsol setup code in ca0132 codec driver to the
more appropriate place.
Reported-by: Hui Wang <hui.wang@canonical.com>
Link: https://lore.kernel.org/r/20200930113008.9307-1-tiwai@suse.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>
ASUS Zephyrus G14 has two speaker pins, and the auto-parser tries to
assign an individual DAC to each pin as much as possible.
Unfortunately the third DAC has no volume control unlike the two DACs,
and this resulted in the inconsistent speaker volumes.
As a workaround, wire both speaker pins to the same DAC by modifying
the existing quirk (ALC289_FIXUP_ASUS_GA401) applied to this device.
Since this quirk entry is chained by another, we need to avoid
applying the DAC assignment change for it. Luckily, there is another
quirk entry (ALC289_FIXUP_ASUS_GA502) doing the very same thing, so we
can chain to the GA502 quirk instead.
Note that this patch uses a new flag of the generic parser,
obey_preferred_dacs, for enforcing the DACs.
BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=210359
Cc: <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20201127141104.11041-2-tiwai@suse.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>
The generic parser accepts the preferred_dacs[] pairs as a hint for
assigning a DAC to each pin, but this hint doesn't work always
effectively. Currently it's merely a secondary choice after the trial
with the path index failed. This made sometimes it difficult to
assign DACs without mimicking the connection list and/or the badness
table.
This patch adds a new flag, obey_preferred_dacs, that changes the
behavior of the parser. As its name stands, the parser obeys the
given preferred_dacs[] pairs by skipping the path index matching and
giving a high penalty if no DAC is assigned by the pairs. This mode
will help for assigning the fixed DACs forcibly from the codec
driver.
Cc: <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20201127141104.11041-1-tiwai@suse.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>
With a stream with low bitrate, user can't pause or resume the stream
near the end of the stream because current ALSA doesn't allow it.
If the stream has very low bitrate enough to store whole stream into
the buffer, user can't do anything except stop the stream and then
restart it from the first because most of applications call draining
after sending last frame to the kernel.
If pause, resume are allowed during draining, user experience can be
enhanced.
To prevent malfunction in HW drivers which don't support pause
during draining, pause during draining will only work if HW driver
enable this feature explicitly by calling
snd_compr_use_pause_in_draining().
Signed-off-by: Gyeongtaek Lee <gt82.lee@samsung.com>
Acked-by: Vinod Koul <vkoul@kernel.org>
Link: https://lore.kernel.org/r/000101d6c3f0$89b312b0$9d193810$@samsung.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Separate the dsp ops for ICL ops to specify the use of ICCMAX
FW boot sequence in the run op. All other ops are identical with TGL
except post_fw_run. The recommended HW programming sequence for ICL
is to power up core 3 and keep it in stall if HPRO is enabled.
Signed-off-by: Fred Oh <fred.oh@linux.intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Link: https://lore.kernel.org/r/20201127164022.2498406-6-kai.vehmanen@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Modify the signature of stall op to specify core_mask to stall cores.
Signed-off-by: Fred Oh <fred.oh@linux.intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Link: https://lore.kernel.org/r/20201127164022.2498406-5-kai.vehmanen@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
OUTBOX_SIZE, INBOX_SIZE are defined but not being used yet. Handle
these elements to avoid warning about unknown token type.
Signed-off-by: Fred Oh <fred.oh@linux.intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Link: https://lore.kernel.org/r/20201127164022.2498406-4-kai.vehmanen@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Define the parse_platform_ext_manifest() op for HDA platforms to parse
the SOF_EXT_MAN_CAVS_CONFIG_CAVS_LPRO config item to determine if the FW
is configured for LPRO. The default clock configuration is assumed to be
HPRO in the absence of this item in the extended manifest.
New member clk_config_lpro is added to struct sof_intel_hda_dev to store
the FW clock config information and that this will be used later to perform
platform-specific operations in the post_fw_run op.
Signed-off-by: Fred Oh <fred.oh@linux.intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Link: https://lore.kernel.org/r/20201127164022.2498406-3-kai.vehmanen@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Add parse_platform_ext_manifest() op to parse platform-specific config
data in the extended manifest.
Signed-off-by: Fred Oh <fred.oh@linux.intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Link: https://lore.kernel.org/r/20201127164022.2498406-2-kai.vehmanen@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
the microphone is attached to external codec(adau7002)
instead of rt5682.We need to always use 32 bit format on sc7180
to meet the clock requirement of adau7002:
The ADAU7002 requires a BCLK rate
that is a minimum of 64× the LRCLK sample rate
Signed-off-by: xuyuqing <xuyuqing@huaqin.corp-partner.google.com>
Link: https://lore.kernel.org/r/20201118005858.123013-2-xuyuqing@huaqin.corp-partner.google.com
Signed-off-by: Mark Brown <broonie@kernel.org>
A small set of driver specific fixes, plus a new platform quirk from
Hans.
-----BEGIN PGP SIGNATURE-----
iQEzBAABCgAdFiEEreZoqmdXGLWf4p/qJNaLcl1Uh9AFAl/A98YACgkQJNaLcl1U
h9ClFggAgPr2/KIB3kRZCaKXaNgQ7oqgPdf0NNMYmwAnLaRK+t1EL0GdiyP5AxDA
sU9RWjoXyCmoe+dqmlS7Iavcj2Ne+y7w2isonrreI26LFrAkO8jL2mo656NArMjx
cxIhjF7sNWVbel2MYhrRSta8LkqrI8FiSV8elGW5DttGyceYHuoNXjo4AN3emnk3
V5kx9uT/kC1ef7SseLeN868VAMM5n42bZV+Eide/DJwYivlX7Hcwaqmax7FPjuYe
J/n3VrNh+AjABvpzPXBD+6e7X8aiYtQWAAtBz2FZLoL+4bREiG4qWP2kW4nwnisS
Bl0W0rE2LvctIKqkAey4/JUwwWCkXg==
=39QE
-----END PGP SIGNATURE-----
Merge tag 'asoc-fix-v5.10-rc5' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus
ASoC: Fixes for v5.10
A small set of driver specific fixes, plus a new platform quirk from
Hans.
snd_soc_suspend() and soc_resume_deferred() are calling
same snd_soc_dapm_stream_event() with same logic with different parameter.
This patch adds new soc_dapm_suspend_resume() and share the code.
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Link: https://lore.kernel.org/r/87im9rekfp.wl-kuninori.morimoto.gx@renesas.com
Signed-off-by: Mark Brown <broonie@kernel.org>
snd_soc_suspend() and soc_resume_deferred() are calling
same snd_soc_dai_digital_mute() with same logic with different parameter.
This patch adds new soc_playback_digital_mute() and share the code.
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Link: https://lore.kernel.org/r/87k0u7ekfv.wl-kuninori.morimoto.gx@renesas.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Hi Mark
soc_compr_open() does rollback when failed (A),
but, it is almost same as soc_compr_free().
static int soc_compr_open(xxx)
{
...
if (ret < 0)
goto xxx_err;
...
return 0;
^ machine_err:
| ...
| out:
(A) ...
| pm_err:
| ...
v return ret;
}
This kind of duplicated code can be a hotbed of bugs,
thus, this patch-set share soc_compr_free() and rollback.
Kuninori Morimoto (5):
ASoC: soc-compress: move soc_compr_free() next to soc_compr_open()
ASoC: soc-dai: add mark for snd_soc_dai_compr_startup/shutdown()
ASoC: soc-component: add mark for snd_soc_component_compr_open/free()
ASoC: soc-component: add mark for snd_soc_link_compr_startup/shutdown()
ASoC: soc-compress: add soc_compr_clean() and call it from soc_compr_open/free()
include/sound/soc-component.h | 6 +-
include/sound/soc-dai.h | 4 +-
include/sound/soc-link.h | 3 +-
include/sound/soc.h | 1 +
sound/soc/soc-component.c | 17 +++--
sound/soc/soc-compress.c | 115 +++++++++++++++++-----------------
sound/soc/soc-dai.c | 13 +++-
sound/soc/soc-link.c | 11 +++-
8 files changed, 95 insertions(+), 75 deletions(-)
--
2.25.1
Hi,
Changes since v1:
1. New patch 2/39: ASoC: bd28623: mark OF related data as maybe unused,
2. Patches 1-13: add maybe_unused after discussions with Mark,
3. Add Sylwester's review to two patches (one changed so please review
one more time).
Best regards,
Krzysztof
Krzysztof Kozlowski (39):
ASoC: ak5558: mark OF related data as maybe unused
ASoC: bd28623: mark OF related data as maybe unused
ASoC: gtm601: mark OF related data as maybe unused
ASoC: inno_rk3036: mark OF related data as maybe unused
ASoC: rk3328: mark OF related data as maybe unused
ASoC: tas571x: mark OF related data as maybe unused
ASoC: kirkwood: armada-370-db: mark OF related data as maybe unused
ASoC: meson: t9015: mark OF related data as maybe unused
ASoC: qcom: mark OF related data as maybe unused
ASoC: samsung: smdk_wm8994: mark OF related data as maybe unused
ASoC: rockchip: mark OF related data as maybe unused
ASoC: ti: davinci: mark OF related data as maybe unused
ASoC: uniphier: mark OF related data as maybe unused
ASoC: ak4118: skip of_device_id table when !CONFIG_OF
ASoC: alc5623: skip of_device_id table when !CONFIG_OF
ASoC: alc5632: skip of_device_id table when !CONFIG_OF
ASoC: da7218: skip of_device_id table when !CONFIG_OF
ASoC: da7219: skip of_device_id table when !CONFIG_OF
ASoC: da9055: skip of_device_id table when !CONFIG_OF
ASoC: es8316: skip of_device_id table when !CONFIG_OF
ASoC: max98090: skip of_device_id table when !CONFIG_OF
ASoC: max98095: skip of_device_id table when !CONFIG_OF
ASoC: max98371: skip of_device_id table when !CONFIG_OF
ASoC: max9867: skip of_device_id table when !CONFIG_OF
ASoC: max98925: skip of_device_id table when !CONFIG_OF
ASoC: max98926: skip of_device_id table when !CONFIG_OF
ASoC: pcm1789: skip of_device_id table when !CONFIG_OF
ASoC: pcm179x: skip of_device_id table when !CONFIG_OF
ASoC: rt5660: skip of_device_id table when !CONFIG_OF
ASoC: tas2562: skip of_device_id table when !CONFIG_OF
ASoC: tlv320: skip of_device_id table when !CONFIG_OF
ASoC: ts3a227e: skip of_device_id table when !CONFIG_OF
ASoC: es7134: mark OF related data as maybe unused
ASoC: es7241: mark OF related data as maybe unused
ASoC: samsung: i2s: mark OF related data as maybe unused
ASoC: max98371: drop driver pm=NULL assignment
ASoC: max98925: drop driver pm=NULL assignment
ASoC: max98926: drop driver pm=NULL assignment
ASoC: samsung: smdk_wm8994: remove redundant of_match_ptr()
sound/soc/codecs/ak4118.c | 2 ++
sound/soc/codecs/ak5558.c | 2 +-
sound/soc/codecs/alc5623.c | 2 ++
sound/soc/codecs/alc5632.c | 2 ++
sound/soc/codecs/bd28623.c | 2 +-
sound/soc/codecs/da7218.c | 2 ++
sound/soc/codecs/da7219.c | 2 ++
sound/soc/codecs/da9055.c | 2 ++
sound/soc/codecs/es7134.c | 4 ++--
sound/soc/codecs/es7241.c | 2 +-
sound/soc/codecs/es8316.c | 2 ++
sound/soc/codecs/gtm601.c | 2 +-
sound/soc/codecs/inno_rk3036.c | 2 +-
sound/soc/codecs/max98090.c | 2 ++
sound/soc/codecs/max98095.c | 2 ++
sound/soc/codecs/max98371.c | 3 ++-
sound/soc/codecs/max9867.c | 2 ++
sound/soc/codecs/max98925.c | 3 ++-
sound/soc/codecs/max98926.c | 3 ++-
sound/soc/codecs/pcm1789-i2c.c | 2 ++
sound/soc/codecs/pcm179x-i2c.c | 2 ++
sound/soc/codecs/rk3328_codec.c | 2 +-
sound/soc/codecs/rt5660.c | 2 ++
sound/soc/codecs/tas2562.c | 2 ++
sound/soc/codecs/tas571x.c | 4 ++--
sound/soc/codecs/tlv320adcx140.c | 2 ++
sound/soc/codecs/tlv320aic23-i2c.c | 2 ++
sound/soc/codecs/ts3a227e.c | 2 ++
sound/soc/kirkwood/armada-370-db.c | 2 +-
sound/soc/meson/t9015.c | 2 +-
sound/soc/qcom/apq8016_sbc.c | 2 +-
sound/soc/qcom/lpass-apq8016.c | 2 +-
sound/soc/qcom/lpass-ipq806x.c | 2 +-
sound/soc/qcom/lpass-sc7180.c | 2 +-
sound/soc/rockchip/rockchip_i2s.c | 2 +-
sound/soc/rockchip/rockchip_pdm.c | 2 +-
sound/soc/rockchip/rockchip_spdif.c | 2 +-
sound/soc/samsung/i2s.c | 8 ++++----
sound/soc/samsung/smdk_wm8994.c | 4 ++--
sound/soc/ti/davinci-i2s.c | 2 +-
sound/soc/uniphier/aio-ld11.c | 2 +-
sound/soc/uniphier/aio-pxs2.c | 2 +-
sound/soc/uniphier/evea.c | 2 +-
43 files changed, 69 insertions(+), 32 deletions(-)
--
2.25.1
First version of rt715 sdw sdca codec driver.
Signed-off-by: Jack Yu <jack.yu@realtek.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Link: https://lore.kernel.org/r/20201103172226.4278-4-yung-chuan.liao@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
soc_compr_open() does rollback when failed (A),
but, it is almost same as soc_compr_free().
static int soc_compr_open(xxx)
{
...
if (ret < 0)
goto xxx_err;
...
return 0;
^ machine_err:
| ...
| out:
(A) ...
| pm_err:
| ...
v return ret;
}
The difference is
soc_compr_free() is for all dai/component/substream,
rollback is for succeeded part only.
This kind of duplicated code can be a hotbed of bugs,
thus, we want to share soc_compr_free() and rollback.
Now, soc_compr_open/free() are handling
1) snd_soc_dai_compr_startup/shutdown()
2) snd_soc_component_compr_open/free()
3) snd_soc_link_compr_startup/shutdown()
Now, 1) to 3) are handled.
This patch adds new soc_compr_clean() and call it from
soc_compr_open() as rollback, and from soc_compr_free_free() as
normal close handler.
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Link: https://lore.kernel.org/r/87ima25iwa.wl-kuninori.morimoto.gx@renesas.com
Signed-off-by: Mark Brown <broonie@kernel.org>
soc_compr_open() does rollback when failed (A),
but, it is almost same as soc_compr_free().
static int soc_compr_open(xxx)
{
...
if (ret < 0)
goto xxx_err;
...
return 0;
^ machine_err:
| ...
| out:
(A) ...
| pm_err:
| ...
v return ret;
}
The difference is
soc_compr_free() is for all dai/component/substream,
rollback is for succeeded part only.
This kind of duplicated code can be a hotbed of bugs,
thus, we want to share soc_compr_free() and rollback.
1) snd_soc_dai_compr_startup/shutdown()
2) snd_soc_component_compr_open/free()
=> 3) snd_soc_link_compr_startup/shutdown()
This patch is for 3) snd_soc_link_compr_startup/shutdown()
and adds new cstream mark.
It will mark cstream when startup() was suceeded.
If rollback happen *after* that, it will check rollback flag
and marked cstream.
It cares *previous* startup() only now,
but we might want to check *whole* marked cstream in the future.
This patch is using macro so that it can be easily adjust to it.
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Link: https://lore.kernel.org/r/87k0ui5iwf.wl-kuninori.morimoto.gx@renesas.com
Signed-off-by: Mark Brown <broonie@kernel.org>
soc_compr_open() does rollback when failed (A),
but, it is almost same as soc_compr_free().
static int soc_compr_open(xxx)
{
...
if (ret < 0)
goto xxx_err;
...
return 0;
^ machine_err:
| ...
| out:
(A) ...
| pm_err:
| ...
v return ret;
}
The difference is
soc_compr_free() is for all dai/component/substream,
rollback is for succeeded part only.
This kind of duplicated code can be a hotbed of bugs,
thus, we want to share soc_compr_free() and rollback.
1) snd_soc_dai_compr_startup/shutdown()
=> 2) snd_soc_component_compr_open/free()
3) snd_soc_link_compr_startup/shutdown()
This patch is for 2) snd_soc_component_compr_open/free(),
and adds new cstream mark.
It will mark cstream when startup() was suceeded.
If rollback happen *after* that, it will check rollback flag
and marked cstream.
It cares *previous* startup() only now,
but we might want to check *whole* marked cstream in the future.
This patch is using macro so that it can be easily adjust to it.
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Link: https://lore.kernel.org/r/87lfey5iwk.wl-kuninori.morimoto.gx@renesas.com
Signed-off-by: Mark Brown <broonie@kernel.org>
soc_compr_open() does rollback when failed (A),
but, it is almost same as soc_compr_free().
static int soc_compr_open(xxx)
{
...
if (ret < 0)
goto xxx_err;
...
return 0;
^ machine_err:
| ...
| out:
(A) ...
| pm_err:
| ...
v return ret;
}
The difference is
soc_compr_free() is for all dai/component/substream,
rollback is for succeeded part only.
This kind of duplicated code can be a hotbed of bugs,
thus, we want to share soc_compr_free() and rollback.
=> 1) snd_soc_dai_compr_startup/shutdown()
2) snd_soc_component_compr_open/free()
3) snd_soc_link_compr_startup/shutdown()
This patch is for 1) snd_soc_dai_compr_startup/shutdown(),
and adds new cstream mark.
It will mark cstream when startup() was suceeded.
If rollback happen *after* that, it will check rollback flag
and marked cstream.
It cares *previous* startup() only now,
but we might want to check *whole* marked cstream in the future.
This patch is using macro so that it can be easily adjust to it.
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Link: https://lore.kernel.org/r/87mtze5iwp.wl-kuninori.morimoto.gx@renesas.com
Signed-off-by: Mark Brown <broonie@kernel.org>
This patch moves soc_compr_free() next to soc_compr_open().
This is prepare for soc_compr_open() cleanup.
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Link: https://lore.kernel.org/r/87o8ju5iwv.wl-kuninori.morimoto.gx@renesas.com
Signed-off-by: Mark Brown <broonie@kernel.org>
HDMI interface can also be used as receiver, this patch is to
add such support. The most difference compare with TX is that RX
don't need to get edid information.
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Link: https://lore.kernel.org/r/1606372608-2329-1-git-send-email-shengjiu.wang@nxp.com
Signed-off-by: Mark Brown <broonie@kernel.org>
of_match_device() already handles properly !CONFIG_OF case, so passing
the argument via of_match_ptr() is not needed.
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Reviewed-by: Sylwester Nawrocki <snawrocki@kernel.org>
Link: https://lore.kernel.org/r/20201125164452.89239-40-krzk@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
The driver can be compile tested with !CONFIG_OF making certain data
unused:
sound/soc/samsung/i2s.c:1646:42: warning: ‘i2sv5_dai_type_i2s1’ defined but not used [-Wunused-const-variable=]
sound/soc/samsung/i2s.c:1639:42: warning: ‘i2sv7_dai_type’ defined but not used [-Wunused-const-variable=]
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Reviewed-by: Sylwester Nawrocki <snawrocki@kernel.org>
Link: https://lore.kernel.org/r/20201125164452.89239-36-krzk@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
The driver can be compile tested with !CONFIG_OF making certain data
unused:
sound/soc/codecs/es7241.c:206:33: warning: ‘es7241_chip’ defined but not used [-Wunused-const-variable=]
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Link: https://lore.kernel.org/r/20201125164452.89239-35-krzk@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
The driver can be compile tested with !CONFIG_OF making certain data
unused:
sound/soc/codecs/es7134.c:264:33: warning: ‘es7154_chip’ defined but not used [-Wunused-const-variable=]
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Link: https://lore.kernel.org/r/20201125164452.89239-34-krzk@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
The driver can match by multiple methods. Its of_device_id table is
referenced via of_match_ptr() so it will be unused for !CONFIG_OF
builds:
sound/soc/codecs/ts3a227e.c:369:34: warning: ‘ts3a227e_of_match’ defined but not used [-Wunused-const-variable=]
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Link: https://lore.kernel.org/r/20201125164452.89239-33-krzk@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
The driver can match by multiple methods. Its of_device_id table is
referenced via of_match_ptr() so it will be unused for !CONFIG_OF
builds:
sound/soc/codecs/tlv320aic23-i2c.c:38:34: warning: ‘tlv320aic23_of_match’ defined but not used [-Wunused-const-variable=]
sound/soc/codecs/tlv320adcx140.c:1076:34: warning: ‘tlv320adcx140_of_match’ defined but not used [-Wunused-const-variable=]
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Link: https://lore.kernel.org/r/20201125164452.89239-32-krzk@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
The driver can match by multiple methods. Its of_device_id table is
referenced via of_match_ptr() so it will be unused for !CONFIG_OF
builds:
sound/soc/codecs/tas2562.c:805:34: warning: ‘tas2562_of_match’ defined but not used [-Wunused-const-variable=]
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Link: https://lore.kernel.org/r/20201125164452.89239-31-krzk@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
The driver can match by multiple methods. Its of_device_id table is
referenced via of_match_ptr() so it will be unused for !CONFIG_OF
builds:
sound/soc/codecs/rt5660.c:1238:34: warning: ‘rt5660_of_match’ defined but not used [-Wunused-const-variable=]
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Link: https://lore.kernel.org/r/20201125164452.89239-30-krzk@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>