]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
scsi: ufs: Split the drivers/scsi/ufs directory
authorBart Van Assche <bvanassche@acm.org>
Wed, 11 May 2022 21:25:52 +0000 (14:25 -0700)
committerMartin K. Petersen <martin.petersen@oracle.com>
Fri, 20 May 2022 00:27:37 +0000 (20:27 -0400)
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.

Link: https://lore.kernel.org/r/20220511212552.655341-1-bvanassche@acm.org
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>
Tested-by: Bean Huo <beanhuo@micron.com>
Tested-by: Adrian Hunter <adrian.hunter@intel.com>
Reviewed-by: Bean Huo <beanhuo@micron.com>
Acked-by: Avri Altman <avri.altman@wdc.com>
Acked-by: Adrian Hunter <adrian.hunter@intel.com>
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
53 files changed:
MAINTAINERS
drivers/Kconfig
drivers/Makefile
drivers/scsi/Kconfig
drivers/scsi/Makefile
drivers/ufs/Kconfig [new file with mode: 0644]
drivers/ufs/Makefile [new file with mode: 0644]
drivers/ufs/core/Kconfig [new file with mode: 0644]
drivers/ufs/core/Makefile [new file with mode: 0644]
drivers/ufs/core/ufs-debugfs.c [moved from drivers/scsi/ufs/ufs-debugfs.c with 99% similarity]
drivers/ufs/core/ufs-debugfs.h [moved from drivers/scsi/ufs/ufs-debugfs.h with 100% similarity]
drivers/ufs/core/ufs-fault-injection.c [moved from drivers/scsi/ufs/ufs-fault-injection.c with 100% similarity]
drivers/ufs/core/ufs-fault-injection.h [moved from drivers/scsi/ufs/ufs-fault-injection.h with 100% similarity]
drivers/ufs/core/ufs-hwmon.c [moved from drivers/scsi/ufs/ufs-hwmon.c with 99% similarity]
drivers/ufs/core/ufs-sysfs.c [moved from drivers/scsi/ufs/ufs-sysfs.c with 99% similarity]
drivers/ufs/core/ufs-sysfs.h [moved from drivers/scsi/ufs/ufs-sysfs.h with 100% similarity]
drivers/ufs/core/ufs_bsg.c [moved from drivers/scsi/ufs/ufs_bsg.c with 99% similarity]
drivers/ufs/core/ufs_bsg.h [moved from drivers/scsi/ufs/ufs_bsg.h with 100% similarity]
drivers/ufs/core/ufshcd-crypto.c [moved from drivers/scsi/ufs/ufshcd-crypto.c with 99% similarity]
drivers/ufs/core/ufshcd-crypto.h [moved from drivers/scsi/ufs/ufshcd-crypto.h with 97% similarity]
drivers/ufs/core/ufshcd-priv.h [moved from drivers/scsi/ufs/ufshcd-priv.h with 99% similarity]
drivers/ufs/core/ufshcd.c [moved from drivers/scsi/ufs/ufshcd.c with 99% similarity]
drivers/ufs/core/ufshpb.c [moved from drivers/scsi/ufs/ufshpb.c with 99% similarity]
drivers/ufs/core/ufshpb.h [moved from drivers/scsi/ufs/ufshpb.h with 100% similarity]
drivers/ufs/host/Kconfig [moved from drivers/scsi/ufs/Kconfig with 56% similarity]
drivers/ufs/host/Makefile [moved from drivers/scsi/ufs/Makefile with 56% similarity]
drivers/ufs/host/cdns-pltfrm.c [moved from drivers/scsi/ufs/cdns-pltfrm.c with 100% similarity]
drivers/ufs/host/tc-dwc-g210-pci.c [moved from drivers/scsi/ufs/tc-dwc-g210-pci.c with 99% similarity]
drivers/ufs/host/tc-dwc-g210-pltfrm.c [moved from drivers/scsi/ufs/tc-dwc-g210-pltfrm.c with 100% similarity]
drivers/ufs/host/tc-dwc-g210.c [moved from drivers/scsi/ufs/tc-dwc-g210.c with 99% similarity]
drivers/ufs/host/tc-dwc-g210.h [moved from drivers/scsi/ufs/tc-dwc-g210.h with 100% similarity]
drivers/ufs/host/ti-j721e-ufs.c [moved from drivers/scsi/ufs/ti-j721e-ufs.c with 100% similarity]
drivers/ufs/host/ufs-exynos.c [moved from drivers/scsi/ufs/ufs-exynos.c with 99% similarity]
drivers/ufs/host/ufs-exynos.h [moved from drivers/scsi/ufs/ufs-exynos.h with 100% similarity]
drivers/ufs/host/ufs-hisi.c [moved from drivers/scsi/ufs/ufs-hisi.c with 99% similarity]
drivers/ufs/host/ufs-hisi.h [moved from drivers/scsi/ufs/ufs-hisi.h with 100% similarity]
drivers/ufs/host/ufs-mediatek-trace.h [moved from drivers/scsi/ufs/ufs-mediatek-trace.h with 93% similarity]
drivers/ufs/host/ufs-mediatek.c [moved from drivers/scsi/ufs/ufs-mediatek.c with 99% similarity]
drivers/ufs/host/ufs-mediatek.h [moved from drivers/scsi/ufs/ufs-mediatek.h with 100% similarity]
drivers/ufs/host/ufs-qcom-ice.c [moved from drivers/scsi/ufs/ufs-qcom-ice.c with 100% similarity]
drivers/ufs/host/ufs-qcom.c [moved from drivers/scsi/ufs/ufs-qcom.c with 99% similarity]
drivers/ufs/host/ufs-qcom.h [moved from drivers/scsi/ufs/ufs-qcom.h with 99% similarity]
drivers/ufs/host/ufshcd-dwc.c [moved from drivers/scsi/ufs/ufshcd-dwc.c with 98% similarity]
drivers/ufs/host/ufshcd-dwc.h [moved from drivers/scsi/ufs/ufshcd-dwc.h with 95% similarity]
drivers/ufs/host/ufshcd-pci.c [moved from drivers/scsi/ufs/ufshcd-pci.c with 99% similarity]
drivers/ufs/host/ufshcd-pltfrm.c [moved from drivers/scsi/ufs/ufshcd-pltfrm.c with 99% similarity]
drivers/ufs/host/ufshcd-pltfrm.h [moved from drivers/scsi/ufs/ufshcd-pltfrm.h with 98% similarity]
drivers/ufs/host/ufshci-dwc.h [moved from drivers/scsi/ufs/ufshci-dwc.h with 100% similarity]
include/ufs/ufs.h [moved from drivers/scsi/ufs/ufs.h with 100% similarity]
include/ufs/ufs_quirks.h [moved from drivers/scsi/ufs/ufs_quirks.h with 100% similarity]
include/ufs/ufshcd.h [moved from drivers/scsi/ufs/ufshcd.h with 99% similarity]
include/ufs/ufshci.h [moved from drivers/scsi/ufs/ufshci.h with 100% similarity]
include/ufs/unipro.h [moved from drivers/scsi/ufs/unipro.h with 100% similarity]

