Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ata: make SATA_PMP option selectable only if any SATA host driver is enabled

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>

authored by

Bartlomiej Zolnierkiewicz and committed by
Jens Axboe
bd322af1 6f09eae3

+42
+40
drivers/ata/Kconfig
··· 34 34 config ATA_NONSTANDARD 35 35 bool 36 36 37 + config SATA_HOST 38 + bool 39 + 37 40 config ATA_VERBOSE_ERROR 38 41 bool "Verbose ATA error reporting" 39 42 default y ··· 76 73 77 74 config SATA_PMP 78 75 bool "SATA Port Multiplier support" 76 + depends on SATA_HOST 79 77 default y 80 78 help 81 79 This option adds support for SATA Port Multipliers ··· 89 85 config SATA_AHCI 90 86 tristate "AHCI SATA support" 91 87 depends on PCI 88 + select SATA_HOST 92 89 help 93 90 This option enables support for AHCI Serial ATA. 94 91 ··· 116 111 117 112 config SATA_AHCI_PLATFORM 118 113 tristate "Platform AHCI SATA support" 114 + select SATA_HOST 119 115 help 120 116 This option enables support for Platform AHCI Serial ATA 121 117 controllers. ··· 127 121 tristate "Broadcom AHCI SATA support" 128 122 depends on ARCH_BRCMSTB || BMIPS_GENERIC || ARCH_BCM_NSP || \ 129 123 ARCH_BCM_63XX 124 + select SATA_HOST 130 125 help 131 126 This option enables support for the AHCI SATA3 controller found on 132 127 Broadcom SoC's. ··· 137 130 config AHCI_DA850 138 131 tristate "DaVinci DA850 AHCI SATA support" 139 132 depends on ARCH_DAVINCI_DA850 133 + select SATA_HOST 140 134 help 141 135 This option enables support for the DaVinci DA850 SoC's 142 136 onboard AHCI SATA. ··· 147 139 config AHCI_DM816 148 140 tristate "DaVinci DM816 AHCI SATA support" 149 141 depends on ARCH_OMAP2PLUS 142 + select SATA_HOST 150 143 help 151 144 This option enables support for the DaVinci DM816 SoC's 152 145 onboard AHCI SATA controller. ··· 157 148 config AHCI_ST 158 149 tristate "ST AHCI SATA support" 159 150 depends on ARCH_STI 151 + select SATA_HOST 160 152 help 161 153 This option enables support for ST AHCI SATA controller. 162 154 ··· 167 157 tristate "Freescale i.MX AHCI SATA support" 168 158 depends on MFD_SYSCON && (ARCH_MXC || COMPILE_TEST) 169 159 depends on (HWMON && (THERMAL || !THERMAL_OF)) || !HWMON 160 + select SATA_HOST 170 161 help 171 162 This option enables support for the Freescale i.MX SoC's 172 163 onboard AHCI SATA. ··· 177 166 config AHCI_CEVA 178 167 tristate "CEVA AHCI SATA support" 179 168 depends on OF 169 + select SATA_HOST 180 170 help 181 171 This option enables support for the CEVA AHCI SATA. 182 172 It can be found on the Xilinx Zynq UltraScale+ MPSoC. ··· 188 176 tristate "MediaTek AHCI SATA support" 189 177 depends on ARCH_MEDIATEK 190 178 select MFD_SYSCON 179 + select SATA_HOST 191 180 help 192 181 This option enables support for the MediaTek SoC's 193 182 onboard AHCI SATA controller. ··· 198 185 config AHCI_MVEBU 199 186 tristate "Marvell EBU AHCI SATA support" 200 187 depends on ARCH_MVEBU 188 + select SATA_HOST 201 189 help 202 190 This option enables support for the Marvebu EBU SoC's 203 191 onboard AHCI SATA. ··· 217 203 config AHCI_SUNXI 218 204 tristate "Allwinner sunxi AHCI SATA support" 219 205 depends on ARCH_SUNXI 206 + select SATA_HOST 220 207 help 221 208 This option enables support for the Allwinner sunxi SoC's 222 209 onboard AHCI SATA. ··· 227 212 config AHCI_TEGRA 228 213 tristate "NVIDIA Tegra AHCI SATA support" 229 214 depends on ARCH_TEGRA 215 + select SATA_HOST 230 216 help 231 217 This option enables support for the NVIDIA Tegra SoC's 232 218 onboard AHCI SATA. ··· 237 221 config AHCI_XGENE 238 222 tristate "APM X-Gene 6.0Gbps AHCI SATA host controller support" 239 223 depends on PHY_XGENE 224 + select SATA_HOST 240 225 help 241 226 This option enables support for APM X-Gene SoC SATA host controller. 242 227 243 228 config AHCI_QORIQ 244 229 tristate "Freescale QorIQ AHCI SATA support" 245 230 depends on OF 231 + select SATA_HOST 246 232 help 247 233 This option enables support for the Freescale QorIQ AHCI SoC's 248 234 onboard AHCI SATA. ··· 254 236 config SATA_FSL 255 237 tristate "Freescale 3.0Gbps SATA support" 256 238 depends on FSL_SOC 239 + select SATA_HOST 257 240 help 258 241 This option enables support for Freescale 3.0Gbps SATA controller. 259 242 It can be found on MPC837x and MPC8315. ··· 264 245 config SATA_GEMINI 265 246 tristate "Gemini SATA bridge support" 266 247 depends on ARCH_GEMINI || COMPILE_TEST 248 + select SATA_HOST 267 249 default ARCH_GEMINI 268 250 help 269 251 This enabled support for the FTIDE010 to SATA bridge ··· 275 255 config SATA_AHCI_SEATTLE 276 256 tristate "AMD Seattle 6.0Gbps AHCI SATA host controller support" 277 257 depends on ARCH_SEATTLE 258 + select SATA_HOST 278 259 help 279 260 This option enables support for AMD Seattle SATA host controller. 280 261 ··· 284 263 config SATA_INIC162X 285 264 tristate "Initio 162x SATA support (Very Experimental)" 286 265 depends on PCI 266 + select SATA_HOST 287 267 help 288 268 This option enables support for Initio 162x Serial ATA. 289 269 290 270 config SATA_ACARD_AHCI 291 271 tristate "ACard AHCI variant (ATP 8620)" 292 272 depends on PCI 273 + select SATA_HOST 293 274 help 294 275 This option enables support for Acard. 295 276 ··· 300 277 config SATA_SIL24 301 278 tristate "Silicon Image 3124/3132 SATA support" 302 279 depends on PCI 280 + select SATA_HOST 303 281 help 304 282 This option enables support for Silicon Image 3124/3132 Serial ATA. 305 283 ··· 350 326 config SATA_QSTOR 351 327 tristate "Pacific Digital SATA QStor support" 352 328 depends on PCI 329 + select SATA_HOST 353 330 help 354 331 This option enables support for Pacific Digital Serial ATA QStor. 355 332 ··· 359 334 config SATA_SX4 360 335 tristate "Promise SATA SX4 support (Experimental)" 361 336 depends on PCI 337 + select SATA_HOST 362 338 help 363 339 This option enables support for Promise Serial ATA SX4. 364 340 ··· 383 357 config ATA_PIIX 384 358 tristate "Intel ESB, ICH, PIIX3, PIIX4 PATA/SATA support" 385 359 depends on PCI 360 + select SATA_HOST 386 361 help 387 362 This option enables support for ICH5/6/7/8 Serial ATA 388 363 and support for PATA on the Intel ESB/ICH/PIIX3/PIIX4 series ··· 395 368 tristate "DesignWare Cores SATA support" 396 369 depends on DMADEVICES 397 370 select GENERIC_PHY 371 + select SATA_HOST 398 372 help 399 373 This option enables support for the on-chip SATA controller of the 400 374 AppliedMicro processor 460EX. ··· 426 398 config SATA_HIGHBANK 427 399 tristate "Calxeda Highbank SATA support" 428 400 depends on ARCH_HIGHBANK || COMPILE_TEST 401 + select SATA_HOST 429 402 help 430 403 This option enables support for the Calxeda Highbank SoC's 431 404 onboard SATA. ··· 438 409 depends on PCI || ARCH_DOVE || ARCH_MV78XX0 || \ 439 410 ARCH_MVEBU || ARCH_ORION5X || COMPILE_TEST 440 411 select GENERIC_PHY 412 + select SATA_HOST 441 413 help 442 414 This option enables support for the Marvell Serial ATA family. 443 415 Currently supports 88SX[56]0[48][01] PCI(-X) chips, ··· 449 419 config SATA_NV 450 420 tristate "NVIDIA SATA support" 451 421 depends on PCI 422 + select SATA_HOST 452 423 help 453 424 This option enables support for NVIDIA Serial ATA. 454 425 ··· 458 427 config SATA_PROMISE 459 428 tristate "Promise SATA TX2/TX4 support" 460 429 depends on PCI 430 + select SATA_HOST 461 431 help 462 432 This option enables support for Promise Serial ATA TX2/TX4. 463 433 ··· 467 435 config SATA_RCAR 468 436 tristate "Renesas R-Car SATA support" 469 437 depends on ARCH_RENESAS || COMPILE_TEST 438 + select SATA_HOST 470 439 help 471 440 This option enables support for Renesas R-Car Serial ATA. 472 441 ··· 476 443 config SATA_SIL 477 444 tristate "Silicon Image SATA support" 478 445 depends on PCI 446 + select SATA_HOST 479 447 help 480 448 This option enables support for Silicon Image Serial ATA. 481 449 ··· 486 452 tristate "SiS 964/965/966/180 SATA support" 487 453 depends on PCI 488 454 select PATA_SIS 455 + select SATA_HOST 489 456 help 490 457 This option enables support for SiS Serial ATA on 491 458 SiS 964/965/966/180 and Parallel ATA on SiS 180. ··· 497 462 config SATA_SVW 498 463 tristate "ServerWorks Frodo / Apple K2 SATA support" 499 464 depends on PCI 465 + select SATA_HOST 500 466 help 501 467 This option enables support for Broadcom/Serverworks/Apple K2 502 468 SATA support. ··· 507 471 config SATA_ULI 508 472 tristate "ULi Electronics SATA support" 509 473 depends on PCI 474 + select SATA_HOST 510 475 help 511 476 This option enables support for ULi Electronics SATA. 512 477 ··· 516 479 config SATA_VIA 517 480 tristate "VIA SATA support" 518 481 depends on PCI 482 + select SATA_HOST 519 483 help 520 484 This option enables support for VIA Serial ATA. 521 485 ··· 525 487 config SATA_VITESSE 526 488 tristate "VITESSE VSC-7174 / INTEL 31244 SATA support" 527 489 depends on PCI 490 + select SATA_HOST 528 491 help 529 492 This option enables support for Vitesse VSC7174 and Intel 31244 Serial ATA. 530 493 ··· 1152 1113 config ATA_GENERIC 1153 1114 tristate "Generic ATA support" 1154 1115 depends on PCI && ATA_BMDMA 1116 + select SATA_HOST 1155 1117 help 1156 1118 This option enables support for generic BIOS configured 1157 1119 ATA controllers via the new ATA layer
+1
drivers/scsi/Kconfig
··· 989 989 config SCSI_IPR 990 990 tristate "IBM Power Linux RAID adapter support" 991 991 depends on PCI && SCSI && ATA 992 + select SATA_HOST 992 993 select FW_LOADER 993 994 select IRQ_POLL 994 995 select SGL_ALLOC
+1
drivers/scsi/libsas/Kconfig
··· 19 19 bool "ATA support for libsas (requires libata)" 20 20 depends on SCSI_SAS_LIBSAS 21 21 depends on ATA = y || ATA = SCSI_SAS_LIBSAS 22 + select SATA_HOST 22 23 help 23 24 Builds in ATA support into libsas. Will necessitate 24 25 the loading of libata along with libsas.