]>
Commit | Line | Data |
---|---|---|
1da177e4 LT |
1 | #include <linux/kernel.h> |
2 | #include <linux/pci.h> | |
3 | #include <linux/module.h> | |
4 | #include "pci.h" | |
5 | ||
7eff2e7a | 6 | int pci_uevent(struct device *dev, struct kobj_uevent_env *env) |
1da177e4 LT |
7 | { |
8 | struct pci_dev *pdev; | |
1da177e4 LT |
9 | |
10 | if (!dev) | |
11 | return -ENODEV; | |
12 | ||
13 | pdev = to_pci_dev(dev); | |
14 | if (!pdev) | |
15 | return -ENODEV; | |
16 | ||
7eff2e7a | 17 | if (add_uevent_var(env, "PCI_CLASS=%04X", pdev->class)) |
1da177e4 | 18 | return -ENOMEM; |
1da177e4 | 19 | |
7eff2e7a | 20 | if (add_uevent_var(env, "PCI_ID=%04X:%04X", pdev->vendor, pdev->device)) |
1da177e4 | 21 | return -ENOMEM; |
1da177e4 | 22 | |
7eff2e7a | 23 | if (add_uevent_var(env, "PCI_SUBSYS_ID=%04X:%04X", pdev->subsystem_vendor, |
312c004d | 24 | pdev->subsystem_device)) |
1da177e4 | 25 | return -ENOMEM; |
1da177e4 | 26 | |
7eff2e7a | 27 | if (add_uevent_var(env, "PCI_SLOT_NAME=%s", pci_name(pdev))) |
1da177e4 LT |
28 | return -ENOMEM; |
29 | ||
7eff2e7a | 30 | if (add_uevent_var(env, "MODALIAS=pci:v%08Xd%08Xsv%08Xsd%08Xbc%02Xsc%02Xi%02x", |
312c004d KS |
31 | pdev->vendor, pdev->device, |
32 | pdev->subsystem_vendor, pdev->subsystem_device, | |
33 | (u8)(pdev->class >> 16), (u8)(pdev->class >> 8), | |
34 | (u8)(pdev->class))) | |
d1ded203 | 35 | return -ENOMEM; |
1da177e4 LT |
36 | return 0; |
37 | } |