return ret;
}
-static void ufs_intel_ctrl_uic_compl(struct ufs_hba *hba, bool enable)
-{
- u32 set = ufshcd_readl(hba, REG_INTERRUPT_ENABLE);
-
- if (enable)
- set |= UIC_COMMAND_COMPL;
- else
- set &= ~UIC_COMMAND_COMPL;
- ufshcd_writel(hba, set, REG_INTERRUPT_ENABLE);
-}
-
-static void ufs_intel_mtl_h8_notify(struct ufs_hba *hba,
- enum uic_cmd_dme cmd,
- enum ufs_notify_change_status status)
-{
- /*
- * Disable UIC COMPL INTR to prevent access to UFSHCI after
- * checking HCS.UPMCRS
- */
- if (status == PRE_CHANGE && cmd == UIC_CMD_DME_HIBER_ENTER)
- ufs_intel_ctrl_uic_compl(hba, false);
-
- if (status == POST_CHANGE && cmd == UIC_CMD_DME_HIBER_EXIT)
- ufs_intel_ctrl_uic_compl(hba, true);
-}
-
#define INTEL_ACTIVELTR 0x804
#define INTEL_IDLELTR 0x808
.init = ufs_intel_mtl_init,
.exit = ufs_intel_common_exit,
.hce_enable_notify = ufs_intel_hce_enable_notify,
- .hibern8_notify = ufs_intel_mtl_h8_notify,
.link_startup_notify = ufs_intel_link_startup_notify,
.resume = ufs_intel_resume,
.device_reset = ufs_intel_device_reset,