* [PATCH 0/2] drivers/pci: use builtin_platform_driver in renesas
@ 2015-12-22 0:59 Paul Gortmaker
2015-12-22 0:59 ` [PATCH 1/2] drivers/pci: make host/pcie-rcar.c explicitly non-modular Paul Gortmaker
` (2 more replies)
0 siblings, 3 replies; 7+ messages in thread
From: Paul Gortmaker @ 2015-12-22 0:59 UTC (permalink / raw)
To: linux-kernel
Cc: Paul Gortmaker, Bjorn Helgaas, Phil Edworthy, Simon Horman,
Valentine Barshak, linux-pci, linux-sh
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.
Given that, and the several Ack rec'd, it makes sense to at least
get these two in and out of my queue while we consider what to do
with the other PCI host code drivers that do have some modularity
already coded into them.
Build testing was done on pci/next, using an ARCH=arm allmodconfig
and then explicitly building the files changed in this series.
Paul.
---
[1] https://lkml.kernel.org/r/1449970917-12633-1-git-send-email-paul.gortmaker@windriver.com
Cc: Bjorn Helgaas <bhelgaas@google.com>
Cc: Phil Edworthy <phil.edworthy@renesas.com>
Cc: Simon Horman <horms@verge.net.au>
Cc: Valentine Barshak <valentine.barshak@cogentembedded.com>
Cc: linux-pci@vger.kernel.org
Cc: linux-sh@vger.kernel.org
Paul Gortmaker (2):
drivers/pci: make host/pcie-rcar.c explicitly non-modular
drivers/pci: make host/pci-rcar-gen2.c explicitly non-modular
drivers/pci/host/pci-rcar-gen2.c | 12 +++---------
drivers/pci/host/pcie-rcar.c | 11 ++++-------
2 files changed, 7 insertions(+), 16 deletions(-)
--
2.6.1
^ permalink raw reply [flat|nested] 7+ messages in thread
* [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
* [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 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
* 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
end of thread, other threads:[~2016-01-19 4:19 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
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 8:30 ` Geert Uytterhoeven
2015-12-22 16:20 ` 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 ` [PATCH 0/2] drivers/pci: use builtin_platform_driver in renesas Bjorn Helgaas
2016-01-19 4:19 ` Paul Gortmaker
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).