Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 264873
b: refs/heads/master
c: 0e39241
h: refs/heads/master
i:
  264871: 9481a5d
v: v3
  • Loading branch information
Uwe Kleine-König authored and Greg Kroah-Hartman committed Aug 26, 2011
1 parent c59128e commit 3b93fea
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 56 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 01dcc60a7cb8cd5193676554b94a90d349bdfd15
refs/heads/master: 0e392412f334c80baedb30a29796a256b0d5e629
53 changes: 0 additions & 53 deletions trunk/arch/arm/plat-mxc/devices.c
Original file line number Diff line number Diff line change
Expand Up @@ -37,59 +37,6 @@ int __init mxc_register_device(struct platform_device *pdev, void *data)
return ret;
}

struct platform_device *__init imx_add_platform_device_dmamask(
const char *name, int id,
const struct resource *res, unsigned int num_resources,
const void *data, size_t size_data, u64 dmamask)
{
int ret = -ENOMEM;
struct platform_device *pdev;

pdev = platform_device_alloc(name, id);
if (!pdev)
goto err;

if (dmamask) {
/*
* This memory isn't freed when the device is put,
* I don't have a nice idea for that though. Conceptually
* dma_mask in struct device should not be a pointer.
* See http://thread.gmane.org/gmane.linux.kernel.pci/9081
*/
pdev->dev.dma_mask =
kmalloc(sizeof(*pdev->dev.dma_mask), GFP_KERNEL);
if (!pdev->dev.dma_mask)
/* ret is still -ENOMEM; */
goto err;

*pdev->dev.dma_mask = dmamask;
pdev->dev.coherent_dma_mask = dmamask;
}

if (res) {
ret = platform_device_add_resources(pdev, res, num_resources);
if (ret)
goto err;
}

if (data) {
ret = platform_device_add_data(pdev, data, size_data);
if (ret)
goto err;
}

ret = platform_device_add(pdev);
if (ret) {
err:
if (dmamask)
kfree(pdev->dev.dma_mask);
platform_device_put(pdev);
return ERR_PTR(ret);
}

return pdev;
}

struct device mxc_aips_bus = {
.init_name = "mxc_aips",
.parent = &platform_bus,
Expand Down
16 changes: 14 additions & 2 deletions trunk/arch/arm/plat-mxc/include/mach/devices-common.h
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,22 @@
extern struct device mxc_aips_bus;
extern struct device mxc_ahb_bus;

struct platform_device *imx_add_platform_device_dmamask(
static inline struct platform_device *imx_add_platform_device_dmamask(
const char *name, int id,
const struct resource *res, unsigned int num_resources,
const void *data, size_t size_data, u64 dmamask);
const void *data, size_t size_data, u64 dmamask)
{
struct platform_device_info pdevinfo = {
.name = name,
.id = id,
.res = res,
.num_res = num_resources,
.data = data,
.size_data = size_data,
.dma_mask = dmamask,
};
return platform_device_register_full(&pdevinfo);
}

static inline struct platform_device *imx_add_platform_device(
const char *name, int id,
Expand Down

0 comments on commit 3b93fea

Please sign in to comment.