Skip to content

Commit

Permalink
sparc: Propagate SBUS iommu archdata into real of_device objects.
Browse files Browse the repository at this point in the history
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
davem330 committed Aug 29, 2008
1 parent e003934 commit 5778002
Showing 1 changed file with 20 additions and 4 deletions.
24 changes: 20 additions & 4 deletions drivers/sbus/sbus.c
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,24 @@ static DEVICE_ATTR(obppath, S_IRUSR | S_IRGRP | S_IROTH, show_sbusobppath_attr,

struct sbus_bus *sbus_root;

static void __init fill_sbus_device_iommu(struct sbus_dev *sdev)
{
struct of_device *op = of_find_device_by_node(sdev->ofdev.node);
struct dev_archdata *sd, *bus_sd;
struct sbus_bus *sbus;

sbus = sdev->bus;
bus_sd = &sbus->ofdev.dev.archdata;

sd = &sdev->ofdev.dev.archdata;
sd->iommu = bus_sd->iommu;
sd->stc = bus_sd->stc;

sd = &op->dev.archdata;
sd->iommu = bus_sd->iommu;
sd->stc = bus_sd->stc;
}

static void __init fill_sbus_device(struct device_node *dp, struct sbus_dev *sdev)
{
struct dev_archdata *sd;
Expand Down Expand Up @@ -85,6 +103,8 @@ static void __init fill_sbus_device(struct device_node *dp, struct sbus_dev *sde

/* WE HAVE BEEN INVADED BY ALIENS! */
err = sysfs_create_file(&sdev->ofdev.dev.kobj, &dev_attr_obppath.attr);

fill_sbus_device_iommu(sdev);
}

static void __init sbus_bus_ranges_init(struct device_node *dp, struct sbus_bus *sbus)
Expand Down Expand Up @@ -209,10 +229,6 @@ static void __init walk_children(struct device_node *dp, struct sbus_dev *parent

sdev->bus = sbus;
sdev->parent = parent;
sdev->ofdev.dev.archdata.iommu =
sbus->ofdev.dev.archdata.iommu;
sdev->ofdev.dev.archdata.stc =
sbus->ofdev.dev.archdata.stc;

fill_sbus_device(dp, sdev);

Expand Down

0 comments on commit 5778002

Please sign in to comment.