summaryrefslogtreecommitdiff
path: root/kernel-devel/module-basics/vain_pci/vain_pci_4.c
diff options
context:
space:
mode:
authorBenedikt Spranger <b.spranger@linutronix.de>2009-11-24 08:58:33 +0100
committerBenedikt Spranger <b.spranger@linutronix.de>2009-11-24 08:58:33 +0100
commit8467e6f35df9e7f39c727e51d50c00f96a1081c9 (patch)
tree7602c7e1376915b6ea1d7902af0efa858aff7e1f /kernel-devel/module-basics/vain_pci/vain_pci_4.c
parent7ec20455300298bb170ba50c1b22c1d9236cef00 (diff)
PCI example added
Diffstat (limited to 'kernel-devel/module-basics/vain_pci/vain_pci_4.c')
-rw-r--r--kernel-devel/module-basics/vain_pci/vain_pci_4.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/kernel-devel/module-basics/vain_pci/vain_pci_4.c b/kernel-devel/module-basics/vain_pci/vain_pci_4.c
new file mode 100644
index 0000000..f238f22
--- /dev/null
+++ b/kernel-devel/module-basics/vain_pci/vain_pci_4.c
@@ -0,0 +1,21 @@
+err_rel_regs:
+ pci_release_regions(pdev);
+err_disable_device:
+ pci_disable_device(pdev);
+err_free:
+ kfree(info);
+
+ return ret;
+}
+
+static void __devexit vain_pci_remove(struct pci_dev *pdev)
+{
+ struct vain_pci_info *info = pci_get_drvdata(pdev);
+
+ iounmap(info->base);
+ pci_release_regions(pdev);
+ pci_disable_device(pdev);
+ pci_set_drvdata(pdev, NULL);
+
+ kfree (info);
+}