From: Paul Gortmaker <paul.gortmaker@windriver.com> To: linux-kernel@vger.kernel.org Cc: Paul Gortmaker <paul.gortmaker@windriver.com>, Laxman Dewangan <ldewangan@nvidia.com>, Dan Williams <dan.j.williams@intel.com>, Vinod Koul <vinod.koul@intel.com>, Stephen Warren <swarren@wwwdotorg.org>, Thierry Reding <thierry.reding@gmail.com>, Alexandre Courbot <gnurou@gmail.com>, dmaengine@vger.kernel.org, linux-tegra@vger.kernel.org Subject: [PATCH 6/6] drivers/dma: make tegra20-apb-dma.c explicitly non-modular Date: Wed, 9 Dec 2015 18:22:02 -0500 [thread overview] Message-ID: <1449703322-17762-7-git-send-email-paul.gortmaker@windriver.com> (raw) In-Reply-To: <1449703322-17762-1-git-send-email-paul.gortmaker@windriver.com> The Kconfig currently controlling compilation of this code is: drivers/dma/Kconfig:config TEGRA20_APB_DMA drivers/dma/Kconfig: bool "NVIDIA Tegra20 APB DMA support" ...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 explicitly disallow a driver unbind, since that doesn't have a sensible use case anyway, and it allows us to drop the ".remove" code for non-modular drivers. 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: Laxman Dewangan <ldewangan@nvidia.com> Cc: Dan Williams <dan.j.williams@intel.com> Cc: Vinod Koul <vinod.koul@intel.com> Cc: Stephen Warren <swarren@wwwdotorg.org> Cc: Thierry Reding <thierry.reding@gmail.com> Cc: Alexandre Courbot <gnurou@gmail.com> Cc: dmaengine@vger.kernel.org Cc: linux-tegra@vger.kernel.org Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> --- drivers/dma/tegra20-apb-dma.c | 35 ++++------------------------------- 1 file changed, 4 insertions(+), 31 deletions(-) diff --git a/drivers/dma/tegra20-apb-dma.c b/drivers/dma/tegra20-apb-dma.c index 935da8192f59..eee783cee45b 100644 --- a/drivers/dma/tegra20-apb-dma.c +++ b/drivers/dma/tegra20-apb-dma.c @@ -3,6 +3,8 @@ * * Copyright (c) 2012-2013, NVIDIA CORPORATION. All rights reserved. * + * Author: Laxman Dewangan <ldewangan@nvidia.com> + * * This program is free software; you can redistribute it and/or modify it * under the terms and conditions of the GNU General Public License, * version 2, as published by the Free Software Foundation. @@ -26,7 +28,6 @@ #include <linux/interrupt.h> #include <linux/io.h> #include <linux/mm.h> -#include <linux/module.h> #include <linux/of.h> #include <linux/of_device.h> #include <linux/of_dma.h> @@ -1309,7 +1310,6 @@ static const struct of_device_id tegra_dma_of_match[] = { }, { }, }; -MODULE_DEVICE_TABLE(of, tegra_dma_of_match); static int tegra_dma_probe(struct platform_device *pdev) { @@ -1488,27 +1488,6 @@ err_irq: return ret; } -static int tegra_dma_remove(struct platform_device *pdev) -{ - struct tegra_dma *tdma = platform_get_drvdata(pdev); - int i; - struct tegra_dma_channel *tdc; - - dma_async_device_unregister(&tdma->dma_dev); - - for (i = 0; i < tdma->chip_data->nr_channels; ++i) { - tdc = &tdma->channels[i]; - free_irq(tdc->irq, tdc); - tasklet_kill(&tdc->tasklet); - } - - pm_runtime_disable(&pdev->dev); - if (!pm_runtime_status_suspended(&pdev->dev)) - tegra_dma_runtime_suspend(&pdev->dev); - - return 0; -} - static int tegra_dma_runtime_suspend(struct device *dev) { struct tegra_dma *tdma = dev_get_drvdata(dev); @@ -1616,15 +1595,9 @@ static struct platform_driver tegra_dmac_driver = { .driver = { .name = "tegra-apbdma", .pm = &tegra_dma_dev_pm_ops, + .suppress_bind_attrs = true, .of_match_table = tegra_dma_of_match, }, .probe = tegra_dma_probe, - .remove = tegra_dma_remove, }; - -module_platform_driver(tegra_dmac_driver); - -MODULE_ALIAS("platform:tegra20-apbdma"); -MODULE_DESCRIPTION("NVIDIA Tegra APB DMA Controller driver"); -MODULE_AUTHOR("Laxman Dewangan <ldewangan@nvidia.com>"); -MODULE_LICENSE("GPL v2"); +builtin_platform_driver(tegra_dmac_driver); -- 2.6.1
WARNING: multiple messages have this Message-ID (diff)
From: Paul Gortmaker <paul.gortmaker@windriver.com> To: <linux-kernel@vger.kernel.org> Cc: Paul Gortmaker <paul.gortmaker@windriver.com>, Laxman Dewangan <ldewangan@nvidia.com>, Dan Williams <dan.j.williams@intel.com>, Vinod Koul <vinod.koul@intel.com>, Stephen Warren <swarren@wwwdotorg.org>, Thierry Reding <thierry.reding@gmail.com>, Alexandre Courbot <gnurou@gmail.com>, <dmaengine@vger.kernel.org>, <linux-tegra@vger.kernel.org> Subject: [PATCH 6/6] drivers/dma: make tegra20-apb-dma.c explicitly non-modular Date: Wed, 9 Dec 2015 18:22:02 -0500 [thread overview] Message-ID: <1449703322-17762-7-git-send-email-paul.gortmaker@windriver.com> (raw) In-Reply-To: <1449703322-17762-1-git-send-email-paul.gortmaker@windriver.com> The Kconfig currently controlling compilation of this code is: drivers/dma/Kconfig:config TEGRA20_APB_DMA drivers/dma/Kconfig: bool "NVIDIA Tegra20 APB DMA support" ...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 explicitly disallow a driver unbind, since that doesn't have a sensible use case anyway, and it allows us to drop the ".remove" code for non-modular drivers. 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: Laxman Dewangan <ldewangan@nvidia.com> Cc: Dan Williams <dan.j.williams@intel.com> Cc: Vinod Koul <vinod.koul@intel.com> Cc: Stephen Warren <swarren@wwwdotorg.org> Cc: Thierry Reding <thierry.reding@gmail.com> Cc: Alexandre Courbot <gnurou@gmail.com> Cc: dmaengine@vger.kernel.org Cc: linux-tegra@vger.kernel.org Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> --- drivers/dma/tegra20-apb-dma.c | 35 ++++------------------------------- 1 file changed, 4 insertions(+), 31 deletions(-) diff --git a/drivers/dma/tegra20-apb-dma.c b/drivers/dma/tegra20-apb-dma.c index 935da8192f59..eee783cee45b 100644 --- a/drivers/dma/tegra20-apb-dma.c +++ b/drivers/dma/tegra20-apb-dma.c @@ -3,6 +3,8 @@ * * Copyright (c) 2012-2013, NVIDIA CORPORATION. All rights reserved. * + * Author: Laxman Dewangan <ldewangan@nvidia.com> + * * This program is free software; you can redistribute it and/or modify it * under the terms and conditions of the GNU General Public License, * version 2, as published by the Free Software Foundation. @@ -26,7 +28,6 @@ #include <linux/interrupt.h> #include <linux/io.h> #include <linux/mm.h> -#include <linux/module.h> #include <linux/of.h> #include <linux/of_device.h> #include <linux/of_dma.h> @@ -1309,7 +1310,6 @@ static const struct of_device_id tegra_dma_of_match[] = { }, { }, }; -MODULE_DEVICE_TABLE(of, tegra_dma_of_match); static int tegra_dma_probe(struct platform_device *pdev) { @@ -1488,27 +1488,6 @@ err_irq: return ret; } -static int tegra_dma_remove(struct platform_device *pdev) -{ - struct tegra_dma *tdma = platform_get_drvdata(pdev); - int i; - struct tegra_dma_channel *tdc; - - dma_async_device_unregister(&tdma->dma_dev); - - for (i = 0; i < tdma->chip_data->nr_channels; ++i) { - tdc = &tdma->channels[i]; - free_irq(tdc->irq, tdc); - tasklet_kill(&tdc->tasklet); - } - - pm_runtime_disable(&pdev->dev); - if (!pm_runtime_status_suspended(&pdev->dev)) - tegra_dma_runtime_suspend(&pdev->dev); - - return 0; -} - static int tegra_dma_runtime_suspend(struct device *dev) { struct tegra_dma *tdma = dev_get_drvdata(dev); @@ -1616,15 +1595,9 @@ static struct platform_driver tegra_dmac_driver = { .driver = { .name = "tegra-apbdma", .pm = &tegra_dma_dev_pm_ops, + .suppress_bind_attrs = true, .of_match_table = tegra_dma_of_match, }, .probe = tegra_dma_probe, - .remove = tegra_dma_remove, }; - -module_platform_driver(tegra_dmac_driver); - -MODULE_ALIAS("platform:tegra20-apbdma"); -MODULE_DESCRIPTION("NVIDIA Tegra APB DMA Controller driver"); -MODULE_AUTHOR("Laxman Dewangan <ldewangan@nvidia.com>"); -MODULE_LICENSE("GPL v2"); +builtin_platform_driver(tegra_dmac_driver); -- 2.6.1
next prev parent reply other threads:[~2015-12-09 23:22 UTC|newest] Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top 2015-12-09 23:21 [PATCH 0/6] drivers/dma: drop modular code from non modular drivers Paul Gortmaker 2015-12-09 23:21 ` Paul Gortmaker 2015-12-09 23:21 ` Paul Gortmaker 2015-12-09 23:21 ` [PATCH 1/6] drivers/dma: make edma.c explicitly non-modular Paul Gortmaker 2015-12-09 23:21 ` [PATCH 2/6] drivers/dma: make mmp_pdma.c " Paul Gortmaker 2015-12-09 23:21 ` [PATCH 3/6] drivers/dma: make mmp_tdma.c " Paul Gortmaker 2015-12-09 23:22 ` [PATCH 4/6] drivers/dma: make pxa_dma.c " Paul Gortmaker 2015-12-09 23:22 ` Paul Gortmaker 2015-12-09 23:22 ` [PATCH 5/6] drivers/dma: make sh/shdma-*.c " Paul Gortmaker 2015-12-10 9:46 ` Geert Uytterhoeven 2015-12-09 23:22 ` Paul Gortmaker [this message] 2015-12-09 23:22 ` [PATCH 6/6] drivers/dma: make tegra20-apb-dma.c " Paul Gortmaker [not found] ` <1449703322-17762-1-git-send-email-paul.gortmaker-CWA4WttNNZF54TAoqtyWWQ@public.gmane.org> 2015-12-09 23:29 ` [PATCH 0/6] drivers/dma: drop modular code from non modular drivers Arnd Bergmann 2015-12-09 23:29 ` Arnd Bergmann 2015-12-09 23:29 ` Arnd Bergmann 2015-12-10 0:17 ` Paul Gortmaker 2015-12-10 0:17 ` Paul Gortmaker 2015-12-10 0:17 ` Paul Gortmaker [not found] ` <20151210001741.GT22885-CWA4WttNNZF54TAoqtyWWQ@public.gmane.org> 2015-12-10 3:12 ` Vinod Koul 2015-12-10 3:12 ` Vinod Koul 2015-12-10 3:12 ` Vinod Koul 2015-12-10 9:01 ` Arnd Bergmann 2015-12-10 9:01 ` Arnd Bergmann 2015-12-10 9:01 ` Arnd Bergmann
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1449703322-17762-7-git-send-email-paul.gortmaker@windriver.com \ --to=paul.gortmaker@windriver.com \ --cc=dan.j.williams@intel.com \ --cc=dmaengine@vger.kernel.org \ --cc=gnurou@gmail.com \ --cc=ldewangan@nvidia.com \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-tegra@vger.kernel.org \ --cc=swarren@wwwdotorg.org \ --cc=thierry.reding@gmail.com \ --cc=vinod.koul@intel.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.