Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SSP: need to support MCLK/BCLK/LRCLK on-demand on/off capabilities #629

Open
plbossart opened this issue Nov 26, 2018 · 8 comments
Open
Assignees
Labels
enhancement New feature or request IPC4 Issues observed with IPC4 (same IPC as Windows) P1 Blocker bugs or important features
Milestone

Comments

@plbossart
Copy link
Member

plbossart commented Nov 26, 2018

Some codecs need the MCLK/BCLK/LRCLK to be on before streaming starts (typically 10s of ms to avoid clicks/pops), see e.g. https://elixir.bootlin.com/linux/latest/source/sound/soc/intel/boards/kbl_rt5663_max98927.c#L86 for RT5663

The SSP IPC supports keeping the clock on a boot via the clks_control field, but it's not currently implemented. We would also miss IPC support for on/off requests on-demand (new IPC required?)

Adding @lgirdwood and @mmaka1 as assignees mainly to get comments on what IPC changes would be needed, the implementation can be done later.

@lgirdwood
Copy link
Member

This could be done with another optional IPC sent during prepare() and before trigger.

@dbaluta
Copy link
Collaborator

dbaluta commented Feb 22, 2019

@plbossart @lgirdwood
So the clocks handling is done on the host side and DSP sends requests for various operations on the clocks, right?

@plbossart
Copy link
Member Author

plbossart commented Feb 22, 2019 via email

@dbaluta
Copy link
Collaborator

dbaluta commented Feb 22, 2019

@plbossart Thanks, I understand! On i.MX clock handling would be really fun to implement :). That's because the clock handling is taken care by a separate firmware (running on an M4) and now is handled with commands from the host (Linux) side. So for this reason I've asked about the direction.

@lgirdwood
Copy link
Member

@dbaluta looks like your i.MX SOF driver will need to program M4 ? There are PCM callbacks in the SOF HW abstraction layer so you could add your M4 programming to the hw_params() or prepare() callback ? Btw, if you need other callbacks, then feel free to send a PR.

@jajanusz jajanusz added this to the TBD milestone Jun 6, 2019
@mengdonglin mengdonglin added the IPC4 Issues observed with IPC4 (same IPC as Windows) label Feb 16, 2022
@mengdonglin
Copy link
Collaborator

Comments from Pierre "These features will be enabled with IPC4, in fact I am working on them at the moment since the way to control them is via a gateway configuration in addition to the binary blobs coming from NHLT.

The activation of clocks is handled with a 'gateway configuration', which is made of the 'SSP blob' along with additional commands to configure clocks early.

This capability is handled by the cAVS firmware... I am thinking this is part of the plan for the converged firmware."

@mwasko @lgirdwood Can you please confirm this capability will be supported by the converged firmware?

@lgirdwood
Copy link
Member

@mmaka1 @marcinszkudlinski pls confirm ?

@mwasko
Copy link
Contributor

mwasko commented Feb 28, 2022

Comments from Pierre "These features will be enabled with IPC4, in fact I am working on them at the moment since the way to control them is via a gateway configuration in addition to the binary blobs coming from NHLT.

The activation of clocks is handled with a 'gateway configuration', which is made of the 'SSP blob' along with additional commands to configure clocks early.

This capability is handled by the cAVS firmware... I am thinking this is part of the plan for the converged firmware."

@mwasko @lgirdwood Can you please confirm this capability will be supported by the converged firmware?

yes

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request IPC4 Issues observed with IPC4 (same IPC as Windows) P1 Blocker bugs or important features
Projects
None yet
Development

No branches or pull requests

7 participants