diff options
author | Kiwoong Kim <kwmad.kim@samsung.com> | 2016-11-10 15:17:43 +0300 |
---|---|---|
committer | Martin K. Petersen <martin.petersen@oracle.com> | 2016-11-12 18:35:42 +0300 |
commit | ee32c9098f2eff12c0e020aac2acade8250c80e4 (patch) | |
tree | bcfdea9b2bd968809c423695361fb4ffcb2e6703 /drivers/scsi/ufs/ufshcd.h | |
parent | d2877be42f35a8420dc452cf775b5f99b55169aa (diff) | |
download | linux-ee32c9098f2eff12c0e020aac2acade8250c80e4.tar.xz |
scsi: ufs: introduce hibern8_notify callback
Some UFS host controller may need to configure some things around
hibern8 enter/exit
Signed-off-by: Kiwoong Kim <kwmad.kim@samsung.com>
Reviewed-by: Subhash Jadavani <subhashj@codeaurora.org>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Diffstat (limited to 'drivers/scsi/ufs/ufshcd.h')
-rw-r--r-- | drivers/scsi/ufs/ufshcd.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/scsi/ufs/ufshcd.h b/drivers/scsi/ufs/ufshcd.h index 05d8384a9b2a..8e76501144d6 100644 --- a/drivers/scsi/ufs/ufshcd.h +++ b/drivers/scsi/ufs/ufshcd.h @@ -265,6 +265,8 @@ struct ufs_pwr_mode_info { * to set some things * @setup_task_mgmt: called before any task management request is issued * to set some things + * @hibern8_notify: called around hibern8 enter/exit + * to configure some things * @suspend: called during host controller PM callback * @resume: called during host controller PM callback * @dbg_register_dump: used to dump controller debug information @@ -290,6 +292,8 @@ struct ufs_hba_variant_ops { struct ufs_pa_layer_attr *); void (*setup_xfer_req)(struct ufs_hba *, int, bool); void (*setup_task_mgmt)(struct ufs_hba *, int, u8); + void (*hibern8_notify)(struct ufs_hba *, enum uic_cmd_dme, + enum ufs_notify_change_status); int (*suspend)(struct ufs_hba *, enum ufs_pm_op); int (*resume)(struct ufs_hba *, enum ufs_pm_op); void (*dbg_register_dump)(struct ufs_hba *hba); @@ -821,6 +825,14 @@ static inline void ufshcd_vops_setup_task_mgmt(struct ufs_hba *hba, return hba->vops->setup_task_mgmt(hba, tag, tm_function); } +static inline void ufshcd_vops_hibern8_notify(struct ufs_hba *hba, + enum uic_cmd_dme cmd, + enum ufs_notify_change_status status) +{ + if (hba->vops && hba->vops->hibern8_notify) + return hba->vops->hibern8_notify(hba, cmd, status); +} + static inline int ufshcd_vops_suspend(struct ufs_hba *hba, enum ufs_pm_op op) { if (hba->vops && hba->vops->suspend) |