> > From: jongmin jeong <jjmin.jeong@xxxxxxxxxxx> > > samsung ExynosAuto9 SoC has two types of host controller interface to support > the virtualization of UFS Device. > One is the physical host(PH) that the same as conventaional UFSHCI, and the > other is the virtual host(VH) that support data transfer function only. > > In this structure, the virtual host does not support UIC command. > To support this, we add the quirk and return 0 when the UIC command send > function is called. > > Cc: Alim Akhtar <alim.akhtar@xxxxxxxxxxx> > Cc: James E.J. Bottomley <jejb@xxxxxxxxxxxxx> > Cc: Martin K. Petersen <martin.petersen@xxxxxxxxxx> > Cc: Bart Van Assche <bvanassche@xxxxxxx> > Reviewed-by: Alim Akhtar <alim.akhtar@xxxxxxxxxxx> > Signed-off-by: jongmin jeong <jjmin.jeong@xxxxxxxxxxx> > Signed-off-by: Chanho Park <chanho61.park@xxxxxxxxxxx> You forgot to set this quirk / opt for ufs-samsung. Thanks, Avri > --- > drivers/scsi/ufs/ufshcd.c | 3 +++ > drivers/scsi/ufs/ufshcd.h | 6 ++++++ > 2 files changed, 9 insertions(+) > > diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c index > 188de6f91050..7cf8e688aec8 100644 > --- a/drivers/scsi/ufs/ufshcd.c > +++ b/drivers/scsi/ufs/ufshcd.c > @@ -2322,6 +2322,9 @@ int ufshcd_send_uic_cmd(struct ufs_hba *hba, > struct uic_command *uic_cmd) > int ret; > unsigned long flags; > > + if (hba->quirks & UFSHCD_QUIRK_BROKEN_UIC_CMD) > + return 0; > + > ufshcd_hold(hba, false); > mutex_lock(&hba->uic_cmd_mutex); > ufshcd_add_delay_before_dme_cmd(hba); > diff --git a/drivers/scsi/ufs/ufshcd.h b/drivers/scsi/ufs/ufshcd.h index > f0da5d3db1fa..5d485d65591f 100644 > --- a/drivers/scsi/ufs/ufshcd.h > +++ b/drivers/scsi/ufs/ufshcd.h > @@ -588,6 +588,12 @@ enum ufshcd_quirks { > * This quirk allows only sg entries aligned with page size. > */ > UFSHCD_QUIRK_ALIGN_SG_WITH_PAGE_SIZE = 1 << 14, > + > + /* > + * This quirk needs to be enabled if the host controller does not > + * support UIC command > + */ > + UFSHCD_QUIRK_BROKEN_UIC_CMD = 1 << 15, > }; > > enum ufshcd_caps { > -- > 2.33.0