ata: make SATA_PMP option selectable only if any SATA host driver is enabled
authorBartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
Thu, 26 Mar 2020 15:57:58 +0000 (16:57 +0100)
committerJens Axboe <axboe@kernel.dk>
Thu, 26 Mar 2020 16:28:17 +0000 (10:28 -0600)
There is no reason to expose SATA_PMP config option when no SATA
host drivers are enabled. To fix it add SATA_HOST config option,
make all SATA host drivers select it and finally make SATA_PMP
config options depend on it.

This also serves as preparation for the future changes which
optimize libata core code size on PATA only setups.

CC: "James E.J. Bottomley" <jejb@linux.ibm.com>
Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com> # for SCSI bits
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
drivers/ata/Kconfig
drivers/scsi/Kconfig
drivers/scsi/libsas/Kconfig

index a6beb2c5a6920e33b643d853ef4d56caf71e87b8..ad7760656f71adc47e252f075cf5e3d369d663a2 100644 (file)
@@ -34,6 +34,9 @@ if ATA
 config ATA_NONSTANDARD
        bool
 
+config SATA_HOST
+       bool
+
 config ATA_VERBOSE_ERROR
        bool "Verbose ATA error reporting"
        default y
@@ -73,6 +76,7 @@ config SATA_ZPODD
 
 config SATA_PMP
        bool "SATA Port Multiplier support"
+       depends on SATA_HOST
        default y
        help
          This option adds support for SATA Port Multipliers
@@ -85,6 +89,7 @@ comment "Controllers with non-SFF native interface"
 config SATA_AHCI
        tristate "AHCI SATA support"
        depends on PCI
+       select SATA_HOST
        help
          This option enables support for AHCI Serial ATA.
 
@@ -111,6 +116,7 @@ config SATA_MOBILE_LPM_POLICY
 
 config SATA_AHCI_PLATFORM
        tristate "Platform AHCI SATA support"
+       select SATA_HOST
        help
          This option enables support for Platform AHCI Serial ATA
          controllers.
@@ -121,6 +127,7 @@ config AHCI_BRCM
        tristate "Broadcom AHCI SATA support"
        depends on ARCH_BRCMSTB || BMIPS_GENERIC || ARCH_BCM_NSP || \
                   ARCH_BCM_63XX
+       select SATA_HOST
        help
          This option enables support for the AHCI SATA3 controller found on
          Broadcom SoC's.
@@ -130,6 +137,7 @@ config AHCI_BRCM
 config AHCI_DA850
        tristate "DaVinci DA850 AHCI SATA support"
        depends on ARCH_DAVINCI_DA850
+       select SATA_HOST
        help
          This option enables support for the DaVinci DA850 SoC's
          onboard AHCI SATA.
@@ -139,6 +147,7 @@ config AHCI_DA850
 config AHCI_DM816
        tristate "DaVinci DM816 AHCI SATA support"
        depends on ARCH_OMAP2PLUS
+       select SATA_HOST
        help
          This option enables support for the DaVinci DM816 SoC's
          onboard AHCI SATA controller.
@@ -148,6 +157,7 @@ config AHCI_DM816
 config AHCI_ST
        tristate "ST AHCI SATA support"
        depends on ARCH_STI
+       select SATA_HOST
        help
          This option enables support for ST AHCI SATA controller.
 
@@ -157,6 +167,7 @@ config AHCI_IMX
        tristate "Freescale i.MX AHCI SATA support"
        depends on MFD_SYSCON && (ARCH_MXC || COMPILE_TEST)
        depends on (HWMON && (THERMAL || !THERMAL_OF)) || !HWMON
+       select SATA_HOST
        help
          This option enables support for the Freescale i.MX SoC's
          onboard AHCI SATA.
@@ -166,6 +177,7 @@ config AHCI_IMX
 config AHCI_CEVA
        tristate "CEVA AHCI SATA support"
        depends on OF
+       select SATA_HOST
        help
          This option enables support for the CEVA AHCI SATA.
          It can be found on the Xilinx Zynq UltraScale+ MPSoC.
@@ -176,6 +188,7 @@ config AHCI_MTK
        tristate "MediaTek AHCI SATA support"
        depends on ARCH_MEDIATEK
        select MFD_SYSCON
+       select SATA_HOST
        help
          This option enables support for the MediaTek SoC's
          onboard AHCI SATA controller.
@@ -185,6 +198,7 @@ config AHCI_MTK
 config AHCI_MVEBU
        tristate "Marvell EBU AHCI SATA support"
        depends on ARCH_MVEBU
