[PATCH] drivers/soc/litex: drop obsolete dependency on COMPILE_TEST

Jean Delvare posted 1 patch 1 year, 5 months ago
drivers/soc/litex/Kconfig          |    2 +-
drivers/soc/litex/litex_soc_ctrl.c |    4 +---
2 files changed, 2 insertions(+), 4 deletions(-)
[PATCH] drivers/soc/litex: drop obsolete dependency on COMPILE_TEST
Posted by Jean Delvare 1 year, 5 months ago
Since commit 0166dc11be91 ("of: make CONFIG_OF user selectable"), it
is possible to test-build any driver which depends on OF on any
architecture by explicitly selecting OF. Therefore depending on
COMPILE_TEST as an alternative is no longer needed.

It is actually better to always build such drivers with OF enabled,
so that the test builds are closer to how each driver will actually be
built on its intended target. Building them without OF may not test
much as the compiler will optimize out potentially large parts of the
code. In the worst case, this could even pop false positive warnings.
Dropping COMPILE_TEST here improves the quality of our testing and
avoids wasting time on non-existent issues.

As a minor optimization, this also lets us drop of_match_ptr() and
ifdef-guarding, as we now know what they will resolve to, we might as
well save cpp some work.

Signed-off-by: Jean Delvare <jdelvare@suse.de>
Cc: Karol Gugala <kgugala@antmicro.com>
Cc: Mateusz Holenko <mholenko@antmicro.com>
Cc: Gabriel Somlo <gsomlo@gmail.com>
Cc: Joel Stanley <joel@jms.id.au>
---
 drivers/soc/litex/Kconfig          |    2 +-
 drivers/soc/litex/litex_soc_ctrl.c |    4 +---
 2 files changed, 2 insertions(+), 4 deletions(-)

--- linux-6.0.orig/drivers/soc/litex/Kconfig
+++ linux-6.0/drivers/soc/litex/Kconfig
@@ -7,7 +7,7 @@ config LITEX
 
 config LITEX_SOC_CONTROLLER
 	tristate "Enable LiteX SoC Controller driver"
-	depends on OF || COMPILE_TEST
+	depends on OF
 	depends on HAS_IOMEM
 	select LITEX
 	help
--- linux-6.0.orig/drivers/soc/litex/litex_soc_ctrl.c
+++ linux-6.0/drivers/soc/litex/litex_soc_ctrl.c
@@ -82,13 +82,11 @@ static int litex_reset_handler(struct no
 	return NOTIFY_DONE;
 }
 
-#ifdef CONFIG_OF
 static const struct of_device_id litex_soc_ctrl_of_match[] = {
 	{.compatible = "litex,soc-controller"},
 	{},
 };
 MODULE_DEVICE_TABLE(of, litex_soc_ctrl_of_match);
