Revert "pinctrl: amd: make it explicitly non-modular"
diff mbox

Message ID 20160719003030.26420-1-paul.gortmaker@windriver.com
State New
Headers show

Commit Message

Paul Gortmaker July 19, 2016, 12:30 a.m. UTC
This reverts commit b8c2b10a9bc0272a20e096852f8fbbf361749dda.

This patch was in my queue at the same time that a conversion of
the same driver from bool --> tristate was pending and merged.

That is commit 337ea0fb1535 ("pinctrl: Turn AMD support to tristate")

Normally the conflict would show up in the build coverage I do,
however in this case an avoidable instance of linux/module.h in
linux/gpio/driver.h (!) causes the build failure to be masked and
instead the tristate gets built-in even for selected "=m".

In working on removing module.h from driver.h this issue was then
revealed (along with other implicit module.h assumptions in gpio,
and mfd -- which will be fixed separately.)

Cc: Jean Delvare <jdelvare@suse.de>
Cc: Linus Walleij <linus.walleij@linaro.org>
Cc: linux-gpio@vger.kernel.org
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
---
 drivers/pinctrl/pinctrl-amd.c | 23 ++++++++++++++++++++---
 1 file changed, 20 insertions(+), 3 deletions(-)

Comments

Jean Delvare July 19, 2016, 8:46 a.m. UTC | #1
Hi Paul,

On Mon, 18 Jul 2016 20:30:30 -0400, Paul Gortmaker wrote:
> This reverts commit b8c2b10a9bc0272a20e096852f8fbbf361749dda.
> 
> This patch was in my queue at the same time that a conversion of
> the same driver from bool --> tristate was pending and merged.
> 
> That is commit 337ea0fb1535 ("pinctrl: Turn AMD support to tristate")

I can't find this commit anywhere, but I would certainly prefer this to
making the driver non-modular. So I vote in favor of this revert.

Acked-by: Jean Delvare <jdelvare@suse.de>

Thanks,
Paul Gortmaker July 19, 2016, 1:44 p.m. UTC | #2
[Re: [PATCH] Revert "pinctrl: amd: make it explicitly non-modular"] On 19/07/2016 (Tue 10:46) Jean Delvare wrote:

> Hi Paul,
> 
> On Mon, 18 Jul 2016 20:30:30 -0400, Paul Gortmaker wrote:
> > This reverts commit b8c2b10a9bc0272a20e096852f8fbbf361749dda.
> > 
> > This patch was in my queue at the same time that a conversion of
> > the same driver from bool --> tristate was pending and merged.
> > 
> > That is commit 337ea0fb1535 ("pinctrl: Turn AMD support to tristate")
> 
> I can't find this commit anywhere, but I would certainly prefer this to
> making the driver non-modular. So I vote in favor of this revert.

It is a mainline commit, so I guess you need to pull in the last couple
months of commits...

   paul@builder-02:~/git/linux-head$ git describe --contains 337ea0fb1535
   v4.6-rc1~149^2~35
   paul@builder-02:~/git/linux-head$ git show v4.6-rc1~149
   commit 5ca5446ec5ba5e79a6f271cd026bb153d6850fcc
   Merge: 710d60cbf1b3 3c177a166253
   Author: Linus Torvalds <torvalds@linux-foundation.org>
   Date:   Tue Mar 15 20:23:13 2016 -0700
   
       Merge tag 'pinctrl-v4.6-1' of
   git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl
   
       Pull pin control updates from Linus Walleij:
   
I didn't bother marking it for 4.6 stable since it used to be builtin
only and even with the crossed patches, it still would have been builtin;
it just wouldn't respect the newly available tristate option if chosen.

Thanks,
Paul.
Jean Delvare July 20, 2016, 9:13 p.m. UTC | #3
Hi Paul,

On Tue, 19 Jul 2016 09:44:40 -0400, Paul Gortmaker wrote:
> [Re: [PATCH] Revert "pinctrl: amd: make it explicitly non-modular"] On 19/07/2016 (Tue 10:46) Jean Delvare wrote:
> > On Mon, 18 Jul 2016 20:30:30 -0400, Paul Gortmaker wrote:
> > > This reverts commit b8c2b10a9bc0272a20e096852f8fbbf361749dda.
> > > 
> > > This patch was in my queue at the same time that a conversion of
> > > the same driver from bool --> tristate was pending and merged.
> > > 
> > > That is commit 337ea0fb1535 ("pinctrl: Turn AMD support to tristate")
> > 
> > I can't find this commit anywhere, but I would certainly prefer this to
> > making the driver non-modular. So I vote in favor of this revert.
> 
> It is a mainline commit, so I guess you need to pull in the last couple
> months of commits...

