mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-14 22:44:27 +08:00
ARM: davinci: Use platform_device_register_full() to create pdev for eDMA
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> Acked-by: Sekhar Nori <nsekhar@ti.com> Signed-off-by: Vinod Koul <vinod.koul@intel.com>
This commit is contained in:
parent
b2c843a196
commit
7ab388e85f
@ -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[] = {
|
||||
|
@ -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)
|
||||
|
@ -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);
|
||||
|
@ -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)
|
||||
|
Loading…
Reference in New Issue
Block a user