Skip to content

Conversation

@bkokoszx
Copy link
Collaborator

This commit refines eq_fir/irr verify() functions:

  1. eq_fir component is not able to change stream format,
    so we should invoke comp_verify_function() with flag
    equal to 0.
  2. In eq_iir component we should check whether we can
    support frame_fmt conversion due to source and sink
    buffer frame_fmt's. If not, we should overwrite sink (playback)
    and source (capture) with pcm frame_fmt and not make any
    conversion (sink and source frame_fmt will be equal).

Fixes #2401

We do not have to rewrite source/sink frame_fmt. It has been set
in eq_iir_verify_params() function.

Signed-off-by: Bartosz Kokoszko <bartoszx.kokoszko@linux.intel.com>
We do not have to rewrite source/sink frame_fmt. It has been
set in eq_fir_verify_params() function.

Signed-off-by: Bartosz Kokoszko <bartoszx.kokoszko@linux.intel.com>
@bkokoszx bkokoszx requested a review from singalsu as a code owner February 20, 2020 14:37
eq_fir component is not able to change stream format, so we
should invoke comp_verify_function() with flag equal to 0.

Signed-off-by: Bartosz Kokoszko <bartoszx.kokoszko@linux.intel.com>
@singalsu
Copy link
Collaborator

singalsu commented Feb 20, 2020

I have a question to decide how important is it to preserve format conversion capability in IIR. If we have pipeline like this

DAI (DMIC, 32 bit) --> IIR ---> host (16 bit)

Where would the conversion from 32 bits to 16 bits happen if we would remove the capability from IIR?

If DAI would convert to 16 bits and IIR would run in 16 -> 16 bits mode the quality would not be as good. I made the conversion capability into IIR to be able to get higher quality 16 bit output from DMIC than bare-HW can provide.

Also thanks for the fix! I'll review tomorrow.

Copy link
Member

@lgirdwood lgirdwood left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@singalsu wont merge until you are happy.

@bkokoszx
Copy link
Collaborator Author

@singalsu
Thanks, your comment helped me to find little issue (PR #2421).
Answering your question (in FW with new PR #2421) it will depend how we will create DAI component. If we create DAI component with frame_fmt equal to 32 format in struct sof_ipc_comp_config, conversion will happen on IIR component, otherwise if we create DAI component with 16 format, conversion will happen on DAI.

@singalsu
Copy link
Collaborator

Thanks for explanation, then it makes sense to keep the capability.

@lgirdwood
Copy link
Member

@bkokoszx can you check internal CI. Seems to be down.

We should check whether we can support frame_fmt conversion
due to source and sink buffer frame_fmt's. If not, we should
overwrite sink (playback) and source (capture) with pcm
frame_fmt and not make any conversion (sink and source
frame_fmt will be equal).

Signed-off-by: Bartosz Kokoszko <bartoszx.kokoszko@linux.intel.com>
@bkokoszx bkokoszx force-pushed the fix-eq-verify-function branch from f37ebb5 to 650e166 Compare February 21, 2020 13:38
@lgirdwood lgirdwood merged commit 1d273c3 into thesofproject:master Feb 23, 2020
@bkokoszx bkokoszx deleted the fix-eq-verify-function branch March 10, 2020 12:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[BUG][APL][PCM512X]EQ-test occur ipc error for 0x60010000 size 20

4 participants