* [PATCH 1/2] drivers/pci: make host/pcie-rcar.c explicitly non-modular
2015-12-22 0:59 [PATCH 0/2] drivers/pci: use builtin_platform_driver in renesas Paul Gortmaker
@ 2015-12-22 0:59 ` Paul Gortmaker
2015-12-22 8:30 ` Geert Uytterhoeven
2015-12-22 0:59 ` [PATCH 2/2] drivers/pci: make host/pci-rcar-gen2.c " Paul Gortmaker
2016-01-08 20:37 ` [PATCH 0/2] drivers/pci: use builtin_platform_driver in renesas Bjorn Helgaas
2 siblings, 1 reply; 7+ messages in thread
From: Paul Gortmaker @ 2015-12-22 0:59 UTC (permalink / raw)
To: linux-kernel
Cc: Paul Gortmaker, Simon Horman, Bjorn Helgaas, linux-pci, linux-sh,
Phil Edworthy
The Kconfig currently controlling compilation of this code is:
drivers/pci/host/Kconfig:config PCI_RCAR_GEN2_PCIE
drivers/pci/host/Kconfig: bool "Renesas R-Car PCIe controller"
...meaning that it currently is not being built as a module by anyone.
Lets remove the modular code that is essentially orphaned, so that
when reading the driver there is no doubt it is builtin-only.
Since module_platform_driver() uses the same init level priority as
builtin_platform_driver() the init ordering remains unchanged with
this commit.
We don't have to disallow a driver unbind, since that is already
done for us in this driver.
Also note that MODULE_DEVICE_TABLE is a no-op for non-modular code.
We also delete the MODULE_LICENSE tag etc. since all that information
was (or is now) contained at the top of the file in the comments.
Cc: Simon Horman <horms@verge.net.au>
Acked-by: Simon Horman <horms+renesas@verge.net.au>
Cc: Bjorn Helgaas <bhelgaas@google.com>
Cc: linux-pci@vger.kernel.org
Cc: linux-sh@vger.kernel.org
Cc: Phil Edworthy <phil.edworthy@renesas.com>
Acked-by: Phil Edworthy <phil.edworthy@renesas.com>
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
---
drivers/pci/host/pcie-rcar.c | 11 ++++-------
1 file changed, 4 insertions(+), 7 deletions(-)
diff --git a/drivers/pci/host/pcie-rcar.c b/drivers/pci/host/pcie-rcar.c
index 5c2962646b17..a8ff4a7383e0 100644
--- a/drivers/pci/host/pcie-rcar.c
+++ b/drivers/pci/host/pcie-rcar.c
@@ -7,6 +7,8 @@
* arch/sh/drivers/pci/ops-sh7786.c
* Copyright (C) 2009 - 2011 Paul Mundt
*
+ * Module Author: Phil Edworthy <phil.edworthy@renesas.com>
+ *
* This file is licensed under the terms of the GNU General Public
* License version 2. This program is licensed "as is" without any
* warranty of any kind, whether express or implied.
@@ -18,7 +20,7 @@
#include <linux/irq.h>
#include <linux/irqdomain.h>
#include <linux/kernel.h>
-#include <linux/module.h>
+#include <linux/init.h>
#include <linux/msi.h>
#include <linux/of_address.h>
#include <linux/of_irq.h>
@@ -921,7 +923,6 @@ static const struct of_device_id rcar_pcie_of_match[] = {
{ .compatible = "renesas,pcie-r8a7795", .data = rcar_pcie_hw_init },
{},
};
-MODULE_DEVICE_TABLE(of, rcar_pcie_of_match);
static void rcar_pcie_release_of_pci_ranges(struct rcar_pcie *pci)
{
@@ -1039,8 +1040,4 @@ static struct platform_driver rcar_pcie_driver = {
},
.probe = rcar_pcie_probe,
};
-module_platform_driver(rcar_pcie_driver);
-
-MODULE_AUTHOR("Phil Edworthy <phil.edworthy@renesas.com>");
-MODULE_DESCRIPTION("Renesas R-Car PCIe driver");
-MODULE_LICENSE("GPL v2");
+builtin_platform_driver(rcar_pcie_driver);
--
2.6.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH 1/2] drivers/pci: make host/pcie-rcar.c explicitly non-modular
2015-12-22 0:59 ` [PATCH 1/2] drivers/pci: make host/pcie-rcar.c explicitly non-modular Paul Gortmaker
@ 2015-12-22 8:30 ` Geert Uytterhoeven
2015-12-22 16:20 ` Paul Gortmaker
0 siblings, 1 reply; 7+ messages in thread
From: Geert Uytterhoeven @ 2015-12-22 8:30 UTC (permalink / raw)
To: Paul Gortmaker
Cc: linux-kernel@vger.kernel.org, Simon Horman, Bjorn Helgaas,
linux-pci, Linux-sh list, Phil Edworthy
Hi Paul,
On Tue, Dec 22, 2015 at 1:59 AM, Paul Gortmaker
<paul.gortmaker@windriver.com> wrote:
> We also delete the MODULE_LICENSE tag etc. since all that information
> was (or is now) contained at the top of the file in the comments.
The MODULE_* tags are easier to parse by automated tools.
Do we want to make the work of e.g. the SPDX people harder?
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 1/2] drivers/pci: make host/pcie-rcar.c explicitly non-modular
2015-12-22 8:30 ` Geert Uytterhoeven
@ 2015-12-22 16:20 ` Paul Gortmaker
0 siblings, 0 replies; 7+ messages in thread
From: Paul Gortmaker @ 2015-12-22 16:20 UTC (permalink / raw)
To: Geert Uytterhoeven
Cc: linux-kernel@vger.kernel.org, Simon Horman, Bjorn Helgaas,
linux-pci, Linux-sh list, Phil Edworthy
On 2015-12-22 03:30 AM, Geert Uytterhoeven wrote:
> Hi Paul,
>
> On Tue, Dec 22, 2015 at 1:59 AM, Paul Gortmaker
> <paul.gortmaker@windriver.com> wrote:
>> We also delete the MODULE_LICENSE tag etc. since all that information
>> was (or is now) contained at the top of the file in the comments.
>
> The MODULE_* tags are easier to parse by automated tools.
> Do we want to make the work of e.g. the SPDX people harder?
As JoeP pointed out, the AUTHOR tags are routinely out of date
and not used by get_maintainer.pl by default, and I've found a
lot of LICENCE tags that say GPL while the text at the top says
GPLv2. On top of that, they are not present all the time since
proper non-modular drivers don't have them. So, no I have no
problems whatsoever in removing them from non-modular code.
If you want to make the case for tags that are module/non-module
agnostic, and you think there is genuine value in it and you can
get buy in on that, then feel free.
Paul.
--
>
> Gr{oetje,eeting}s,
>
> Geert
>
> --
> Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
>
> In personal conversations with technical people, I call myself a hacker. But
> when I'm talking to journalists I just say "programmer" or something like that.
> -- Linus Torvalds
>
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH 2/2] drivers/pci: make host/pci-rcar-gen2.c explicitly non-modular
2015-12-22 0:59 [PATCH 0/2] drivers/pci: use builtin_platform_driver in renesas Paul Gortmaker
2015-12-22 0:59 ` [PATCH 1/2] drivers/pci: make host/pcie-rcar.c explicitly non-modular Paul Gortmaker
@ 2015-12-22 0:59 ` Paul Gortmaker
2016-01-08 20:37 ` [PATCH 0/2] drivers/pci: use builtin_platform_driver in renesas Bjorn Helgaas
2 siblings, 0 replies; 7+ messages in thread
From: Paul Gortmaker @ 2015-12-22 0:59 UTC (permalink / raw)
To: linux-kernel
Cc: Paul Gortmaker, Simon Horman, Bjorn Helgaas, Phil Edworthy,
Valentine Barshak, linux-pci, linux-sh
The Kconfig currently controlling compilation of this code is:
drivers/pci/host/Kconfig:config PCI_RCAR_GEN2
drivers/pci/host/Kconfig: bool "Renesas R-Car Gen2 Internal PCI controller"
...meaning that it currently is not being built as a module by anyone.
Lets remove the modular code that is essentially orphaned, so that
when reading the driver there is no doubt it is builtin-only.
We don't have to disallow a driver unbind, since that is already
done for us in this driver.
Since module_platform_driver() uses the same init level priority as
builtin_platform_driver() the init ordering remains unchanged with
this commit.
We don't replace module.h with init.h since the file already has that.
Also note that MODULE_DEVICE_TABLE is a no-op for non-modular code.
We also delete the MODULE_LICENSE tag etc. since all that information
was (or is now) contained at the top of the file in the comments.
Cc: Simon Horman <horms@verge.net.au>
Acked-by: Simon Horman <horms+renesas@verge.net.au>
Cc: Bjorn Helgaas <bhelgaas@google.com>
Cc: Phil Edworthy <phil.edworthy@renesas.com>
Cc: Valentine Barshak <valentine.barshak@cogentembedded.com>
Acked-by: Phil Edworthy <phil.edworthy@renesas.com>
Cc: linux-pci@vger.kernel.org
Cc: linux-sh@vger.kernel.org
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
---
drivers/pci/host/pci-rcar-gen2.c | 12 +++---------
1 file changed, 3 insertions(+), 9 deletions(-)
diff --git a/drivers/pci/host/pci-rcar-gen2.c b/drivers/pci/host/pci-rcar-gen2.c
index 9980a4bdae7e..8df9c36458e9 100644
--- a/drivers/pci/host/pci-rcar-gen2.c
+++ b/drivers/pci/host/pci-rcar-gen2.c
@@ -4,6 +4,8 @@
* Copyright (C) 2013 Renesas Solutions Corp.
* Copyright (C) 2013 Cogent Embedded, Inc.
*
+ * Module Author: Valentine Barshak <valentine.barshak@cogentembedded.com>
+ *
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
@@ -14,7 +16,6 @@
#include <linux/interrupt.h>
#include <linux/io.h>
#include <linux/kernel.h>
-#include <linux/module.h>
#include <linux/of_address.h>
#include <linux/of_pci.h>
#include <linux/pci.h>
@@ -437,8 +438,6 @@ static struct of_device_id rcar_pci_of_match[] = {
{ },
};
-MODULE_DEVICE_TABLE(of, rcar_pci_of_match);
-
static struct platform_driver rcar_pci_driver = {
.driver = {
.name = "pci-rcar-gen2",
@@ -447,9 +446,4 @@ static struct platform_driver rcar_pci_driver = {
},
.probe = rcar_pci_probe,
};
-
-module_platform_driver(rcar_pci_driver);
-
-MODULE_LICENSE("GPL v2");
-MODULE_DESCRIPTION("Renesas R-Car Gen2 internal PCI");
-MODULE_AUTHOR("Valentine Barshak <valentine.barshak@cogentembedded.com>");
+builtin_platform_driver(rcar_pci_driver);
--
2.6.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH 0/2] drivers/pci: use builtin_platform_driver in renesas
2015-12-22 0:59 [PATCH 0/2] drivers/pci: use builtin_platform_driver in renesas Paul Gortmaker
2015-12-22 0:59 ` [PATCH 1/2] drivers/pci: make host/pcie-rcar.c explicitly non-modular Paul Gortmaker
2015-12-22 0:59 ` [PATCH 2/2] drivers/pci: make host/pci-rcar-gen2.c " Paul Gortmaker
@ 2016-01-08 20:37 ` Bjorn Helgaas
2016-01-19 4:19 ` Paul Gortmaker
2 siblings, 1 reply; 7+ messages in thread
From: Bjorn Helgaas @ 2016-01-08 20:37 UTC (permalink / raw)
To: Paul Gortmaker
Cc: linux-kernel, Bjorn Helgaas, Phil Edworthy, Simon Horman,
Valentine Barshak, linux-pci, linux-sh
On Mon, Dec 21, 2015 at 07:59:07PM -0500, Paul Gortmaker wrote:
> These two commits are extracted from what was a larger series[1] of
> demodularization in PCI host code that was bool Kconfig.
>
> With the other commits, there was some mixed opinions whether we
> should make it explicitly non-modular or move towards making it
> functionally working as a tristate in order to reduce the size of
> built-in code for multi-platform kernels.
>
> However with the renesas changes, there was no ".remove" and no
> "module_exit" code stripped out ; it is just a straight 1:1 mapping
> of the modular macros onto what they become in the non-modular case
> anyway -- meaning the runtime remains unchanged.
Is there any reason these drivers can't be made modular? I'd rather
do that, if we can.
Bjorn
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 0/2] drivers/pci: use builtin_platform_driver in renesas
2016-01-08 20:37 ` [PATCH 0/2] drivers/pci: use builtin_platform_driver in renesas Bjorn Helgaas
@ 2016-01-19 4:19 ` Paul Gortmaker
0 siblings, 0 replies; 7+ messages in thread
From: Paul Gortmaker @ 2016-01-19 4:19 UTC (permalink / raw)
To: Bjorn Helgaas
Cc: linux-kernel, Bjorn Helgaas, Phil Edworthy, Simon Horman,
Valentine Barshak, linux-pci, linux-sh
[Re: [PATCH 0/2] drivers/pci: use builtin_platform_driver in renesas] On 08/01/2016 (Fri 14:37) Bjorn Helgaas wrote:
> On Mon, Dec 21, 2015 at 07:59:07PM -0500, Paul Gortmaker wrote:
> > These two commits are extracted from what was a larger series[1] of
> > demodularization in PCI host code that was bool Kconfig.
> >
> > With the other commits, there was some mixed opinions whether we
> > should make it explicitly non-modular or move towards making it
> > functionally working as a tristate in order to reduce the size of
> > built-in code for multi-platform kernels.
> >
> > However with the renesas changes, there was no ".remove" and no
> > "module_exit" code stripped out ; it is just a straight 1:1 mapping
> > of the modular macros onto what they become in the non-modular case
> > anyway -- meaning the runtime remains unchanged.
>
> Is there any reason these drivers can't be made modular? I'd rather
> do that, if we can.
Per the above comments, the renesas drivers were a no-op and and got
Ack: from appropriate people hence why I forked them out of the earlier
bigger series, in thinking they were OK'd and done as-is.
That said, if "be modular, or die trying" is the desired approach for
PCI code, I can do my best to work within that constraint. It just
won't be the no-op 1:1 mapping that the original proposed changes were.
P.
--
>
> Bjorn
^ permalink raw reply [flat|nested] 7+ messages in thread