summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGreg KH <gregkh@suse.de>2005-05-05 11:57:25 -0700
committerGreg KH <gregkh@suse.de>2005-05-17 14:31:12 -0700
commit9888549e0507cc95d1d7ade1595c00ff8e902659 (patch)
tree9c31d2b34ef9b747733f7f39916a8031f89c3d1e
parentc22610dadc0452b1273494f2b5157123c6cd60e1 (diff)
downloadlinux-3.10-9888549e0507cc95d1d7ade1595c00ff8e902659.tar.gz
linux-3.10-9888549e0507cc95d1d7ade1595c00ff8e902659.tar.bz2
linux-3.10-9888549e0507cc95d1d7ade1595c00ff8e902659.zip
[PATCH] PCI: add modalias sysfs file for pci devices
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-rw-r--r--drivers/pci/pci-sysfs.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/pci/pci-sysfs.c b/drivers/pci/pci-sysfs.c
index 8568b207f18..6ca0061137a 100644
--- a/drivers/pci/pci-sysfs.c
+++ b/drivers/pci/pci-sysfs.c
@@ -73,6 +73,17 @@ resource_show(struct device * dev, char * buf)
return (str - buf);
}
+static ssize_t modalias_show(struct device *dev, char *buf)
+{
+ struct pci_dev *pci_dev = to_pci_dev(dev);
+
+ return sprintf(buf, "pci:v%08Xd%08Xsv%08Xsd%08Xbc%02Xsc%02Xi%02x\n",
+ pci_dev->vendor, pci_dev->device,
+ pci_dev->subsystem_vendor, pci_dev->subsystem_device,
+ (u8)(pci_dev->class >> 16), (u8)(pci_dev->class >> 8),
+ (u8)(pci_dev->class));
+}
+
struct device_attribute pci_dev_attrs[] = {
__ATTR_RO(resource),
__ATTR_RO(vendor),
@@ -82,6 +93,7 @@ struct device_attribute pci_dev_attrs[] = {
__ATTR_RO(class),
__ATTR_RO(irq),
__ATTR_RO(local_cpus),
+ __ATTR_RO(modalias),
__ATTR_NULL,
};