From: Peter Ujfalusi <peter.ujfalusi@ti.com>
To: <vinod.koul@intel.com>, <nsekhar@ti.com>, <linux@arm.linux.org.uk>
Cc: <olof@lixom.net>, <arnd@arndb.de>,
<linux-arm-kernel@lists.infradead.org>,
<linux-kernel@vger.kernel.org>, <linux-omap@vger.kernel.org>,
<dmaengine@vger.kernel.org>
Subject: [PATCH v3 09/24] ARM: davinci: Use platform_device_register_full() to create pdev for eDMA
Date: Tue, 22 Sep 2015 12:54:20 +0300 [thread overview]
Message-ID: <1442915675-7121-10-git-send-email-peter.ujfalusi@ti.com> (raw)
In-Reply-To: <1442915675-7121-1-git-send-email-peter.ujfalusi@ti.com>
Convert the eDMA platform device creation to use
struct platform_device_info XXXXXX __initconst and
platform_device_register_full()
This will allow us to cleanly specify the dma_mask for the devices in an
upcoming patch.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
---
arch/arm/mach-davinci/devices-da8xx.c | 38 ++++++++++++++++++-----------------
arch/arm/mach-davinci/dm355.c | 20 +++++++++++-------
arch/arm/mach-davinci/dm644x.c | 20 +++++++++++-------
arch/arm/mach-davinci/dm646x.c | 18 ++++++++++-------
4 files changed, 57 insertions(+), 39 deletions(-)
diff --git a/arch/arm/mach-davinci/devices-da8xx.c b/arch/arm/mach-davinci/devices-da8xx.c
index 9ae049ae816a..9f7d266faa0c 100644
--- a/arch/arm/mach-davinci/devices-da8xx.c
+++ b/arch/arm/mach-davinci/devices-da8xx.c
@@ -213,48 +213,50 @@ static struct resource da850_edma1_resources[] = {
},
};
-static struct platform_device da8xx_edma0_device = {
+static const struct platform_device_info da8xx_edma0_device __initconst = {
.name = "edma",
.id = 0,
- .dev = {
- .platform_data = &da8xx_edma0_pdata,
- },
- .num_resources = ARRAY_SIZE(da8xx_edma0_resources),
- .resource = da8xx_edma0_resources,
+ .res = da8xx_edma0_resources,
+ .num_res = ARRAY_SIZE(da8xx_edma0_resources),
+ .data = &da8xx_edma0_pdata,
+ .size_data = sizeof(da8xx_edma0_pdata),
};
-static struct platform_device da850_edma1_device = {
+static const struct platform_device_info da850_edma1_device __initconst = {
.name = "edma",
.id = 1,
- .dev = {
- .platform_data = &da850_edma1_pdata,
- },
- .num_resources = ARRAY_SIZE(da850_edma1_resources),
- .resource = da850_edma1_resources,
+ .res = da850_edma1_resources,
+ .num_res = ARRAY_SIZE(da850_edma1_resources),
+ .data = &da850_edma1_pdata,
+ .size_data = sizeof(da850_edma1_pdata),
};
int __init da830_register_edma(struct edma_rsv_info *rsv)
{
+ struct platform_device *edma_pdev;
+
da8xx_edma0_pdata.rsv = rsv;
- return platform_device_register(&da8xx_edma0_device);
+ edma_pdev = platform_device_register_full(&da8xx_edma0_device);
+ return IS_ERR(edma_pdev) ? PTR_ERR(edma_pdev) : 0;
}
int __init da850_register_edma(struct edma_rsv_info *rsv[2])
{
- int ret;
+ struct platform_device *edma_pdev;
if (rsv) {
da8xx_edma0_pdata.rsv = rsv[0];
da850_edma1_pdata.rsv = rsv[1];
}
- ret = platform_device_register(&da8xx_edma0_device);
- if (ret) {
+ edma_pdev = platform_device_register_full(&da8xx_edma0_device);
+ if (IS_ERR(edma_pdev)) {
pr_warn("%s: Failed to register eDMA0\n", __func__);
- return ret;
+ return PTR_ERR(edma_pdev);
}
- return platform_device_register(&da850_edma1_device);
+ edma_pdev = platform_device_register_full(&da850_edma1_device);
+ return IS_ERR(edma_pdev) ? PTR_ERR(edma_pdev) : 0;
}
static struct resource da8xx_i2c_resources0[] = {
diff --git a/arch/arm/mach-davinci/dm355.c b/arch/arm/mach-davinci/dm355.c
index a50bb9c66952..5f10c6695e31 100644
--- a/arch/arm/mach-davinci/dm355.c
+++ b/arch/arm/mach-davinci/dm355.c
@@ -613,12 +613,13 @@ static struct resource edma_resources[] = {
/* not using (or muxing) TC*_ERR */
};
-static struct platform_device dm355_edma_device = {
- .name = "edma",
- .id = 0,
- .dev.platform_data = &dm355_edma_pdata,
- .num_resources = ARRAY_SIZE(edma_resources),
- .resource = edma_resources,
+static const struct platform_device_info dm355_edma_device __initconst = {
+ .name = "edma",
+ .id = 0,
+ .res = edma_resources,
+ .num_res = ARRAY_SIZE(edma_resources),
+ .data = &dm355_edma_pdata,
+ .size_data = sizeof(dm355_edma_pdata),
};
static struct resource dm355_asp1_resources[] = {
@@ -1057,13 +1058,18 @@ int __init dm355_init_video(struct vpfe_config *vpfe_cfg,
static int __init dm355_init_devices(void)
{
+ struct platform_device *edma_pdev;
int ret = 0;
if (!cpu_is_davinci_dm355())
return 0;
davinci_cfg_reg(DM355_INT_EDMA_CC);
- platform_device_register(&dm355_edma_device);
+ edma_pdev = platform_device_register_full(&dm355_edma_device);
+ if (IS_ERR(edma_pdev)) {
+ pr_warn("%s: Failed to register eDMA\n", __func__);
+ return PTR_ERR(edma_pdev);
+ }
ret = davinci_init_wdt();
if (ret)
diff --git a/arch/arm/mach-davinci/dm644x.c b/arch/arm/mach-davinci/dm644x.c
index d759ca8e58e8..aa3453b40d5f 100644
--- a/arch/arm/mach-davinci/dm644x.c
+++ b/arch/arm/mach-davinci/dm644x.c
@@ -542,12 +542,13 @@ static struct resource edma_resources[] = {
/* not using TC*_ERR */
};
-static struct platform_device dm644x_edma_device = {
- .name = "edma",
- .id = 0,
- .dev.platform_data = &dm644x_edma_pdata,
- .num_resources = ARRAY_SIZE(edma_resources),
- .resource = edma_resources,
+static const struct platform_device_info dm644x_edma_device __initconst = {
+ .name = "edma",
+ .id = 0,
+ .res = edma_resources,
+ .num_res = ARRAY_SIZE(edma_resources),
+ .data = &dm644x_edma_pdata,
+ .size_data = sizeof(dm644x_edma_pdata),
};
/* DM6446 EVM uses ASP0; line-out is a pair of RCA jacks */
@@ -945,12 +946,17 @@ int __init dm644x_init_video(struct vpfe_config *vpfe_cfg,
static int __init dm644x_init_devices(void)
{
+ struct platform_device *edma_pdev;
int ret = 0;
if (!cpu_is_davinci_dm644x())
return 0;
- platform_device_register(&dm644x_edma_device);
+ edma_pdev = platform_device_register_full(&dm644x_edma_device);
+ if (IS_ERR(edma_pdev)) {
+ pr_warn("%s: Failed to register eDMA\n", __func__);
+ return PTR_ERR(edma_pdev);
+ }
platform_device_register(&dm644x_mdio_device);
platform_device_register(&dm644x_emac_device);
diff --git a/arch/arm/mach-davinci/dm646x.c b/arch/arm/mach-davinci/dm646x.c
index 219ebc8f674a..79c1d8917dd3 100644
--- a/arch/arm/mach-davinci/dm646x.c
+++ b/arch/arm/mach-davinci/dm646x.c
@@ -589,12 +589,13 @@ static struct resource edma_resources[] = {
/* not using TC*_ERR */
};
-static struct platform_device dm646x_edma_device = {
- .name = "edma",
- .id = 0,
- .dev.platform_data = &dm646x_edma_pdata,
- .num_resources = ARRAY_SIZE(edma_resources),
- .resource = edma_resources,
+static const struct platform_device_info dm646x_edma_device __initconst = {
+ .name = "edma",
+ .id = 0,
+ .res = edma_resources,
+ .num_res = ARRAY_SIZE(edma_resources),
+ .data = &dm646x_edma_pdata,
+ .size_data = sizeof(dm646x_edma_pdata),
};
static struct resource dm646x_mcasp0_resources[] = {
@@ -931,9 +932,12 @@ void dm646x_setup_vpif(struct vpif_display_config *display_config,
int __init dm646x_init_edma(struct edma_rsv_info *rsv)
{
+ struct platform_device *edma_pdev;
+
dm646x_edma_pdata.rsv = rsv;
- return platform_device_register(&dm646x_edma_device);
+ edma_pdev = platform_device_register_full(&dm646x_edma_device);
+ return IS_ERR(edma_pdev) ? PTR_ERR(edma_pdev) : 0;
}
void __init dm646x_init(void)
--
2.5.2
next prev parent reply other threads:[~2015-09-22 10:01 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-09-22 9:54 [PATCH v3 00/24] dmaengine/ARM: Merge the edma drivers into one Peter Ujfalusi
2015-09-22 9:54 ` [PATCH v3 01/24] ARM: common: edma: Fix channel parameter for irq callbacks Peter Ujfalusi
2015-09-22 9:54 ` [PATCH v3 02/24] ARM: common: edma: Remove unused functions Peter Ujfalusi
2015-09-22 9:54 ` [PATCH v3 03/24] dmaengine: edma: Simplify and optimize the edma_execute path Peter Ujfalusi
2015-09-22 9:54 ` [PATCH v3 04/24] ARM: davinci/common: Convert edma driver to handle one eDMA instance per driver Peter Ujfalusi
2015-09-22 9:54 ` [PATCH v3 05/24] ARM/dmaengine: edma: Move of_dma_controller_register to the dmaengine driver Peter Ujfalusi
2015-09-22 9:54 ` [PATCH v3 06/24] ARM: common: edma: Internal API to use pointer to 'struct edma' Peter Ujfalusi
2015-09-22 9:54 ` [PATCH v3 07/24] ARM/dmaengine: edma: Public API to use private struct pointer Peter Ujfalusi
2015-09-22 9:54 ` [PATCH v3 08/24] ARM/dmaengine: edma: Remove limitation on the number of eDMA controllers Peter Ujfalusi
2015-09-22 9:54 ` Peter Ujfalusi [this message]
2015-09-22 9:54 ` [PATCH v3 10/24] ARM: davinci: Add set dma_mask to eDMA devices Peter Ujfalusi
2015-09-23 17:25 ` Tony Lindgren
2015-09-24 9:56 ` Peter Ujfalusi
2015-09-22 9:54 ` [PATCH v3 11/24] dmaengine: edma: Allocate memory dynamically for bitmaps and structures Peter Ujfalusi
2015-09-22 9:54 ` [PATCH v3 12/24] dmaengine: edma: Parameter alignment and long line fixes Peter Ujfalusi
2015-09-22 9:54 ` [PATCH v3 13/24] dmaengine: edma: Use devm_kcalloc when possible Peter Ujfalusi
2015-09-22 9:54 ` [PATCH v3 14/24] dmaengine: edma: Cleanup regarding the use of dev around the code Peter Ujfalusi
2015-09-22 9:54 ` [PATCH v3 15/24] dmaengine: edma: Use dev_dbg instead pr_debug Peter Ujfalusi
2015-09-22 9:54 ` [PATCH v3 16/24] dmaengine: edma: Use the edma_write_slot instead open coded memcpy_toio Peter Ujfalusi
2015-09-22 9:54 ` [PATCH v3 17/24] dmaengine: edma: Print warning when linking slots from different eDMA Peter Ujfalusi
2015-09-22 9:54 ` [PATCH v3 18/24] dmaengine: edma: Consolidate the comments for functions Peter Ujfalusi
2015-09-22 9:54 ` [PATCH v3 19/24] dmaengine: edma: Simplify the interrupt handling Peter Ujfalusi
2015-09-22 9:54 ` [PATCH v3 20/24] dmaengine: edma: Move the pending error check into helper function Peter Ujfalusi
2015-09-22 9:54 ` [PATCH v3 21/24] dmaengine: edma: Simplify and optimize ccerr interrupt handler Peter Ujfalusi
2015-09-22 9:54 ` [PATCH v3 22/24] dmaengine: edma: Read channel mapping support only once from HW Peter Ujfalusi
2015-09-22 9:54 ` [PATCH v3 23/24] dmaengine: edma: Rename bitfields for slot and channel usage tracking Peter Ujfalusi
2015-09-22 9:54 ` [PATCH v3 24/24] dmaengine: edma: Dynamic paRAM slot handling if HW supports it Peter Ujfalusi
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=1442915675-7121-10-git-send-email-peter.ujfalusi@ti.com \
--to=peter.ujfalusi@ti.com \
--cc=arnd@arndb.de \
--cc=dmaengine@vger.kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-omap@vger.kernel.org \
--cc=linux@arm.linux.org.uk \
--cc=nsekhar@ti.com \
--cc=olof@lixom.net \
--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: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®