-#endif /* CONFIG_OF */
 
 static int litex_soc_ctrl_probe(struct platform_device *pdev)
 {
@@ -131,7 +129,7 @@ static int litex_soc_ctrl_remove(struct
 static struct platform_driver litex_soc_ctrl_driver = {
 	.driver = {
 		.name = "litex-soc-controller",
-		.of_match_table = of_match_ptr(litex_soc_ctrl_of_match)
+		.of_match_table = litex_soc_ctrl_of_match,
 	},
 	.probe = litex_soc_ctrl_probe,
 	.remove = litex_soc_ctrl_remove,


-- 
Jean Delvare
SUSE L3 Support
Re: [PATCH] drivers/soc/litex: drop obsolete dependency on COMPILE_TEST
Posted by Gabriel L. Somlo 4 months, 1 week ago
On Thu, 24 Nov 2022 at 16:16:18 +0100, Jean Delvare wrote:
> Since commit 0166dc11be91 ("of: make CONFIG_OF user selectable"), it
> is possible to test-build any driver which depends on OF on any
> architecture by explicitly selecting OF. Therefore depending on
> COMPILE_TEST as an alternative is no longer needed.
> 
> It is actually better to always build such drivers with OF enabled,
> so that the test builds are closer to how each driver will actually be
> built on its intended target. Building them without OF may not test
> much as the compiler will optimize out potentially large parts of the
> code. In the worst case, this could even pop false positive warnings.
> Dropping COMPILE_TEST here improves the quality of our testing and
> avoids wasting time on non-existent issues.
> 
> As a minor optimization, this also lets us drop of_match_ptr() and
> ifdef-guarding, as we now know what they will resolve to, we might as
> well save cpp some work.
> 
> Signed-off-by: Jean Delvare <jdelvare@suse.de>
> Cc: Karol Gugala <kgugala@antmicro.com>
> Cc: Mateusz Holenko <mholenko@antmicro.com>
> Cc: Gabriel Somlo <gsomlo@gmail.com>
> Cc: Joel Stanley <joel@jms.id.au>

Reviewed-by: Gabriel Somlo <gsomlo@gmail.com>

Arnd: since it's been a while (sorry about that), please advise on
whether Jean should re-send the original patch, unless you can grab
it directly from here and pull it through the soc tree:
https://lore.kernel.org/lkml/20221125142756.3e51a28d@endymion.delvare/

Thanks much,
--Gabriel

> ---
>  drivers/soc/litex/Kconfig          |    2 +-
>  drivers/soc/litex/litex_soc_ctrl.c |    4 +---
>  2 files changed, 2 insertions(+), 4 deletions(-)
> 
> --- linux-6.0.orig/drivers/soc/litex/Kconfig
> +++ linux-6.0/drivers/soc/litex/Kconfig
> @@ -7,7 +7,7 @@ config LITEX
>  
>  config LITEX_SOC_CONTROLLER
>  	tristate "Enable LiteX SoC Controller driver"
> -	depends on OF || COMPILE_TEST
> +	depends on OF
>  	depends on HAS_IOMEM
>  	select LITEX
>  	help
> --- linux-6.0.orig/drivers/soc/litex/litex_soc_ctrl.c
> +++ linux-6.0/drivers/soc/litex/litex_soc_ctrl.c
> @@ -82,13 +82,11 @@ static int litex_reset_handler(struct no
>  	return NOTIFY_DONE;
>  }
>  
> -#ifdef CONFIG_OF
>  static const struct of_device_id litex_soc_ctrl_of_match[] = {
>  	{.compatible = "litex,soc-controller"},
>  	{},
>  };
>  MODULE_DEVICE_TABLE(of, litex_soc_ctrl_of_match);
> -#endif /* CONFIG_OF */
>  
>  static int litex_soc_ctrl_probe(struct platform_device *pdev)
>  {
> @@ -131,7 +129,7 @@ static int litex_soc_ctrl_remove(struct
>  static struct platform_driver litex_soc_ctrl_driver = {
>  	.driver = {
>  		.name = "litex-soc-controller",
> -		.of_match_table = of_match_ptr(litex_soc_ctrl_of_match)
> +		.of_match_table = litex_soc_ctrl_of_match,
>  	},
>  	.probe = litex_soc_ctrl_probe,
>  	.remove = litex_soc_ctrl_remove,
> 
> 
> -- 
> Jean Delvare
> SUSE L3 Support
>
Re: [PATCH] drivers/soc/litex: drop obsolete dependency on COMPILE_TEST
Posted by Gabriel L. Somlo 1 year, 5 months ago
On Thu, Nov 24, 2022 at 04:16:18PM +0100, Jean Delvare wrote:
> Since commit 0166dc11be91 ("of: make CONFIG_OF user selectable"), it
> is possible to test-build any driver which depends on OF on any
> architecture by explicitly selecting OF. Therefore depending on
> COMPILE_TEST as an alternative is no longer needed.
> 
> It is actually better to always build such drivers with OF enabled,
> so that the test builds are closer to how each driver will actually be
> built on its intended target. Building them without OF may not test
> much as the compiler will optimize out potentially large parts of the
> code. In the worst case, this could even pop false positive warnings.
> Dropping COMPILE_TEST here improves the quality of our testing and
> avoids wasting time on non-existent issues.
> 
> As a minor optimization, this also lets us drop of_match_ptr() and
> ifdef-guarding, as we now know what they will resolve to, we might as
> well save cpp some work.

Acked-by: Gabriel Somlo <gsomlo@gmail.com>

Thanks,
--G
 
> Signed-off-by: Jean Delvare <jdelvare@suse.de>
> Cc: Karol Gugala <kgugala@antmicro.com>
> Cc: Mateusz Holenko <mholenko@antmicro.com>
> Cc: Gabriel Somlo <gsomlo@gmail.com>
> Cc: Joel Stanley <joel@jms.id.au>
> ---
>  drivers/soc/litex/Kconfig          |    2 +-
>  drivers/soc/litex/litex_soc_ctrl.c |    4 +---
>  2 files changed, 2 insertions(+), 4 deletions(-)
> 
> --- linux-6.0.orig/drivers/soc/litex/Kconfig
> +++ linux-6.0/drivers/soc/litex/Kconfig
> @@ -7,7 +7,7 @@ config LITEX
>  
>  config LITEX_SOC_CONTROLLER
>  	tristate "Enable LiteX SoC Controller driver"
> -	depends on OF || COMPILE_TEST
> +	depends on OF
>  	depends on HAS_IOMEM
>  	select LITEX
>  	help
> --- linux-6.0.orig/drivers/soc/litex/litex_soc_ctrl.c
> +++ linux-6.0/drivers/soc/litex/litex_soc_ctrl.c
> @@ -82,13 +82,11 @@ static int litex_reset_handler(struct no
>  	return NOTIFY_DONE;
>  }
>  
> -#ifdef CONFIG_OF
>  static const struct of_device_id litex_soc_ctrl_of_match[] = {
>  	{.compatible = "litex,soc-controller"},
>  	{},
>  };
>  MODULE_DEVICE_TABLE(of, litex_soc_ctrl_of_match);
> -#endif /* CONFIG_OF */
>  
>  static int litex_soc_ctrl_probe(struct platform_device *pdev)
>  {
> @@ -131,7 +129,7 @@ static int litex_soc_ctrl_remove(struct
>  static struct platform_driver litex_soc_ctrl_driver = {
>  	.driver = {
>  		.name = "litex-soc-controller",
> -		.of_match_table = of_match_ptr(litex_soc_ctrl_of_match)
> +		.of_match_table = litex_soc_ctrl_of_match,
>  	},
>  	.probe = litex_soc_ctrl_probe,
>  	.remove = litex_soc_ctrl_remove,
> 
> 
> -- 
> Jean Delvare
> SUSE L3 Support
Re: [PATCH] drivers/soc/litex: drop obsolete dependency on COMPILE_TEST
Posted by Jean Delvare 5 months, 1 week ago
Hi Gabriel,

On Fri, 25 Nov 2022 09:00:02 -0500, Gabriel L. Somlo wrote:
> On Thu, Nov 24, 2022 at 04:16:18PM +0100, Jean Delvare wrote:
> > Since commit 0166dc11be91 ("of: make CONFIG_OF user selectable"), it
> > is possible to test-build any driver which depends on OF on any
> > architecture by explicitly selecting OF. Therefore depending on
> > COMPILE_TEST as an alternative is no longer needed.
> > 
> > It is actually better to always build such drivers with OF enabled,
> > so that the test builds are closer to how each driver will actually be
> > built on its intended target. Building them without OF may not test
> > much as the compiler will optimize out potentially large parts of the
> > code. In the worst case, this could even pop false positive warnings.
> > Dropping COMPILE_TEST here improves the quality of our testing and
> > avoids wasting time on non-existent issues.
> > 
> > As a minor optimization, this also lets us drop of_match_ptr() and
> > ifdef-guarding, as we now know what they will resolve to, we might as
> > well save cpp some work.  
> 
> Acked-by: Gabriel Somlo <gsomlo@gmail.com>

Despite your ack, this patch was never committed. Was it forgotten
somehow? Should I resubmit?

Thanks,
-- 
Jean Delvare
SUSE L3 Support
Re: [PATCH] drivers/soc/litex: drop obsolete dependency on COMPILE_TEST
Posted by Gabriel L. Somlo 5 months, 1 week ago
On Thu, Nov 16, 2023 at 03:03:57PM +0100, Jean Delvare wrote:
> Hi Gabriel,
> 
> On Fri, 25 Nov 2022 09:00:02 -0500, Gabriel L. Somlo wrote:
> > On Thu, Nov 24, 2022 at 04:16:18PM +0100, Jean Delvare wrote:
> > > Since commit 0166dc11be91 ("of: make CONFIG_OF user selectable"), it
> > > is possible to test-build any driver which depends on OF on any
> > > architecture by explicitly selecting OF. Therefore depending on
> > > COMPILE_TEST as an alternative is no longer needed.
> > > 
> > > It is actually better to always build such drivers with OF enabled,
> > > so that the test builds are closer to how each driver will actually be
> > > built on its intended target. Building them without OF may not test
> > > much as the compiler will optimize out potentially large parts of the
> > > code. In the worst case, this could even pop false positive warnings.
> > > Dropping COMPILE_TEST here improves the quality of our testing and
> > > avoids wasting time on non-existent issues.
> > > 
> > > As a minor optimization, this also lets us drop of_match_ptr() and
> > > ifdef-guarding, as we now know what they will resolve to, we might as
> > > well save cpp some work.  
> > 
> > Acked-by: Gabriel Somlo <gsomlo@gmail.com>
> 
> Despite your ack, this patch was never committed. Was it forgotten
> somehow? Should I resubmit?

AFAIK, LiteX is too small to have its own direct path into Linus's
upstream tree, and so far any changes to LiteX specific kernel code
were filtered upstream through the respective dedicated subsystems
affected (e.g., mmc, networking, block, etc.).

IIRC Joel (cc-ed) might have been involved in the upstreaming of the
original LiteX soc driver -- is that correct? If so, which way did it
end up going upstream, and can we replicate that for Jean's patch?

Thanks much,
--Gabriel
 
> Thanks,
> -- 
> Jean Delvare
> SUSE L3 Support