Loading arch/sparc64/kernel/pci_common.c +24 −1 Original line number Diff line number Diff line Loading @@ -7,6 +7,8 @@ #include <linux/string.h> #include <linux/slab.h> #include <linux/init.h> #include <linux/pci.h> #include <linux/device.h> #include <asm/pbm.h> #include <asm/prom.h> Loading Loading @@ -129,6 +131,20 @@ static void __init fixup_obp_assignments(struct pci_dev *pdev, } } static ssize_t show_pciobppath_attr(struct device * dev, struct device_attribute * attr, char * buf) { struct pci_dev *pdev; struct pcidev_cookie *sysdata; pdev = to_pci_dev(dev); sysdata = pdev->sysdata; return snprintf (buf, PAGE_SIZE, "%s\n", sysdata->prom_node->full_name); } static DEVICE_ATTR(obppath, S_IRUSR | S_IRGRP | S_IROTH, show_pciobppath_attr, NULL); /* Fill in the PCI device cookie sysdata for the given * PCI device. This cookie is the means by which one * can get to OBP and PCI controller specific information Loading @@ -142,7 +158,7 @@ static void __init pdev_cookie_fillin(struct pci_pbm_info *pbm, struct pcidev_cookie *pcp; struct device_node *dp; struct property *prop; int nregs, len; int nregs, len, err; dp = find_device_prom_node(pbm, pdev, bus_node, &pregs, &nregs); Loading Loading @@ -215,6 +231,13 @@ static void __init pdev_cookie_fillin(struct pci_pbm_info *pbm, fixup_obp_assignments(pdev, pcp); pdev->sysdata = pcp; /* we don't really care if we can create this file or not, * but we need to assign the result of the call or the world will fall * under alien invasion and everybody will be frozen on a spaceship * ready to be eaten on alpha centauri by some green and jelly humanoid. */ err = sysfs_create_file(&pdev->dev.kobj, &dev_attr_obppath.attr); } void __init pci_fill_in_pbm_cookies(struct pci_bus *pbus, Loading drivers/sbus/sbus.c +17 −1 Original line number Diff line number Diff line Loading @@ -7,6 +7,7 @@ #include <linux/slab.h> #include <linux/init.h> #include <linux/pci.h> #include <linux/device.h> #include <asm/system.h> #include <asm/sbus.h> Loading @@ -17,13 +18,25 @@ #include <asm/bpp.h> #include <asm/irq.h> static ssize_t show_sbusobppath_attr(struct device * dev, struct device_attribute * attr, char * buf) { struct sbus_dev *sbus; sbus = to_sbus_device(dev); return snprintf (buf, PAGE_SIZE, "%s\n", sbus->ofdev.node->full_name); } static DEVICE_ATTR(obppath, S_IRUSR | S_IRGRP | S_IROTH, show_sbusobppath_attr, NULL); struct sbus_bus *sbus_root; static void __init fill_sbus_device(struct device_node *dp, struct sbus_dev *sdev) { unsigned long base; void *pval; int len; int len, err; sdev->prom_node = dp->node; strcpy(sdev->prom_name, dp->name); Loading Loading @@ -66,6 +79,9 @@ static void __init fill_sbus_device(struct device_node *dp, struct sbus_dev *sde if (of_device_register(&sdev->ofdev) != 0) printk(KERN_DEBUG "sbus: device registration error for %s!\n", dp->path_component_name); /* WE HAVE BEEN INVADED BY ALIENS! */ err = sysfs_create_file(&sdev->ofdev.dev.kobj, &dev_attr_obppath.attr); } static void __init sbus_bus_ranges_init(struct device_node *dp, struct sbus_bus *sbus) Loading Loading
arch/sparc64/kernel/pci_common.c +24 −1 Original line number Diff line number Diff line Loading @@ -7,6 +7,8 @@ #include <linux/string.h> #include <linux/slab.h> #include <linux/init.h> #include <linux/pci.h> #include <linux/device.h> #include <asm/pbm.h> #include <asm/prom.h> Loading Loading @@ -129,6 +131,20 @@ static void __init fixup_obp_assignments(struct pci_dev *pdev, } } static ssize_t show_pciobppath_attr(struct device * dev, struct device_attribute * attr, char * buf) { struct pci_dev *pdev; struct pcidev_cookie *sysdata; pdev = to_pci_dev(dev); sysdata = pdev->sysdata; return snprintf (buf, PAGE_SIZE, "%s\n", sysdata->prom_node->full_name); } static DEVICE_ATTR(obppath, S_IRUSR | S_IRGRP | S_IROTH, show_pciobppath_attr, NULL); /* Fill in the PCI device cookie sysdata for the given * PCI device. This cookie is the means by which one * can get to OBP and PCI controller specific information Loading @@ -142,7 +158,7 @@ static void __init pdev_cookie_fillin(struct pci_pbm_info *pbm, struct pcidev_cookie *pcp; struct device_node *dp; struct property *prop; int nregs, len; int nregs, len, err; dp = find_device_prom_node(pbm, pdev, bus_node, &pregs, &nregs); Loading Loading @@ -215,6 +231,13 @@ static void __init pdev_cookie_fillin(struct pci_pbm_info *pbm, fixup_obp_assignments(pdev, pcp); pdev->sysdata = pcp; /* we don't really care if we can create this file or not, * but we need to assign the result of the call or the world will fall * under alien invasion and everybody will be frozen on a spaceship * ready to be eaten on alpha centauri by some green and jelly humanoid. */ err = sysfs_create_file(&pdev->dev.kobj, &dev_attr_obppath.attr); } void __init pci_fill_in_pbm_cookies(struct pci_bus *pbus, Loading
drivers/sbus/sbus.c +17 −1 Original line number Diff line number Diff line Loading @@ -7,6 +7,7 @@ #include <linux/slab.h> #include <linux/init.h> #include <linux/pci.h> #include <linux/device.h> #include <asm/system.h> #include <asm/sbus.h> Loading @@ -17,13 +18,25 @@ #include <asm/bpp.h> #include <asm/irq.h> static ssize_t show_sbusobppath_attr(struct device * dev, struct device_attribute * attr, char * buf) { struct sbus_dev *sbus; sbus = to_sbus_device(dev); return snprintf (buf, PAGE_SIZE, "%s\n", sbus->ofdev.node->full_name); } static DEVICE_ATTR(obppath, S_IRUSR | S_IRGRP | S_IROTH, show_sbusobppath_attr, NULL); struct sbus_bus *sbus_root; static void __init fill_sbus_device(struct device_node *dp, struct sbus_dev *sdev) { unsigned long base; void *pval; int len; int len, err; sdev->prom_node = dp->node; strcpy(sdev->prom_name, dp->name); Loading Loading @@ -66,6 +79,9 @@ static void __init fill_sbus_device(struct device_node *dp, struct sbus_dev *sde if (of_device_register(&sdev->ofdev) != 0) printk(KERN_DEBUG "sbus: device registration error for %s!\n", dp->path_component_name); /* WE HAVE BEEN INVADED BY ALIENS! */ err = sysfs_create_file(&sdev->ofdev.dev.kobj, &dev_attr_obppath.attr); } static void __init sbus_bus_ranges_init(struct device_node *dp, struct sbus_bus *sbus) Loading