* [PATCH] scsi: ufs: Split the drivers/scsi/ufs directory
@ 2022-05-11 21:25 Bart Van Assche
[not found] ` <202205122323.RcDb4pBm-lkp@intel.com>
` (5 more replies)
0 siblings, 6 replies; 7+ messages in thread
From: Bart Van Assche @ 2022-05-11 21:25 UTC (permalink / raw)
To: Martin K . Petersen
Cc: Jaegeuk Kim, Adrian Hunter, linux-scsi, Bart Van Assche,
Avri Altman, Bean Huo, Bjorn Andersson, Keoseong Park
Split the drivers/scsi/ufs directory into 'core' and 'host' directories
under the drivers/ufs/ directory. Move shared header files into the
include/ufs/ directory. This separation makes it clear which header
files UFS drivers are allowed to include (include/ufs/*.h) and which
header files UFS drivers are not allowed to include
(drivers/ufs/core/*.h).
Update the MAINTAINERS file. Add myself as a UFS reviewer.
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Avri Altman <avri.altman@wdc.com>
Cc: Bean Huo <beanhuo@micron.com>
Cc: Bjorn Andersson <bjorn.andersson@linaro.org>
Cc: Keoseong Park <keosung.park@samsung.com>
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
---
MAINTAINERS | 10 ++-
drivers/Kconfig | 2 +
drivers/Makefile | 1 +
drivers/scsi/Kconfig | 1 -
drivers/scsi/Makefile | 1 -
drivers/ufs/Kconfig | 30 ++++++++
drivers/ufs/Makefile | 5 ++
drivers/ufs/core/Kconfig | 60 +++++++++++++++
drivers/ufs/core/Makefile | 10 +++
drivers/{scsi/ufs => ufs/core}/ufs-debugfs.c | 2 +-
drivers/{scsi/ufs => ufs/core}/ufs-debugfs.h | 0
.../ufs => ufs/core}/ufs-fault-injection.c | 0
.../ufs => ufs/core}/ufs-fault-injection.h | 0
drivers/{scsi/ufs => ufs/core}/ufs-hwmon.c | 2 +-
drivers/{scsi/ufs => ufs/core}/ufs-sysfs.c | 2 +-
drivers/{scsi/ufs => ufs/core}/ufs-sysfs.h | 0
drivers/{scsi/ufs => ufs/core}/ufs_bsg.c | 2 +-
drivers/{scsi/ufs => ufs/core}/ufs_bsg.h | 0
.../{scsi/ufs => ufs/core}/ufshcd-crypto.c | 2 +-
.../{scsi/ufs => ufs/core}/ufshcd-crypto.h | 4 +-
drivers/{scsi/ufs => ufs/core}/ufshcd-priv.h | 2 +-
drivers/{scsi/ufs => ufs/core}/ufshcd.c | 4 +-
drivers/{scsi/ufs => ufs/core}/ufshpb.c | 2 +-
drivers/{scsi/ufs => ufs/core}/ufshpb.h | 0
drivers/{scsi/ufs => ufs/host}/Kconfig | 75 +------------------
drivers/{scsi/ufs => ufs/host}/Makefile | 12 ---
drivers/{scsi/ufs => ufs/host}/cdns-pltfrm.c | 0
.../{scsi/ufs => ufs/host}/tc-dwc-g210-pci.c | 2 +-
.../ufs => ufs/host}/tc-dwc-g210-pltfrm.c | 0
drivers/{scsi/ufs => ufs/host}/tc-dwc-g210.c | 4 +-
drivers/{scsi/ufs => ufs/host}/tc-dwc-g210.h | 0
drivers/{scsi/ufs => ufs/host}/ti-j721e-ufs.c | 0
drivers/{scsi/ufs => ufs/host}/ufs-exynos.c | 6 +-
drivers/{scsi/ufs => ufs/host}/ufs-exynos.h | 0
drivers/{scsi/ufs => ufs/host}/ufs-hisi.c | 8 +-
drivers/{scsi/ufs => ufs/host}/ufs-hisi.h | 0
.../ufs => ufs/host}/ufs-mediatek-trace.h | 2 +-
drivers/{scsi/ufs => ufs/host}/ufs-mediatek.c | 6 +-
drivers/{scsi/ufs => ufs/host}/ufs-mediatek.h | 0
drivers/{scsi/ufs => ufs/host}/ufs-qcom-ice.c | 0
drivers/{scsi/ufs => ufs/host}/ufs-qcom.c | 8 +-
drivers/{scsi/ufs => ufs/host}/ufs-qcom.h | 2 +-
drivers/{scsi/ufs => ufs/host}/ufshcd-dwc.c | 4 +-
drivers/{scsi/ufs => ufs/host}/ufshcd-dwc.h | 2 +-
drivers/{scsi/ufs => ufs/host}/ufshcd-pci.c | 2 +-
.../{scsi/ufs => ufs/host}/ufshcd-pltfrm.c | 4 +-
.../{scsi/ufs => ufs/host}/ufshcd-pltfrm.h | 2 +-
drivers/{scsi/ufs => ufs/host}/ufshci-dwc.h | 0
{drivers/scsi => include}/ufs/ufs.h | 0
{drivers/scsi => include}/ufs/ufs_quirks.h | 0
{drivers/scsi => include}/ufs/ufshcd.h | 8 +-
{drivers/scsi => include}/ufs/ufshci.h | 0
{drivers/scsi => include}/ufs/unipro.h | 0
53 files changed, 156 insertions(+), 133 deletions(-)
create mode 100644 drivers/ufs/Kconfig
create mode 100644 drivers/ufs/Makefile
create mode 100644 drivers/ufs/core/Kconfig
create mode 100644 drivers/ufs/core/Makefile
rename drivers/{scsi/ufs => ufs/core}/ufs-debugfs.c (99%)
rename drivers/{scsi/ufs => ufs/core}/ufs-debugfs.h (100%)
rename drivers/{scsi/ufs => ufs/core}/ufs-fault-injection.c (100%)
rename drivers/{scsi/ufs => ufs/core}/ufs-fault-injection.h (100%)
rename drivers/{scsi/ufs => ufs/core}/ufs-hwmon.c (99%)
rename drivers/{scsi/ufs => ufs/core}/ufs-sysfs.c (99%)
rename drivers/{scsi/ufs => ufs/core}/ufs-sysfs.h (100%)
rename drivers/{scsi/ufs => ufs/core}/ufs_bsg.c (99%)
rename drivers/{scsi/ufs => ufs/core}/ufs_bsg.h (100%)
rename drivers/{scsi/ufs => ufs/core}/ufshcd-crypto.c (99%)
rename drivers/{scsi/ufs => ufs/core}/ufshcd-crypto.h (97%)
rename drivers/{scsi/ufs => ufs/core}/ufshcd-priv.h (99%)
rename drivers/{scsi/ufs => ufs/core}/ufshcd.c (99%)
rename drivers/{scsi/ufs => ufs/core}/ufshpb.c (99%)
rename drivers/{scsi/ufs => ufs/core}/ufshpb.h (100%)
rename drivers/{scsi/ufs => ufs/host}/Kconfig (56%)
rename drivers/{scsi/ufs => ufs/host}/Makefile (56%)
rename drivers/{scsi/ufs => ufs/host}/cdns-pltfrm.c (100%)
rename drivers/{scsi/ufs => ufs/host}/tc-dwc-g210-pci.c (99%)
rename drivers/{scsi/ufs => ufs/host}/tc-dwc-g210-pltfrm.c (100%)
rename drivers/{scsi/ufs => ufs/host}/tc-dwc-g210.c (99%)
rename drivers/{scsi/ufs => ufs/host}/tc-dwc-g210.h (100%)
rename drivers/{scsi/ufs => ufs/host}/ti-j721e-ufs.c (100%)
rename drivers/{scsi/ufs => ufs/host}/ufs-exynos.c (99%)
rename drivers/{scsi/ufs => ufs/host}/ufs-exynos.h (100%)
rename drivers/{scsi/ufs => ufs/host}/ufs-hisi.c (99%)
rename drivers/{scsi/ufs => ufs/host}/ufs-hisi.h (100%)
rename drivers/{scsi/ufs => ufs/host}/ufs-mediatek-trace.h (93%)
rename drivers/{scsi/ufs => ufs/host}/ufs-mediatek.c (99%)
rename drivers/{scsi/ufs => ufs/host}/ufs-mediatek.h (100%)
rename drivers/{scsi/ufs => ufs/host}/ufs-qcom-ice.c (100%)
rename drivers/{scsi/ufs => ufs/host}/ufs-qcom.c (99%)
rename drivers/{scsi/ufs => ufs/host}/ufs-qcom.h (99%)
rename drivers/{scsi/ufs => ufs/host}/ufshcd-dwc.c (98%)
rename drivers/{scsi/ufs => ufs/host}/ufshcd-dwc.h (95%)
rename drivers/{scsi/ufs => ufs/host}/ufshcd-pci.c (99%)
rename drivers/{scsi/ufs => ufs/host}/ufshcd-pltfrm.c (99%)
rename drivers/{scsi/ufs => ufs/host}/ufshcd-pltfrm.h (98%)
rename drivers/{scsi/ufs => ufs/host}/ufshci-dwc.h (100%)
rename {drivers/scsi => include}/ufs/ufs.h (100%)
rename {drivers/scsi => include}/ufs/ufs_quirks.h (100%)
rename {drivers/scsi => include}/ufs/ufshcd.h (99%)
rename {drivers/scsi => include}/ufs/ufshci.h (100%)
rename {drivers/scsi => include}/ufs/unipro.h (100%)
diff --git a/MAINTAINERS b/MAINTAINERS
index ca9d56121974..483a57da1f16 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -2547,7 +2547,7 @@ F: drivers/pci/controller/dwc/pcie-qcom.c
F: drivers/phy/qualcomm/
F: drivers/power/*/msm*
F: drivers/reset/reset-qcom-*
-F: drivers/scsi/ufs/ufs-qcom*
+F: drivers/ufs/host/ufs-qcom*
F: drivers/spi/spi-geni-qcom.c
F: drivers/spi/spi-qcom-qspi.c
F: drivers/spi/spi-qup.c
@@ -17558,6 +17558,7 @@ T: git git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi.git
T: git git://git.kernel.org/pub/scm/linux/kernel/git/mkp/scsi.git
F: Documentation/devicetree/bindings/scsi/
F: drivers/scsi/
+F: drivers/ufs/
F: include/scsi/
SCSI TAPE DRIVER
@@ -20199,24 +20200,25 @@ F: include/linux/visorbus.h
UNIVERSAL FLASH STORAGE HOST CONTROLLER DRIVER
R: Alim Akhtar <alim.akhtar@samsung.com>
R: Avri Altman <avri.altman@wdc.com>
+R: Bart Van Assche <bvanassche@acm.org>
L: linux-scsi@vger.kernel.org
S: Supported
F: Documentation/devicetree/bindings/ufs/
F: Documentation/scsi/ufs.rst
-F: drivers/scsi/ufs/
+F: drivers/ufs/core/
UNIVERSAL FLASH STORAGE HOST CONTROLLER DRIVER DWC HOOKS
M: Pedro Sousa <pedrom.sousa@synopsys.com>
L: linux-scsi@vger.kernel.org
S: Supported
-F: drivers/scsi/ufs/*dwc*
+F: drivers/ufs/host/*dwc*
UNIVERSAL FLASH STORAGE HOST CONTROLLER DRIVER MEDIATEK HOOKS
M: Stanley Chu <stanley.chu@mediatek.com>
L: linux-scsi@vger.kernel.org
L: linux-mediatek@lists.infradead.org (moderated for non-subscribers)
S: Maintained
-F: drivers/scsi/ufs/ufs-mediatek*
+F: drivers/ufs/host/ufs-mediatek*
UNSORTED BLOCK IMAGES (UBI)
M: Richard Weinberger <richard@nod.at>
diff --git a/drivers/Kconfig b/drivers/Kconfig
index 8d6cd5d08722..a7ec388e1848 100644
--- a/drivers/Kconfig
+++ b/drivers/Kconfig
@@ -107,6 +107,8 @@ source "drivers/usb/Kconfig"
source "drivers/mmc/Kconfig"
+source "drivers/ufs/Kconfig"
+
source "drivers/memstick/Kconfig"
source "drivers/leds/Kconfig"
diff --git a/drivers/Makefile b/drivers/Makefile
index 020780b6b4d2..8b4b90202e58 100644
--- a/drivers/Makefile
+++ b/drivers/Makefile
@@ -128,6 +128,7 @@ obj-$(CONFIG_PM_OPP) += opp/
obj-$(CONFIG_CPU_FREQ) += cpufreq/
obj-$(CONFIG_CPU_IDLE) += cpuidle/
obj-y += mmc/
+obj-y += ufs/
obj-$(CONFIG_MEMSTICK) += memstick/
obj-$(CONFIG_NEW_LEDS) += leds/
obj-$(CONFIG_INFINIBAND) += infiniband/
diff --git a/drivers/scsi/Kconfig b/drivers/scsi/Kconfig
index 6e3a04107bb6..a9fe5152addd 100644
--- a/drivers/scsi/Kconfig
+++ b/drivers/scsi/Kconfig
@@ -500,7 +500,6 @@ source "drivers/scsi/megaraid/Kconfig.megaraid"
source "drivers/scsi/mpt3sas/Kconfig"
source "drivers/scsi/mpi3mr/Kconfig"
source "drivers/scsi/smartpqi/Kconfig"
-source "drivers/scsi/ufs/Kconfig"
config SCSI_HPTIOP
tristate "HighPoint RocketRAID 3xxx/4xxx Controller support"
diff --git a/drivers/scsi/Makefile b/drivers/scsi/Makefile
index 19814c26c908..2ad3bc052531 100644
--- a/drivers/scsi/Makefile
+++ b/drivers/scsi/Makefile
@@ -101,7 +101,6 @@ obj-$(CONFIG_MEGARAID_NEWGEN) += megaraid/
obj-$(CONFIG_MEGARAID_SAS) += megaraid/
obj-$(CONFIG_SCSI_MPT3SAS) += mpt3sas/
obj-$(CONFIG_SCSI_MPI3MR) += mpi3mr/
-obj-$(CONFIG_SCSI_UFSHCD) += ufs/
obj-$(CONFIG_SCSI_ACARD) += atp870u.o
obj-$(CONFIG_SCSI_SUNESP) += esp_scsi.o sun_esp.o
obj-$(CONFIG_SCSI_INITIO) += initio.o
diff --git a/drivers/ufs/Kconfig b/drivers/ufs/Kconfig
new file mode 100644
index 000000000000..90226f72c158
--- /dev/null
+++ b/drivers/ufs/Kconfig
@@ -0,0 +1,30 @@
+# SPDX-License-Identifier: GPL-2.0-only
+#
+# UFS subsystem configuration
+#
+
+menuconfig SCSI_UFSHCD
+ tristate "Universal Flash Storage Controller"
+ depends on SCSI && SCSI_DMA
+ select PM_DEVFREQ
+ select DEVFREQ_GOV_SIMPLE_ONDEMAND
+ select NLS
+ help
+ Enables support for UFS (Universal Flash Storage) host controllers.
+ A UFS host controller is an electronic component that is able to
+ communicate with a UFS card. UFS host controllers occur in
+ smartphones, laptops, digital cameras and also in cars.
+ The kernel module will be called ufshcd.
+
+ To compile this driver as a module, choose M here and read
+ <file:Documentation/scsi/ufs.rst>.
+ However, do not compile this as a module if your root file system
+ (the one containing the directory /) is located on a UFS device.
+
+if SCSI_UFSHCD
+
+source "drivers/ufs/core/Kconfig"
+
+source "drivers/ufs/host/Kconfig"
+
+endif
diff --git a/drivers/ufs/Makefile b/drivers/ufs/Makefile
new file mode 100644
index 000000000000..5a199ef18d4c
--- /dev/null
+++ b/drivers/ufs/Makefile
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-2.0
+
+# The link order is important here. ufshcd-core must initialize
+# before vendor drivers.
+obj-$(CONFIG_SCSI_UFSHCD) += core/ host/
diff --git a/drivers/ufs/core/Kconfig b/drivers/ufs/core/Kconfig
new file mode 100644
index 000000000000..e11978171403
--- /dev/null
+++ b/drivers/ufs/core/Kconfig
@@ -0,0 +1,60 @@
+# SPDX-License-Identifier: GPL-2.0+
+#
+# Kernel configuration file for the UFS Host Controller core.
+#
+# Copyright (C) 2011-2013 Samsung India Software Operations
+#
+# Authors:
+# Santosh Yaraganavi <santosh.sy@samsung.com>
+# Vinayak Holikatti <h.vinayak@samsung.com>
+
+config SCSI_UFS_BSG
+ bool "Universal Flash Storage BSG device node"
+ select BLK_DEV_BSGLIB
+ help
+ Universal Flash Storage (UFS) is SCSI transport specification for
+ accessing flash storage on digital cameras, mobile phones and
+ consumer electronic devices.
+ A UFS controller communicates with a UFS device by exchanging
+ UFS Protocol Information Units (UPIUs).
+ UPIUs can not only be used as a transport layer for the SCSI protocol
+ but are also used by the UFS native command set.
+ This transport driver supports exchanging UFS protocol information units
+ with a UFS device. See also the ufshcd driver, which is a SCSI driver
+ that supports UFS devices.
+
+ Select this if you need a bsg device node for your UFS controller.
+ If unsure, say N.
+
+config SCSI_UFS_CRYPTO
+ bool "UFS Crypto Engine Support"
+ depends on BLK_INLINE_ENCRYPTION
+ help
+ Enable Crypto Engine Support in UFS.
+ Enabling this makes it possible for the kernel to use the crypto
+ capabilities of the UFS device (if present) to perform crypto
+ operations on data being transferred to/from the device.
+
+config SCSI_UFS_HPB
+ bool "Support UFS Host Performance Booster"
+ help
+ The UFS HPB feature improves random read performance. It caches
+ L2P (logical to physical) map of UFS to host DRAM. The driver uses HPB
+ read command by piggybacking physical page number for bypassing FTL (flash
+ translation layer)'s L2P address translation.
+
+config SCSI_UFS_FAULT_INJECTION
+ bool "UFS Fault Injection Support"
+ depends on FAULT_INJECTION
+ help
+ Enable fault injection support in the UFS driver. This makes it easier
+ to test the UFS error handler and abort handler.
+
+config SCSI_UFS_HWMON
+ bool "UFS Temperature Notification"
+ depends on SCSI_UFSHCD=HWMON || HWMON=y
+ help
+ This provides support for UFS hardware monitoring. If enabled,
+ a hardware monitoring device will be created for the UFS device.
+
+ If unsure, say N.
diff --git a/drivers/ufs/core/Makefile b/drivers/ufs/core/Makefile
new file mode 100644
index 000000000000..62f38c5bf857
--- /dev/null
+++ b/drivers/ufs/core/Makefile
@@ -0,0 +1,10 @@
+# SPDX-License-Identifier: GPL-2.0
+
+obj-$(CONFIG_SCSI_UFSHCD) += ufshcd-core.o
+ufshcd-core-y += ufshcd.o ufs-sysfs.o
+ufshcd-core-$(CONFIG_DEBUG_FS) += ufs-debugfs.o
+ufshcd-core-$(CONFIG_SCSI_UFS_BSG) += ufs_bsg.o
+ufshcd-core-$(CONFIG_SCSI_UFS_CRYPTO) += ufshcd-crypto.o
+ufshcd-core-$(CONFIG_SCSI_UFS_HPB) += ufshpb.o
+ufshcd-core-$(CONFIG_SCSI_UFS_FAULT_INJECTION) += ufs-fault-injection.o
+ufshcd-core-$(CONFIG_SCSI_UFS_HWMON) += ufs-hwmon.o
diff --git a/drivers/scsi/ufs/ufs-debugfs.c b/drivers/ufs/core/ufs-debugfs.c
similarity index 99%
rename from drivers/scsi/ufs/ufs-debugfs.c
rename to drivers/ufs/core/ufs-debugfs.c
index c10a8f09682b..e3baed6c70bd 100644
--- a/drivers/scsi/ufs/ufs-debugfs.c
+++ b/drivers/ufs/core/ufs-debugfs.c
@@ -4,7 +4,7 @@
#include <linux/debugfs.h>
#include "ufs-debugfs.h"
-#include "ufshcd.h"
+#include <ufs/ufshcd.h>
#include "ufshcd-priv.h"
static struct dentry *ufs_debugfs_root;
diff --git a/drivers/scsi/ufs/ufs-debugfs.h b/drivers/ufs/core/ufs-debugfs.h
similarity index 100%
rename from drivers/scsi/ufs/ufs-debugfs.h
rename to drivers/ufs/core/ufs-debugfs.h
diff --git a/drivers/scsi/ufs/ufs-fault-injection.c b/drivers/ufs/core/ufs-fault-injection.c
similarity index 100%
rename from drivers/scsi/ufs/ufs-fault-injection.c
rename to drivers/ufs/core/ufs-fault-injection.c
diff --git a/drivers/scsi/ufs/ufs-fault-injection.h b/drivers/ufs/core/ufs-fault-injection.h
similarity index 100%
rename from drivers/scsi/ufs/ufs-fault-injection.h
rename to drivers/ufs/core/ufs-fault-injection.h
diff --git a/drivers/scsi/ufs/ufs-hwmon.c b/drivers/ufs/core/ufs-hwmon.c
similarity index 99%
rename from drivers/scsi/ufs/ufs-hwmon.c
rename to drivers/ufs/core/ufs-hwmon.c
index c38d9d98a86d..4c6a872b7a7c 100644
--- a/drivers/scsi/ufs/ufs-hwmon.c
+++ b/drivers/ufs/core/ufs-hwmon.c
@@ -7,7 +7,7 @@
#include <linux/hwmon.h>
#include <linux/units.h>
-#include "ufshcd.h"
+#include <ufs/ufshcd.h>
#include "ufshcd-priv.h"
struct ufs_hwmon_data {
diff --git a/drivers/scsi/ufs/ufs-sysfs.c b/drivers/ufs/core/ufs-sysfs.c
similarity index 99%
rename from drivers/scsi/ufs/ufs-sysfs.c
rename to drivers/ufs/core/ufs-sysfs.c
index 8a3c6442f291..0a088b47d557 100644
--- a/drivers/scsi/ufs/ufs-sysfs.c
+++ b/drivers/ufs/core/ufs-sysfs.c
@@ -6,7 +6,7 @@
#include <linux/bitfield.h>
#include <asm/unaligned.h>
-#include "ufs.h"
+#include <ufs/ufs.h>
#include "ufs-sysfs.h"
#include "ufshcd-priv.h"
diff --git a/drivers/scsi/ufs/ufs-sysfs.h b/drivers/ufs/core/ufs-sysfs.h
similarity index 100%
rename from drivers/scsi/ufs/ufs-sysfs.h
rename to drivers/ufs/core/ufs-sysfs.h
diff --git a/drivers/scsi/ufs/ufs_bsg.c b/drivers/ufs/core/ufs_bsg.c
similarity index 99%
rename from drivers/scsi/ufs/ufs_bsg.c
rename to drivers/ufs/core/ufs_bsg.c
index 9e9b93867cab..b99e3f3dc4ef 100644
--- a/drivers/scsi/ufs/ufs_bsg.c
+++ b/drivers/ufs/core/ufs_bsg.c
@@ -9,7 +9,7 @@
#include <scsi/scsi.h>
#include <scsi/scsi_host.h>
#include "ufs_bsg.h"
-#include "ufshcd.h"
+#include <ufs/ufshcd.h>
#include "ufshcd-priv.h"
static int ufs_bsg_get_query_desc_size(struct ufs_hba *hba, int *desc_len,
diff --git a/drivers/scsi/ufs/ufs_bsg.h b/drivers/ufs/core/ufs_bsg.h
similarity index 100%
rename from drivers/scsi/ufs/ufs_bsg.h
rename to drivers/ufs/core/ufs_bsg.h
diff --git a/drivers/scsi/ufs/ufshcd-crypto.c b/drivers/ufs/core/ufshcd-crypto.c
similarity index 99%
rename from drivers/scsi/ufs/ufshcd-crypto.c
rename to drivers/ufs/core/ufshcd-crypto.c
index 67402baf6fae..198360fe5e8e 100644
--- a/drivers/scsi/ufs/ufshcd-crypto.c
+++ b/drivers/ufs/core/ufshcd-crypto.c
@@ -3,7 +3,7 @@
* Copyright 2019 Google LLC
*/
-#include "ufshcd.h"
+#include <ufs/ufshcd.h>
#include "ufshcd-crypto.h"
/* Blk-crypto modes supported by UFS crypto */
diff --git a/drivers/scsi/ufs/ufshcd-crypto.h b/drivers/ufs/core/ufshcd-crypto.h
similarity index 97%
rename from drivers/scsi/ufs/ufshcd-crypto.h
rename to drivers/ufs/core/ufshcd-crypto.h
index 9f98f18f9646..504cc841540b 100644
--- a/drivers/scsi/ufs/ufshcd-crypto.h
+++ b/drivers/ufs/core/ufshcd-crypto.h
@@ -7,9 +7,9 @@
#define _UFSHCD_CRYPTO_H
#include <scsi/scsi_cmnd.h>
-#include "ufshcd.h"
+#include <ufs/ufshcd.h>
#include "ufshcd-priv.h"
-#include "ufshci.h"
+#include <ufs/ufshci.h>
#ifdef CONFIG_SCSI_UFS_CRYPTO
diff --git a/drivers/scsi/ufs/ufshcd-priv.h b/drivers/ufs/core/ufshcd-priv.h
similarity index 99%
rename from drivers/scsi/ufs/ufshcd-priv.h
rename to drivers/ufs/core/ufshcd-priv.h
index 38bc77d3dbbd..ffb01fc6de75 100644
--- a/drivers/scsi/ufs/ufshcd-priv.h
+++ b/drivers/ufs/core/ufshcd-priv.h
@@ -4,7 +4,7 @@
#define _UFSHCD_PRIV_H_
#include <linux/pm_runtime.h>
-#include "ufshcd.h"
+#include <ufs/ufshcd.h>
static inline bool ufshcd_is_user_access_allowed(struct ufs_hba *hba)
{
diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/ufs/core/ufshcd.c
similarity index 99%
rename from drivers/scsi/ufs/ufshcd.c
rename to drivers/ufs/core/ufshcd.c
index 1fb3a8b9b03e..efe67a381c32 100644
--- a/drivers/scsi/ufs/ufshcd.c
+++ b/drivers/ufs/core/ufshcd.c
@@ -26,8 +26,8 @@
#include <scsi/scsi_driver.h>
#include <scsi/scsi_eh.h>
#include "ufshcd-priv.h"
-#include "ufs_quirks.h"
-#include "unipro.h"
+#include <ufs/ufs_quirks.h>
+#include <ufs/unipro.h>
#include "ufs-sysfs.h"
#include "ufs-debugfs.h"
#include "ufs-fault-injection.h"
diff --git a/drivers/scsi/ufs/ufshpb.c b/drivers/ufs/core/ufshpb.c
similarity index 99%
rename from drivers/scsi/ufs/ufshpb.c
rename to drivers/ufs/core/ufshpb.c
index f1f65383e97d..aee0ec4cee70 100644
--- a/drivers/scsi/ufs/ufshpb.c
+++ b/drivers/ufs/core/ufshpb.c
@@ -17,7 +17,7 @@
#include "ufshcd-priv.h"
#include "ufshpb.h"
-#include "../sd.h"
+#include "../../scsi/sd.h"
#define ACTIVATION_THRESHOLD 8 /* 8 IOs */
#define READ_TO_MS 1000
diff --git a/drivers/scsi/ufs/ufshpb.h b/drivers/ufs/core/ufshpb.h
similarity index 100%
rename from drivers/scsi/ufs/ufshpb.h
rename to drivers/ufs/core/ufshpb.h
diff --git a/drivers/scsi/ufs/Kconfig b/drivers/ufs/host/Kconfig
similarity index 56%
rename from drivers/scsi/ufs/Kconfig
rename to drivers/ufs/host/Kconfig
index 393b9a01da36..82590224da13 100644
--- a/drivers/scsi/ufs/Kconfig
+++ b/drivers/ufs/host/Kconfig
@@ -1,6 +1,6 @@
# SPDX-License-Identifier: GPL-2.0+
#
-# Kernel configuration file for the UFS Host Controller
+# Kernel configuration file for the UFS host controller drivers.
#
# Copyright (C) 2011-2013 Samsung India Software Operations
#
@@ -8,26 +8,6 @@
# Santosh Yaraganavi <santosh.sy@samsung.com>
# Vinayak Holikatti <h.vinayak@samsung.com>
-config SCSI_UFSHCD
- tristate "Universal Flash Storage Controller Driver Core"
- depends on SCSI && SCSI_DMA
- select PM_DEVFREQ
- select DEVFREQ_GOV_SIMPLE_ONDEMAND
- select NLS
- help
- This selects the support for UFS devices in Linux, say Y and make
- sure that you know the name of your UFS host adapter (the card
- inside your computer that "speaks" the UFS protocol, also
- called UFS Host Controller), because you will be asked for it.
- The module will be called ufshcd.
-
- To compile this driver as a module, choose M here and read
- <file:Documentation/scsi/ufs.rst>.
- However, do not compile this as a module if your root file system
- (the one containing the directory /) is located on a UFS device.
-
-if SCSI_UFSHCD
-
config SCSI_UFSHCD_PCI
tristate "PCI bus based UFS Controller support"
depends on PCI
@@ -122,24 +102,6 @@ config SCSI_UFS_TI_J721E
Selects this if you have TI platform with UFS controller.
If unsure, say N.
-config SCSI_UFS_BSG
- bool "Universal Flash Storage BSG device node"
- select BLK_DEV_BSGLIB
- help
- Universal Flash Storage (UFS) is SCSI transport specification for
- accessing flash storage on digital cameras, mobile phones and
- consumer electronic devices.
- A UFS controller communicates with a UFS device by exchanging
- UFS Protocol Information Units (UPIUs).
- UPIUs can not only be used as a transport layer for the SCSI protocol
- but are also used by the UFS native command set.
- This transport driver supports exchanging UFS protocol information units
- with a UFS device. See also the ufshcd driver, which is a SCSI driver
- that supports UFS devices.
-
- Select this if you need a bsg device node for your UFS controller.
- If unsure, say N.
-
config SCSI_UFS_EXYNOS
tristate "Exynos specific hooks to UFS controller platform driver"
depends on SCSI_UFSHCD_PLATFORM && (ARCH_EXYNOS || COMPILE_TEST)
@@ -150,38 +112,3 @@ config SCSI_UFS_EXYNOS
Select this if you have UFS host controller on Samsung Exynos SoC.
If unsure, say N.
-
-config SCSI_UFS_CRYPTO
- bool "UFS Crypto Engine Support"
- depends on BLK_INLINE_ENCRYPTION
- help
- Enable Crypto Engine Support in UFS.
- Enabling this makes it possible for the kernel to use the crypto
- capabilities of the UFS device (if present) to perform crypto
- operations on data being transferred to/from the device.
-
-config SCSI_UFS_HPB
- bool "Support UFS Host Performance Booster"
- help
- The UFS HPB feature improves random read performance. It caches
- L2P (logical to physical) map of UFS to host DRAM. The driver uses HPB
- read command by piggybacking physical page number for bypassing FTL (flash
- translation layer)'s L2P address translation.
-
-config SCSI_UFS_FAULT_INJECTION
- bool "UFS Fault Injection Support"
- depends on FAULT_INJECTION
- help
- Enable fault injection support in the UFS driver. This makes it easier
- to test the UFS error handler and abort handler.
-
-config SCSI_UFS_HWMON
- bool "UFS Temperature Notification"
- depends on SCSI_UFSHCD=HWMON || HWMON=y
- help
- This provides support for UFS hardware monitoring. If enabled,
- a hardware monitoring device will be created for the UFS device.
-
- If unsure, say N.
-
-endif
diff --git a/drivers/scsi/ufs/Makefile b/drivers/ufs/host/Makefile
similarity index 56%
rename from drivers/scsi/ufs/Makefile
rename to drivers/ufs/host/Makefile
index 966048875b50..e4be54273c98 100644
--- a/drivers/scsi/ufs/Makefile
+++ b/drivers/ufs/host/Makefile
@@ -1,16 +1,4 @@
# SPDX-License-Identifier: GPL-2.0
-# UFSHCD makefile
-
-# The link order is important here. ufshcd-core must initialize
-# before vendor drivers.
-obj-$(CONFIG_SCSI_UFSHCD) += ufshcd-core.o
-ufshcd-core-y += ufshcd.o ufs-sysfs.o
-ufshcd-core-$(CONFIG_DEBUG_FS) += ufs-debugfs.o
-ufshcd-core-$(CONFIG_SCSI_UFS_BSG) += ufs_bsg.o
-ufshcd-core-$(CONFIG_SCSI_UFS_CRYPTO) += ufshcd-crypto.o
-ufshcd-core-$(CONFIG_SCSI_UFS_HPB) += ufshpb.o
-ufshcd-core-$(CONFIG_SCSI_UFS_FAULT_INJECTION) += ufs-fault-injection.o
-ufshcd-core-$(CONFIG_SCSI_UFS_HWMON) += ufs-hwmon.o
obj-$(CONFIG_SCSI_UFS_DWC_TC_PCI) += tc-dwc-g210-pci.o ufshcd-dwc.o tc-dwc-g210.o
obj-$(CONFIG_SCSI_UFS_DWC_TC_PLATFORM) += tc-dwc-g210-pltfrm.o ufshcd-dwc.o tc-dwc-g210.o
diff --git a/drivers/scsi/ufs/cdns-pltfrm.c b/drivers/ufs/host/cdns-pltfrm.c
similarity index 100%
rename from drivers/scsi/ufs/cdns-pltfrm.c
rename to drivers/ufs/host/cdns-pltfrm.c
diff --git a/drivers/scsi/ufs/tc-dwc-g210-pci.c b/drivers/ufs/host/tc-dwc-g210-pci.c
similarity index 99%
rename from drivers/scsi/ufs/tc-dwc-g210-pci.c
rename to drivers/ufs/host/tc-dwc-g210-pci.c
index e635c211c783..92b8ad4b58fe 100644
--- a/drivers/scsi/ufs/tc-dwc-g210-pci.c
+++ b/drivers/ufs/host/tc-dwc-g210-pci.c
@@ -7,7 +7,7 @@
* Authors: Joao Pinto <jpinto@synopsys.com>
*/
-#include "ufshcd.h"
+#include <ufs/ufshcd.h>
#include "ufshcd-dwc.h"
#include "tc-dwc-g210.h"
diff --git a/drivers/scsi/ufs/tc-dwc-g210-pltfrm.c b/drivers/ufs/host/tc-dwc-g210-pltfrm.c
similarity index 100%
rename from drivers/scsi/ufs/tc-dwc-g210-pltfrm.c
rename to drivers/ufs/host/tc-dwc-g210-pltfrm.c
diff --git a/drivers/scsi/ufs/tc-dwc-g210.c b/drivers/ufs/host/tc-dwc-g210.c
similarity index 99%
rename from drivers/scsi/ufs/tc-dwc-g210.c
rename to drivers/ufs/host/tc-dwc-g210.c
index 7ef67c9fc5b8..deb93dbd83a4 100644
--- a/drivers/scsi/ufs/tc-dwc-g210.c
+++ b/drivers/ufs/host/tc-dwc-g210.c
@@ -9,8 +9,8 @@
#include <linux/module.h>
-#include "ufshcd.h"
-#include "unipro.h"
+#include <ufs/ufshcd.h>
+#include <ufs/unipro.h>
#include "ufshcd-dwc.h"
#include "ufshci-dwc.h"
diff --git a/drivers/scsi/ufs/tc-dwc-g210.h b/drivers/ufs/host/tc-dwc-g210.h
similarity index 100%
rename from drivers/scsi/ufs/tc-dwc-g210.h
rename to drivers/ufs/host/tc-dwc-g210.h
diff --git a/drivers/scsi/ufs/ti-j721e-ufs.c b/drivers/ufs/host/ti-j721e-ufs.c
similarity index 100%
rename from drivers/scsi/ufs/ti-j721e-ufs.c
rename to drivers/ufs/host/ti-j721e-ufs.c
diff --git a/drivers/scsi/ufs/ufs-exynos.c b/drivers/ufs/host/ufs-exynos.c
similarity index 99%
rename from drivers/scsi/ufs/ufs-exynos.c
rename to drivers/ufs/host/ufs-exynos.c
index ddb2d42605c5..a81d8cbd542f 100644
--- a/drivers/scsi/ufs/ufs-exynos.c
+++ b/drivers/ufs/host/ufs-exynos.c
@@ -18,10 +18,10 @@
#include <linux/platform_device.h>
#include <linux/regmap.h>
-#include "ufshcd.h"
+#include <ufs/ufshcd.h>
#include "ufshcd-pltfrm.h"
-#include "ufshci.h"
-#include "unipro.h"
+#include <ufs/ufshci.h>
+#include <ufs/unipro.h>
#include "ufs-exynos.h"
diff --git a/drivers/scsi/ufs/ufs-exynos.h b/drivers/ufs/host/ufs-exynos.h
similarity index 100%
rename from drivers/scsi/ufs/ufs-exynos.h
rename to drivers/ufs/host/ufs-exynos.h
diff --git a/drivers/scsi/ufs/ufs-hisi.c b/drivers/ufs/host/ufs-hisi.c
similarity index 99%
rename from drivers/scsi/ufs/ufs-hisi.c
rename to drivers/ufs/host/ufs-hisi.c
index 7046143063ee..2eed13bc82ca 100644
--- a/drivers/scsi/ufs/ufs-hisi.c
+++ b/drivers/ufs/host/ufs-hisi.c
@@ -15,12 +15,12 @@
#include <linux/platform_device.h>
#include <linux/reset.h>
-#include "ufshcd.h"
+#include <ufs/ufshcd.h>
#include "ufshcd-pltfrm.h"
-#include "unipro.h"
+#include <ufs/unipro.h>
#include "ufs-hisi.h"
-#include "ufshci.h"
-#include "ufs_quirks.h"
+#include <ufs/ufshci.h>
+#include <ufs/ufs_quirks.h>
static int ufs_hisi_check_hibern8(struct ufs_hba *hba)
{
diff --git a/drivers/scsi/ufs/ufs-hisi.h b/drivers/ufs/host/ufs-hisi.h
similarity index 100%
rename from drivers/scsi/ufs/ufs-hisi.h
rename to drivers/ufs/host/ufs-hisi.h
diff --git a/drivers/scsi/ufs/ufs-mediatek-trace.h b/drivers/ufs/host/ufs-mediatek-trace.h
similarity index 93%
rename from drivers/scsi/ufs/ufs-mediatek-trace.h
rename to drivers/ufs/host/ufs-mediatek-trace.h
index 895e82ea6ece..7e010848dc99 100644
--- a/drivers/scsi/ufs/ufs-mediatek-trace.h
+++ b/drivers/ufs/host/ufs-mediatek-trace.h
@@ -31,6 +31,6 @@ TRACE_EVENT(ufs_mtk_event,
#undef TRACE_INCLUDE_PATH
#undef TRACE_INCLUDE_FILE
-#define TRACE_INCLUDE_PATH ../../drivers/scsi/ufs/
+#define TRACE_INCLUDE_PATH ../../drivers/ufs/host
#define TRACE_INCLUDE_FILE ufs-mediatek-trace
#include <trace/define_trace.h>
diff --git a/drivers/scsi/ufs/ufs-mediatek.c b/drivers/ufs/host/ufs-mediatek.c
similarity index 99%
rename from drivers/scsi/ufs/ufs-mediatek.c
rename to drivers/ufs/host/ufs-mediatek.c
index 083d6bd4d561..beabc3ccd30b 100644
--- a/drivers/scsi/ufs/ufs-mediatek.c
+++ b/drivers/ufs/host/ufs-mediatek.c
@@ -21,10 +21,10 @@
#include <linux/sched/clock.h>
#include <linux/soc/mediatek/mtk_sip_svc.h>
-#include "ufshcd.h"
+#include <ufs/ufshcd.h>
#include "ufshcd-pltfrm.h"
-#include "ufs_quirks.h"
-#include "unipro.h"
+#include <ufs/ufs_quirks.h>
+#include <ufs/unipro.h>
#include "ufs-mediatek.h"
#define CREATE_TRACE_POINTS
diff --git a/drivers/scsi/ufs/ufs-mediatek.h b/drivers/ufs/host/ufs-mediatek.h
similarity index 100%
rename from drivers/scsi/ufs/ufs-mediatek.h
rename to drivers/ufs/host/ufs-mediatek.h
diff --git a/drivers/scsi/ufs/ufs-qcom-ice.c b/drivers/ufs/host/ufs-qcom-ice.c
similarity index 100%
rename from drivers/scsi/ufs/ufs-qcom-ice.c
rename to drivers/ufs/host/ufs-qcom-ice.c
diff --git a/drivers/scsi/ufs/ufs-qcom.c b/drivers/ufs/host/ufs-qcom.c
similarity index 99%
rename from drivers/scsi/ufs/ufs-qcom.c
rename to drivers/ufs/host/ufs-qcom.c
index 4dcb232facaa..f10d4668814c 100644
--- a/drivers/scsi/ufs/ufs-qcom.c
+++ b/drivers/ufs/host/ufs-qcom.c
@@ -15,12 +15,12 @@
#include <linux/reset-controller.h>
#include <linux/devfreq.h>
-#include "ufshcd.h"
+#include <ufs/ufshcd.h>
#include "ufshcd-pltfrm.h"
-#include "unipro.h"
+#include <ufs/unipro.h>
#include "ufs-qcom.h"
-#include "ufshci.h"
-#include "ufs_quirks.h"
+#include <ufs/ufshci.h>
+#include <ufs/ufs_quirks.h>
#define UFS_QCOM_DEFAULT_DBG_PRINT_EN \
(UFS_QCOM_DBG_PRINT_REGS_EN | UFS_QCOM_DBG_PRINT_TEST_BUS_EN)
diff --git a/drivers/scsi/ufs/ufs-qcom.h b/drivers/ufs/host/ufs-qcom.h
similarity index 99%
rename from drivers/scsi/ufs/ufs-qcom.h
rename to drivers/ufs/host/ufs-qcom.h
index 771bc95d02c7..44466a395bb5 100644
--- a/drivers/scsi/ufs/ufs-qcom.h
+++ b/drivers/ufs/host/ufs-qcom.h
@@ -7,7 +7,7 @@
#include <linux/reset-controller.h>
#include <linux/reset.h>
-#include "ufshcd.h"
+#include <ufs/ufshcd.h>
#define MAX_UFS_QCOM_HOSTS 1
#define MAX_U32 (~(u32)0)
diff --git a/drivers/scsi/ufs/ufshcd-dwc.c b/drivers/ufs/host/ufshcd-dwc.c
similarity index 98%
rename from drivers/scsi/ufs/ufshcd-dwc.c
rename to drivers/ufs/host/ufshcd-dwc.c
index a57973c8d2a1..e28a67e1e314 100644
--- a/drivers/scsi/ufs/ufshcd-dwc.c
+++ b/drivers/ufs/host/ufshcd-dwc.c
@@ -9,8 +9,8 @@
#include <linux/module.h>
-#include "ufshcd.h"
-#include "unipro.h"
+#include <ufs/ufshcd.h>
+#include <ufs/unipro.h>
#include "ufshcd-dwc.h"
#include "ufshci-dwc.h"
diff --git a/drivers/scsi/ufs/ufshcd-dwc.h b/drivers/ufs/host/ufshcd-dwc.h
similarity index 95%
rename from drivers/scsi/ufs/ufshcd-dwc.h
rename to drivers/ufs/host/ufshcd-dwc.h
index 43b70794e24f..ad91ea56662c 100644
--- a/drivers/scsi/ufs/ufshcd-dwc.h
+++ b/drivers/ufs/host/ufshcd-dwc.h
@@ -10,7 +10,7 @@
#ifndef _UFSHCD_DWC_H
#define _UFSHCD_DWC_H
-#include "ufshcd.h"
+#include <ufs/ufshcd.h>
struct ufshcd_dme_attr_val {
u32 attr_sel;
diff --git a/drivers/scsi/ufs/ufshcd-pci.c b/drivers/ufs/host/ufshcd-pci.c
similarity index 99%
rename from drivers/scsi/ufs/ufshcd-pci.c
rename to drivers/ufs/host/ufshcd-pci.c
index 20af2fbc3af1..04166bda41da 100644
--- a/drivers/scsi/ufs/ufshcd-pci.c
+++ b/drivers/ufs/host/ufshcd-pci.c
@@ -9,7 +9,7 @@
* Vinayak Holikatti <h.vinayak@samsung.com>
*/
-#include "ufshcd.h"
+#include <ufs/ufshcd.h>
#include <linux/delay.h>
#include <linux/module.h>
#include <linux/pci.h>
diff --git a/drivers/scsi/ufs/ufshcd-pltfrm.c b/drivers/ufs/host/ufshcd-pltfrm.c
similarity index 99%
rename from drivers/scsi/ufs/ufshcd-pltfrm.c
rename to drivers/ufs/host/ufshcd-pltfrm.c
index f5313f407617..e7332cc65b1f 100644
--- a/drivers/scsi/ufs/ufshcd-pltfrm.c
+++ b/drivers/ufs/host/ufshcd-pltfrm.c
@@ -13,9 +13,9 @@
#include <linux/pm_runtime.h>
#include <linux/of.h>
-#include "ufshcd.h"
+#include <ufs/ufshcd.h>
#include "ufshcd-pltfrm.h"
-#include "unipro.h"
+#include <ufs/unipro.h>
#define UFSHCD_DEFAULT_LANES_PER_DIRECTION 2
diff --git a/drivers/scsi/ufs/ufshcd-pltfrm.h b/drivers/ufs/host/ufshcd-pltfrm.h
similarity index 98%
rename from drivers/scsi/ufs/ufshcd-pltfrm.h
rename to drivers/ufs/host/ufshcd-pltfrm.h
index c33e28ac6ef6..43c2e412bd99 100644
--- a/drivers/scsi/ufs/ufshcd-pltfrm.h
+++ b/drivers/ufs/host/ufshcd-pltfrm.h
@@ -5,7 +5,7 @@
#ifndef UFSHCD_PLTFRM_H_
#define UFSHCD_PLTFRM_H_
-#include "ufshcd.h"
+#include <ufs/ufshcd.h>
#define UFS_PWM_MODE 1
#define UFS_HS_MODE 2
diff --git a/drivers/scsi/ufs/ufshci-dwc.h b/drivers/ufs/host/ufshci-dwc.h
similarity index 100%
rename from drivers/scsi/ufs/ufshci-dwc.h
rename to drivers/ufs/host/ufshci-dwc.h
diff --git a/drivers/scsi/ufs/ufs.h b/include/ufs/ufs.h
similarity index 100%
rename from drivers/scsi/ufs/ufs.h
rename to include/ufs/ufs.h
diff --git a/drivers/scsi/ufs/ufs_quirks.h b/include/ufs/ufs_quirks.h
similarity index 100%
rename from drivers/scsi/ufs/ufs_quirks.h
rename to include/ufs/ufs_quirks.h
diff --git a/drivers/scsi/ufs/ufshcd.h b/include/ufs/ufshcd.h
similarity index 99%
rename from drivers/scsi/ufs/ufshcd.h
rename to include/ufs/ufshcd.h
index 2b0f3441b813..a92271421718 100644
--- a/drivers/scsi/ufs/ufshcd.h
+++ b/include/ufs/ufshcd.h
@@ -18,10 +18,10 @@
#include <linux/devfreq.h>
#include <linux/pm_runtime.h>
#include <scsi/scsi_device.h>
-#include "unipro.h"
-#include "ufs.h"
-#include "ufs_quirks.h"
-#include "ufshci.h"
+#include <ufs/unipro.h>
+#include <ufs/ufs.h>
+#include <ufs/ufs_quirks.h>
+#include <ufs/ufshci.h>
#define UFSHCD "ufshcd"
diff --git a/drivers/scsi/ufs/ufshci.h b/include/ufs/ufshci.h
similarity index 100%
rename from drivers/scsi/ufs/ufshci.h
rename to include/ufs/ufshci.h
diff --git a/drivers/scsi/ufs/unipro.h b/include/ufs/unipro.h
similarity index 100%
rename from drivers/scsi/ufs/unipro.h
rename to include/ufs/unipro.h
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH] scsi: ufs: Split the drivers/scsi/ufs directory
[not found] ` <202205122323.RcDb4pBm-lkp@intel.com>
@ 2022-05-12 17:18 ` Bart Van Assche
0 siblings, 0 replies; 7+ messages in thread
From: Bart Van Assche @ 2022-05-12 17:18 UTC (permalink / raw)
To: linux-scsi@vger.kernel.org
On 5/12/22 08:59, kernel test robot wrote:
> All warnings (new ones prefixed by >>):
>
>>> drivers/ufs/host/tc-dwc-g210-pltfrm.c:36:34: warning: unused variable 'tc_dwc_g210_pltfm_match' [-Wunused-const-variable]
> static const struct of_device_id tc_dwc_g210_pltfm_match[] = {
> ^
> 1 warning generated.
Regarding the three warnings reported for this patch: I consider the
issues from these reports as out of scope for this patch since this
patch only moves code around and the reported issues have been
introduced a long time ago.
Thanks,
Bart.
^ permalink raw reply [flat|nested] 7+ messages in thread
* RE: [PATCH] scsi: ufs: Split the drivers/scsi/ufs directory
2022-05-11 21:25 [PATCH] scsi: ufs: Split the drivers/scsi/ufs directory Bart Van Assche
[not found] ` <202205122323.RcDb4pBm-lkp@intel.com>
@ 2022-05-18 18:33 ` Avri Altman
2022-05-19 9:07 ` Bean Huo
` (3 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: Avri Altman @ 2022-05-18 18:33 UTC (permalink / raw)
To: Bart Van Assche, Martin K . Petersen
Cc: Jaegeuk Kim, Adrian Hunter, linux-scsi@vger.kernel.org, Bean Huo,
Bjorn Andersson, Keoseong Park
> Split the drivers/scsi/ufs directory into 'core' and 'host' directories
> under the drivers/ufs/ directory. Move shared header files into the
> include/ufs/ directory. This separation makes it clear which header
> files UFS drivers are allowed to include (include/ufs/*.h) and which
> header files UFS drivers are not allowed to include
> (drivers/ufs/core/*.h).
>
> Update the MAINTAINERS file. Add myself as a UFS reviewer.
>
> Cc: Adrian Hunter <adrian.hunter@intel.com>
> Cc: Avri Altman <avri.altman@wdc.com>
> Cc: Bean Huo <beanhuo@micron.com>
> Cc: Bjorn Andersson <bjorn.andersson@linaro.org>
> Cc: Keoseong Park <keosung.park@samsung.com>
> Signed-off-by: Bart Van Assche <bvanassche@acm.org>
Acked-by: Avri Altman <avri.altman@wdc.com>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] scsi: ufs: Split the drivers/scsi/ufs directory
2022-05-11 21:25 [PATCH] scsi: ufs: Split the drivers/scsi/ufs directory Bart Van Assche
[not found] ` <202205122323.RcDb4pBm-lkp@intel.com>
2022-05-18 18:33 ` Avri Altman
@ 2022-05-19 9:07 ` Bean Huo
2022-05-19 12:09 ` Adrian Hunter
` (2 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: Bean Huo @ 2022-05-19 9:07 UTC (permalink / raw)
To: Bart Van Assche, Martin K . Petersen
Cc: Jaegeuk Kim, Adrian Hunter, linux-scsi, Avri Altman, Bean Huo,
Bjorn Andersson, Keoseong Park
On Wed, 2022-05-11 at 14:25 -0700, Bart Van Assche wrote:
> Split the drivers/scsi/ufs directory into 'core' and 'host'
> directories
> under the drivers/ufs/ directory. Move shared header files into the
> include/ufs/ directory. This separation makes it clear which header
> files UFS drivers are allowed to include (include/ufs/*.h) and which
> header files UFS drivers are not allowed to include
> (drivers/ufs/core/*.h).
>
> Update the MAINTAINERS file. Add myself as a UFS reviewer.
>
> Cc: Adrian Hunter <adrian.hunter@intel.com>
> Cc: Avri Altman <avri.altman@wdc.com>
> Cc: Bean Huo <beanhuo@micron.com>
> Cc: Bjorn Andersson <bjorn.andersson@linaro.org>
> Cc: Keoseong Park <keosung.park@samsung.com>
> Signed-off-by: Bart Van Assche <bvanassche@acm.org>
Tested-by: Bean Huo <beanhuo@micron.com>
Reviewed-by: Bean Huo <beanhuo@micron.com>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] scsi: ufs: Split the drivers/scsi/ufs directory
2022-05-11 21:25 [PATCH] scsi: ufs: Split the drivers/scsi/ufs directory Bart Van Assche
` (2 preceding siblings ...)
2022-05-19 9:07 ` Bean Huo
@ 2022-05-19 12:09 ` Adrian Hunter
2022-05-20 0:28 ` Martin K. Petersen
2022-05-24 3:27 ` Martin K. Petersen
5 siblings, 0 replies; 7+ messages in thread
From: Adrian Hunter @ 2022-05-19 12:09 UTC (permalink / raw)
To: Bart Van Assche, Martin K . Petersen
Cc: Jaegeuk Kim, linux-scsi, Avri Altman, Bean Huo, Bjorn Andersson,
Keoseong Park
On 12/05/22 00:25, Bart Van Assche wrote:
> Split the drivers/scsi/ufs directory into 'core' and 'host' directories
> under the drivers/ufs/ directory. Move shared header files into the
> include/ufs/ directory. This separation makes it clear which header
> files UFS drivers are allowed to include (include/ufs/*.h) and which
> header files UFS drivers are not allowed to include
> (drivers/ufs/core/*.h).
>
> Update the MAINTAINERS file. Add myself as a UFS reviewer.
>
> Cc: Adrian Hunter <adrian.hunter@intel.com>
> Cc: Avri Altman <avri.altman@wdc.com>
> Cc: Bean Huo <beanhuo@micron.com>
> Cc: Bjorn Andersson <bjorn.andersson@linaro.org>
> Cc: Keoseong Park <keosung.park@samsung.com>
> Signed-off-by: Bart Van Assche <bvanassche@acm.org>
Tested-by: Adrian Hunter <adrian.hunter@intel.com>
Acked-by: Adrian Hunter <adrian.hunter@intel.com>
> ---
> MAINTAINERS | 10 ++-
> drivers/Kconfig | 2 +
> drivers/Makefile | 1 +
> drivers/scsi/Kconfig | 1 -
> drivers/scsi/Makefile | 1 -
> drivers/ufs/Kconfig | 30 ++++++++
> drivers/ufs/Makefile | 5 ++
> drivers/ufs/core/Kconfig | 60 +++++++++++++++
> drivers/ufs/core/Makefile | 10 +++
> drivers/{scsi/ufs => ufs/core}/ufs-debugfs.c | 2 +-
> drivers/{scsi/ufs => ufs/core}/ufs-debugfs.h | 0
> .../ufs => ufs/core}/ufs-fault-injection.c | 0
> .../ufs => ufs/core}/ufs-fault-injection.h | 0
> drivers/{scsi/ufs => ufs/core}/ufs-hwmon.c | 2 +-
> drivers/{scsi/ufs => ufs/core}/ufs-sysfs.c | 2 +-
> drivers/{scsi/ufs => ufs/core}/ufs-sysfs.h | 0
> drivers/{scsi/ufs => ufs/core}/ufs_bsg.c | 2 +-
> drivers/{scsi/ufs => ufs/core}/ufs_bsg.h | 0
> .../{scsi/ufs => ufs/core}/ufshcd-crypto.c | 2 +-
> .../{scsi/ufs => ufs/core}/ufshcd-crypto.h | 4 +-
> drivers/{scsi/ufs => ufs/core}/ufshcd-priv.h | 2 +-
> drivers/{scsi/ufs => ufs/core}/ufshcd.c | 4 +-
> drivers/{scsi/ufs => ufs/core}/ufshpb.c | 2 +-
> drivers/{scsi/ufs => ufs/core}/ufshpb.h | 0
> drivers/{scsi/ufs => ufs/host}/Kconfig | 75 +------------------
> drivers/{scsi/ufs => ufs/host}/Makefile | 12 ---
> drivers/{scsi/ufs => ufs/host}/cdns-pltfrm.c | 0
> .../{scsi/ufs => ufs/host}/tc-dwc-g210-pci.c | 2 +-
> .../ufs => ufs/host}/tc-dwc-g210-pltfrm.c | 0
> drivers/{scsi/ufs => ufs/host}/tc-dwc-g210.c | 4 +-
> drivers/{scsi/ufs => ufs/host}/tc-dwc-g210.h | 0
> drivers/{scsi/ufs => ufs/host}/ti-j721e-ufs.c | 0
> drivers/{scsi/ufs => ufs/host}/ufs-exynos.c | 6 +-
> drivers/{scsi/ufs => ufs/host}/ufs-exynos.h | 0
> drivers/{scsi/ufs => ufs/host}/ufs-hisi.c | 8 +-
> drivers/{scsi/ufs => ufs/host}/ufs-hisi.h | 0
> .../ufs => ufs/host}/ufs-mediatek-trace.h | 2 +-
> drivers/{scsi/ufs => ufs/host}/ufs-mediatek.c | 6 +-
> drivers/{scsi/ufs => ufs/host}/ufs-mediatek.h | 0
> drivers/{scsi/ufs => ufs/host}/ufs-qcom-ice.c | 0
> drivers/{scsi/ufs => ufs/host}/ufs-qcom.c | 8 +-
> drivers/{scsi/ufs => ufs/host}/ufs-qcom.h | 2 +-
> drivers/{scsi/ufs => ufs/host}/ufshcd-dwc.c | 4 +-
> drivers/{scsi/ufs => ufs/host}/ufshcd-dwc.h | 2 +-
> drivers/{scsi/ufs => ufs/host}/ufshcd-pci.c | 2 +-
> .../{scsi/ufs => ufs/host}/ufshcd-pltfrm.c | 4 +-
> .../{scsi/ufs => ufs/host}/ufshcd-pltfrm.h | 2 +-
> drivers/{scsi/ufs => ufs/host}/ufshci-dwc.h | 0
> {drivers/scsi => include}/ufs/ufs.h | 0
> {drivers/scsi => include}/ufs/ufs_quirks.h | 0
> {drivers/scsi => include}/ufs/ufshcd.h | 8 +-
> {drivers/scsi => include}/ufs/ufshci.h | 0
> {drivers/scsi => include}/ufs/unipro.h | 0
> 53 files changed, 156 insertions(+), 133 deletions(-)
> create mode 100644 drivers/ufs/Kconfig
> create mode 100644 drivers/ufs/Makefile
> create mode 100644 drivers/ufs/core/Kconfig
> create mode 100644 drivers/ufs/core/Makefile
> rename drivers/{scsi/ufs => ufs/core}/ufs-debugfs.c (99%)
> rename drivers/{scsi/ufs => ufs/core}/ufs-debugfs.h (100%)
> rename drivers/{scsi/ufs => ufs/core}/ufs-fault-injection.c (100%)
> rename drivers/{scsi/ufs => ufs/core}/ufs-fault-injection.h (100%)
> rename drivers/{scsi/ufs => ufs/core}/ufs-hwmon.c (99%)
> rename drivers/{scsi/ufs => ufs/core}/ufs-sysfs.c (99%)
> rename drivers/{scsi/ufs => ufs/core}/ufs-sysfs.h (100%)
> rename drivers/{scsi/ufs => ufs/core}/ufs_bsg.c (99%)
> rename drivers/{scsi/ufs => ufs/core}/ufs_bsg.h (100%)
> rename drivers/{scsi/ufs => ufs/core}/ufshcd-crypto.c (99%)
> rename drivers/{scsi/ufs => ufs/core}/ufshcd-crypto.h (97%)
> rename drivers/{scsi/ufs => ufs/core}/ufshcd-priv.h (99%)
> rename drivers/{scsi/ufs => ufs/core}/ufshcd.c (99%)
> rename drivers/{scsi/ufs => ufs/core}/ufshpb.c (99%)
> rename drivers/{scsi/ufs => ufs/core}/ufshpb.h (100%)
> rename drivers/{scsi/ufs => ufs/host}/Kconfig (56%)
> rename drivers/{scsi/ufs => ufs/host}/Makefile (56%)
> rename drivers/{scsi/ufs => ufs/host}/cdns-pltfrm.c (100%)
> rename drivers/{scsi/ufs => ufs/host}/tc-dwc-g210-pci.c (99%)
> rename drivers/{scsi/ufs => ufs/host}/tc-dwc-g210-pltfrm.c (100%)
> rename drivers/{scsi/ufs => ufs/host}/tc-dwc-g210.c (99%)
> rename drivers/{scsi/ufs => ufs/host}/tc-dwc-g210.h (100%)
> rename drivers/{scsi/ufs => ufs/host}/ti-j721e-ufs.c (100%)
> rename drivers/{scsi/ufs => ufs/host}/ufs-exynos.c (99%)
> rename drivers/{scsi/ufs => ufs/host}/ufs-exynos.h (100%)
> rename drivers/{scsi/ufs => ufs/host}/ufs-hisi.c (99%)
> rename drivers/{scsi/ufs => ufs/host}/ufs-hisi.h (100%)
> rename drivers/{scsi/ufs => ufs/host}/ufs-mediatek-trace.h (93%)
> rename drivers/{scsi/ufs => ufs/host}/ufs-mediatek.c (99%)
> rename drivers/{scsi/ufs => ufs/host}/ufs-mediatek.h (100%)
> rename drivers/{scsi/ufs => ufs/host}/ufs-qcom-ice.c (100%)
> rename drivers/{scsi/ufs => ufs/host}/ufs-qcom.c (99%)
> rename drivers/{scsi/ufs => ufs/host}/ufs-qcom.h (99%)
> rename drivers/{scsi/ufs => ufs/host}/ufshcd-dwc.c (98%)
> rename drivers/{scsi/ufs => ufs/host}/ufshcd-dwc.h (95%)
> rename drivers/{scsi/ufs => ufs/host}/ufshcd-pci.c (99%)
> rename drivers/{scsi/ufs => ufs/host}/ufshcd-pltfrm.c (99%)
> rename drivers/{scsi/ufs => ufs/host}/ufshcd-pltfrm.h (98%)
> rename drivers/{scsi/ufs => ufs/host}/ufshci-dwc.h (100%)
> rename {drivers/scsi => include}/ufs/ufs.h (100%)
> rename {drivers/scsi => include}/ufs/ufs_quirks.h (100%)
> rename {drivers/scsi => include}/ufs/ufshcd.h (99%)
> rename {drivers/scsi => include}/ufs/ufshci.h (100%)
> rename {drivers/scsi => include}/ufs/unipro.h (100%)
>
> diff --git a/MAINTAINERS b/MAINTAINERS
> index ca9d56121974..483a57da1f16 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -2547,7 +2547,7 @@ F: drivers/pci/controller/dwc/pcie-qcom.c
> F: drivers/phy/qualcomm/
> F: drivers/power/*/msm*
> F: drivers/reset/reset-qcom-*
> -F: drivers/scsi/ufs/ufs-qcom*
> +F: drivers/ufs/host/ufs-qcom*
> F: drivers/spi/spi-geni-qcom.c
> F: drivers/spi/spi-qcom-qspi.c
> F: drivers/spi/spi-qup.c
> @@ -17558,6 +17558,7 @@ T: git git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi.git
> T: git git://git.kernel.org/pub/scm/linux/kernel/git/mkp/scsi.git
> F: Documentation/devicetree/bindings/scsi/
> F: drivers/scsi/
> +F: drivers/ufs/
> F: include/scsi/
>
> SCSI TAPE DRIVER
> @@ -20199,24 +20200,25 @@ F: include/linux/visorbus.h
> UNIVERSAL FLASH STORAGE HOST CONTROLLER DRIVER
> R: Alim Akhtar <alim.akhtar@samsung.com>
> R: Avri Altman <avri.altman@wdc.com>
> +R: Bart Van Assche <bvanassche@acm.org>
> L: linux-scsi@vger.kernel.org
> S: Supported
> F: Documentation/devicetree/bindings/ufs/
> F: Documentation/scsi/ufs.rst
> -F: drivers/scsi/ufs/
> +F: drivers/ufs/core/
>
> UNIVERSAL FLASH STORAGE HOST CONTROLLER DRIVER DWC HOOKS
> M: Pedro Sousa <pedrom.sousa@synopsys.com>
> L: linux-scsi@vger.kernel.org
> S: Supported
> -F: drivers/scsi/ufs/*dwc*
> +F: drivers/ufs/host/*dwc*
>
> UNIVERSAL FLASH STORAGE HOST CONTROLLER DRIVER MEDIATEK HOOKS
> M: Stanley Chu <stanley.chu@mediatek.com>
> L: linux-scsi@vger.kernel.org
> L: linux-mediatek@lists.infradead.org (moderated for non-subscribers)
> S: Maintained
> -F: drivers/scsi/ufs/ufs-mediatek*
> +F: drivers/ufs/host/ufs-mediatek*
>
> UNSORTED BLOCK IMAGES (UBI)
> M: Richard Weinberger <richard@nod.at>
> diff --git a/drivers/Kconfig b/drivers/Kconfig
> index 8d6cd5d08722..a7ec388e1848 100644
> --- a/drivers/Kconfig
> +++ b/drivers/Kconfig
> @@ -107,6 +107,8 @@ source "drivers/usb/Kconfig"
>
> source "drivers/mmc/Kconfig"
>
> +source "drivers/ufs/Kconfig"
> +
> source "drivers/memstick/Kconfig"
>
> source "drivers/leds/Kconfig"
> diff --git a/drivers/Makefile b/drivers/Makefile
> index 020780b6b4d2..8b4b90202e58 100644
> --- a/drivers/Makefile
> +++ b/drivers/Makefile
> @@ -128,6 +128,7 @@ obj-$(CONFIG_PM_OPP) += opp/
> obj-$(CONFIG_CPU_FREQ) += cpufreq/
> obj-$(CONFIG_CPU_IDLE) += cpuidle/
> obj-y += mmc/
> +obj-y += ufs/
> obj-$(CONFIG_MEMSTICK) += memstick/
> obj-$(CONFIG_NEW_LEDS) += leds/
> obj-$(CONFIG_INFINIBAND) += infiniband/
> diff --git a/drivers/scsi/Kconfig b/drivers/scsi/Kconfig
> index 6e3a04107bb6..a9fe5152addd 100644
> --- a/drivers/scsi/Kconfig
> +++ b/drivers/scsi/Kconfig
> @@ -500,7 +500,6 @@ source "drivers/scsi/megaraid/Kconfig.megaraid"
> source "drivers/scsi/mpt3sas/Kconfig"
> source "drivers/scsi/mpi3mr/Kconfig"
> source "drivers/scsi/smartpqi/Kconfig"
> -source "drivers/scsi/ufs/Kconfig"
>
> config SCSI_HPTIOP
> tristate "HighPoint RocketRAID 3xxx/4xxx Controller support"
> diff --git a/drivers/scsi/Makefile b/drivers/scsi/Makefile
> index 19814c26c908..2ad3bc052531 100644
> --- a/drivers/scsi/Makefile
> +++ b/drivers/scsi/Makefile
> @@ -101,7 +101,6 @@ obj-$(CONFIG_MEGARAID_NEWGEN) += megaraid/
> obj-$(CONFIG_MEGARAID_SAS) += megaraid/
> obj-$(CONFIG_SCSI_MPT3SAS) += mpt3sas/
> obj-$(CONFIG_SCSI_MPI3MR) += mpi3mr/
> -obj-$(CONFIG_SCSI_UFSHCD) += ufs/
> obj-$(CONFIG_SCSI_ACARD) += atp870u.o
> obj-$(CONFIG_SCSI_SUNESP) += esp_scsi.o sun_esp.o
> obj-$(CONFIG_SCSI_INITIO) += initio.o
> diff --git a/drivers/ufs/Kconfig b/drivers/ufs/Kconfig
> new file mode 100644
> index 000000000000..90226f72c158
> --- /dev/null
> +++ b/drivers/ufs/Kconfig
> @@ -0,0 +1,30 @@
> +# SPDX-License-Identifier: GPL-2.0-only
> +#
> +# UFS subsystem configuration
> +#
> +
> +menuconfig SCSI_UFSHCD
> + tristate "Universal Flash Storage Controller"
> + depends on SCSI && SCSI_DMA
> + select PM_DEVFREQ
> + select DEVFREQ_GOV_SIMPLE_ONDEMAND
> + select NLS
> + help
> + Enables support for UFS (Universal Flash Storage) host controllers.
> + A UFS host controller is an electronic component that is able to
> + communicate with a UFS card. UFS host controllers occur in
> + smartphones, laptops, digital cameras and also in cars.
> + The kernel module will be called ufshcd.
> +
> + To compile this driver as a module, choose M here and read
> + <file:Documentation/scsi/ufs.rst>.
> + However, do not compile this as a module if your root file system
> + (the one containing the directory /) is located on a UFS device.
> +
> +if SCSI_UFSHCD
> +
> +source "drivers/ufs/core/Kconfig"
> +
> +source "drivers/ufs/host/Kconfig"
> +
> +endif
> diff --git a/drivers/ufs/Makefile b/drivers/ufs/Makefile
> new file mode 100644
> index 000000000000..5a199ef18d4c
> --- /dev/null
> +++ b/drivers/ufs/Makefile
> @@ -0,0 +1,5 @@
> +# SPDX-License-Identifier: GPL-2.0
> +
> +# The link order is important here. ufshcd-core must initialize
> +# before vendor drivers.
> +obj-$(CONFIG_SCSI_UFSHCD) += core/ host/
> diff --git a/drivers/ufs/core/Kconfig b/drivers/ufs/core/Kconfig
> new file mode 100644
> index 000000000000..e11978171403
> --- /dev/null
> +++ b/drivers/ufs/core/Kconfig
> @@ -0,0 +1,60 @@
> +# SPDX-License-Identifier: GPL-2.0+
> +#
> +# Kernel configuration file for the UFS Host Controller core.
> +#
> +# Copyright (C) 2011-2013 Samsung India Software Operations
> +#
> +# Authors:
> +# Santosh Yaraganavi <santosh.sy@samsung.com>
> +# Vinayak Holikatti <h.vinayak@samsung.com>
> +
> +config SCSI_UFS_BSG
> + bool "Universal Flash Storage BSG device node"
> + select BLK_DEV_BSGLIB
> + help
> + Universal Flash Storage (UFS) is SCSI transport specification for
> + accessing flash storage on digital cameras, mobile phones and
> + consumer electronic devices.
> + A UFS controller communicates with a UFS device by exchanging
> + UFS Protocol Information Units (UPIUs).
> + UPIUs can not only be used as a transport layer for the SCSI protocol
> + but are also used by the UFS native command set.
> + This transport driver supports exchanging UFS protocol information units
> + with a UFS device. See also the ufshcd driver, which is a SCSI driver
> + that supports UFS devices.
> +
> + Select this if you need a bsg device node for your UFS controller.
> + If unsure, say N.
> +
> +config SCSI_UFS_CRYPTO
> + bool "UFS Crypto Engine Support"
> + depends on BLK_INLINE_ENCRYPTION
> + help
> + Enable Crypto Engine Support in UFS.
> + Enabling this makes it possible for the kernel to use the crypto
> + capabilities of the UFS device (if present) to perform crypto
> + operations on data being transferred to/from the device.
> +
> +config SCSI_UFS_HPB
> + bool "Support UFS Host Performance Booster"
> + help
> + The UFS HPB feature improves random read performance. It caches
> + L2P (logical to physical) map of UFS to host DRAM. The driver uses HPB
> + read command by piggybacking physical page number for bypassing FTL (flash
> + translation layer)'s L2P address translation.
> +
> +config SCSI_UFS_FAULT_INJECTION
> + bool "UFS Fault Injection Support"
> + depends on FAULT_INJECTION
> + help
> + Enable fault injection support in the UFS driver. This makes it easier
> + to test the UFS error handler and abort handler.
> +
> +config SCSI_UFS_HWMON
> + bool "UFS Temperature Notification"
> + depends on SCSI_UFSHCD=HWMON || HWMON=y
> + help
> + This provides support for UFS hardware monitoring. If enabled,
> + a hardware monitoring device will be created for the UFS device.
> +
> + If unsure, say N.
> diff --git a/drivers/ufs/core/Makefile b/drivers/ufs/core/Makefile
> new file mode 100644
> index 000000000000..62f38c5bf857
> --- /dev/null
> +++ b/drivers/ufs/core/Makefile
> @@ -0,0 +1,10 @@
> +# SPDX-License-Identifier: GPL-2.0
> +
> +obj-$(CONFIG_SCSI_UFSHCD) += ufshcd-core.o
> +ufshcd-core-y += ufshcd.o ufs-sysfs.o
> +ufshcd-core-$(CONFIG_DEBUG_FS) += ufs-debugfs.o
> +ufshcd-core-$(CONFIG_SCSI_UFS_BSG) += ufs_bsg.o
> +ufshcd-core-$(CONFIG_SCSI_UFS_CRYPTO) += ufshcd-crypto.o
> +ufshcd-core-$(CONFIG_SCSI_UFS_HPB) += ufshpb.o
> +ufshcd-core-$(CONFIG_SCSI_UFS_FAULT_INJECTION) += ufs-fault-injection.o
> +ufshcd-core-$(CONFIG_SCSI_UFS_HWMON) += ufs-hwmon.o
> diff --git a/drivers/scsi/ufs/ufs-debugfs.c b/drivers/ufs/core/ufs-debugfs.c
> similarity index 99%
> rename from drivers/scsi/ufs/ufs-debugfs.c
> rename to drivers/ufs/core/ufs-debugfs.c
> index c10a8f09682b..e3baed6c70bd 100644
> --- a/drivers/scsi/ufs/ufs-debugfs.c
> +++ b/drivers/ufs/core/ufs-debugfs.c
> @@ -4,7 +4,7 @@
> #include <linux/debugfs.h>
>
> #include "ufs-debugfs.h"
> -#include "ufshcd.h"
> +#include <ufs/ufshcd.h>
> #include "ufshcd-priv.h"
>
> static struct dentry *ufs_debugfs_root;
> diff --git a/drivers/scsi/ufs/ufs-debugfs.h b/drivers/ufs/core/ufs-debugfs.h
> similarity index 100%
> rename from drivers/scsi/ufs/ufs-debugfs.h
> rename to drivers/ufs/core/ufs-debugfs.h
> diff --git a/drivers/scsi/ufs/ufs-fault-injection.c b/drivers/ufs/core/ufs-fault-injection.c
> similarity index 100%
> rename from drivers/scsi/ufs/ufs-fault-injection.c
> rename to drivers/ufs/core/ufs-fault-injection.c
> diff --git a/drivers/scsi/ufs/ufs-fault-injection.h b/drivers/ufs/core/ufs-fault-injection.h
> similarity index 100%
> rename from drivers/scsi/ufs/ufs-fault-injection.h
> rename to drivers/ufs/core/ufs-fault-injection.h
> diff --git a/drivers/scsi/ufs/ufs-hwmon.c b/drivers/ufs/core/ufs-hwmon.c
> similarity index 99%
> rename from drivers/scsi/ufs/ufs-hwmon.c
> rename to drivers/ufs/core/ufs-hwmon.c
> index c38d9d98a86d..4c6a872b7a7c 100644
> --- a/drivers/scsi/ufs/ufs-hwmon.c
> +++ b/drivers/ufs/core/ufs-hwmon.c
> @@ -7,7 +7,7 @@
> #include <linux/hwmon.h>
> #include <linux/units.h>
>
> -#include "ufshcd.h"
> +#include <ufs/ufshcd.h>
> #include "ufshcd-priv.h"
>
> struct ufs_hwmon_data {
> diff --git a/drivers/scsi/ufs/ufs-sysfs.c b/drivers/ufs/core/ufs-sysfs.c
> similarity index 99%
> rename from drivers/scsi/ufs/ufs-sysfs.c
> rename to drivers/ufs/core/ufs-sysfs.c
> index 8a3c6442f291..0a088b47d557 100644
> --- a/drivers/scsi/ufs/ufs-sysfs.c
> +++ b/drivers/ufs/core/ufs-sysfs.c
> @@ -6,7 +6,7 @@
> #include <linux/bitfield.h>
> #include <asm/unaligned.h>
>
> -#include "ufs.h"
> +#include <ufs/ufs.h>
> #include "ufs-sysfs.h"
> #include "ufshcd-priv.h"
>
> diff --git a/drivers/scsi/ufs/ufs-sysfs.h b/drivers/ufs/core/ufs-sysfs.h
> similarity index 100%
> rename from drivers/scsi/ufs/ufs-sysfs.h
> rename to drivers/ufs/core/ufs-sysfs.h
> diff --git a/drivers/scsi/ufs/ufs_bsg.c b/drivers/ufs/core/ufs_bsg.c
> similarity index 99%
> rename from drivers/scsi/ufs/ufs_bsg.c
> rename to drivers/ufs/core/ufs_bsg.c
> index 9e9b93867cab..b99e3f3dc4ef 100644
> --- a/drivers/scsi/ufs/ufs_bsg.c
> +++ b/drivers/ufs/core/ufs_bsg.c
> @@ -9,7 +9,7 @@
> #include <scsi/scsi.h>
> #include <scsi/scsi_host.h>
> #include "ufs_bsg.h"
> -#include "ufshcd.h"
> +#include <ufs/ufshcd.h>
> #include "ufshcd-priv.h"
>
> static int ufs_bsg_get_query_desc_size(struct ufs_hba *hba, int *desc_len,
> diff --git a/drivers/scsi/ufs/ufs_bsg.h b/drivers/ufs/core/ufs_bsg.h
> similarity index 100%
> rename from drivers/scsi/ufs/ufs_bsg.h
> rename to drivers/ufs/core/ufs_bsg.h
> diff --git a/drivers/scsi/ufs/ufshcd-crypto.c b/drivers/ufs/core/ufshcd-crypto.c
> similarity index 99%
> rename from drivers/scsi/ufs/ufshcd-crypto.c
> rename to drivers/ufs/core/ufshcd-crypto.c
> index 67402baf6fae..198360fe5e8e 100644
> --- a/drivers/scsi/ufs/ufshcd-crypto.c
> +++ b/drivers/ufs/core/ufshcd-crypto.c
> @@ -3,7 +3,7 @@
> * Copyright 2019 Google LLC
> */
>
> -#include "ufshcd.h"
> +#include <ufs/ufshcd.h>
> #include "ufshcd-crypto.h"
>
> /* Blk-crypto modes supported by UFS crypto */
> diff --git a/drivers/scsi/ufs/ufshcd-crypto.h b/drivers/ufs/core/ufshcd-crypto.h
> similarity index 97%
> rename from drivers/scsi/ufs/ufshcd-crypto.h
> rename to drivers/ufs/core/ufshcd-crypto.h
> index 9f98f18f9646..504cc841540b 100644
> --- a/drivers/scsi/ufs/ufshcd-crypto.h
> +++ b/drivers/ufs/core/ufshcd-crypto.h
> @@ -7,9 +7,9 @@
> #define _UFSHCD_CRYPTO_H
>
> #include <scsi/scsi_cmnd.h>
> -#include "ufshcd.h"
> +#include <ufs/ufshcd.h>
> #include "ufshcd-priv.h"
> -#include "ufshci.h"
> +#include <ufs/ufshci.h>
>
> #ifdef CONFIG_SCSI_UFS_CRYPTO
>
> diff --git a/drivers/scsi/ufs/ufshcd-priv.h b/drivers/ufs/core/ufshcd-priv.h
> similarity index 99%
> rename from drivers/scsi/ufs/ufshcd-priv.h
> rename to drivers/ufs/core/ufshcd-priv.h
> index 38bc77d3dbbd..ffb01fc6de75 100644
> --- a/drivers/scsi/ufs/ufshcd-priv.h
> +++ b/drivers/ufs/core/ufshcd-priv.h
> @@ -4,7 +4,7 @@
> #define _UFSHCD_PRIV_H_
>
> #include <linux/pm_runtime.h>
> -#include "ufshcd.h"
> +#include <ufs/ufshcd.h>
>
> static inline bool ufshcd_is_user_access_allowed(struct ufs_hba *hba)
> {
> diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/ufs/core/ufshcd.c
> similarity index 99%
> rename from drivers/scsi/ufs/ufshcd.c
> rename to drivers/ufs/core/ufshcd.c
> index 1fb3a8b9b03e..efe67a381c32 100644
> --- a/drivers/scsi/ufs/ufshcd.c
> +++ b/drivers/ufs/core/ufshcd.c
> @@ -26,8 +26,8 @@
> #include <scsi/scsi_driver.h>
> #include <scsi/scsi_eh.h>
> #include "ufshcd-priv.h"
> -#include "ufs_quirks.h"
> -#include "unipro.h"
> +#include <ufs/ufs_quirks.h>
> +#include <ufs/unipro.h>
> #include "ufs-sysfs.h"
> #include "ufs-debugfs.h"
> #include "ufs-fault-injection.h"
> diff --git a/drivers/scsi/ufs/ufshpb.c b/drivers/ufs/core/ufshpb.c
> similarity index 99%
> rename from drivers/scsi/ufs/ufshpb.c
> rename to drivers/ufs/core/ufshpb.c
> index f1f65383e97d..aee0ec4cee70 100644
> --- a/drivers/scsi/ufs/ufshpb.c
> +++ b/drivers/ufs/core/ufshpb.c
> @@ -17,7 +17,7 @@
>
> #include "ufshcd-priv.h"
> #include "ufshpb.h"
> -#include "../sd.h"
> +#include "../../scsi/sd.h"
>
> #define ACTIVATION_THRESHOLD 8 /* 8 IOs */
> #define READ_TO_MS 1000
> diff --git a/drivers/scsi/ufs/ufshpb.h b/drivers/ufs/core/ufshpb.h
> similarity index 100%
> rename from drivers/scsi/ufs/ufshpb.h
> rename to drivers/ufs/core/ufshpb.h
> diff --git a/drivers/scsi/ufs/Kconfig b/drivers/ufs/host/Kconfig
> similarity index 56%
> rename from drivers/scsi/ufs/Kconfig
> rename to drivers/ufs/host/Kconfig
> index 393b9a01da36..82590224da13 100644
> --- a/drivers/scsi/ufs/Kconfig
> +++ b/drivers/ufs/host/Kconfig
> @@ -1,6 +1,6 @@
> # SPDX-License-Identifier: GPL-2.0+
> #
> -# Kernel configuration file for the UFS Host Controller
> +# Kernel configuration file for the UFS host controller drivers.
> #
> # Copyright (C) 2011-2013 Samsung India Software Operations
> #
> @@ -8,26 +8,6 @@
> # Santosh Yaraganavi <santosh.sy@samsung.com>
> # Vinayak Holikatti <h.vinayak@samsung.com>
>
> -config SCSI_UFSHCD
> - tristate "Universal Flash Storage Controller Driver Core"
> - depends on SCSI && SCSI_DMA
> - select PM_DEVFREQ
> - select DEVFREQ_GOV_SIMPLE_ONDEMAND
> - select NLS
> - help
> - This selects the support for UFS devices in Linux, say Y and make
> - sure that you know the name of your UFS host adapter (the card
> - inside your computer that "speaks" the UFS protocol, also
> - called UFS Host Controller), because you will be asked for it.
> - The module will be called ufshcd.
> -
> - To compile this driver as a module, choose M here and read
> - <file:Documentation/scsi/ufs.rst>.
> - However, do not compile this as a module if your root file system
> - (the one containing the directory /) is located on a UFS device.
> -
> -if SCSI_UFSHCD
> -
> config SCSI_UFSHCD_PCI
> tristate "PCI bus based UFS Controller support"
> depends on PCI
> @@ -122,24 +102,6 @@ config SCSI_UFS_TI_J721E
> Selects this if you have TI platform with UFS controller.
> If unsure, say N.
>
> -config SCSI_UFS_BSG
> - bool "Universal Flash Storage BSG device node"
> - select BLK_DEV_BSGLIB
> - help
> - Universal Flash Storage (UFS) is SCSI transport specification for
> - accessing flash storage on digital cameras, mobile phones and
> - consumer electronic devices.
> - A UFS controller communicates with a UFS device by exchanging
> - UFS Protocol Information Units (UPIUs).
> - UPIUs can not only be used as a transport layer for the SCSI protocol
> - but are also used by the UFS native command set.
> - This transport driver supports exchanging UFS protocol information units
> - with a UFS device. See also the ufshcd driver, which is a SCSI driver
> - that supports UFS devices.
> -
> - Select this if you need a bsg device node for your UFS controller.
> - If unsure, say N.
> -
> config SCSI_UFS_EXYNOS
> tristate "Exynos specific hooks to UFS controller platform driver"
> depends on SCSI_UFSHCD_PLATFORM && (ARCH_EXYNOS || COMPILE_TEST)
> @@ -150,38 +112,3 @@ config SCSI_UFS_EXYNOS
>
> Select this if you have UFS host controller on Samsung Exynos SoC.
> If unsure, say N.
> -
> -config SCSI_UFS_CRYPTO
> - bool "UFS Crypto Engine Support"
> - depends on BLK_INLINE_ENCRYPTION
> - help
> - Enable Crypto Engine Support in UFS.
> - Enabling this makes it possible for the kernel to use the crypto
> - capabilities of the UFS device (if present) to perform crypto
> - operations on data being transferred to/from the device.
> -
> -config SCSI_UFS_HPB
> - bool "Support UFS Host Performance Booster"
> - help
> - The UFS HPB feature improves random read performance. It caches
> - L2P (logical to physical) map of UFS to host DRAM. The driver uses HPB
> - read command by piggybacking physical page number for bypassing FTL (flash
> - translation layer)'s L2P address translation.
> -
> -config SCSI_UFS_FAULT_INJECTION
> - bool "UFS Fault Injection Support"
> - depends on FAULT_INJECTION
> - help
> - Enable fault injection support in the UFS driver. This makes it easier
> - to test the UFS error handler and abort handler.
> -
> -config SCSI_UFS_HWMON
> - bool "UFS Temperature Notification"
> - depends on SCSI_UFSHCD=HWMON || HWMON=y
> - help
> - This provides support for UFS hardware monitoring. If enabled,
> - a hardware monitoring device will be created for the UFS device.
> -
> - If unsure, say N.
> -
> -endif
> diff --git a/drivers/scsi/ufs/Makefile b/drivers/ufs/host/Makefile
> similarity index 56%
> rename from drivers/scsi/ufs/Makefile
> rename to drivers/ufs/host/Makefile
> index 966048875b50..e4be54273c98 100644
> --- a/drivers/scsi/ufs/Makefile
> +++ b/drivers/ufs/host/Makefile
> @@ -1,16 +1,4 @@
> # SPDX-License-Identifier: GPL-2.0
> -# UFSHCD makefile
> -
> -# The link order is important here. ufshcd-core must initialize
> -# before vendor drivers.
> -obj-$(CONFIG_SCSI_UFSHCD) += ufshcd-core.o
> -ufshcd-core-y += ufshcd.o ufs-sysfs.o
> -ufshcd-core-$(CONFIG_DEBUG_FS) += ufs-debugfs.o
> -ufshcd-core-$(CONFIG_SCSI_UFS_BSG) += ufs_bsg.o
> -ufshcd-core-$(CONFIG_SCSI_UFS_CRYPTO) += ufshcd-crypto.o
> -ufshcd-core-$(CONFIG_SCSI_UFS_HPB) += ufshpb.o
> -ufshcd-core-$(CONFIG_SCSI_UFS_FAULT_INJECTION) += ufs-fault-injection.o
> -ufshcd-core-$(CONFIG_SCSI_UFS_HWMON) += ufs-hwmon.o
>
> obj-$(CONFIG_SCSI_UFS_DWC_TC_PCI) += tc-dwc-g210-pci.o ufshcd-dwc.o tc-dwc-g210.o
> obj-$(CONFIG_SCSI_UFS_DWC_TC_PLATFORM) += tc-dwc-g210-pltfrm.o ufshcd-dwc.o tc-dwc-g210.o
> diff --git a/drivers/scsi/ufs/cdns-pltfrm.c b/drivers/ufs/host/cdns-pltfrm.c
> similarity index 100%
> rename from drivers/scsi/ufs/cdns-pltfrm.c
> rename to drivers/ufs/host/cdns-pltfrm.c
> diff --git a/drivers/scsi/ufs/tc-dwc-g210-pci.c b/drivers/ufs/host/tc-dwc-g210-pci.c
> similarity index 99%
> rename from drivers/scsi/ufs/tc-dwc-g210-pci.c
> rename to drivers/ufs/host/tc-dwc-g210-pci.c
> index e635c211c783..92b8ad4b58fe 100644
> --- a/drivers/scsi/ufs/tc-dwc-g210-pci.c
> +++ b/drivers/ufs/host/tc-dwc-g210-pci.c
> @@ -7,7 +7,7 @@
> * Authors: Joao Pinto <jpinto@synopsys.com>
> */
>
> -#include "ufshcd.h"
> +#include <ufs/ufshcd.h>
> #include "ufshcd-dwc.h"
> #include "tc-dwc-g210.h"
>
> diff --git a/drivers/scsi/ufs/tc-dwc-g210-pltfrm.c b/drivers/ufs/host/tc-dwc-g210-pltfrm.c
> similarity index 100%
> rename from drivers/scsi/ufs/tc-dwc-g210-pltfrm.c
> rename to drivers/ufs/host/tc-dwc-g210-pltfrm.c
> diff --git a/drivers/scsi/ufs/tc-dwc-g210.c b/drivers/ufs/host/tc-dwc-g210.c
> similarity index 99%
> rename from drivers/scsi/ufs/tc-dwc-g210.c
> rename to drivers/ufs/host/tc-dwc-g210.c
> index 7ef67c9fc5b8..deb93dbd83a4 100644
> --- a/drivers/scsi/ufs/tc-dwc-g210.c
> +++ b/drivers/ufs/host/tc-dwc-g210.c
> @@ -9,8 +9,8 @@
>
> #include <linux/module.h>
>
> -#include "ufshcd.h"
> -#include "unipro.h"
> +#include <ufs/ufshcd.h>
> +#include <ufs/unipro.h>
>
> #include "ufshcd-dwc.h"
> #include "ufshci-dwc.h"
> diff --git a/drivers/scsi/ufs/tc-dwc-g210.h b/drivers/ufs/host/tc-dwc-g210.h
> similarity index 100%
> rename from drivers/scsi/ufs/tc-dwc-g210.h
> rename to drivers/ufs/host/tc-dwc-g210.h
> diff --git a/drivers/scsi/ufs/ti-j721e-ufs.c b/drivers/ufs/host/ti-j721e-ufs.c
> similarity index 100%
> rename from drivers/scsi/ufs/ti-j721e-ufs.c
> rename to drivers/ufs/host/ti-j721e-ufs.c
> diff --git a/drivers/scsi/ufs/ufs-exynos.c b/drivers/ufs/host/ufs-exynos.c
> similarity index 99%
> rename from drivers/scsi/ufs/ufs-exynos.c
> rename to drivers/ufs/host/ufs-exynos.c
> index ddb2d42605c5..a81d8cbd542f 100644
> --- a/drivers/scsi/ufs/ufs-exynos.c
> +++ b/drivers/ufs/host/ufs-exynos.c
> @@ -18,10 +18,10 @@
> #include <linux/platform_device.h>
> #include <linux/regmap.h>
>
> -#include "ufshcd.h"
> +#include <ufs/ufshcd.h>
> #include "ufshcd-pltfrm.h"
> -#include "ufshci.h"
> -#include "unipro.h"
> +#include <ufs/ufshci.h>
> +#include <ufs/unipro.h>
>
> #include "ufs-exynos.h"
>
> diff --git a/drivers/scsi/ufs/ufs-exynos.h b/drivers/ufs/host/ufs-exynos.h
> similarity index 100%
> rename from drivers/scsi/ufs/ufs-exynos.h
> rename to drivers/ufs/host/ufs-exynos.h
> diff --git a/drivers/scsi/ufs/ufs-hisi.c b/drivers/ufs/host/ufs-hisi.c
> similarity index 99%
> rename from drivers/scsi/ufs/ufs-hisi.c
> rename to drivers/ufs/host/ufs-hisi.c
> index 7046143063ee..2eed13bc82ca 100644
> --- a/drivers/scsi/ufs/ufs-hisi.c
> +++ b/drivers/ufs/host/ufs-hisi.c
> @@ -15,12 +15,12 @@
> #include <linux/platform_device.h>
> #include <linux/reset.h>
>
> -#include "ufshcd.h"
> +#include <ufs/ufshcd.h>
> #include "ufshcd-pltfrm.h"
> -#include "unipro.h"
> +#include <ufs/unipro.h>
> #include "ufs-hisi.h"
> -#include "ufshci.h"
> -#include "ufs_quirks.h"
> +#include <ufs/ufshci.h>
> +#include <ufs/ufs_quirks.h>
>
> static int ufs_hisi_check_hibern8(struct ufs_hba *hba)
> {
> diff --git a/drivers/scsi/ufs/ufs-hisi.h b/drivers/ufs/host/ufs-hisi.h
> similarity index 100%
> rename from drivers/scsi/ufs/ufs-hisi.h
> rename to drivers/ufs/host/ufs-hisi.h
> diff --git a/drivers/scsi/ufs/ufs-mediatek-trace.h b/drivers/ufs/host/ufs-mediatek-trace.h
> similarity index 93%
> rename from drivers/scsi/ufs/ufs-mediatek-trace.h
> rename to drivers/ufs/host/ufs-mediatek-trace.h
> index 895e82ea6ece..7e010848dc99 100644
> --- a/drivers/scsi/ufs/ufs-mediatek-trace.h
> +++ b/drivers/ufs/host/ufs-mediatek-trace.h
> @@ -31,6 +31,6 @@ TRACE_EVENT(ufs_mtk_event,
>
> #undef TRACE_INCLUDE_PATH
> #undef TRACE_INCLUDE_FILE
> -#define TRACE_INCLUDE_PATH ../../drivers/scsi/ufs/
> +#define TRACE_INCLUDE_PATH ../../drivers/ufs/host
> #define TRACE_INCLUDE_FILE ufs-mediatek-trace
> #include <trace/define_trace.h>
> diff --git a/drivers/scsi/ufs/ufs-mediatek.c b/drivers/ufs/host/ufs-mediatek.c
> similarity index 99%
> rename from drivers/scsi/ufs/ufs-mediatek.c
> rename to drivers/ufs/host/ufs-mediatek.c
> index 083d6bd4d561..beabc3ccd30b 100644
> --- a/drivers/scsi/ufs/ufs-mediatek.c
> +++ b/drivers/ufs/host/ufs-mediatek.c
> @@ -21,10 +21,10 @@
> #include <linux/sched/clock.h>
> #include <linux/soc/mediatek/mtk_sip_svc.h>
>
> -#include "ufshcd.h"
> +#include <ufs/ufshcd.h>
> #include "ufshcd-pltfrm.h"
> -#include "ufs_quirks.h"
> -#include "unipro.h"
> +#include <ufs/ufs_quirks.h>
> +#include <ufs/unipro.h>
> #include "ufs-mediatek.h"
>
> #define CREATE_TRACE_POINTS
> diff --git a/drivers/scsi/ufs/ufs-mediatek.h b/drivers/ufs/host/ufs-mediatek.h
> similarity index 100%
> rename from drivers/scsi/ufs/ufs-mediatek.h
> rename to drivers/ufs/host/ufs-mediatek.h
> diff --git a/drivers/scsi/ufs/ufs-qcom-ice.c b/drivers/ufs/host/ufs-qcom-ice.c
> similarity index 100%
> rename from drivers/scsi/ufs/ufs-qcom-ice.c
> rename to drivers/ufs/host/ufs-qcom-ice.c
> diff --git a/drivers/scsi/ufs/ufs-qcom.c b/drivers/ufs/host/ufs-qcom.c
> similarity index 99%
> rename from drivers/scsi/ufs/ufs-qcom.c
> rename to drivers/ufs/host/ufs-qcom.c
> index 4dcb232facaa..f10d4668814c 100644
> --- a/drivers/scsi/ufs/ufs-qcom.c
> +++ b/drivers/ufs/host/ufs-qcom.c
> @@ -15,12 +15,12 @@
> #include <linux/reset-controller.h>
> #include <linux/devfreq.h>
>
> -#include "ufshcd.h"
> +#include <ufs/ufshcd.h>
> #include "ufshcd-pltfrm.h"
> -#include "unipro.h"
> +#include <ufs/unipro.h>
> #include "ufs-qcom.h"
> -#include "ufshci.h"
> -#include "ufs_quirks.h"
> +#include <ufs/ufshci.h>
> +#include <ufs/ufs_quirks.h>
>
> #define UFS_QCOM_DEFAULT_DBG_PRINT_EN \
> (UFS_QCOM_DBG_PRINT_REGS_EN | UFS_QCOM_DBG_PRINT_TEST_BUS_EN)
> diff --git a/drivers/scsi/ufs/ufs-qcom.h b/drivers/ufs/host/ufs-qcom.h
> similarity index 99%
> rename from drivers/scsi/ufs/ufs-qcom.h
> rename to drivers/ufs/host/ufs-qcom.h
> index 771bc95d02c7..44466a395bb5 100644
> --- a/drivers/scsi/ufs/ufs-qcom.h
> +++ b/drivers/ufs/host/ufs-qcom.h
> @@ -7,7 +7,7 @@
>
> #include <linux/reset-controller.h>
> #include <linux/reset.h>
> -#include "ufshcd.h"
> +#include <ufs/ufshcd.h>
>
> #define MAX_UFS_QCOM_HOSTS 1
> #define MAX_U32 (~(u32)0)
> diff --git a/drivers/scsi/ufs/ufshcd-dwc.c b/drivers/ufs/host/ufshcd-dwc.c
> similarity index 98%
> rename from drivers/scsi/ufs/ufshcd-dwc.c
> rename to drivers/ufs/host/ufshcd-dwc.c
> index a57973c8d2a1..e28a67e1e314 100644
> --- a/drivers/scsi/ufs/ufshcd-dwc.c
> +++ b/drivers/ufs/host/ufshcd-dwc.c
> @@ -9,8 +9,8 @@
>
> #include <linux/module.h>
>
> -#include "ufshcd.h"
> -#include "unipro.h"
> +#include <ufs/ufshcd.h>
> +#include <ufs/unipro.h>
>
> #include "ufshcd-dwc.h"
> #include "ufshci-dwc.h"
> diff --git a/drivers/scsi/ufs/ufshcd-dwc.h b/drivers/ufs/host/ufshcd-dwc.h
> similarity index 95%
> rename from drivers/scsi/ufs/ufshcd-dwc.h
> rename to drivers/ufs/host/ufshcd-dwc.h
> index 43b70794e24f..ad91ea56662c 100644
> --- a/drivers/scsi/ufs/ufshcd-dwc.h
> +++ b/drivers/ufs/host/ufshcd-dwc.h
> @@ -10,7 +10,7 @@
> #ifndef _UFSHCD_DWC_H
> #define _UFSHCD_DWC_H
>
> -#include "ufshcd.h"
> +#include <ufs/ufshcd.h>
>
> struct ufshcd_dme_attr_val {
> u32 attr_sel;
> diff --git a/drivers/scsi/ufs/ufshcd-pci.c b/drivers/ufs/host/ufshcd-pci.c
> similarity index 99%
> rename from drivers/scsi/ufs/ufshcd-pci.c
> rename to drivers/ufs/host/ufshcd-pci.c
> index 20af2fbc3af1..04166bda41da 100644
> --- a/drivers/scsi/ufs/ufshcd-pci.c
> +++ b/drivers/ufs/host/ufshcd-pci.c
> @@ -9,7 +9,7 @@
> * Vinayak Holikatti <h.vinayak@samsung.com>
> */
>
> -#include "ufshcd.h"
> +#include <ufs/ufshcd.h>
> #include <linux/delay.h>
> #include <linux/module.h>
> #include <linux/pci.h>
> diff --git a/drivers/scsi/ufs/ufshcd-pltfrm.c b/drivers/ufs/host/ufshcd-pltfrm.c
> similarity index 99%
> rename from drivers/scsi/ufs/ufshcd-pltfrm.c
> rename to drivers/ufs/host/ufshcd-pltfrm.c
> index f5313f407617..e7332cc65b1f 100644
> --- a/drivers/scsi/ufs/ufshcd-pltfrm.c
> +++ b/drivers/ufs/host/ufshcd-pltfrm.c
> @@ -13,9 +13,9 @@
> #include <linux/pm_runtime.h>
> #include <linux/of.h>
>
> -#include "ufshcd.h"
> +#include <ufs/ufshcd.h>
> #include "ufshcd-pltfrm.h"
> -#include "unipro.h"
> +#include <ufs/unipro.h>
>
> #define UFSHCD_DEFAULT_LANES_PER_DIRECTION 2
>
> diff --git a/drivers/scsi/ufs/ufshcd-pltfrm.h b/drivers/ufs/host/ufshcd-pltfrm.h
> similarity index 98%
> rename from drivers/scsi/ufs/ufshcd-pltfrm.h
> rename to drivers/ufs/host/ufshcd-pltfrm.h
> index c33e28ac6ef6..43c2e412bd99 100644
> --- a/drivers/scsi/ufs/ufshcd-pltfrm.h
> +++ b/drivers/ufs/host/ufshcd-pltfrm.h
> @@ -5,7 +5,7 @@
> #ifndef UFSHCD_PLTFRM_H_
> #define UFSHCD_PLTFRM_H_
>
> -#include "ufshcd.h"
> +#include <ufs/ufshcd.h>
>
> #define UFS_PWM_MODE 1
> #define UFS_HS_MODE 2
> diff --git a/drivers/scsi/ufs/ufshci-dwc.h b/drivers/ufs/host/ufshci-dwc.h
> similarity index 100%
> rename from drivers/scsi/ufs/ufshci-dwc.h
> rename to drivers/ufs/host/ufshci-dwc.h
> diff --git a/drivers/scsi/ufs/ufs.h b/include/ufs/ufs.h
> similarity index 100%
> rename from drivers/scsi/ufs/ufs.h
> rename to include/ufs/ufs.h
> diff --git a/drivers/scsi/ufs/ufs_quirks.h b/include/ufs/ufs_quirks.h
> similarity index 100%
> rename from drivers/scsi/ufs/ufs_quirks.h
> rename to include/ufs/ufs_quirks.h
> diff --git a/drivers/scsi/ufs/ufshcd.h b/include/ufs/ufshcd.h
> similarity index 99%
> rename from drivers/scsi/ufs/ufshcd.h
> rename to include/ufs/ufshcd.h
> index 2b0f3441b813..a92271421718 100644
> --- a/drivers/scsi/ufs/ufshcd.h
> +++ b/include/ufs/ufshcd.h
> @@ -18,10 +18,10 @@
> #include <linux/devfreq.h>
> #include <linux/pm_runtime.h>
> #include <scsi/scsi_device.h>
> -#include "unipro.h"
> -#include "ufs.h"
> -#include "ufs_quirks.h"
> -#include "ufshci.h"
> +#include <ufs/unipro.h>
> +#include <ufs/ufs.h>
> +#include <ufs/ufs_quirks.h>
> +#include <ufs/ufshci.h>
>
> #define UFSHCD "ufshcd"
>
> diff --git a/drivers/scsi/ufs/ufshci.h b/include/ufs/ufshci.h
> similarity index 100%
> rename from drivers/scsi/ufs/ufshci.h
> rename to include/ufs/ufshci.h
> diff --git a/drivers/scsi/ufs/unipro.h b/include/ufs/unipro.h
> similarity index 100%
> rename from drivers/scsi/ufs/unipro.h
> rename to include/ufs/unipro.h
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] scsi: ufs: Split the drivers/scsi/ufs directory
2022-05-11 21:25 [PATCH] scsi: ufs: Split the drivers/scsi/ufs directory Bart Van Assche
` (3 preceding siblings ...)
2022-05-19 12:09 ` Adrian Hunter
@ 2022-05-20 0:28 ` Martin K. Petersen
2022-05-24 3:27 ` Martin K. Petersen
5 siblings, 0 replies; 7+ messages in thread
From: Martin K. Petersen @ 2022-05-20 0:28 UTC (permalink / raw)
To: Bart Van Assche
Cc: Martin K . Petersen, Jaegeuk Kim, Adrian Hunter, linux-scsi,
Avri Altman, Bean Huo, Bjorn Andersson, Keoseong Park
Bart,
> Split the drivers/scsi/ufs directory into 'core' and 'host'
> directories under the drivers/ufs/ directory. Move shared header files
> into the include/ufs/ directory. This separation makes it clear which
> header files UFS drivers are allowed to include (include/ufs/*.h) and
> which header files UFS drivers are not allowed to include
> (drivers/ufs/core/*.h).
Applied to 5.19/scsi-staging, thanks!
--
Martin K. Petersen Oracle Linux Engineering
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] scsi: ufs: Split the drivers/scsi/ufs directory
2022-05-11 21:25 [PATCH] scsi: ufs: Split the drivers/scsi/ufs directory Bart Van Assche
` (4 preceding siblings ...)
2022-05-20 0:28 ` Martin K. Petersen
@ 2022-05-24 3:27 ` Martin K. Petersen
5 siblings, 0 replies; 7+ messages in thread
From: Martin K. Petersen @ 2022-05-24 3:27 UTC (permalink / raw)
To: Bart Van Assche
Cc: Martin K . Petersen, Bean Huo, Jaegeuk Kim, linux-scsi,
Avri Altman, Bjorn Andersson, Keoseong Park, Adrian Hunter
On Wed, 11 May 2022 14:25:52 -0700, Bart Van Assche wrote:
> Split the drivers/scsi/ufs directory into 'core' and 'host' directories
> under the drivers/ufs/ directory. Move shared header files into the
> include/ufs/ directory. This separation makes it clear which header
> files UFS drivers are allowed to include (include/ufs/*.h) and which
> header files UFS drivers are not allowed to include
> (drivers/ufs/core/*.h).
>
> [...]
Applied to 5.19/scsi-queue, thanks!
[1/1] scsi: ufs: Split the drivers/scsi/ufs directory
https://git.kernel.org/mkp/scsi/c/dd11376b9f1b
--
Martin K. Petersen Oracle Linux Engineering
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2022-05-24 3:27 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-05-11 21:25 [PATCH] scsi: ufs: Split the drivers/scsi/ufs directory Bart Van Assche
[not found] ` <202205122323.RcDb4pBm-lkp@intel.com>
2022-05-12 17:18 ` Bart Van Assche
2022-05-18 18:33 ` Avri Altman
2022-05-19 9:07 ` Bean Huo
2022-05-19 12:09 ` Adrian Hunter
2022-05-20 0:28 ` Martin K. Petersen
2022-05-24 3:27 ` Martin K. Petersen
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox