Commit | Line | Data |
---|---|---|
c70e0d9d CW |
1 | /* pci-stub - simple stub driver to reserve a pci device |
2 | * | |
3 | * Copyright (C) 2008 Red Hat, Inc. | |
4 | * Author: | |
5 | * Chris Wright | |
6 | * | |
7 | * This work is licensed under the terms of the GNU GPL, version 2. | |
8 | * | |
9 | * Usage is simple, allocate a new id to the stub driver and bind the | |
10 | * device to it. For example: | |
11 | * | |
12 | * # echo "8086 10f5" > /sys/bus/pci/drivers/pci-stub/new_id | |
13 | * # echo -n 0000:00:19.0 > /sys/bus/pci/drivers/e1000e/unbind | |
14 | * # echo -n 0000:00:19.0 > /sys/bus/pci/drivers/pci-stub/bind | |
15 | * # ls -l /sys/bus/pci/devices/0000:00:19.0/driver | |
16 | * .../0000:00:19.0/driver -> ../../../bus/pci/drivers/pci-stub | |
17 | */ | |
18 | ||
19 | #include <linux/module.h> | |
20 | #include <linux/pci.h> | |
21 | ||
22 | static int pci_stub_probe(struct pci_dev *dev, const struct pci_device_id *id) | |
23 | { | |
24 | return 0; | |
25 | } | |
26 | ||
27 | static struct pci_driver stub_driver = { | |
28 | .name = "pci-stub", | |
29 | .id_table = NULL, /* only dynamic id's */ | |
30 | .probe = pci_stub_probe, | |
31 | }; | |
32 | ||
33 | static int __init pci_stub_init(void) | |
34 | { | |
35 | return pci_register_driver(&stub_driver); | |
36 | } | |
37 | ||
38 | static void __exit pci_stub_exit(void) | |
39 | { | |
40 | pci_unregister_driver(&stub_driver); | |
41 | } | |
42 | ||
43 | module_init(pci_stub_init); | |
44 | module_exit(pci_stub_exit); | |
45 | ||
46 | MODULE_LICENSE("GPL"); | |
47 | MODULE_AUTHOR("Chris Wright <chrisw@sous-sol.org>"); |