+       select SATA_HOST
        help
          This option enables support for the Marvebu EBU SoC's
          onboard AHCI SATA.
@@ -203,6 +217,7 @@ config AHCI_OCTEON
 config AHCI_SUNXI
        tristate "Allwinner sunxi AHCI SATA support"
        depends on ARCH_SUNXI
+       select SATA_HOST
        help
          This option enables support for the Allwinner sunxi SoC's
          onboard AHCI SATA.
@@ -212,6 +227,7 @@ config AHCI_SUNXI
 config AHCI_TEGRA
        tristate "NVIDIA Tegra AHCI SATA support"
        depends on ARCH_TEGRA
+       select SATA_HOST
        help
          This option enables support for the NVIDIA Tegra SoC's
          onboard AHCI SATA.
@@ -221,12 +237,14 @@ config AHCI_TEGRA
 config AHCI_XGENE
        tristate "APM X-Gene 6.0Gbps AHCI SATA host controller support"
        depends on PHY_XGENE
+       select SATA_HOST
        help
         This option enables support for APM X-Gene SoC SATA host controller.
 
 config AHCI_QORIQ
        tristate "Freescale QorIQ AHCI SATA support"
        depends on OF
+       select SATA_HOST
        help
          This option enables support for the Freescale QorIQ AHCI SoC's
          onboard AHCI SATA.
@@ -236,6 +254,7 @@ config AHCI_QORIQ
 config SATA_FSL
        tristate "Freescale 3.0Gbps SATA support"
        depends on FSL_SOC
+       select SATA_HOST
        help
          This option enables support for Freescale 3.0Gbps SATA controller.
          It can be found on MPC837x and MPC8315.
@@ -245,6 +264,7 @@ config SATA_FSL
 config SATA_GEMINI
        tristate "Gemini SATA bridge support"
        depends on ARCH_GEMINI || COMPILE_TEST
+       select SATA_HOST
        default ARCH_GEMINI
        help
          This enabled support for the FTIDE010 to SATA bridge
@@ -255,6 +275,7 @@ config SATA_GEMINI
 config SATA_AHCI_SEATTLE
        tristate "AMD Seattle 6.0Gbps AHCI SATA host controller support"
        depends on ARCH_SEATTLE
+       select SATA_HOST
        help
         This option enables support for AMD Seattle SATA host controller.
 
@@ -263,12 +284,14 @@ config SATA_AHCI_SEATTLE
 config SATA_INIC162X
        tristate "Initio 162x SATA support (Very Experimental)"
        depends on PCI
+       select SATA_HOST
        help
          This option enables support for Initio 162x Serial ATA.
 
 config SATA_ACARD_AHCI
        tristate "ACard AHCI variant (ATP 8620)"
        depends on PCI
+       select SATA_HOST
        help
          This option enables support for Acard.
 
@@ -277,6 +300,7 @@ config SATA_ACARD_AHCI
 config SATA_SIL24
        tristate "Silicon Image 3124/3132 SATA support"
        depends on PCI
+       select SATA_HOST
        help
          This option enables support for Silicon Image 3124/3132 Serial ATA.
 
@@ -326,6 +350,7 @@ config PATA_OCTEON_CF
 config SATA_QSTOR
        tristate "Pacific Digital SATA QStor support"
        depends on PCI
+       select SATA_HOST
        help
          This option enables support for Pacific Digital Serial ATA QStor.
 
@@ -334,6 +359,7 @@ config SATA_QSTOR
 config SATA_SX4
        tristate "Promise SATA SX4 support (Experimental)"
        depends on PCI
+       select SATA_HOST
        help
          This option enables support for Promise Serial ATA SX4.
 
@@ -357,6 +383,7 @@ comment "SATA SFF controllers with BMDMA"
 config ATA_PIIX
        tristate "Intel ESB, ICH, PIIX3, PIIX4 PATA/SATA support"
        depends on PCI
+       select SATA_HOST
        help
          This option enables support for ICH5/6/7/8 Serial ATA
          and support for PATA on the Intel ESB/ICH/PIIX3/PIIX4 series
@@ -368,6 +395,7 @@ config SATA_DWC
        tristate "DesignWare Cores SATA support"
        depends on DMADEVICES
        select GENERIC_PHY
+       select SATA_HOST
        help
          This option enables support for the on-chip SATA controller of the
          AppliedMicro processor 460EX.