index ca9d56121974b5007e436ac4f98f252d8a8312cf..483a57da1f165380f7ccf33cb82fb1224038741f 100644 (file)
@@ -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>
index 8d6cd5d087222bc5755350269e4145651d65d4b5..a7ec388e18485d32f675854ccefbbe5f75dcc14c 100644 (file)
@@ -107,6 +107,8 @@ source "drivers/usb/Kconfig"
 
 source "drivers/mmc/Kconfig"
 
+source "drivers/ufs/Kconfig"
+
 source "drivers/memstick/Kconfig"
 
 source "drivers/leds/Kconfig"
index 020780b6b4d221c4dd18cd0af9ec21b4590715ad..8b4b90202e58a5badf819977a23bd3f4a6a18bbe 100644 (file)
@@ -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/
index 6e3a04107bb657a83e5dc31758b6b343b3b817df..a9fe5152addd3a6703cee5b480a4d698d1ebb565 100644 (file)
@@ -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"
index 19814c26c9084bdf086ef363e07d9b0d57a4ba71..2ad3bc0525316ad7cce702724b6d4f3321856596 100644 (file)
@@ -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 (file)
index 0000000..90226f7
--- /dev/null
@@ -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 (file)
index 0000000..5a199ef
--- /dev/null
@@ -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 (file)
index 0000000..e119781
--- /dev/null
@@ -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 (file)
index 0000000..62f38c5
--- /dev/null
@@ -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
similarity index 99%
rename from drivers/scsi/ufs/ufs-debugfs.c
rename to drivers/ufs/core/ufs-debugfs.c
index c10a8f09682b5f0c1f26b9d21359e31d42bb707e..e3baed6c70bd9b839319f106169ee05f35e6e6db 100644 (file)
@@ -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;
similarity index 99%
rename from drivers/scsi/ufs/ufs-hwmon.c
rename to drivers/ufs/core/ufs-hwmon.c
index c38d9d98a86d0ab955301df540bf949bd9fb2ba6..4c6a872b7a7ca9ad8d569854dc3c3e04fc44bcc9 100644 (file)
@@ -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 {
similarity index 99%
rename from drivers/scsi/ufs/ufs-sysfs.c
rename to drivers/ufs/core/ufs-sysfs.c
index 8a3c6442f2911e09d2990e8058dfd3fd0132b9f2..0a088b47d5570047de5457fc93bfc53953f4ebea 100644 (file)
@@ -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"
 
similarity index 99%
rename from drivers/scsi/ufs/ufs_bsg.c
rename to drivers/ufs/core/ufs_bsg.c
index 9e9b93867cab0f9c97c8378e1e5e2665c5fb75b4..b99e3f3dc4efdc421b06ef8e1ffcdd97ad048811 100644 (file)
@@ -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,
similarity index 99%
rename from drivers/scsi/ufs/ufshcd-crypto.c
rename to drivers/ufs/core/ufshcd-crypto.c
index 67402baf6faee85ed48616004251a35966fecf66..198360fe5e8e1f08c283879768ee6a2d8561a433 100644 (file)
@@ -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 */
similarity index 97%
rename from drivers/scsi/ufs/ufshcd-crypto.h
rename to drivers/ufs/core/ufshcd-crypto.h
index 9f98f18f964630f6217ad054fdbb8db2454d54b7..504cc841540b21893fb89e233d4fd9268f771179 100644 (file)
@@ -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
 
similarity index 99%
rename from drivers/scsi/ufs/ufshcd-priv.h
rename to drivers/ufs/core/ufshcd-priv.h
index 38bc77d3dbbd47bf5ddaf97b4263b367a496a64c..ffb01fc6de75b9bd3c1e5e179dd02504a866100a 100644 (file)
@@ -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)
 {
similarity index 99%
rename from drivers/scsi/ufs/ufshcd.c
rename to drivers/ufs/core/ufshcd.c
index 1fb3a8b9b03ed680af0bb19b68a09c17ebab11ff..efe67a381c32cd2472a002af84428ac1f1f917bb 100644 (file)
@@ -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"
similarity index 99%
rename from drivers/scsi/ufs/ufshpb.c
rename to drivers/ufs/core/ufshpb.c
index f1f65383e97de2314f53a6398a188945cd95905e..aee0ec4cee70eac41d8769b806fbddce0714e1ff 100644 (file)
@@ -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
similarity index 56%
rename from drivers/scsi/ufs/Kconfig
rename to drivers/ufs/host/Kconfig
index 393b9a01da36ba3df5634f8d9c558333e6aaa3c6..82590224da1364e508afb8a693cb3d73322de75b 100644 (file)
@@ -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
similarity index 56%
rename from drivers/scsi/ufs/Makefile
rename to drivers/ufs/host/Makefile
index 966048875b50386118cd6baf44d51aa18f43d76f..e4be54273c98b8c5562d75743384530dee200e94 100644 (file)
@@ -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
similarity index 99%
rename from drivers/scsi/ufs/tc-dwc-g210-pci.c
rename to drivers/ufs/host/tc-dwc-g210-pci.c
index e635c211c78389bc88453c07e740b432bdbbd413..92b8ad4b58febe1bf5289ad4eb31846dc6e71880 100644 (file)
@@ -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"
 
similarity index 99%
rename from drivers/scsi/ufs/tc-dwc-g210.c
rename to drivers/ufs/host/tc-dwc-g210.c
index 7ef67c9fc5b835c9597b98d964a771101b3e549b..deb93dbd83a433d26d7cf86b62d69bdb93eddc3e 100644 (file)
@@ -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"
similarity index 99%
rename from drivers/scsi/ufs/ufs-exynos.c
rename to drivers/ufs/host/ufs-exynos.c
index ddb2d42605c532ecffa92db68cc83d6fbff47bfb..a81d8cbd542f38e7a82bbe58437621aa6029374b 100644 (file)
 #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"
 
similarity index 99%
rename from drivers/scsi/ufs/ufs-hisi.c
rename to drivers/ufs/host/ufs-hisi.c
index 7046143063ee6963c1cc84d3f34f6c53c7277a9a..2eed13bc82ca186f1b6137857f1ad0c3075e8ac1 100644 (file)
 #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)
 {
similarity index 93%
rename from drivers/scsi/ufs/ufs-mediatek-trace.h
rename to drivers/ufs/host/ufs-mediatek-trace.h
index 895e82ea6ece551d0a5c5fa5c6ba8cf3ee3452e0..7e010848dc993c23ed7e8d6e90c4ebd49b9aeb1e 100644 (file)
@@ -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>
similarity index 99%
rename from drivers/scsi/ufs/ufs-mediatek.c
rename to drivers/ufs/host/ufs-mediatek.c
index 083d6bd4d561bf7655e0c7452a1a8fc3f1b89f04..beabc3ccd30b3653be17e99f99d25b545a584a6a 100644 (file)
 #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
similarity index 99%
rename from drivers/scsi/ufs/ufs-qcom.c
rename to drivers/ufs/host/ufs-qcom.c
index 4dcb232facaa9fc4f6ca33730f7573ca6cfbbe4a..f10d4668814cc35e07c1b2a858f61f40440c23ca 100644 (file)
 #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)
similarity index 99%
rename from drivers/scsi/ufs/ufs-qcom.h
rename to drivers/ufs/host/ufs-qcom.h
index 771bc95d02c72a8f653bc68384a225a156bbf50a..44466a395bb539a1b2da0fd71550f882c6618b0e 100644 (file)
@@ -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)
similarity index 98%
rename from drivers/scsi/ufs/ufshcd-dwc.c
rename to drivers/ufs/host/ufshcd-dwc.c
index a57973c8d2a122bbdceee32d4389cb68428761ed..e28a67e1e3145c926f9c4824ef2be5ebd1ecd215 100644 (file)
@@ -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"
similarity index 95%
rename from drivers/scsi/ufs/ufshcd-dwc.h
rename to drivers/ufs/host/ufshcd-dwc.h
index 43b70794e24ff4d5d18ac143da70cb011d1b2897..ad91ea56662c23bfe8285f87559b1392f34ca87b 100644 (file)
@@ -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;
similarity index 99%
rename from drivers/scsi/ufs/ufshcd-pci.c
rename to drivers/ufs/host/ufshcd-pci.c
index 20af2fbc3af145f5119300e563eee101682c6d13..04166bda41daacb25c8c18cfe2c76507dd91efa5 100644 (file)
@@ -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>
similarity index 99%
rename from drivers/scsi/ufs/ufshcd-pltfrm.c
rename to drivers/ufs/host/ufshcd-pltfrm.c
index f5313f4076175bf022e3f16f428ef773613381ac..e7332cc65b1fecfaa1f62d683ea77391949a5c4e 100644 (file)
@@ -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
 
similarity index 98%
rename from drivers/scsi/ufs/ufshcd-pltfrm.h
rename to drivers/ufs/host/ufshcd-pltfrm.h
index c33e28ac6ef621d310b82178afb68dbca4253c5a..43c2e412bd9904248a45a87b2b34d6c135498003 100644 (file)
@@ -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
similarity index 100%
rename from drivers/scsi/ufs/ufs.h
rename to include/ufs/ufs.h
similarity index 99%
rename from drivers/scsi/ufs/ufshcd.h
rename to include/ufs/ufshcd.h
index 2b0f3441b81381bc713a8216901f86f2b756ae18..a92271421718eff1e899709f376ed7d99b25c186 100644 (file)
 #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"