linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/2] ata: clean up how architectures enable PATA_PLATFORM and PATA_OF_PLATFORM
@ 2022-09-14 14:27 Lukas Bulwahn
  2022-09-14 14:27 ` [PATCH 2/2] ata: make PATA_PLATFORM selectable only for suitable architectures Lukas Bulwahn
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Lukas Bulwahn @ 2022-09-14 14:27 UTC (permalink / raw)
  To: Linus Walleij, Russell King, Catalin Marinas, Will Deacon,
	Arnd Bergmann, Damien Le Moal, linux-arm-kernel, linux-ide
  Cc: kernel-janitors, linux-kernel, Lukas Bulwahn

There are two options for platform device PATA support:

  PATA_PLATFORM: Generic platform device PATA support
  PATA_OF_PLATFORM: OpenFirmware platform device PATA support

If an architecture allows the generic platform device PATA support, it
shall select HAVE_PATA_PLATFORM. Then, Generic platform device PATA support
is available and can be selected.

If an architecture has OpenFirmware support, which it indicates by
selecting OF, OpenFirmware platform device PATA support is available
and can be selected.
If OpenFirmware platform device PATA support is selected, then the
functionality (code files) from Generic platform device PATA support needs
to be integrated in the kernel build for the OpenFirmware platform device
PATA support to work. Select PATA_PLATFORM in PATA_OF_PLATFORM to make sure
the needed files are added in the build.

So, architectures with OpenFirmware support, do not need to additionally
select HAVE_PATA_PLATFORM. It is only needed by architecture that want the
non-OF pata-platform module.

Reflect this way of intended use of config symbols in the ata Kconfig and
adjust all architecture definitions.

This follows the suggestion from Arnd Bergmann (see Link).

Suggested-by: Arnd Bergmann <arnd@arndb.de>
Link: https://lore.kernel.org/all/4b33bffc-2b6d-46b4-9f1d-d18e55975a5a@www.fastmail.com/

Signed-off-by: Lukas Bulwahn <lukas.bulwahn@gmail.com>
---
 arch/arm/mach-versatile/Kconfig | 1 -
 arch/arm64/Kconfig              | 1 -
 drivers/ata/Kconfig             | 6 +++---
 3 files changed, 3 insertions(+), 5 deletions(-)

diff --git a/arch/arm/mach-versatile/Kconfig b/arch/arm/mach-versatile/Kconfig
index 2ef226194c3a..b1519b4dc03a 100644
--- a/arch/arm/mach-versatile/Kconfig
+++ b/arch/arm/mach-versatile/Kconfig
@@ -256,7 +256,6 @@ menuconfig ARCH_VEXPRESS
 	select GPIOLIB
 	select HAVE_ARM_SCU if SMP
 	select HAVE_ARM_TWD if SMP
-	select HAVE_PATA_PLATFORM
 	select CLK_ICST
 	select NO_IOPORT_MAP
 	select PLAT_VERSATILE
diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
index 51f3f07c3efd..036bd67e662e 100644
--- a/arch/arm64/Kconfig
+++ b/arch/arm64/Kconfig
@@ -194,7 +194,6 @@ config ARM64
 	select HAVE_IRQ_TIME_ACCOUNTING
 	select HAVE_KVM
 	select HAVE_NMI
-	select HAVE_PATA_PLATFORM
 	select HAVE_PERF_EVENTS
 	select HAVE_PERF_REGS
 	select HAVE_PERF_USER_STACK_DUMP
diff --git a/drivers/ata/Kconfig b/drivers/ata/Kconfig
index 1c9f4fb2595d..c93d97455744 100644
--- a/drivers/ata/Kconfig
+++ b/drivers/ata/Kconfig
@@ -1102,8 +1102,7 @@ config PATA_PCMCIA
 	  If unsure, say N.
 
 config PATA_PLATFORM
-	tristate "Generic platform device PATA support"
-	depends on EXPERT || PPC || HAVE_PATA_PLATFORM
+	tristate "Generic platform device PATA support" if EXPERT || HAVE_PATA_PLATFORM
 	help
 	  This option enables support for generic directly connected ATA
 	  devices commonly found on embedded systems.
@@ -1112,7 +1111,8 @@ config PATA_PLATFORM
 
 config PATA_OF_PLATFORM
 	tristate "OpenFirmware platform device PATA support"
-	depends on PATA_PLATFORM && OF
+	depends on OF
+	select PATA_PLATFORM
 	help
 	  This option enables support for generic directly connected ATA
 	  devices commonly found on embedded systems with OpenFirmware
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH 2/2] ata: make PATA_PLATFORM selectable only for suitable architectures
  2022-09-14 14:27 [PATCH 1/2] ata: clean up how architectures enable PATA_PLATFORM and PATA_OF_PLATFORM Lukas Bulwahn
@ 2022-09-14 14:27 ` Lukas Bulwahn
  2022-09-14 14:33   ` Arnd Bergmann
  2022-09-14 14:29 ` [PATCH 1/2] ata: clean up how architectures enable PATA_PLATFORM and PATA_OF_PLATFORM Arnd Bergmann
  2022-09-16 14:26 ` Damien Le Moal
  2 siblings, 1 reply; 5+ messages in thread
From: Lukas Bulwahn @ 2022-09-14 14:27 UTC (permalink / raw)
  To: Linus Walleij, Russell King, Catalin Marinas, Will Deacon,
	Arnd Bergmann, Damien Le Moal, linux-arm-kernel, linux-ide
  Cc: kernel-janitors, linux-kernel, Lukas Bulwahn

It is currently possible to select "Generic platform device PATA support"
in two situations:

  - architecture allows the generic platform device PATA support and
    indicates that with "select HAVE_PATA_PLATFORM".
  - if the user claims to be an EXPERT by setting CONFIG_EXPERT to yes

However, there is no use case to have Generic platform device PATA support
in a kernel build if the architecture definition, i.e., the selection of
configs by an architecture, does not support it.

If the architecture definition is wrong, i.e., it just misses a 'select
HAVE_PATA_PLATFORM', then even an expert that configures the kernel build
should not just fix that by overruling the claimed support by an
architecture. If the architecture definition is wrong, the expert should
just provide a patch to correct the architecture definition instead---in
the end, if the user is an expert, sending a quick one-line patch should
not be an issue.

In other words, I do not see the deeper why an expert can overrule the
architecture definition in this case, as the expert may not overrule the
config selections defined by the architecture in the large majority
---or probably all other (modulo some mistakes)---of similar cases.

Signed-off-by: Lukas Bulwahn <lukas.bulwahn@gmail.com>
---
 drivers/ata/Kconfig | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/ata/Kconfig b/drivers/ata/Kconfig
index c93d97455744..fc11d9d30d72 100644
--- a/drivers/ata/Kconfig
+++ b/drivers/ata/Kconfig
@@ -1102,7 +1102,7 @@ config PATA_PCMCIA
 	  If unsure, say N.
 
 config PATA_PLATFORM
-	tristate "Generic platform device PATA support" if EXPERT || HAVE_PATA_PLATFORM
+	tristate "Generic platform device PATA support" if HAVE_PATA_PLATFORM
 	help
 	  This option enables support for generic directly connected ATA
 	  devices commonly found on embedded systems.
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH 1/2] ata: clean up how architectures enable PATA_PLATFORM and PATA_OF_PLATFORM
  2022-09-14 14:27 [PATCH 1/2] ata: clean up how architectures enable PATA_PLATFORM and PATA_OF_PLATFORM Lukas Bulwahn
  2022-09-14 14:27 ` [PATCH 2/2] ata: make PATA_PLATFORM selectable only for suitable architectures Lukas Bulwahn