Oops, my bad, I was expecting something a lot more recent.

> 
>    paul@builder-02:~/git/linux-head$ git describe --contains 337ea0fb1535
>    v4.6-rc1~149^2~35
>    paul@builder-02:~/git/linux-head$ git show v4.6-rc1~149
>    commit 5ca5446ec5ba5e79a6f271cd026bb153d6850fcc
>    Merge: 710d60cbf1b3 3c177a166253
>    Author: Linus Torvalds <torvalds@linux-foundation.org>
>    Date:   Tue Mar 15 20:23:13 2016 -0700
>    
>        Merge tag 'pinctrl-v4.6-1' of
>    git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl
>    
>        Pull pin control updates from Linus Walleij:

Ah ah, now I see the commit is from me. How is it possible to have such
bad memory :*D

> I didn't bother marking it for 4.6 stable since it used to be builtin
> only and even with the crossed patches, it still would have been builtin;
> it just wouldn't respect the newly available tristate option if chosen.

I agree, it's no stable material. I'm happy it's finally sorted out,
thanks.
Linus Walleij July 22, 2016, 3:27 p.m. UTC | #4
On Tue, Jul 19, 2016 at 2:30 AM, Paul Gortmaker
<paul.gortmaker@windriver.com> wrote:

> This reverts commit b8c2b10a9bc0272a20e096852f8fbbf361749dda.
>
> This patch was in my queue at the same time that a conversion of
> the same driver from bool --> tristate was pending and merged.
>
> That is commit 337ea0fb1535 ("pinctrl: Turn AMD support to tristate")
>
> Normally the conflict would show up in the build coverage I do,
> however in this case an avoidable instance of linux/module.h in
> linux/gpio/driver.h (!) causes the build failure to be masked and
> instead the tristate gets built-in even for selected "=m".
>
> In working on removing module.h from driver.h this issue was then
> revealed (along with other implicit module.h assumptions in gpio,
> and mfd -- which will be fixed separately.)
>
> Cc: Jean Delvare <jdelvare@suse.de>
> Cc: Linus Walleij <linus.walleij@linaro.org>
> Cc: linux-gpio@vger.kernel.org
> Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>

Patch applied with Jean's ACK.

Yours,
Linus Walleij
--
To unsubscribe from this list: send the line "unsubscribe linux-gpio" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch
diff mbox

diff --git a/drivers/pinctrl/pinctrl-amd.c b/drivers/pinctrl/pinctrl-amd.c
index b466d70b9004..634b4d30eefb 100644
--- a/drivers/pinctrl/pinctrl-amd.c
+++ b/drivers/pinctrl/pinctrl-amd.c
@@ -13,7 +13,7 @@ 
 #include <linux/err.h>
 #include <linux/bug.h>
 #include <linux/kernel.h>
-#include <linux/init.h>
+#include <linux/module.h>
 #include <linux/spinlock.h>
 #include <linux/compiler.h>
 #include <linux/types.h>
@@ -828,18 +828,35 @@  out2:
 	return ret;
 }
 
+static int amd_gpio_remove(struct platform_device *pdev)
+{
+	struct amd_gpio *gpio_dev;
+
+	gpio_dev = platform_get_drvdata(pdev);
+
+	gpiochip_remove(&gpio_dev->gc);
+
+	return 0;
+}
+
 static const struct acpi_device_id amd_gpio_acpi_match[] = {
 	{ "AMD0030", 0 },
 	{ "AMDI0030", 0},
 	{ },
 };
+MODULE_DEVICE_TABLE(acpi, amd_gpio_acpi_match);
 
 static struct platform_driver amd_gpio_driver = {
 	.driver		= {
 		.name	= "amd_gpio",
-		.suppress_bind_attrs = true,
 		.acpi_match_table = ACPI_PTR(amd_gpio_acpi_match),
 	},
 	.probe		= amd_gpio_probe,
+	.remove		= amd_gpio_remove,
 };
-builtin_platform_driver(amd_gpio_driver);
+
+module_platform_driver(amd_gpio_driver);
+
+MODULE_LICENSE("GPL v2");
+MODULE_AUTHOR("Ken Xue <Ken.Xue@amd.com>, Jeff Wu <Jeff.Wu@amd.com>");
+MODULE_DESCRIPTION("AMD GPIO pinctrl driver");