+static int __maybe_unused qcom_mpm_suspend_late(struct device *dev)
+{
+ struct qcom_mpm_priv *priv = dev_get_drvdata(dev);
+ int i, ret;
+
+ for (i = 0; i < priv->reg_stride; i++)
+ qcom_mpm_write(priv, MPM_REG_STATUS, i, 0);
+
+ /* Notify RPM to write vMPM into HW */
+ ret = mbox_send_message(priv->mbox_chan, NULL);
+ if (ret < 0)
+ return ret;
+
+ return 0;
+}
+
+static int __maybe_unused qcom_mpm_resume_early(struct device *dev)
+{
+ /* Nothing to do for now */
+ return 0;
+}
+
+static const struct dev_pm_ops qcom_mpm_pm_ops = {
+ SET_LATE_SYSTEM_SLEEP_PM_OPS(qcom_mpm_suspend_late,
+ qcom_mpm_resume_early)
+};