Commit 58f9b0b0 authored by Grant Likely's avatar Grant Likely

of: eliminate of_device->node and dev_archdata->{of,prom}_node

This patch eliminates the node pointer from struct of_device and the
of_node (or prom_node) pointer from struct dev_archdata since the node
pointer is now part of struct device proper when CONFIG_OF is set, and
all users of the old pointer locations have already been converted over
to use device->of_node.

Also remove dev_archdata_{get,set}_node() as it is no longer used by
anything.
Signed-off-by: default avatarGrant Likely <grant.likely@secretlab.ca>
parent 61c7a080
...@@ -12,9 +12,6 @@ ...@@ -12,9 +12,6 @@
struct device_node; struct device_node;
struct dev_archdata { struct dev_archdata {
/* Optional pointer to an OF device node */
struct device_node *of_node;
/* DMA operations on that device */ /* DMA operations on that device */
struct dma_map_ops *dma_ops; struct dma_map_ops *dma_ops;
void *dma_data; void *dma_data;
...@@ -23,18 +20,6 @@ struct dev_archdata { ...@@ -23,18 +20,6 @@ struct dev_archdata {
struct pdev_archdata { struct pdev_archdata {
}; };
static inline void dev_archdata_set_node(struct dev_archdata *ad,
struct device_node *np)
{
ad->of_node = np;
}
static inline struct device_node *
dev_archdata_get_node(const struct dev_archdata *ad)
{
return ad->of_node;
}
#endif /* _ASM_MICROBLAZE_DEVICE_H */ #endif /* _ASM_MICROBLAZE_DEVICE_H */
...@@ -21,7 +21,6 @@ ...@@ -21,7 +21,6 @@
* probed using OF properties. * probed using OF properties.
*/ */
struct of_device { struct of_device {
struct device_node *node; /* to be obsoleted */
u64 dma_mask; /* DMA mask */ u64 dma_mask; /* DMA mask */
struct device dev; /* Generic device interface */ struct device dev; /* Generic device interface */
}; };
......
...@@ -49,12 +49,10 @@ struct of_device *of_device_alloc(struct device_node *np, ...@@ -49,12 +49,10 @@ struct of_device *of_device_alloc(struct device_node *np,
if (!dev) if (!dev)
return NULL; return NULL;
dev->node = of_node_get(np); dev->dev.of_node = of_node_get(np);
dev->dev.dma_mask = &dev->dma_mask; dev->dev.dma_mask = &dev->dma_mask;
dev->dev.parent = parent; dev->dev.parent = parent;
dev->dev.release = of_release_dev; dev->dev.release = of_release_dev;
dev->dev.archdata.of_node = np;
dev->dev.of_node = np;
if (bus_id) if (bus_id)
dev_set_name(&dev->dev, bus_id); dev_set_name(&dev->dev, bus_id);
......
...@@ -10,9 +10,6 @@ struct dma_map_ops; ...@@ -10,9 +10,6 @@ struct dma_map_ops;
struct device_node; struct device_node;
struct dev_archdata { struct dev_archdata {
/* Optional pointer to an OF device node */
struct device_node *of_node;
/* DMA operations on that device */ /* DMA operations on that device */
struct dma_map_ops *dma_ops; struct dma_map_ops *dma_ops;
...@@ -30,18 +27,6 @@ struct dev_archdata { ...@@ -30,18 +27,6 @@ struct dev_archdata {
#endif #endif
}; };
static inline void dev_archdata_set_node(struct dev_archdata *ad,
struct device_node *np)
{
ad->of_node = np;
}
static inline struct device_node *
dev_archdata_get_node(const struct dev_archdata *ad)
{
return ad->of_node;
}
struct pdev_archdata { struct pdev_archdata {
}; };
......
...@@ -12,7 +12,6 @@ ...@@ -12,7 +12,6 @@
*/ */
struct of_device struct of_device
{ {
struct device_node *node; /* to be obsoleted */
u64 dma_mask; /* DMA mask */ u64 dma_mask; /* DMA mask */
struct device dev; /* Generic device interface */ struct device dev; /* Generic device interface */
}; };
......
...@@ -69,12 +69,10 @@ struct of_device *of_device_alloc(struct device_node *np, ...@@ -69,12 +69,10 @@ struct of_device *of_device_alloc(struct device_node *np,
if (!dev) if (!dev)
return NULL; return NULL;
dev->node = of_node_get(np); dev->dev.of_node = of_node_get(np);
dev->dev.dma_mask = &dev->dma_mask; dev->dev.dma_mask = &dev->dma_mask;
dev->dev.parent = parent; dev->dev.parent = parent;
dev->dev.release = of_release_dev; dev->dev.release = of_release_dev;
dev->dev.archdata.of_node = np;
dev->dev.of_node = np;
if (bus_id) if (bus_id)
dev_set_name(&dev->dev, "%s", bus_id); dev_set_name(&dev->dev, "%s", bus_id);
......
...@@ -1098,7 +1098,6 @@ void __devinit pcibios_setup_bus_devices(struct pci_bus *bus) ...@@ -1098,7 +1098,6 @@ void __devinit pcibios_setup_bus_devices(struct pci_bus *bus)
continue; continue;
/* Setup OF node pointer in the device */ /* Setup OF node pointer in the device */
sd->of_node = pci_device_to_OF_node(dev);
dev->dev.of_node = pci_device_to_OF_node(dev); dev->dev.of_node = pci_device_to_OF_node(dev);
/* Fixup NUMA node as it may not be setup yet by the generic /* Fixup NUMA node as it may not be setup yet by the generic
......
...@@ -705,7 +705,7 @@ static int vio_cmo_bus_probe(struct vio_dev *viodev) ...@@ -705,7 +705,7 @@ static int vio_cmo_bus_probe(struct vio_dev *viodev)
* Check to see that device has a DMA window and configure * Check to see that device has a DMA window and configure
* entitlement for the device. * entitlement for the device.
*/ */
if (of_get_property(viodev->dev.archdata.of_node, if (of_get_property(viodev->dev.of_node,
"ibm,my-dma-window", NULL)) { "ibm,my-dma-window", NULL)) {
/* Check that the driver is CMO enabled and get desired DMA */ /* Check that the driver is CMO enabled and get desired DMA */
if (!viodrv->get_desired_dma) { if (!viodrv->get_desired_dma) {
...@@ -1049,7 +1049,7 @@ static struct iommu_table *vio_build_iommu_table(struct vio_dev *dev) ...@@ -1049,7 +1049,7 @@ static struct iommu_table *vio_build_iommu_table(struct vio_dev *dev)
if (firmware_has_feature(FW_FEATURE_ISERIES)) if (firmware_has_feature(FW_FEATURE_ISERIES))
return vio_build_iommu_table_iseries(dev); return vio_build_iommu_table_iseries(dev);
dma_window = of_get_property(dev->dev.archdata.of_node, dma_window = of_get_property(dev->dev.of_node,
"ibm,my-dma-window", NULL); "ibm,my-dma-window", NULL);
if (!dma_window) if (!dma_window)
return NULL; return NULL;
...@@ -1058,7 +1058,7 @@ static struct iommu_table *vio_build_iommu_table(struct vio_dev *dev) ...@@ -1058,7 +1058,7 @@ static struct iommu_table *vio_build_iommu_table(struct vio_dev *dev)
if (tbl == NULL) if (tbl == NULL)
return NULL; return NULL;
of_parse_dma_window(dev->dev.archdata.of_node, dma_window, of_parse_dma_window(dev->dev.of_node, dma_window,
&tbl->it_index, &offset, &size); &tbl->it_index, &offset, &size);
/* TCE table size - measured in tce entries */ /* TCE table size - measured in tce entries */
...@@ -1086,7 +1086,7 @@ static const struct vio_device_id *vio_match_device( ...@@ -1086,7 +1086,7 @@ static const struct vio_device_id *vio_match_device(
{ {
while (ids->type[0] != '\0') { while (ids->type[0] != '\0') {
if ((strncmp(dev->type, ids->type, strlen(ids->type)) == 0) && if ((strncmp(dev->type, ids->type, strlen(ids->type)) == 0) &&
of_device_is_compatible(dev->dev.archdata.of_node, of_device_is_compatible(dev->dev.of_node,
ids->compat)) ids->compat))
return ids; return ids;
ids++; ids++;
...@@ -1179,7 +1179,7 @@ EXPORT_SYMBOL(vio_unregister_driver); ...@@ -1179,7 +1179,7 @@ EXPORT_SYMBOL(vio_unregister_driver);
static void __devinit vio_dev_release(struct device *dev) static void __devinit vio_dev_release(struct device *dev)
{ {
/* XXX should free TCE table */ /* XXX should free TCE table */
of_node_put(dev->archdata.of_node); of_node_put(dev->of_node);
kfree(to_vio_dev(dev)); kfree(to_vio_dev(dev));
} }
...@@ -1231,7 +1231,6 @@ struct vio_dev *vio_register_device_node(struct device_node *of_node) ...@@ -1231,7 +1231,6 @@ struct vio_dev *vio_register_device_node(struct device_node *of_node)
viodev->unit_address = *unit_address; viodev->unit_address = *unit_address;
} }
viodev->dev.of_node = of_node_get(of_node); viodev->dev.of_node = of_node_get(of_node);
viodev->dev.archdata.of_node = viodev->dev.of_node;
if (firmware_has_feature(FW_FEATURE_CMO)) if (firmware_has_feature(FW_FEATURE_CMO))
vio_cmo_set_dma_ops(viodev); vio_cmo_set_dma_ops(viodev);
...@@ -1316,7 +1315,7 @@ static ssize_t name_show(struct device *dev, ...@@ -1316,7 +1315,7 @@ static ssize_t name_show(struct device *dev,
static ssize_t devspec_show(struct device *dev, static ssize_t devspec_show(struct device *dev,
struct device_attribute *attr, char *buf) struct device_attribute *attr, char *buf)
{ {
struct device_node *of_node = dev->archdata.of_node; struct device_node *of_node = dev->of_node;
return sprintf(buf, "%s\n", of_node ? of_node->full_name : "none"); return sprintf(buf, "%s\n", of_node ? of_node->full_name : "none");
} }
...@@ -1348,7 +1347,7 @@ static int vio_hotplug(struct device *dev, struct kobj_uevent_env *env) ...@@ -1348,7 +1347,7 @@ static int vio_hotplug(struct device *dev, struct kobj_uevent_env *env)
struct device_node *dn; struct device_node *dn;
const char *cp; const char *cp;
dn = dev->archdata.of_node; dn = dev->of_node;
if (!dn) if (!dn)
return -ENODEV; return -ENODEV;
cp = of_get_property(dn, "compatible", NULL); cp = of_get_property(dn, "compatible", NULL);
...@@ -1379,7 +1378,7 @@ static struct bus_type vio_bus_type = { ...@@ -1379,7 +1378,7 @@ static struct bus_type vio_bus_type = {
*/ */
const void *vio_get_attribute(struct vio_dev *vdev, char *which, int *length) const void *vio_get_attribute(struct vio_dev *vdev, char *which, int *length)
{ {
return of_get_property(vdev->dev.archdata.of_node, which, length); return of_get_property(vdev->dev.of_node, which, length);
} }
EXPORT_SYMBOL(vio_get_attribute); EXPORT_SYMBOL(vio_get_attribute);
......
...@@ -545,7 +545,6 @@ static struct iommu_table *cell_get_iommu_table(struct device *dev) ...@@ -545,7 +545,6 @@ static struct iommu_table *cell_get_iommu_table(struct device *dev)
{ {
struct iommu_window *window; struct iommu_window *window;
struct cbe_iommu *iommu; struct cbe_iommu *iommu;
struct dev_archdata *archdata = &dev->archdata;
/* Current implementation uses the first window available in that /* Current implementation uses the first window available in that
* node's iommu. We -might- do something smarter later though it may * node's iommu. We -might- do something smarter later though it may
...@@ -554,7 +553,7 @@ static struct iommu_table *cell_get_iommu_table(struct device *dev) ...@@ -554,7 +553,7 @@ static struct iommu_table *cell_get_iommu_table(struct device *dev)
iommu = cell_iommu_for_node(dev_to_node(dev)); iommu = cell_iommu_for_node(dev_to_node(dev));
if (iommu == NULL || list_empty(&iommu->windows)) { if (iommu == NULL || list_empty(&iommu->windows)) {
printk(KERN_ERR "iommu: missing iommu for %s (node %d)\n", printk(KERN_ERR "iommu: missing iommu for %s (node %d)\n",
archdata->of_node ? archdata->of_node->full_name : "?", dev->of_node ? dev->of_node->full_name : "?",
dev_to_node(dev)); dev_to_node(dev));
return NULL; return NULL;
} }
...@@ -897,7 +896,7 @@ static u64 cell_iommu_get_fixed_address(struct device *dev) ...@@ -897,7 +896,7 @@ static u64 cell_iommu_get_fixed_address(struct device *dev)
const u32 *ranges = NULL; const u32 *ranges = NULL;
int i, len, best, naddr, nsize, pna, range_size; int i, len, best, naddr, nsize, pna, range_size;
np = of_node_get(dev->archdata.of_node); np = of_node_get(dev->of_node);
while (1) { while (1) {
naddr = of_n_addr_cells(np); naddr = of_n_addr_cells(np);
nsize = of_n_size_cells(np); nsize = of_n_size_cells(np);
......
...@@ -360,10 +360,10 @@ static int pcmcia_notify(struct notifier_block *nb, unsigned long action, ...@@ -360,10 +360,10 @@ static int pcmcia_notify(struct notifier_block *nb, unsigned long action,
/* We know electra_cf devices will always have of_node set, since /* We know electra_cf devices will always have of_node set, since
* electra_cf is an of_platform driver. * electra_cf is an of_platform driver.
*/ */
if (!parent->archdata.of_node) if (!parent->of_node)
return 0; return 0;
if (!of_device_is_compatible(parent->archdata.of_node, "electra-cf")) if (!of_device_is_compatible(parent->of_node, "electra-cf"))
return 0; return 0;
/* We use the direct ops for localbus */ /* We use the direct ops for localbus */
......
...@@ -767,7 +767,6 @@ int ps3_system_bus_device_register(struct ps3_system_bus_device *dev) ...@@ -767,7 +767,6 @@ int ps3_system_bus_device_register(struct ps3_system_bus_device *dev)
}; };
dev->core.of_node = NULL; dev->core.of_node = NULL;
dev->core.archdata.of_node = NULL;
set_dev_node(&dev->core, 0); set_dev_node(&dev->core, 0);
pr_debug("%s:%d add %s\n", __func__, __LINE__, dev_name(&dev->core)); pr_debug("%s:%d add %s\n", __func__, __LINE__, dev_name(&dev->core));
......
...@@ -468,7 +468,7 @@ static void pci_dma_dev_setup_pSeries(struct pci_dev *dev) ...@@ -468,7 +468,7 @@ static void pci_dma_dev_setup_pSeries(struct pci_dev *dev)
pr_debug("pci_dma_dev_setup_pSeries: %s\n", pci_name(dev)); pr_debug("pci_dma_dev_setup_pSeries: %s\n", pci_name(dev));
dn = dev->dev.archdata.of_node; dn = dev->dev.of_node;
/* If we're the direct child of a root bus, then we need to allocate /* If we're the direct child of a root bus, then we need to allocate
* an iommu table ourselves. The bus setup code should have setup * an iommu table ourselves. The bus setup code should have setup
......
...@@ -13,25 +13,10 @@ struct dev_archdata { ...@@ -13,25 +13,10 @@ struct dev_archdata {
void *iommu; void *iommu;
void *stc; void *stc;
void *host_controller; void *host_controller;
struct device_node *prom_node;
struct of_device *op; struct of_device *op;
int numa_node; int numa_node;
}; };
static inline void dev_archdata_set_node(struct dev_archdata *ad,
struct device_node *np)
{
ad->prom_node = np;
}
static inline struct device_node *
dev_archdata_get_node(const struct dev_archdata *ad)
{
return ad->prom_node;
}
struct pdev_archdata { struct pdev_archdata {
}; };
......
...@@ -14,7 +14,6 @@ ...@@ -14,7 +14,6 @@
*/ */
struct of_device struct of_device
{ {
struct device_node *node;
struct device dev; struct device dev;
struct resource resource[PROMREG_MAX]; struct resource resource[PROMREG_MAX];
unsigned int irqs[PROMINTR_MAX]; unsigned int irqs[PROMINTR_MAX];
......
...@@ -345,11 +345,9 @@ static struct of_device * __init scan_one_device(struct device_node *dp, ...@@ -345,11 +345,9 @@ static struct of_device * __init scan_one_device(struct device_node *dp,
return NULL; return NULL;
sd = &op->dev.archdata; sd = &op->dev.archdata;
sd->prom_node = dp;
sd->op = op; sd->op = op;
op->dev.of_node = dp; op->dev.of_node = dp;
op->node = dp;
op->clock_freq = of_getintprop_default(dp, "clock-frequency", op->clock_freq = of_getintprop_default(dp, "clock-frequency",
(25*1000*1000)); (25*1000*1000));
......
...@@ -640,11 +640,9 @@ static struct of_device * __init scan_one_device(struct device_node *dp, ...@@ -640,11 +640,9 @@ static struct of_device * __init scan_one_device(struct device_node *dp,
return NULL; return NULL;
sd = &op->dev.archdata; sd = &op->dev.archdata;
sd->prom_node = dp;
sd->op = op; sd->op = op;
op->dev.of_node = dp; op->dev.of_node = dp;
op->node = dp;
op->clock_freq = of_getintprop_default(dp, "clock-frequency", op->clock_freq = of_getintprop_default(dp, "clock-frequency",
(25*1000*1000)); (25*1000*1000));
......
...@@ -261,8 +261,6 @@ static struct pci_dev *of_create_pci_dev(struct pci_pbm_info *pbm, ...@@ -261,8 +261,6 @@ static struct pci_dev *of_create_pci_dev(struct pci_pbm_info *pbm,
sd->iommu = pbm->iommu; sd->iommu = pbm->iommu;
sd->stc = &pbm->stc; sd->stc = &pbm->stc;
sd->host_controller = pbm; sd->host_controller = pbm;
sd->prom_node = node;
dev->dev.of_node = node;
sd->op = op = of_find_device_by_node(node); sd->op = op = of_find_device_by_node(node);
sd->numa_node = pbm->numa_node; sd->numa_node = pbm->numa_node;
...@@ -286,6 +284,7 @@ static struct pci_dev *of_create_pci_dev(struct pci_pbm_info *pbm, ...@@ -286,6 +284,7 @@ static struct pci_dev *of_create_pci_dev(struct pci_pbm_info *pbm,
dev->sysdata = node; dev->sysdata = node;
dev->dev.parent = bus->bridge; dev->dev.parent = bus->bridge;
dev->dev.bus = &pci_bus_type; dev->dev.bus = &pci_bus_type;
dev->dev.of_node = node;
dev->devfn = devfn; dev->devfn = devfn;
dev->multifunction = 0; /* maybe a lie? */ dev->multifunction = 0; /* maybe a lie? */
set_pcie_port_type(dev); set_pcie_port_type(dev);
......
...@@ -42,7 +42,6 @@ void of_register_i2c_devices(struct i2c_adapter *adap, ...@@ -42,7 +42,6 @@ void of_register_i2c_devices(struct i2c_adapter *adap,
info.addr = be32_to_cpup(addr); info.addr = be32_to_cpup(addr);
dev_archdata_set_node(&dev_ad, node);
info.of_node = node; info.of_node = node;
info.archdata = &dev_ad; info.archdata = &dev_ad;
......
...@@ -79,7 +79,6 @@ int of_mdiobus_register(struct mii_bus *mdio, struct device_node *np) ...@@ -79,7 +79,6 @@ int of_mdiobus_register(struct mii_bus *mdio, struct device_node *np)
/* Associate the OF node with the device structure so it /* Associate the OF node with the device structure so it
* can be looked up later */ * can be looked up later */
of_node_get(child); of_node_get(child);
dev_archdata_set_node(&phy->dev.archdata, child);
phy->dev.of_node = child; phy->dev.of_node = child;
/* All data is now stored in the phy struct; register it */ /* All data is now stored in the phy struct; register it */
......
...@@ -80,7 +80,6 @@ void of_register_spi_devices(struct spi_master *master, struct device_node *np) ...@@ -80,7 +80,6 @@ void of_register_spi_devices(struct spi_master *master, struct device_node *np)
/* Store a pointer to the node in the device structure */ /* Store a pointer to the node in the device structure */
of_node_get(nc); of_node_get(nc);
spi->dev.of_node = nc; spi->dev.of_node = nc;
spi->dev.archdata.of_node = nc;
/* Register the new device */ /* Register the new device */
request_module(spi->modalias); request_module(spi->modalias);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment