RE: [PATCH v2] ufs: bsg: Add hibern8 enter/exit to ufshcd_send_bsg_uic_cmd
From: Arthur Simchaev
Date: Tue Apr 15 2025 - 13:15:21 EST
> This is wrong. The BSG interface shouldn't alter the power state without
> informing the SCSI core about these power state changes. Please use existing
> sysfs attributes to modify the power state or add new sysfs attributes if
> necessary.
>
> Bart.
Thank you Bart, I will fix it
> -----Original Message-----
> From: Bart Van Assche <bvanassche@xxxxxxx>
> Sent: Monday, April 14, 2025 7:16 PM
> To: Arthur Simchaev <Arthur.Simchaev@xxxxxxxxxxx>
> Cc: Avri Altman <Avri.Altman@xxxxxxxxxxx>; Avi Shchislowski
> <Avi.Shchislowski@xxxxxxxxxxx>; beanhuo@xxxxxxxxxx; linux-
> scsi@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx
> Subject: Re: [PATCH v2] ufs: bsg: Add hibern8 enter/exit to
> ufshcd_send_bsg_uic_cmd
>
> On 4/14/25 5:02 AM, Arthur Simchaev wrote:
> > 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);
>