This patch adds topology sof-apl-src-dmic.m4 to test capture SRC.
The topology instantiates SRCs for 48 -> 8-48 kHz and 16 -> 8-48 kHz
capture. The volume component in pipeline handles PCM format
conversion from the fixed S32_LE DMIC DAI format. Also the bugs in
the earlier non-used pipeline macro are fixed.
The macro pipe-src-capture.m4 is renamed to pipe-src-volume-capture.m4
since it contains a volume component. A new macro pipe-src-capture.m4
is created to provide pipeline building block without volume.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
Now rt711 is in SDW mode and rt1308 is in I2S mode on TGL RVP
Signed-off-by: Rander Wang <rander.wang@linux.intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Switches all pipelines for cAVS platforms to timer scheduling.
This way we limit the number of interrupt levels processed
in the system. Timer, IPC and IDC are already on level 2 and
DMAs are on level 5.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
Changes ICL topology to use 3 periods for buffer connected to ALH DAI.
This topology has been forgotten, when such changes were done.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
Fixes SSP format and used pipeline macro in CML topologies.
Fixes: cfe81f5127 ("topology: cml: cnl: use 3 periods for SSP, DMIC and ALH DAIs")
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
Fix alloc definitions for host build.
Function definitions were using defines in their body
which blocked usage of const values in said defines.
Signed-off-by: Jakub Dabek <jakub.dabek@intel.com>
Changes number of DMIC DAI periods from 2 to 3. This way
we can support both timer and new single DMA channel
scheduling.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
Changes number of SSP and DMIC DAI periods from 2 to 3.
This way we can support both timer and new single DMA
channel scheduling.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
Changes number of SSP, DMIC and ALH DAI periods from 2 to 3.
This way we can support both timer and new single DMA
channel scheduling.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
Changes number of SSP, DMIC and ALH DAI periods from 2 to 3.
This way we can support both timer and new single DMA
channel scheduling.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
Changes number of SSP and DMIC DAI periods from 2 to 3.
This way we can support both timer and new single DMA
channel scheduling.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
Uses DAI_PERIODS in calculation of DAI buffer size.
In case the DAI_PERIODS value is undefined, we use
DAI_DEFAULT_PERIOD value of 2.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
Fixes pipe-dai-capture and pipe-dai-playback pipelines
to use passed DAI_PERIODS value instead of hardcoded.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
Rename dmic pga and control names to human readable format as they might
be used by user space software.
Signed-off-by: Jaska Uimonen <jaska.uimonen@intel.com>
Currently m4 parses pga and mixercontrol topology names partly from
static strings, pipeline id's and user defined names. This automagically
differentiates the pga's nicely, but makes some pga control names human
unreadable and error prone for example to to pipeline id changes. So
make it possible to define the pga and control name with PGA_NAME and
CONTROL_NAME.
Signed-off-by: Jaska Uimonen <jaska.uimonen@intel.com>
This pipeline adds support for S24_LE, 2 channels, 48KHz playback.
cs42888 codec is connected to i.MX8QXP board on ESAI0 interface
as follows:
i.MX8QXP CPU board <--> i.MX8 base board <-> Audio I/O card
(setup similar with i.MX8QM, so this topology can be used as it is
on i.MX8QM in the future).
Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
Currently having different amount of periods between DAI and the
component before it is not allowed. This is because it is not allowed to
resize dma connected buffers. So make 50kHz topology use src-volume
pipeline, which has additional volume component, which in turn has
correct amount of periods for the DAI connection.
Signed-off-by: Jaska Uimonen <jaska.uimonen@intel.com>
i.MX8QXP has one ESAI interface. Create a simple topology
without a codec for playback of 2 channels, 16bits samples
at 48Khz.
Host -> Buffer0 -> Volume -> Buffer1 -> ESAI0
This is useful for testing various components like Dummy DMA,
EDMA and ESAI drivers.
For more information about ESAI you can read i.MX8QXP RM at:
https://www.nxp.com/docs/en/reference-manual/IMX8DQXPRM.pdf
Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
Somehow there is an extra "48" in DAI_ADD() and it uses wrong
pipeline in PCM_PLAYBACK_ADD().
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
sof-icl-rt711-rt1308-rt715-hdmi.m4 is based on sof-icl-rt711-rt1308
-rt715.m4 with hdmi supported.
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Adds complete callback to task. Some EDF tasks will need to have
additional callback on task completion, which will be executed
in critical section along the setting task state to complete.
Doing it during regular execution is not enough, because it's done
on passive level and we want to avoid any race condition.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
With m/n divider support, we can now support 24 bit/ 48k
on max98357a.
Add check to only use update BCLK if m/n support is present.
Else fallback to older settings.
Signed-off-by: Sathya Prakash M R <sathya.prakash.m.r@intel.com>
Add rt1011 speaker CML Audio topology on top of
sof_rt5682 where RT1011 is configured as
TDM 4 SLOT ( 2 CH PB and 4 CH Feedback), 100 FS BCLK.
BCLK delay is added for supported ABI versions.
Signed-off-by: Sathya Prakash M R <sathya.prakash.m.r@intel.com>
Some of the features on topology need to have
ABI version check. This adds few definitions to
check ABI version being 3.9 or more.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Signed-off-by: Sathya Prakash M R <sathya.prakash.m.r@intel.com>
The PCM512x requires 32-bit data words, so the only solution is to use
a 3.2MHz bit clock and a 48->50kHz SRC.
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Update the topology to use the same iDisp link_id's as in
tgl-rt1308 m/c driver.
Signed-off-by: Sathyanarayana Nujella <sathyanarayana.nujella@intel.com>
Signed-off-by: Jairaj Arava <jairaj.arava@intel.com>
The DAI definition needs to come first otherwise the media pipeline with
be parsed incorrectly resulting in a failure to load the topology
Signed-off-by: Curtis Malainey <cujomalainey@google.com>
This patch updates the locations of "make install" libraries default
install locations into shell script to run SRC test cases. The script
also now prints the used LD_LIBRARY path to ease setting up code
debugging.
The segfault of testbench executable is fixed by returning a valid
pointer reference instead of a NULL from test dummy function
arch_schedulers_get(). The rest of testbench version of schedule.c
was also updated to be like the current real version module.
Finally in the testbench.c main the file names string pointers are
initilizated to null as well as the word length parameter to avoid
a segfault if executable is started without command line arguments
to see the usage help text.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
This patch adds a shell script sof_test_perf.sh that measures
gain, frequency response, and total harmonic distortion plus
noise for a remote device.
Matlab or Octave is needed. The shell script launches by default
Octave to process the signal generation and test results analysis
scripts.
The remote device must be set to be accessible by ssh without
passwords. An external high quality USB sound card is recommended
as analog interface to connect to test device's analog interface.
The configuration file sof_test_perf_config.m must be edited for
the remote device's user account, audio device, audio format, and
capture sound card audio device, and audio format.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
Fixes media pipeline period for nocodec byt and cht topologies.
Now codec and nocodec topologies are aligned in regards to pipe
configurations.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
This patch avoids the need to main SOF ABI version information in
Matlab/Octave file eq_get_abi.m for equalizer tools. The ABI
header is fetched via new "-p" command line option for sof-ctl.
The BSD 3 clause copyright text is also updated to new short style.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
This patch adds command line option "-g" to generate and with help
of options "-o <file>" to store the current ABI version header data
into file. Use "-b" to change the default CSV format to binary.
It is used by external tools to create configuration data blobs for
SOF audio processing components.
The parameter for size is the configuration data payload size with
the size of sof_abi_hdr struct excluded. It does not impact the
the length of printed header. It just places the length into the
correct location in the header.
This patch also fixes the permissions of file output. The mode
need to be provided for open() to avoid having no access to
created file and allow overwrite of existing file.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
Refactors schedule code in order to allow dynamic scheduler
creation. We don't want to add every new scheduler to the static
array of scheduler_ops and also we don't want to have every
scheduler created on every platform. Maybe some of the platforms
won't need some of the future scheduler types.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
SCHEDULE_DEADLINE is replaced with SCHEDULE_PERIOD, but there is one
missed in DAI_ADD for W_PIPELINE.
Signed-off-by: Pan Xiuli <xiuli.pan@linux.intel.com>
The existing IIR response names are not all upper case. This patch
removes the conversion to upper case to be able to automatically
generate the topology m4 syntax example equalizers.
Without this patch run of example_iir_eq.m script causes successive
topologies build to fail.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
Passes sof context structure to the schedulers during
scheduler initialization. It will be required by the new
EDF scheduler.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
If no control name is passed to sof-ctl, it currently pops an error,
dumps the usage and then segfaults:
root@gr-mrb:~# sof-ctl -D hw:0
Error: No control was requested.
Usage: ...
Segmentation fault (core dumped)
Fix all that by jumping to the right label.
Signed-off-by: Dragos Tarcatu <dragos_tarcatu@mentor.com>
Currently glk kwd pipeline is set to run at 48kHz. This rate is wrong
and will create too big buffers and we will run out of memory. So set
the kwd pipeline rate to 16kHz.
Signed-off-by: Jaska Uimonen <jaska.uimonen@intel.com>
Byt doesn't have enough memory to handle buffer size
increase from updating media pipeline's pcm_max_rate to
96kHz. So limit it to 48khz.
Signed-off-by: Jaska Uimonen <jaska.uimonen@intel.com>
The buffer frame size calculation has obvious issues by
doing division instead of multiplication. On the other
hand we can't do decimal calculations in M4. So fix this
by introducing new macro for buffer frame size where we
multiply samplerate and schedule_period and divide by
1000000.
Signed-off-by: Jaska Uimonen <jaska.uimonen@intel.com>
This patch alters topologies those use pipelines definitions from
intel-generic-dmic.m4. The 48 kHz and 16 kHz capture pipelines are
changed to use pipe-eq-capture instead of pipe-volume-capture. The new
pipeline contains volume but also an IIR EQ set for second order
high-pass with 50 Hz cut-off frequency. The IIR includes +20 dB
gain. The volume max is decreased by 10 dB due to the amplifying
IIR add.
The gain in IIR helps with too low capture loudness with default 0 dB
setting for volume. Further gain can be achieved with volume control.
The high-pass filter fixes the issue of too slow DCCOMP settling in
DMIC platform hardware. With IIR add the DMIC unmute ramp is shortened
to 200 ms from 400 ms in the 48 kHz pipeline. In 16 kHz pipeline the
400ms unmute is preserved due to slower DCCOMP settling time.
The min. channels count of two is replaced by pipeline channels count
macro to prevent corrupt capture to happen by capturing as 2ch from
4ch source.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
This patch replaces minimum channel count two by PIPELINE_CHANNELS to
avoid corrupted capture audio due to capturing other channel count
than what the DAI is configured for.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
This patch fixes the wrong file path to output example EQs and places
an identifier string to high-pass responses used in topology embedded
filter setup. The identifier is needed to correctly refer in topology
to right response when there are several similar type EQs in the
topology e.g. two separate IIR filters.
A new 16 kHz rate high-pass filter export is added into the script to
be used in voice pipelines.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
Enable setting pcm min and max rate from top level m4 pipeline macro.
This way it is possible to configure the whole pipeline to correct
samplerate range in 1 file. Previously you needed to modify the pipeline
macros where the rate was hardcoded. As the frame count is calculated
from pcm/dai rate and scheduling time the frame count is obsolete.
Introduce pipeline rate parameter to help configuring components with
fixed output rate. We can't deduce this from pcm range since for example
src might accept bigger max rate than the following dai. Even though the
parameter is named "pipeline rate" it essentially means the "final"
output rate to which this pipeline is connected to (dai or other
pipeline). In capture pipelines it means the originating fixed dai rate.
Signed-off-by: Jaska Uimonen <jaska.uimonen@intel.com>
DMIC32 and DMIC16 are just confusing. It's not clear if the numbers
refer to kHz or bits. Rename to make the names self-explanatory.
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Not all HDaudio platforms have DMIC support, generate solution without
any DMIC. This will be used in combination with NHLT information (or
kernel module parameter) by the driver to automatically select the
relevant topology.
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
sof-pci-dev and sof-acpi-dev were renamed, so make sure we handle the
new names. The old ones are kept for backwards compatibility but will
be removed at some point.
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
In theory we wouldn't need to explicitly load the rt700 driver but
doing so solves a race condition we will have to fix in the kernel at
some point.
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
This is required for Cherrytrail/Baytrail Chromebooks.
Note that the driver still has problems but the scripts are fine.
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Replaces spin_lock_* macros with irq_local_* macros
in many places. Most of the code doesn't need to keep
synchronization between cores. Setting critical section
by disabling local interrupts is enough. Spinlocks should
be used only in the places, where both cores have access.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
This commit introduces the ingredients required for adding
fuzzing support in SOF. The main ingredients are as follows:
QEMU bridge: This creates the IO bridge to communicate with
the QEMU DSP
Core IA host support for BYT/CHT platforms: Provides the host
support for intializing the platform and communicating with
the QEMU DSP
Main application: The fuzzing application that sets up the
platform and initializes the communication with the QEMU DSP
Currently, running the fuzzer application only sets up the
platform IO bridge for communicating with the QEMU DSP,
boots the FW, parses the topology file and sets up the components
and connections in topology by sending the IPC messages to
the QEMU DSP. The next step is to add the fuzzing component
which will be responsible for sending fuzzed IPC messages
and monitoring the status.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
The topology parser in testbench can be re-used for
the other applications like the fuzzer. In order to
accomplish this, this commit does the following:
1. Separate the topology parser into a separate project
(tplg_parser) which implements the callbacks for parsing
all the components in topology.
2. Add support for parsing new components such as host
pcm, dai and mixer
3. Include the topology parser as an external project
in the testbench.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Refactors timer a little bit, to make better usage
of timer id values. Right now every timer has also irq
field, which is used to identify which interrupt line
to enable/disable. We don't longer need timer id to represent
also timer irq, so let's set custom ids and simplify
things.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
Instead of returning next period, schedule functions should return
state of the executed task. Period of the tasks is set during
initialization and doesn't change dynamically, so it doesn't make
sense to return it. With the new added SOF_TASK_STATE_RESCHEDULE
we can easily decide if the task is completed or maybe need to
be run once again.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
Extracts flags to generic task data, so there is no need
for ll_schedule to keep them privately. Also changes the
way they are passed. From now on flags should be set only
during task initialization and not when starting scheduling.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
Adds new period field to task private data to keep
period set during schedule. Tasks shouldn't change
their period dynamically and in fact there is no
such task.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
On exceptions and panics, the code will reach panic_rewind. That
function will, among the other things it needs to do to dump the info,
will also dump the exception cause (exccause register). This means that
normally coredumps from panics and those from exceptions are
indistinguishable.
In this commit I reserve the maximum value for exccause (63) to signify
that the dump actually came from a panic instead of a hardware
exception. The easiest way I could see that would not duplicate code is
to simply set the exccause register to this reserved value (otherwise it
could be undefined, as it's not initialized at boot).
I also update the core dumper tool to use 63 as the value reserved for
panics instead of 0 (which is IllegalInstructionCause, a valid hardware
exception).
Signed-off-by: Paul Olaru <paul.olaru@nxp.com>
This patch updates header file to support 24/32 bit samples
and also adds new default config.
Signed-off-by: Marcin Rajwa <marcin.rajwa@linux.intel.com>
to align with machine driver
The physical link iDisp1 ID for HDMI should be changed to 3,4,5
to align with machine driver. ID 2 is defined for DMIC16k.
Signed-off-by: Zhang Keqiao <keqiao.zhang@linux.intel.com>
These traces shouldn't be duplicated, they should be in
more public header because they are used outside of FW.
Signed-off-by: Janusz Jankowski <janusz.jankowski@linux.intel.com>
Moves headers to dedicated directories in sof/include,
arch/include and platform/include. File tree was too flat,
so some of the files has been moved.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
Cleanups includes in all drivers, include and
platform files. Unused headers has been removed
and needed has beed added.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
Cleanups inclusions in ipc, kernel and user headers.
Some of the headers were missing and some weren't needed.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
This patch provides needed maintenance. The pipelines
missed the volume ramp tokens and caused topology build fail for
topologies those would use the pipeline macros
pipe-eq-fir-volume-playback.m4 and pipe-eq-iir-volume-playback.m4.
The embedded filter coefficients in these pipelines were replaced
by included default FIR and IIR filter coefficients to fix ABI
incompatibility in the configuration blobs and ease future
maintenance of these pipelines.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
driver
The BE id for amplifier pipeline should be changed to 6 to align with
machine driver (The commit ASoC: Intel: sof-rt5682: correct naming for
dmic16k).
Cc: Sathya Prakash M R <sathya.prakash.m.r@intel.com>
Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
Add volume component, change to use 16KHz sample rate, and modify the
PCM ID from 5 to 8, as it is in lower priority comparing with pipelines
like amplifier.
Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
Move ctl_elem pointers and buffer initialization out of main(), and
replace calling alloca APIs with malloc ones to make they are shareable
between different functions.
Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
Firmware may use different component specified type in abi header, to
support more than one kcontrols for the same component, here add '-t' to
support specifying this component specified type in the abi header.
Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
Split buffer allocating and freeing part from main(), add separated
functions and call them from main().
Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
Using '-r' with '-s' means no abi header for the input file, and asks
for not dumping abi header when using '-r' without '-s'.
Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
This will be used on large input file scenario, we need to allocate
buffer according to the input file size.
Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
We might dump kcontrol values in different format, create data_dump()
and csv_data_dump() for that.
Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
Add a globle struct which will store params and be shared among
functions in the later commits, to make the code more readable.
Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
As dmic only support 16 bit or 32 bit, we configure dmic dai to be
s32_le, and pipelines to be s24_le.
Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
We need volume component after dmic for either volume change or format
converting, here add volume component between dmic and kpb.
And after this, our kwd can support all s16_le, s24_4le, and s32_le PCM
capabilities.
Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
Extracts schedule related implementations to the separate
directory to make it easier to locate and implement new
schedulers in the future.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
It is derived from sof-cml-rt5682.m4, keyword detect pipelines added to
it for Keyphrase Detection feature support.
Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
For detector component, the size of configure blob can be up to 300KB,
here enlarge the max to meet this requirement.
Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
This patch adds to all DMIC related topologies the new token
SOF_TKN_INTEL_DMIC_UNMUTE_RAMP_TIME_MS. The value is set to 400
to correspond to 400 milliseconds long unmute ramp time. The
topology defined unmute will override the firmware internal
hard coded value if it is set in topology.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
This patch provides default parameters for newly added
detect_preamble and history_depth. Both by default are
set to max buffering time of KPB.
Signed-off-by: Marcin Rajwa <marcin.rajwa@linux.intel.com>
Logger was aware only of debugfs entries for BYT/HSW platforms.
This commit adds debugfs entries for APL/CNL.
Signed-off-by: Janusz Jankowski <janusz.jankowski@linux.intel.com>
Dump the ABI header from source CSV or DSP data. This will make it
obvious if there are any ABI differences.
Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
This tool is generic and can be used with any binary kcontrol to
send data to/from components at runtime.
Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Byt media pipeline has different parameters in topology for scheduling
deadline and frame count than apl. This produces funny 4-8x speed
playback. So unify with apl media pipe.
Signed-off-by: Jaska Uimonen <jaska.uimonen@intel.com>
Some of interface headers are not needed by kernel,
but are needed by user-space applications, so we can split them
into multiple directories that indicate their purpose.
Signed-off-by: Janusz Jankowski <janusz.jankowski@linux.intel.com>
Ipc private data needed by ptable processing removed from
platforms that do not use it.
Less ifdef-s in the main common ipc code, another new unit
compiled for platforms that require ptables.
Dependency on the private data removed from the main ipc code
and moved to the platform specific code. A dependency between
ipc-host-ptable and platform's ipc private data is easier to
maintain then duplicated code in the main ipc units.
Signed-off-by: Marcin Maka <marcin.maka@linux.intel.com>
This flag is not private since used by the common IPC handler layer.
This move enables also the next step to make the ipc private data really
private (hidden in the platform ipc code) and make platform specific.
Signed-off-by: Marcin Maka <marcin.maka@linux.intel.com>
Pipeline format determines the buffer size calculation. With the
pipeline format set to S16_LE, hw_params fails for S24_LE and S32_LE
formats. So, change the pipeline format to s32le to support all
three formats.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
This patch changes the secondary DMIC FIFO configuration into 32 bits
mode for better quality. Since there is volume component in DMIC
capture pipelines the conversion to other PCM formats can happen
there. Using volume controller with 32 bit input gives a lot better
audio quality when the microphone signal needs amplification.
The scheduling of 16 kHz DAI is changed to 1000us. The comment
of 1000 us is correct but the parameter 48 is not. With 16 frames
the scheduling becomes the desired. This change should also save
some RAM due to smaller buffers.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>