@ 2022-09-14 14:29 ` Arnd Bergmann
  2022-09-16 14:26 ` Damien Le Moal
  2 siblings, 0 replies; 5+ messages in thread
From: Arnd Bergmann @ 2022-09-14 14:29 UTC (permalink / raw)
  To: Lukas Bulwahn, Linus Walleij, Russell King, Catalin Marinas,
	Will Deacon, Damien Le Moal, linux-arm-kernel, linux-ide
  Cc: kernel-janitors, linux-kernel

On Wed, Sep 14, 2022, at 4:27 PM, Lukas Bulwahn wrote:
> There are two options for platform device PATA support:
>
>   PATA_PLATFORM: Generic platform device PATA support
>   PATA_OF_PLATFORM: OpenFirmware platform device PATA support
>
> If an architecture allows the generic platform device PATA support, it
> shall select HAVE_PATA_PLATFORM. Then, Generic platform device PATA support
> is available and can be selected.
>
> If an architecture has OpenFirmware support, which it indicates by
> selecting OF, OpenFirmware platform device PATA support is available
> and can be selected.
> If OpenFirmware platform device PATA support is selected, then the
> functionality (code files) from Generic platform device PATA support needs
> to be integrated in the kernel build for the OpenFirmware platform device
> PATA support to work. Select PATA_PLATFORM in PATA_OF_PLATFORM to make sure
> the needed files are added in the build.
>
> So, architectures with OpenFirmware support, do not need to additionally
> select HAVE_PATA_PLATFORM. It is only needed by architecture that want the
> non-OF pata-platform module.
>
> Reflect this way of intended use of config symbols in the ata Kconfig and
> adjust all architecture definitions.
>
> This follows the suggestion from Arnd Bergmann (see Link).
>
> Suggested-by: Arnd Bergmann <arnd@arndb.de>
> Link: 
> https://lore.kernel.org/all/4b33bffc-2b6d-46b4-9f1d-d18e55975a5a@www.fastmail.com/
>
> Signed-off-by: Lukas Bulwahn <lukas.bulwahn@gmail.com>

