diff options
Diffstat (limited to 'arch/sparc64')
-rw-r--r-- | arch/sparc64/kernel/ebus.c | 5 | ||||
-rw-r--r-- | arch/sparc64/kernel/isa.c | 5 | ||||
-rw-r--r-- | arch/sparc64/kernel/of_device.c | 5 |
3 files changed, 15 insertions, 0 deletions
diff --git a/arch/sparc64/kernel/ebus.c b/arch/sparc64/kernel/ebus.c index ad55a9bb50dd..6d2956179cde 100644 --- a/arch/sparc64/kernel/ebus.c +++ b/arch/sparc64/kernel/ebus.c | |||
@@ -362,6 +362,7 @@ static int __init child_regs_nonstandard(struct linux_ebus_device *dev) | |||
362 | static void __init fill_ebus_device(struct device_node *dp, struct linux_ebus_device *dev) | 362 | static void __init fill_ebus_device(struct device_node *dp, struct linux_ebus_device *dev) |
363 | { | 363 | { |
364 | struct linux_ebus_child *child; | 364 | struct linux_ebus_child *child; |
365 | struct dev_archdata *sd; | ||
365 | struct of_device *op; | 366 | struct of_device *op; |
366 | int i, len; | 367 | int i, len; |
367 | 368 | ||
@@ -387,6 +388,10 @@ static void __init fill_ebus_device(struct device_node *dp, struct linux_ebus_de | |||
387 | dev->irqs[i] = op->irqs[i]; | 388 | dev->irqs[i] = op->irqs[i]; |
388 | } | 389 | } |
389 | 390 | ||
391 | sd = &dev->ofdev.dev.archdata; | ||
392 | sd->prom_node = dp; | ||
393 | sd->op = &dev->ofdev; | ||
394 | |||
390 | dev->ofdev.node = dp; | 395 | dev->ofdev.node = dp; |
391 | dev->ofdev.dev.parent = &dev->bus->ofdev.dev; | 396 | dev->ofdev.dev.parent = &dev->bus->ofdev.dev; |
392 | dev->ofdev.dev.bus = &ebus_bus_type; | 397 | dev->ofdev.dev.bus = &ebus_bus_type; |
diff --git a/arch/sparc64/kernel/isa.c b/arch/sparc64/kernel/isa.c index 6a6882e57ff2..1a1043fcf97d 100644 --- a/arch/sparc64/kernel/isa.c +++ b/arch/sparc64/kernel/isa.c | |||
@@ -79,6 +79,7 @@ static void __init isa_fill_devices(struct sparc_isa_bridge *isa_br) | |||
79 | 79 | ||
80 | while (dp) { | 80 | while (dp) { |
81 | struct sparc_isa_device *isa_dev; | 81 | struct sparc_isa_device *isa_dev; |
82 | struct dev_archdata *sd; | ||
82 | 83 | ||
83 | isa_dev = kzalloc(sizeof(*isa_dev), GFP_KERNEL); | 84 | isa_dev = kzalloc(sizeof(*isa_dev), GFP_KERNEL); |
84 | if (!isa_dev) { | 85 | if (!isa_dev) { |
@@ -86,6 +87,10 @@ static void __init isa_fill_devices(struct sparc_isa_bridge *isa_br) | |||
86 | return; | 87 | return; |
87 | } | 88 | } |
88 | 89 | ||
90 | sd = &isa_dev->ofdev.dev.archdata; | ||
91 | sd->prom_node = dp; | ||
92 | sd->op = &isa_dev->ofdev; | ||
93 | |||
89 | isa_dev->ofdev.node = dp; | 94 | isa_dev->ofdev.node = dp; |
90 | isa_dev->ofdev.dev.parent = &isa_br->ofdev.dev; | 95 | isa_dev->ofdev.dev.parent = &isa_br->ofdev.dev; |
91 | isa_dev->ofdev.dev.bus = &isa_bus_type; | 96 | isa_dev->ofdev.dev.bus = &isa_bus_type; |
diff --git a/arch/sparc64/kernel/of_device.c b/arch/sparc64/kernel/of_device.c index 7b0dce9604ee..4cc77485f536 100644 --- a/arch/sparc64/kernel/of_device.c +++ b/arch/sparc64/kernel/of_device.c | |||
@@ -752,11 +752,16 @@ static struct of_device * __init scan_one_device(struct device_node *dp, | |||
752 | { | 752 | { |
753 | struct of_device *op = kzalloc(sizeof(*op), GFP_KERNEL); | 753 | struct of_device *op = kzalloc(sizeof(*op), GFP_KERNEL); |
754 | const unsigned int *irq; | 754 | const unsigned int *irq; |
755 | struct dev_archdata *sd; | ||
755 | int len, i; | 756 | int len, i; |
756 | 757 | ||
757 | if (!op) | 758 | if (!op) |
758 | return NULL; | 759 | return NULL; |
759 | 760 | ||
761 | sd = &op->dev.archdata; | ||
762 | sd->prom_node = dp; | ||
763 | sd->op = op; | ||
764 | |||
760 | op->node = dp; | 765 | op->node = dp; |
761 | 766 | ||
762 | op->clock_freq = of_getintprop_default(dp, "clock-frequency", | 767 | op->clock_freq = of_getintprop_default(dp, "clock-frequency", |