PCI: Move Open Firmware devspec attribute to PCI common code
authorSebastian Ott <sebott@linux.vnet.ibm.com>
Thu, 17 Apr 2014 17:46:15 +0000 (19:46 +0200)
committerBjorn Helgaas <bhelgaas@google.com>
Wed, 30 Apr 2014 20:48:41 +0000 (14:48 -0600)
Move the devspec OF attribute to PCI common code's set of device attributes
since it's not architecture dependent.  As a side effect microblaze and
powerpc no longer need to use pcibios_add_platform_entries().

[bhelgaas: fold in #include for compile error]
Link: https://lkml.kernel.org/r/alpine.LFD.2.11.1404141101500.1529@denkbrett
Signed-off-by: Sebastian Ott <sebott@linux.vnet.ibm.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
arch/microblaze/pci/pci-common.c
arch/powerpc/kernel/pci-common.c
drivers/pci/pci-sysfs.c

index 70996cc66aa228c688d298ade87fd31c5cedaaac..a59de1bc1ce0cca8976ea6cb9bf0ebde4562ddd3 100644 (file)
@@ -168,26 +168,6 @@ struct pci_controller *pci_find_hose_for_OF_device(struct device_node *node)
        return NULL;
 }
 
-static ssize_t pci_show_devspec(struct device *dev,
-               struct device_attribute *attr, char *buf)
-{
-       struct pci_dev *pdev;
-       struct device_node *np;
-
-       pdev = to_pci_dev(dev);
-       np = pci_device_to_OF_node(pdev);
-       if (np == NULL || np->full_name == NULL)
-               return 0;
-       return sprintf(buf, "%s", np->full_name);
-}
-static DEVICE_ATTR(devspec, S_IRUGO, pci_show_devspec, NULL);
-
-/* Add sysfs properties */
-int pcibios_add_platform_entries(struct pci_dev *pdev)
-{
-       return device_create_file(&pdev->dev, &dev_attr_devspec);
-}
-
 void pcibios_set_master(struct pci_dev *dev)
 {
        /* No special bus mastering setup handling */
index d9476c1fc9596132d27bc68d5795e2b6a3ee8a6a..24d342e917903f58aec6e37d56616aab0e1e029d 100644 (file)
@@ -201,26 +201,6 @@ struct pci_controller* pci_find_hose_for_OF_device(struct device_node* node)
        return NULL;
 }
 
-static ssize_t pci_show_devspec(struct device *dev,
-               struct device_attribute *attr, char *buf)
-{
-       struct pci_dev *pdev;
-       struct device_node *np;
-
-       pdev = to_pci_dev (dev);
-       np = pci_device_to_OF_node(pdev);
-       if (np == NULL || np->full_name == NULL)
-               return 0;
-       return sprintf(buf, "%s", np->full_name);
-}
-static DEVICE_ATTR(devspec, S_IRUGO, pci_show_devspec, NULL);
-
-/* Add sysfs properties */
-int pcibios_add_platform_entries(struct pci_dev *pdev)
-{
-       return device_create_file(&pdev->dev, &dev_attr_devspec);
-}
-
 /*
  * Reads the interrupt pin to determine if interrupt is use by card.
  * If the interrupt is used, then gets the interrupt line from the
index 4e0acefb7565d0f3b81013855efa85c86ca5a98e..3db1c7ff5dd38e9c52b4da69fe82d85b949f3c76 100644 (file)
@@ -29,6 +29,7 @@
 #include <linux/slab.h>
 #include <linux/vgaarb.h>
 #include <linux/pm_runtime.h>
+#include <linux/of.h>
 #include "pci.h"
 
 static int sysfs_initialized;  /* = 0 */
@@ -416,6 +417,20 @@ static ssize_t d3cold_allowed_show(struct device *dev,
 static DEVICE_ATTR_RW(d3cold_allowed);
 #endif
 
+#ifdef CONFIG_OF
+static ssize_t devspec_show(struct device *dev,
+                           struct device_attribute *attr, char *buf)
+{
+       struct pci_dev *pdev = to_pci_dev(dev);
+       struct device_node *np = pci_device_to_OF_node(pdev);
+
+       if (np == NULL || np->full_name == NULL)
+               return 0;
+       return sprintf(buf, "%s", np->full_name);
+}
+static DEVICE_ATTR_RO(devspec);
+#endif
+
 #ifdef CONFIG_PCI_IOV
 static ssize_t sriov_totalvfs_show(struct device *dev,
                                   struct device_attribute *attr,
@@ -520,6 +535,9 @@ static struct attribute *pci_dev_attrs[] = {
        &dev_attr_msi_bus.attr,
 #if defined(CONFIG_PM_RUNTIME) && defined(CONFIG_ACPI)
        &dev_attr_d3cold_allowed.attr,
+#endif
+#ifdef CONFIG_OF
+       &dev_attr_devspec.attr,
 #endif
        NULL,
 };