Thanks for the follow-up, looks good.

Reviewed-by: Arnd Bergmann <arnd@arndb.de>

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH 2/2] ata: make PATA_PLATFORM selectable only for suitable architectures
  2022-09-14 14:27 ` [PATCH 2/2] ata: make PATA_PLATFORM selectable only for suitable architectures Lukas Bulwahn
@ 2022-09-14 14:33   ` Arnd Bergmann
  0 siblings, 0 replies; 5+ messages in thread
From: Arnd Bergmann @ 2022-09-14 14:33 UTC (permalink / raw)
  To: Lukas Bulwahn, Linus Walleij, Russell King, Catalin Marinas,
	Will Deacon, Damien Le Moal, linux-arm-kernel, linux-ide
  Cc: kernel-janitors, linux-kernel

On Wed, Sep 14, 2022, at 4:27 PM, Lukas Bulwahn wrote:
> It is currently possible to select "Generic platform device PATA support"
> in two situations:
>
>   - architecture allows the generic platform device PATA support and
>     indicates that with "select HAVE_PATA_PLATFORM".
>   - if the user claims to be an EXPERT by setting CONFIG_EXPERT to yes
>
> However, there is no use case to have Generic platform device PATA support
> in a kernel build if the architecture definition, i.e., the selection of
> configs by an architecture, does not support it.
>
> If the architecture definition is wrong, i.e., it just misses a 'select
> HAVE_PATA_PLATFORM', then even an expert that configures the kernel build
> should not just fix that by overruling the claimed support by an
> architecture. If the architecture definition is wrong, the expert should
> just provide a patch to correct the architecture definition instead---in
> the end, if the user is an expert, sending a quick one-line patch should
> not be an issue.
>
> In other words, I do not see the deeper why an expert can overrule the
> architecture definition in this case, as the expert may not overrule the
> config selections defined by the architecture in the large majority
> ---or probably all other (modulo some mistakes)---of similar cases.
>
> Signed-off-by: Lukas Bulwahn <lukas.bulwahn@gmail.com>

Sounds reasonable. My best guess about the intention of the EXPERT
dependency is that it would be used for users with third-party
board files or dts files referencing these. We can't really help
users with out-of-tree boardfiles, and the external dts case would
be covered by your patch 1/2.

Reviewed-by: Arnd Bergmann <arnd@arndb.de>

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH 1/2] ata: clean up how architectures enable PATA_PLATFORM and PATA_OF_PLATFORM
  2022-09-14 14:27 [PATCH 1/2] ata: clean up how architectures enable PATA_PLATFORM and PATA_OF_PLATFORM Lukas Bulwahn
  2022-09-14 14:27 ` [PATCH 2/2] ata: make PATA_PLATFORM selectable only for suitable architectures Lukas Bulwahn
  2022-09-14 14:29 ` [PATCH 1/2] ata: clean up how architectures enable PATA_PLATFORM and PATA_OF_PLATFORM Arnd Bergmann
