diff options
author | David S. Miller <davem@sunset.davemloft.net> | 2007-07-19 01:03:25 -0400 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2007-07-20 20:13:42 -0400 |
commit | 3d6e470236bc759f43c9f2377899b526a50e2e63 (patch) | |
tree | 8d91788c5e88c46d1b37cc161e327a60d742f79e | |
parent | e865f3e6f4ef2d2617f5003c7c819ed15b5a511b (diff) |
[SPARC]: Make sure dev_archdata is filled in for all devices.
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | arch/sparc/kernel/ebus.c | 5 | ||||
-rw-r--r-- | arch/sparc/kernel/of_device.c | 5 | ||||
-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 | ||||
-rw-r--r-- | drivers/sbus/sbus.c | 5 |
6 files changed, 30 insertions, 0 deletions
diff --git a/arch/sparc/kernel/ebus.c b/arch/sparc/kernel/ebus.c index 7bb86b9cdaa3..ac352eb6dff3 100644 --- a/arch/sparc/kernel/ebus.c +++ b/arch/sparc/kernel/ebus.c | |||
@@ -148,6 +148,7 @@ void __init fill_ebus_device(struct device_node *dp, struct linux_ebus_device *d | |||
148 | { | 148 | { |
149 | const struct linux_prom_registers *regs; | 149 | const struct linux_prom_registers *regs; |
150 | struct linux_ebus_child *child; | 150 | struct linux_ebus_child *child; |
151 | struct dev_archdata *sd; | ||
151 | const int *irqs; | 152 | const int *irqs; |
152 | int i, n, len; | 153 | int i, n, len; |
153 | unsigned long baseaddr; | 154 | unsigned long baseaddr; |
@@ -234,6 +235,10 @@ void __init fill_ebus_device(struct device_node *dp, struct linux_ebus_device *d | |||
234 | } | 235 | } |
235 | } | 236 | } |
236 | 237 | ||
238 | sd = &dev->ofdev.dev.archdata; | ||
239 | sd->prom_node = dp; | ||
240 | sd->op = &dev->ofdev; | ||
241 | |||
237 | dev->ofdev.node = dp; | 242 | dev->ofdev.node = dp; |
238 | dev->ofdev.dev.parent = &dev->bus->ofdev.dev; | 243 | dev->ofdev.dev.parent = &dev->bus->ofdev.dev; |
239 | dev->ofdev.dev.bus = &ebus_bus_type; | 244 | dev->ofdev.dev.bus = &ebus_bus_type; |
diff --git a/arch/sparc/kernel/of_device.c b/arch/sparc/kernel/of_device.c index 7176040caba0..36383f73d685 100644 --- a/arch/sparc/kernel/of_device.c +++ b/arch/sparc/kernel/of_device.c | |||
@@ -420,11 +420,16 @@ static struct of_device * __init scan_one_device(struct device_node *dp, | |||
420 | { | 420 | { |
421 | struct of_device *op = kzalloc(sizeof(*op), GFP_KERNEL); | 421 | struct of_device *op = kzalloc(sizeof(*op), GFP_KERNEL); |
422 | const struct linux_prom_irqs *intr; | 422 | const struct linux_prom_irqs *intr; |
423 | struct dev_archdata *sd; | ||
423 | int len, i; | 424 | int len, i; |
424 | 425 | ||
425 | if (!op) | 426 | if (!op) |
426 | return NULL; | 427 | return NULL; |
427 | 428 | ||
429 | sd = &op->dev.archdata; | ||
430 | sd->prom_node = dp; | ||
431 | sd->op = op; | ||
432 | |||
428 | op->node = dp; | 433 | op->node = dp; |
429 | 434 | ||
430 | op->clock_freq = of_getintprop_default(dp, "clock-frequency", | 435 | op->clock_freq = of_getintprop_default(dp, "clock-frequency", |
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", |
diff --git a/drivers/sbus/sbus.c b/drivers/sbus/sbus.c index 002643392d42..2553629ec15d 100644 --- a/drivers/sbus/sbus.c +++ b/drivers/sbus/sbus.c | |||
@@ -33,6 +33,7 @@ struct sbus_bus *sbus_root; | |||
33 | 33 | ||
34 | static void __init fill_sbus_device(struct device_node *dp, struct sbus_dev *sdev) | 34 | static void __init fill_sbus_device(struct device_node *dp, struct sbus_dev *sdev) |
35 | { | 35 | { |
36 | struct dev_archdata *sd; | ||
36 | unsigned long base; | 37 | unsigned long base; |
37 | const void *pval; | 38 | const void *pval; |
38 | int len, err; | 39 | int len, err; |
@@ -67,6 +68,10 @@ static void __init fill_sbus_device(struct device_node *dp, struct sbus_dev *sde | |||
67 | 68 | ||
68 | sbus_fill_device_irq(sdev); | 69 | sbus_fill_device_irq(sdev); |
69 | 70 | ||
71 | sd = &sdev->ofdev.dev.archdata; | ||
72 | sd->prom_node = dp; | ||
73 | sd->op = &sdev->ofdev; | ||
74 | |||
70 | sdev->ofdev.node = dp; | 75 | sdev->ofdev.node = dp; |
71 | if (sdev->parent) | 76 | if (sdev->parent) |
72 | sdev->ofdev.dev.parent = &sdev->parent->ofdev.dev; | 77 | sdev->ofdev.dev.parent = &sdev->parent->ofdev.dev; |