• Mukesh Kumar Savaliya's avatar
    i3c: master: Enable runtime PM for master controller · 29391d91
    Mukesh Kumar Savaliya authored
    Enable runtime PM for i3c master node during master registration time.
    
    Sometimes i3c client device driver may want to control the PM of the
    parent (master) to perform the transactions and save the power in an
    efficient way by controlling the session. Hence device can call PM
    APIs by passing the parent node.
    
    Here, I3C target device when calls pm_runtime_get_sync(dev->parent)
    couldn't invoke master drivers runtime PM callback registered by
    the master driver because parent's PM status was disabled in the
    Master node.
    
    Also call pm_runtime_no_callbacks() and pm_suspend_ignore_children()
    for the master node to not have any callback addition and ignore the
    children to have runtime PM work just locally in the driver. This
    should be generic and common change for all i3c devices and should
    not have any other impact.
    
    With these changes, I3C client device works and able to invoke
    master driver registered runtime PM callbacks.
    Signed-off-by: default avatarMukesh Kumar Savaliya <quic_msavaliy@quicinc.com>
    Link: https://lore.kernel.org/r/20240228093407.4038399-1-quic_msavaliy@quicinc.comSigned-off-by: default avatarAlexandre Belloni <alexandre.belloni@bootlin.com>
    29391d91
master.c 74.2 KB