@@ -398,6 +426,7 @@ config SATA_DWC_VDEBUG
 config SATA_HIGHBANK
        tristate "Calxeda Highbank SATA support"
        depends on ARCH_HIGHBANK || COMPILE_TEST
+       select SATA_HOST
        help
          This option enables support for the Calxeda Highbank SoC's
          onboard SATA.
@@ -409,6 +438,7 @@ config SATA_MV
        depends on PCI || ARCH_DOVE || ARCH_MV78XX0 || \
                   ARCH_MVEBU || ARCH_ORION5X || COMPILE_TEST
        select GENERIC_PHY
+       select SATA_HOST
        help
          This option enables support for the Marvell Serial ATA family.
          Currently supports 88SX[56]0[48][01] PCI(-X) chips,
@@ -419,6 +449,7 @@ config SATA_MV
 config SATA_NV
        tristate "NVIDIA SATA support"
        depends on PCI
+       select SATA_HOST
        help
          This option enables support for NVIDIA Serial ATA.
 
@@ -427,6 +458,7 @@ config SATA_NV
 config SATA_PROMISE
        tristate "Promise SATA TX2/TX4 support"
        depends on PCI
+       select SATA_HOST
        help
          This option enables support for Promise Serial ATA TX2/TX4.
 
@@ -435,6 +467,7 @@ config SATA_PROMISE
 config SATA_RCAR
        tristate "Renesas R-Car SATA support"
        depends on ARCH_RENESAS || COMPILE_TEST
+       select SATA_HOST
        help
          This option enables support for Renesas R-Car Serial ATA.
 
@@ -443,6 +476,7 @@ config SATA_RCAR
 config SATA_SIL
        tristate "Silicon Image SATA support"
        depends on PCI
+       select SATA_HOST
        help
          This option enables support for Silicon Image Serial ATA.
 
@@ -452,6 +486,7 @@ config SATA_SIS
        tristate "SiS 964/965/966/180 SATA support"
        depends on PCI
        select PATA_SIS
+       select SATA_HOST
        help
          This option enables support for SiS Serial ATA on
          SiS 964/965/966/180 and Parallel ATA on SiS 180.
@@ -462,6 +497,7 @@ config SATA_SIS
 config SATA_SVW
        tristate "ServerWorks Frodo / Apple K2 SATA support"
        depends on PCI
+       select SATA_HOST
        help
          This option enables support for Broadcom/Serverworks/Apple K2
          SATA support.
@@ -471,6 +507,7 @@ config SATA_SVW
 config SATA_ULI
        tristate "ULi Electronics SATA support"
        depends on PCI
+       select SATA_HOST
        help
          This option enables support for ULi Electronics SATA.
 
@@ -479,6 +516,7 @@ config SATA_ULI
 config SATA_VIA
        tristate "VIA SATA support"
        depends on PCI
+       select SATA_HOST
        help
          This option enables support for VIA Serial ATA.
 
@@ -487,6 +525,7 @@ config SATA_VIA
 config SATA_VITESSE
        tristate "VITESSE VSC-7174 / INTEL 31244 SATA support"
        depends on PCI
+       select SATA_HOST
        help
          This option enables support for Vitesse VSC7174 and Intel 31244 Serial ATA.
 
@@ -1113,6 +1152,7 @@ config PATA_ACPI
 config ATA_GENERIC
        tristate "Generic ATA support"
        depends on PCI && ATA_BMDMA
+       select SATA_HOST
        help
          This option enables support for generic BIOS configured
          ATA controllers via the new ATA layer
index a7881f8eb05ee4ffb9571da0d2a9d21b62abb92a..1b6eaf8da5fa4aa306c53efa0797687190583ae5 100644 (file)
@@ -989,6 +989,7 @@ config SCSI_SYM53C8XX_MMIO
 config SCSI_IPR
        tristate "IBM Power Linux RAID adapter support"
        depends on PCI && SCSI && ATA
+       select SATA_HOST
        select FW_LOADER
        select IRQ_POLL
        select SGL_ALLOC
index 5c6a5eff2f8ee95283530347a3317f3f78710833..052ee3a26f6eb2ddc508c0ddc141a85133a45d4a 100644 (file)
@@ -19,6 +19,7 @@ config SCSI_SAS_ATA
        bool "ATA support for libsas (requires libata)"
        depends on SCSI_SAS_LIBSAS
        depends on ATA = y || ATA = SCSI_SAS_LIBSAS
+       select SATA_HOST
        help
                Builds in ATA support into libsas.  Will necessitate
                the loading of libata along with libsas.