#include "ipa_smp2p.h"
 #include "ipa.h"
 #include "ipa_uc.h"
-#include "ipa_clock.h"
 
 /**
  * DOC: IPA SMP2P communication with the modem
 static irqreturn_t ipa_smp2p_modem_setup_ready_isr(int irq, void *dev_id)
 {
        struct ipa_smp2p *smp2p = dev_id;
+       struct device *dev;
        int ret;
 
        mutex_lock(&smp2p->mutex);
                goto out_mutex_unlock;
        smp2p->disabled = true;         /* If any others arrive, ignore them */
 
-       /* The clock needs to be active for setup */
-       ret = ipa_clock_get(smp2p->ipa);
-       if (WARN_ON(ret < 0))
-               goto out_clock_put;
+       /* Power needs to be active for setup */
+       dev = &smp2p->ipa->pdev->dev;
+       ret = pm_runtime_get_sync(dev);
+       if (ret < 0) {
+               dev_err(dev, "error %d getting power for setup\n", ret);
+               goto out_power_put;
+       }
 
        /* An error here won't cause driver shutdown, so warn if one occurs */
        ret = ipa_setup(smp2p->ipa);
        WARN(ret != 0, "error %d from ipa_setup()\n", ret);
 
-out_clock_put:
-       (void)ipa_clock_put(smp2p->ipa);
+out_power_put:
+       (void)pm_runtime_put(dev);
 out_mutex_unlock:
        mutex_unlock(&smp2p->mutex);
 
        if (!ipa->smp2p->clock_on)
                return;
 
-       (void)ipa_clock_put(ipa);
+       (void)pm_runtime_put(&ipa->pdev->dev);
        ipa->smp2p->clock_on = false;
 }