diff options
Diffstat (limited to 'drivers/pci/pci-sysfs.c')
-rw-r--r-- | drivers/pci/pci-sysfs.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/pci/pci-sysfs.c b/drivers/pci/pci-sysfs.c index 8568b207f189..6ca0061137a6 100644 --- a/drivers/pci/pci-sysfs.c +++ b/drivers/pci/pci-sysfs.c | |||
@@ -73,6 +73,17 @@ resource_show(struct device * dev, char * buf) | |||
73 | return (str - buf); | 73 | return (str - buf); |
74 | } | 74 | } |
75 | 75 | ||
76 | static ssize_t modalias_show(struct device *dev, char *buf) | ||
77 | { | ||
78 | struct pci_dev *pci_dev = to_pci_dev(dev); | ||
79 | |||
80 | return sprintf(buf, "pci:v%08Xd%08Xsv%08Xsd%08Xbc%02Xsc%02Xi%02x\n", | ||
81 | pci_dev->vendor, pci_dev->device, | ||
82 | pci_dev->subsystem_vendor, pci_dev->subsystem_device, | ||
83 | (u8)(pci_dev->class >> 16), (u8)(pci_dev->class >> 8), | ||
84 | (u8)(pci_dev->class)); | ||
85 | } | ||
86 | |||
76 | struct device_attribute pci_dev_attrs[] = { | 87 | struct device_attribute pci_dev_attrs[] = { |
77 | __ATTR_RO(resource), | 88 | __ATTR_RO(resource), |
78 | __ATTR_RO(vendor), | 89 | __ATTR_RO(vendor), |
@@ -82,6 +93,7 @@ struct device_attribute pci_dev_attrs[] = { | |||
82 | __ATTR_RO(class), | 93 | __ATTR_RO(class), |
83 | __ATTR_RO(irq), | 94 | __ATTR_RO(irq), |
84 | __ATTR_RO(local_cpus), | 95 | __ATTR_RO(local_cpus), |
96 | __ATTR_RO(modalias), | ||
85 | __ATTR_NULL, | 97 | __ATTR_NULL, |
86 | }; | 98 | }; |
87 | 99 | ||