From e28a6bf75de1d098df46f46d710ebb0aefb21db7 Mon Sep 17 00:00:00 2001 From: Benedikt Spranger Date: Tue, 24 Nov 2009 10:52:22 +0100 Subject: Platform device added --- kernel-devel/module-basics/vain_plat/vain_plat_2.c | 25 ++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 kernel-devel/module-basics/vain_plat/vain_plat_2.c (limited to 'kernel-devel/module-basics/vain_plat/vain_plat_2.c') diff --git a/kernel-devel/module-basics/vain_plat/vain_plat_2.c b/kernel-devel/module-basics/vain_plat/vain_plat_2.c new file mode 100644 index 0000000..9c5a980 --- /dev/null +++ b/kernel-devel/module-basics/vain_plat/vain_plat_2.c @@ -0,0 +1,25 @@ +static int __devinit vain_plat_probe(struct platform_device *pdev) +{ + struct vain_plat_info *info; + struct resource *res, *mem; + int err; + + info = kzalloc(sizeof(struct vain_plat_info), GFP_KERNEL); + if (unlikely(!info)) { + dev_err(&pdev->dev, "Could not allocate memory\n"); + err = -ENOMEM; + goto out; + } + + res = platform_get_resource(pdev, IORESOURCE_MEM, 0); + if (unlikely(!res)) { + dev_err(&pdev->dev, "I/O address already in use\n"); + err = -ENOENT; + goto err_free; + } + + mem = request_mem_region(res->start, resource_size(res), pdev->name); + if (!mem) { + err = -EBUSY; + goto err_free; + } -- cgit v1.2.3