lkml.org 
[lkml]   [2020]   [Aug]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v2 10/12] soundwire: intel_init: handle power rail dependencies for clock stop mode
    Date
    From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>

    When none of the clock stop quirks is specified, the Master IP will
    assume the context is preserved and will not reset the Bus and restart
    enumeration. Due to power rail dependencies, the HDaudio controller
    needs to remain powered and prevented from executing its pm_runtime
    suspend routine.

    This choice of course has a power impact, and this mode should only be
    selected when latency requirements are critical or the parent device
    can enter D0ix modes.

    Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
    Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
    ---
    drivers/soundwire/intel_init.c | 13 +++++++++++++
    1 file changed, 13 insertions(+)

    diff --git a/drivers/soundwire/intel_init.c b/drivers/soundwire/intel_init.c
    index dd1050743dca..add46d8fc85c 100644
    --- a/drivers/soundwire/intel_init.c
    +++ b/drivers/soundwire/intel_init.c
    @@ -73,6 +73,9 @@ static int sdw_intel_cleanup(struct sdw_intel_ctx *ctx)
    pm_runtime_disable(&link->pdev->dev);
    platform_device_unregister(link->pdev);
    }
    +
    + if (!link->clock_stop_quirks)
    + pm_runtime_put_noidle(link->dev);
    }

    return 0;
    @@ -338,6 +341,16 @@ sdw_intel_startup_controller(struct sdw_intel_ctx *ctx)
    continue;

    intel_master_startup(link->pdev);
    +
    + if (!link->clock_stop_quirks) {
    + /*
    + * we need to prevent the parent PCI device
    + * from entering pm_runtime suspend, so that
    + * power rails to the SoundWire IP are not
    + * turned off.
    + */
    + pm_runtime_get_noresume(link->dev);
    + }
    }

    return 0;
    --
    2.17.1
    \
     
     \ /
      Last update: 2020-08-18 05:25    [W:3.500 / U:0.508 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site