• Ulf Hansson's avatar
    PM / Domains: Add dev_pm_domain_attach_by_id() to manage multi PM domains · 82e12d9e
    Ulf Hansson authored
    The existing dev_pm_domain_attach() function, allows a single PM domain to
    be attached per device. To be able to support devices that are partitioned
    across multiple PM domains, let's introduce a new interface,
    dev_pm_domain_attach_by_id().
    
    The dev_pm_domain_attach_by_id() returns a new allocated struct device with
    the corresponding attached PM domain. This enables for example a driver to
    operate on the new device from a power management point of view. The driver
    may then also benefit from using the received device, to set up so called
    device-links towards its original device. Depending on the situation, these
    links may then be dynamically changed.
    
    The new interface is typically called by drivers during their probe phase,
    in case they manages devices which uses multiple PM domains. If that is the
    case, the driver also becomes responsible of managing the detaching of the
    PM domains, which typically should be done at the remove phase. Detaching
    is done by calling the existing dev_pm_domain_detach() function and for
    each of the received devices from dev_pm_domain_attach_by_id().
    
    Note, currently its only genpd that supports multiple PM domains per
    device, but dev_pm_domain_attach_by_id() can easily by extended to cover
    other PM domain types, if/when needed.
    Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
    Acked-by: default avatarJon Hunter <jonathanh@nvidia.com>
    Tested-by: default avatarJon Hunter <jonathanh@nvidia.com>
    Reviewed-by: default avatarViresh Kumar <viresh.kumar@linaro.org>
    Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
    82e12d9e
common.c 5.87 KB