• Ulf Hansson's avatar
    PM / Domains: Enable users of genpd to specify always on PM domains · ffaa42e8
    Ulf Hansson authored
    The current way to implement an always on PM domain consists of returning
    -EBUSY from the ->power_off() callback. This is a bit different compared to
    using the always on genpd governor, which prevents the PM domain from being
    powered off via runtime suspend, but not via system suspend.
    
    The approach to return -EBUSY from the ->power_off() callback to support
    always on PM domains in genpd is suboptimal. That is because it requires
    genpd to follow the regular execution path of the power off sequence, which
    ends by invoking the ->power_off() callback.
    
    To enable genpd to early abort the power off sequence for always on PM
    domains, it needs static information about these configurations. Therefore
    let's add a new genpd configuration flag, GENPD_FLAG_ALWAYS_ON.
    
    Users of the new GENPD_FLAG_ALWAYS_ON flag, are by genpd required to make
    sure the PM domain is powered on before calling pm_genpd_init(). Moreover,
    users don't need to implement the ->power_off() callback, as genpd doesn't
    ever invoke it.
    Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
    Reviewed-by: default avatarViresh Kumar <viresh.kumar@linaro.org>
    Reviewed-by: default avatarGeert Uytterhoeven <geert+renesas@glider.be>
    Reviewed-by: default avatarBartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
    Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
    ffaa42e8
domain.c 57.6 KB