summaryrefslogtreecommitdiff
path: root/kernel-devel/module-basics/vain_plat/vain_plat_4.c
diff options
context:
space:
mode:
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),
+};