[PATCH v2] ufs: bsg: Add hibern8 enter/exit to ufshcd_send_bsg_uic_cmd

From: Arthur Simchaev
Date: Mon Apr 14 2025 - 08:03:19 EST


This patch adds functionality to allow user-level applications to send
the Hibern8 Enter command via the BSG framework. With this feature,
applications can perform H8 stress tests. Also can be used as one
of the triggers for the Eye monitor measurement feature added to the
M-PHY v5 specification.
For completion, allow the sibling functionality of hibern8 exit as well.

Signed-off-by: Arthur Simchaev <arthur.simchaev@xxxxxxxxxxx>

---
Changed since v1:
- elaborate commit log
---
drivers/ufs/core/ufshcd.c | 10 ++++++++++
1 file changed, 10 insertions(+)

diff --git a/drivers/ufs/core/ufshcd.c b/drivers/ufs/core/ufshcd.c
index be65fc4b5ccd..536b54ccc860 100644
--- a/drivers/ufs/core/ufshcd.c
+++ b/drivers/ufs/core/ufshcd.c
@@ -4363,6 +4363,16 @@ int ufshcd_send_bsg_uic_cmd(struct ufs_hba *hba, struct uic_command *uic_cmd)
goto out;
}

+ if (uic_cmd->command == UIC_CMD_DME_HIBER_ENTER) {
+ ret = ufshcd_uic_hibern8_enter(hba);
+ goto out;
+ }
+
+ if (uic_cmd->command == UIC_CMD_DME_HIBER_EXIT) {
+ ret = ufshcd_uic_hibern8_exit(hba, uic_cmd);
+ goto out;
+ }
+
mutex_lock(&hba->uic_cmd_mutex);
ufshcd_add_delay_before_dme_cmd(hba);

--
2.49.0