From fc79c93657217e324d1b5952d9b89369d26d11c9 Mon Sep 17 00:00:00 2001 From: jongmin jeong Date: Thu, 27 May 2021 12:09:00 +0900 Subject: [PATCH] FROMLIST: scsi: ufs: add quirk to enable host controller without interface configuration samsung ExynosAuto 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 like device management. This patch skips the interface configuration part that cannot be performed in the virtual host. Signed-off-by: jongmin jeong Link: https://lore.kernel.org/linux-scsi/20210709065711.25195-3-chanho61.park@samsung.com/ Bug: 190689163 Signed-off-by: Chanho Park Change-Id: I65b56f898da9d57c627b5752535dd563e4fd3e8d --- 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 d2226800c65b..6abbf3c47d6c 100644 --- a/drivers/scsi/ufs/ufshcd.c +++ b/drivers/scsi/ufs/ufshcd.c @@ -7964,6 +7964,9 @@ static int ufshcd_probe_hba(struct ufs_hba *hba, bool async) if (ret) goto out; + if (hba->quirks & UFSHCD_QUIRK_SKIP_INTERFACE_CONFIGURATION) + goto out; + /* Debug counters initialization */ ufshcd_clear_dbg_ufs_stats(hba); diff --git a/drivers/scsi/ufs/ufshcd.h b/drivers/scsi/ufs/ufshcd.h index 0719df84d5bb..d044ecbb06ad 100644 --- a/drivers/scsi/ufs/ufshcd.h +++ b/drivers/scsi/ufs/ufshcd.h @@ -571,6 +571,12 @@ enum ufshcd_quirks { */ UFSHCD_QUIRK_BROKEN_UIC_CMD = 1 << 15, + /* + * This quirk needs to be enabled if the host controller cannot + * support interface configuration. + */ + UFSHCD_QUIRK_SKIP_INTERFACE_CONFIGURATION = 1 << 16, + /* * This quirk needs to be enabled if the host controller supports inline * encryption, but it needs to initialize the crypto capabilities in a