@ 2022-09-16 14:26 ` Damien Le Moal
  2 siblings, 0 replies; 5+ messages in thread
From: Damien Le Moal @ 2022-09-16 14:26 UTC (permalink / raw)
  To: Lukas Bulwahn, Linus Walleij, Russell King, Catalin Marinas,
	Will Deacon, Arnd Bergmann, linux-arm-kernel, linux-ide
  Cc: kernel-janitors, linux-kernel

On 2022/09/14 15:27, Lukas Bulwahn wrote:
> There are two options for platform device PATA support:
> 
>   PATA_PLATFORM: Generic platform device PATA support
>   PATA_OF_PLATFORM: OpenFirmware platform device PATA support
> 
> If an architecture allows the generic platform device PATA support, it
> shall select HAVE_PATA_PLATFORM. Then, Generic platform device PATA support
> is available and can be selected.
> 
> If an architecture has OpenFirmware support, which it indicates by
> selecting OF, OpenFirmware platform device PATA support is available
> and can be selected.
> If OpenFirmware platform device PATA support is selected, then the
> functionality (code files) from Generic platform device PATA support needs
> to be integrated in the kernel build for the OpenFirmware platform device
> PATA support to work. Select PATA_PLATFORM in PATA_OF_PLATFORM to make sure
> the needed files are added in the build.
> 
> So, architectures with OpenFirmware support, do not need to additionally
> select HAVE_PATA_PLATFORM. It is only needed by architecture that want the
> non-OF pata-platform module.
> 
> Reflect this way of intended use of config symbols in the ata Kconfig and
> adjust all architecture definitions.
> 
> This follows the suggestion from Arnd Bergmann (see Link).
> 
> Suggested-by: Arnd Bergmann <arnd@arndb.de>
> Link: https://lore.kernel.org/all/4b33bffc-2b6d-46b4-9f1d-d18e55975a5a@www.fastmail.com/
> 
> Signed-off-by: Lukas Bulwahn <lukas.bulwahn@gmail.com>

Applied this patch and 2/2 to for-6.1. Thanks !

> ---
>  arch/arm/mach-versatile/Kconfig | 1 -
>  arch/arm64/Kconfig              | 1 -
>  drivers/ata/Kconfig             | 6 +++---
>  3 files changed, 3 insertions(+), 5 deletions(-)
> 
> diff --git a/arch/arm/mach-versatile/Kconfig b/arch/arm/mach-versatile/Kconfig
> index 2ef226194c3a..b1519b4dc03a 100644
> --- a/arch/arm/mach-versatile/Kconfig
> +++ b/arch/arm/mach-versatile/Kconfig
> @@ -256,7 +256,6 @@ menuconfig ARCH_VEXPRESS
>  	select GPIOLIB
>  	select HAVE_ARM_SCU if SMP
>  	select HAVE_ARM_TWD if SMP
> -	select HAVE_PATA_PLATFORM
>  	select CLK_ICST
>  	select NO_IOPORT_MAP
>  	select PLAT_VERSATILE
> diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
> index 51f3f07c3efd..036bd67e662e 100644
> --- a/arch/arm64/Kconfig
> +++ b/arch/arm64/Kconfig
> @@ -194,7 +194,6 @@ config ARM64
>  	select HAVE_IRQ_TIME_ACCOUNTING
>  	select HAVE_KVM
>  	select HAVE_NMI
> -	select HAVE_PATA_PLATFORM
>  	select HAVE_PERF_EVENTS
>  	select HAVE_PERF_REGS
>  	select HAVE_PERF_USER_STACK_DUMP
> diff --git a/drivers/ata/Kconfig b/drivers/ata/Kconfig
> index 1c9f4fb2595d..c93d97455744 100644
> --- a/drivers/ata/Kconfig
> +++ b/drivers/ata/Kconfig
> @@ -1102,8 +1102,7 @@ config PATA_PCMCIA
>  	  If unsure, say N.
>  
>  config PATA_PLATFORM
> -	tristate "Generic platform device PATA support"
> -	depends on EXPERT || PPC || HAVE_PATA_PLATFORM
> +	tristate "Generic platform device PATA support" if EXPERT || HAVE_PATA_PLATFORM
>  	help
>  	  This option enables support for generic directly connected ATA
>  	  devices commonly found on embedded systems.
> @@ -1112,7 +1111,8 @@ config PATA_PLATFORM
>  
>  config PATA_OF_PLATFORM
>  	tristate "OpenFirmware platform device PATA support"
> -	depends on PATA_PLATFORM && OF
> +	depends on OF
> +	select PATA_PLATFORM
>  	help
>  	  This option enables support for generic directly connected ATA
>  	  devices commonly found on embedded systems with OpenFirmware

-- 
Damien Le Moal
Western Digital Research


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2022-09-16 14:27 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-09-14 14:27 [PATCH 1/2] ata: clean up how architectures enable PATA_PLATFORM and PATA_OF_PLATFORM Lukas Bulwahn
2022-09-14 14:27 ` [PATCH 2/2] ata: make PATA_PLATFORM selectable only for suitable architectures Lukas Bulwahn
2022-09-14 14:33   ` Arnd Bergmann
2022-09-14 14:29 ` [PATCH 1/2] ata: clean up how architectures enable PATA_PLATFORM and PATA_OF_PLATFORM Arnd Bergmann
2022-09-16 14:26 ` Damien Le Moal

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).