[PATCH] orinoco: Don't include <net/ieee80211.h> twice.
[linux-2.6/linux-2.6-openrd.git] / drivers / pci / hotplug.c
blob10444988a10b58532dd942a0af906594904bd5fe
1 #include <linux/kernel.h>
2 #include <linux/pci.h>
3 #include <linux/module.h>
4 #include "pci.h"
6 int pci_hotplug (struct device *dev, char **envp, int num_envp,
7 char *buffer, int buffer_size)
9 struct pci_dev *pdev;
10 char *scratch;
11 int i = 0;
12 int length = 0;
14 if (!dev)
15 return -ENODEV;
17 pdev = to_pci_dev(dev);
18 if (!pdev)
19 return -ENODEV;
21 scratch = buffer;
24 if (add_hotplug_env_var(envp, num_envp, &i,
25 buffer, buffer_size, &length,
26 "PCI_CLASS=%04X", pdev->class))
27 return -ENOMEM;
29 if (add_hotplug_env_var(envp, num_envp, &i,
30 buffer, buffer_size, &length,
31 "PCI_ID=%04X:%04X", pdev->vendor, pdev->device))
32 return -ENOMEM;
34 if (add_hotplug_env_var(envp, num_envp, &i,
35 buffer, buffer_size, &length,
36 "PCI_SUBSYS_ID=%04X:%04X", pdev->subsystem_vendor,
37 pdev->subsystem_device))
38 return -ENOMEM;
40 if (add_hotplug_env_var(envp, num_envp, &i,
41 buffer, buffer_size, &length,
42 "PCI_SLOT_NAME=%s", pci_name(pdev)))
43 return -ENOMEM;
45 if (add_hotplug_env_var(envp, num_envp, &i,
46 buffer, buffer_size, &length,
47 "MODALIAS=pci:v%08Xd%08Xsv%08Xsd%08Xbc%02Xsc%02Xi%02x",
48 pdev->vendor, pdev->device,
49 pdev->subsystem_vendor, pdev->subsystem_device,
50 (u8)(pdev->class >> 16), (u8)(pdev->class >> 8),
51 (u8)(pdev->class)))
52 return -ENOMEM;
54 envp[i] = NULL;
56 return 0;