summaryrefslogtreecommitdiff
path: root/kernel-devel/module-basics/vain_plat/vain_plat_4.c
diff options
context:
space:
mode:
authorBenedikt Spranger <b.spranger@linutronix.de>2009-11-24 10:52:22 +0100
committerBenedikt Spranger <b.spranger@linutronix.de>2009-11-24 10:54:35 +0100
commite28a6bf75de1d098df46f46d710ebb0aefb21db7 (patch)
treee9b5bdef8c28d2ce43e5ecc6219aa0777fb7cff5 /kernel-devel/module-basics/vain_plat/vain_plat_4.c
parentc5b55712e06551da232fd77eb545e9b7f0409006 (diff)
Platform device added
Diffstat (limited to 'kernel-devel/module-basics/vain_plat/vain_plat_4.c')
-rw-r--r--kernel-devel/module-basics/vain_plat/vain_plat_4.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/kernel-devel/module-basics/vain_plat/vain_plat_4.c b/kernel-devel/module-basics/vain_plat/vain_plat_4.c
new file mode 100644
index 0000000..93a480a
--- /dev/null
+++ b/kernel-devel/module-basics/vain_plat/vain_plat_4.c
@@ -0,0 +1,23 @@
+static int __devexit vain_plat_remove(struct platform_device *pdev)
+{
+ struct vain_plat_info *info = platform_get_drvdata(pdev);
+ struct resource *res;
+
+ res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+ iounmap(info->base);
+ release_mem_region(res->start, resource_size(res));
+ platform_set_drvdata(pdev, NULL);
+
+ kfree (info);
+
+ return 0;
+}
+
+static struct platform_driver vain_plat_driver = {
+ .driver = {
+ .name = "vain_plat",
+ .owner = THIS_MODULE,
+ },
+ .probe = vain_plat_probe,
+ .remove = __devexit_p(vain_plat_remove),
+};