Since a virtual mixer has no backing registers
to decide which path to connect,
it will try to match with initial state.
This is to ensure that the default mixer choice will be
correctly powered up during initialization.
Invert flag is used to select initial state of the virtual switch.
Since actual hardware can't be disconnected by virtual switch,
connected is better choice as initial state in many cases.
Signed-off-by: Gyeongtaek Lee <gt82.lee@samsung.com>
Link: https://lore.kernel.org/r/01a301d60731$b724ea10$256ebe30$@samsung.com
Signed-off-by: Mark Brown <broonie@kernel.org>
At the moment, playing audio with PulseAudio with the qdsp6 driver
results in distorted sound. It seems like its timer-based scheduling
does not work properly with qdsp6 since setting tsched=0 in
the PulseAudio configuration avoids the issue.
Apparently this happens when the pointer() callback is not accurate
enough. There is a SNDRV_PCM_INFO_BATCH flag that can be used to stop
PulseAudio from using timer-based scheduling by default.
According to https://www.alsa-project.org/pipermail/alsa-devel/2014-March/073816.html:
The flag is being used in the sense explained in the previous audio
meeting -- the data transfer granularity isn't fine enough but aligned
to the period size (or less).
q6asm-dai reports the position as multiple of
prtd->pcm_count = snd_pcm_lib_period_bytes(substream)
so it indeed just a multiple of the period size.
Therefore adding the flag here seems appropriate and makes audio
work out of the box.
Fixes: 2a9e92d371 ("ASoC: qdsp6: q6asm: Add q6asm dai driver")
Signed-off-by: Stephan Gerhold <stephan@gerhold.net>
Reviewed-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Link: https://lore.kernel.org/r/20200330175210.47518-1-stephan@gerhold.net
Signed-off-by: Mark Brown <broonie@kernel.org>
As of commit:
ASoC: soc-core: care .ignore_suspend for Component suspend
function soc-core::snd_soc_suspend no longer ignores 'ignore_suspend'
flag for dai links. While BE dai link for System Pin is
supposed to follow standard suspend-resume flow, appended
'ignore_suspend' flag disturbs that flow and causes audio to break
right after resume. Remove the flag to address this.
Link to first message in conversation:
https://lkml.org/lkml/2020/3/18/54
Cezary Rojewski (4):
ASoC: Intel: broadwell: Remove ignore_suspend flag from SSP0 dai link
ASoC: Intel: haswell: Remove ignore_suspend flag from SSP0 dai link
ASoC: Intel: bdw-rt5677: Remove ignore_suspend flag from SSP0 dai link
ASoC: Intel: bdw-rt5650: Remove ignore_suspend flag from SSP0 dai link
sound/soc/intel/boards/bdw-rt5650.c | 1 -
sound/soc/intel/boards/bdw-rt5677.c | 1 -
sound/soc/intel/boards/broadwell.c | 1 -
sound/soc/intel/boards/haswell.c | 1 -
4 files changed, 4 deletions(-)
--
2.17.1
The NULL check can be done gracefully without cast. It fixes a
compile warning like:
sound/soc/bcm/bcm63xx-pcm-whistler.c:184:6: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
Fixes: 88eb404ccc ("ASoC: brcm: Add DSL/PON SoC audio driver")
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Link: https://lore.kernel.org/r/20200330135645.9707-1-tiwai@suse.de
Signed-off-by: Mark Brown <broonie@kernel.org>
The following warning is seen with 'make dt_binding_check':
Documentation/devicetree/bindings/sound/cirrus,cs42l51.example.dts:18.15-34.11: Warning (unit_address_vs_reg): /example-0/i2c@0: node has a unit name, but no reg or ranges property
Fix it by removing the unneeded i2c unit name.
Signed-off-by: Fabio Estevam <festevam@gmail.com>
Acked-by: Rob Herring <robh@kernel.org>
Link: https://lore.kernel.org/r/20200327155721.7596-1-festevam@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org>
To handle multiple hardware combinations, this patchset suggests a
single machine driver which will create and initialize dailinks
dynamically. This allows us to support new configurations easily, as
shown with the TigerLake rt5682 example.
Each configuration updates the card component string, and UCM can test
for the presence of components to configure them as needed.
Since we use a single the machine driver name, all previous ACPI
tables need to be updated. That should have no impact since the
machine drivers listed at the time were not upstreamed and are no
longer maintained.
Naveen Manohar (2):
ASoC: Intel: common: add match table for TGL RT5682 SoundWire driver
ASoC: Intel: sof_sdw: Add Volteer support with RT5682 SNDW helper
function
Pierre-Louis Bossart (1):
ASoC: Intel: boards: add sof_sdw machine driver
Rander Wang (1):
ASoC: Intel: soc-acpi: update topology and driver name for SoundWire
platforms
sound/soc/intel/boards/Kconfig | 24 +
sound/soc/intel/boards/Makefile | 8 +-
sound/soc/intel/boards/sof_sdw.c | 962 ++++++++++++++++++
sound/soc/intel/boards/sof_sdw_common.h | 114 +++
sound/soc/intel/boards/sof_sdw_dmic.c | 42 +
sound/soc/intel/boards/sof_sdw_hdmi.c | 97 ++
sound/soc/intel/boards/sof_sdw_rt1308.c | 151 +++
sound/soc/intel/boards/sof_sdw_rt5682.c | 126 +++
sound/soc/intel/boards/sof_sdw_rt700.c | 125 +++
sound/soc/intel/boards/sof_sdw_rt711.c | 156 +++
sound/soc/intel/boards/sof_sdw_rt715.c | 42 +
.../intel/common/soc-acpi-intel-cml-match.c | 24 +-
.../intel/common/soc-acpi-intel-icl-match.c | 6 +-
.../intel/common/soc-acpi-intel-tgl-match.c | 30 +-
14 files changed, 1896 insertions(+), 11 deletions(-)
create mode 100644 sound/soc/intel/boards/sof_sdw.c
create mode 100644 sound/soc/intel/boards/sof_sdw_common.h
create mode 100644 sound/soc/intel/boards/sof_sdw_dmic.c
create mode 100644 sound/soc/intel/boards/sof_sdw_hdmi.c
create mode 100644 sound/soc/intel/boards/sof_sdw_rt1308.c
create mode 100644 sound/soc/intel/boards/sof_sdw_rt5682.c
create mode 100644 sound/soc/intel/boards/sof_sdw_rt700.c
create mode 100644 sound/soc/intel/boards/sof_sdw_rt711.c
create mode 100644 sound/soc/intel/boards/sof_sdw_rt715.c
--
2.20.1
Remove undocumented and unneeded ti,use-internal-reg from the example as
it was an artifact from initial development. The code does not query
for this property and as the document indicates if areg-supply is
undefined then the internal regulator is used.
Fixes: 302c0b7490cd ("dt-bindings: sound: Add TLV320ADCx140 dt
bindings")
Signed-off-by: Dan Murphy <dmurphy@ti.com>
CC: Rob Herring <robh@kernel.org>
Link: https://lore.kernel.org/r/20200327162432.17067-1-dmurphy@ti.com
Signed-off-by: Mark Brown <broonie@kernel.org>
This machine driver provides support for different configurations:
RT700, RT711, RT1308 (1x and 2x, I2S or SoundWire mode), and RT715
CometLake, Icelake, TigerLake.
PDM digital microphones
HDMI
To avoid introducing one driver per configuration, this common machine
driver relies on platform-specific information, tables and quirks to
dynamically create the relevant dailinks.
Unlike a lot of machine drivers, we use different DAI links for
SoundWire capture and playback since the Cadence PDIs can do capture
OR playback, not both simultaneously.
For each configuration, the card component string is updated so that UCM
can select the relevant parts.
Signed-off-by: Rander Wang <rander.wang@linux.intel.com>
Signed-off-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/20200325220746.29601-3-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
This patchset provides the support for SoundWire support on Intel
CometLake, IcelLake and TigerLake RVP platforms and form-factor
devices to be released 'soon'.
The bulk of the code is about detecting a valid SoundWire
configuration from ACPI, and implementing the interfaces suggested in
'[PATCH 0/8] soundwire: remove platform devices, add SOF interfaces'
for interrupts, PCI wakes and clock-stop configurations.
Since that SoundWire series will not be in 5.7, the build support for
SOF w/ SoundWire is not provided for now, and fall-back functions will
be used. This code is tested on a daily basis in the SOF tree and is
not expected to change in significant ways.
Changes since v2:
Corrected error in ACPI table (thanks Amadeusz)
Added patch 11 to add reset cycle required on some SoundWire platforms
Bard Liao (1):
ASoC: SOF: Intel: hda: merge IPC, stream and SoundWire interrupt
handlers
Pierre-Louis Bossart (8):
ASoC: soc-acpi: expand description of _ADR-based devices
ASoC: SOF: Intel: add SoundWire configuration interface
ASoC: SOF: IPC: dai-intel: move ALH declarations in header file
ASoC: SOF: Intel: hda: add SoundWire stream config/free callbacks
ASoC: SOF: Intel: hda: initial SoundWire machine driver autodetect
ASoC: SOF: Intel: hda: disable SoundWire interrupts on suspend
ASoC: SOF: Intel: hda: add parameter to control SoundWire clock stop
quirks
ASoC: SOF: Intel: hda-ctrl: add reset cycle before parsing
capabilities
Rander Wang (2):
ASoC: SOF: Intel: hda: add WAKEEN interrupt support for SoundWire
Asoc: SOF: Intel: hda: check SoundWire wakeen interrupt in irq thread
include/sound/soc-acpi.h | 39 +-
include/sound/sof/dai-intel.h | 18 +-
.../intel/common/soc-acpi-intel-cml-match.c | 87 +++-
.../intel/common/soc-acpi-intel-icl-match.c | 97 ++++-
.../intel/common/soc-acpi-intel-tgl-match.c | 49 ++-
sound/soc/sof/intel/hda-ctrl.c | 25 +-
sound/soc/sof/intel/hda-dsp.c | 2 +
sound/soc/sof/intel/hda-loader.c | 31 ++
sound/soc/sof/intel/hda.c | 400 ++++++++++++++++++
sound/soc/sof/intel/hda.h | 66 +++
10 files changed, 750 insertions(+), 64 deletions(-)
--
2.20.1