Skip to content

Support unloading/reloading a subset of pipelines(and its widgets/components) when they are not used. #1146

Closed

Description

@keyonjie

On some platforms like byt/cht, there is very limited SRAM for aDSP to use, and on other platforms when aDSP run on D0ix, we hope to use as less of the SRAM as possible, so adding support to unload a subset of all existed pipelines(and its widgets/components) from FW is meaningful and inevitable.

To implement the feature on today's base, changes needed in driver side:

  1. Keep all widgets (pipeline components for FW), routes (pipeline connection for FW), dais (dai config for FW), kcontrol values stored in driver side after they are created at topology binary parsing, even though they are unloaded in FW.

  2. Implement a helper function to unload/free and reload/new a specific pipeline and then its widgets(check with swidget->pipeline_id).

  3. call helper function implemented in Enable tone generator - Part 1 #2 at d0i0<->d0i3 transition, for each idle PCMs(need to figure out how to find pipeline_id from PCM), to unload/reload the subset of pipelines and its widgets.

Activity

  1. changed the title [-]Support unload/reload a subset of pipelines(and its widgets/components) when they are not used.[/-] [+]Support unloading/reloading a subset of pipelines(and its widgets/components) when they are not used.[/+] on Aug 21, 2019
  2. keyonjie commented on Aug 21, 2019

    @keyonjie
    Author

    @plbossart @ranj063 @mmaka1 @lbetlej please help review this feature reqirement.

  3. plbossart commented on Aug 21, 2019

    @plbossart
    Member

    For power optimizations, you want to have both D0ix signaling and activation of pipelines on a need basis, but each can be developed separately. You will have a lot of development issues if you lump the two aspects in one milestone. one step at a time is my recommendation.

  4. keyonjie commented on Aug 22, 2019

    @keyonjie
    Author

    For power optimizations, you want to have both D0ix signaling and activation of pipelines on a need basis, but each can be developed separately. You will have a lot of development issues if you lump the two aspects in one milestone. one step at a time is my recommendation.

    Good point, thanks.

  5. plbossart commented on Jun 10, 2021

    @plbossart
    Member

    @keyonjie @ranj063 isn't this implemented with dynamic pipelines already? If yes there's no reason to keep this as an enhancement request. Please close unless I missed something.

  6. mengdonglin commented on Jun 15, 2021

    @mengdonglin

    @RanderWang I think this is the driver behavior to work with converged FW. Right?

  7. RanderWang commented on Jun 16, 2021

    @RanderWang

    @RanderWang I think this is the driver behavior to work with converged FW. Right?

    sure, driver will disable everything unnecessary in FW.

  8. ranj063 commented on Jun 16, 2021

    @ranj063
    Collaborator

    @mengdonglin no this is a feature already available today in SOF.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions