Skip to content

ASoC: SOF: cnl: add pointer ops to use DPIB position - #826

Merged
plbossart merged 1 commit into
thesofproject:topic/sof-devfrom
keyonjie:cnl_dpib
Apr 12, 2019
Merged

plbossart merged 1 commit into
thesofproject:topic/sof-devfrom
keyonjie:cnl_dpib

Conversation

@keyonjie

Copy link
Copy Markdown

Add .pcm_pointer ops for cannonlake to read DPIB/posbuf and get pointer
for ALSA, to align with apollolake.

Signed-off-by: Keyon Jie yang.jie@linux.intel.com

Add .pcm_pointer ops for cannonlake to read DPIB/posbuf and get pointer
for ALSA, to align with apollolake.

Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
@bardliao

Copy link
Copy Markdown
Collaborator

Thanke @keyonjie this PR fixes #812

@mengdonglin

Copy link
Copy Markdown

This PR also fixed #820. Thanks @keyonjie

@fredoh9
fredoh9 requested review from fredoh9 and plbossart April 12, 2019 13:23
@fredoh9

fredoh9 commented Apr 12, 2019 •

Copy link
Copy Markdown
Collaborator

@keyonjie
should ops->pcm_pointer be set for all platforms after SKL+?
cnl.c is the machine driver for cnl, cml, whl etc all for cAVS 1.8?

@wenqingfu

Copy link
Copy Markdown

cnl.c is the machine driver for cnl, cml, whl etc all for cAVS 1.8?

yes

@plbossart plbossart left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I will merge but that illustrates how flaky our handling of the hw_ptr is. If using DPIB for the position is required for a functional product, then what was this discussion about FORCE_DEBUG_IPC_POSITION all about?
We need to raise our game with devices that work by-design and not by accident, sometimes, depending on which information is used.

@plbossart
plbossart merged commit 2de29fa into thesofproject:topic/sof-dev Apr 12, 2019
@ranj063

ranj063 commented Apr 13, 2019

Copy link
Copy Markdown
Collaborator

cnl.c is the machine driver for cnl, cml, whl etc all for cAVS 1.8?

@fredoh9 not the machine driver but the audio device driver.

@xiulipan

Copy link
Copy Markdown

@plbossart
Actually we should be able to switch between IPC position update and DPIB position update.
BYT will always working on IPC position update, and WHL is accidentally set to run on IPC position update by default. We can use the force IPC update later on WHL.

The problem now is: BYT( with IPC position) is not stable and has a lot of issues in quality and IPC. We are not sure if they are related to IPC position update or DMA.
Related issues and PRs
#808 thesofproject/sof#1257 thesofproject/sof#1247

@plbossart

Copy link
Copy Markdown
Member

Actually we should be able to switch between IPC position update and DPIB position update.

This PR shows the opposite, using IPC position update generates problems with PulseAudio.

@xiulipan

Copy link
Copy Markdown

@plbossart
Yes, that is the problem here. We have not test with PulseAudio for long time. But we still have BYT can only work with IPC position update. So maybe PulseAudio with BYT will also have problem。

@stevyan @Jiangxinx
Could you help to check if there is similar issues on BYT with PulseAudio enabled.

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.

8 participants