diff options
Diffstat (limited to 'drivers/macintosh')
-rw-r--r-- | drivers/macintosh/macio-adb.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/drivers/macintosh/macio-adb.c b/drivers/macintosh/macio-adb.c index cf6a6f2248ac..314fc0830d90 100644 --- a/drivers/macintosh/macio-adb.c +++ b/drivers/macintosh/macio-adb.c | |||
@@ -17,6 +17,7 @@ | |||
17 | #include <asm/irq.h> | 17 | #include <asm/irq.h> |
18 | #include <asm/system.h> | 18 | #include <asm/system.h> |
19 | #include <linux/init.h> | 19 | #include <linux/init.h> |
20 | #include <linux/ioport.h> | ||
20 | 21 | ||
21 | struct preg { | 22 | struct preg { |
22 | unsigned char r; | 23 | unsigned char r; |
@@ -88,24 +89,26 @@ int macio_probe(void) | |||
88 | int macio_init(void) | 89 | int macio_init(void) |
89 | { | 90 | { |
90 | struct device_node *adbs; | 91 | struct device_node *adbs; |
92 | struct resource r; | ||
91 | 93 | ||
92 | adbs = find_compatible_devices("adb", "chrp,adb0"); | 94 | adbs = find_compatible_devices("adb", "chrp,adb0"); |
93 | if (adbs == 0) | 95 | if (adbs == 0) |
94 | return -ENXIO; | 96 | return -ENXIO; |
95 | 97 | ||
96 | #if 0 | 98 | #if 0 |
97 | { int i; | 99 | { int i = 0; |
98 | 100 | ||
99 | printk("macio_adb_init: node = %p, addrs =", adbs->node); | 101 | printk("macio_adb_init: node = %p, addrs =", adbs->node); |
100 | for (i = 0; i < adbs->n_addrs; ++i) | 102 | while(!of_address_to_resource(adbs, i, &r)) |
101 | printk(" %x(%x)", adbs->addrs[i].address, adbs->addrs[i].size); | 103 | printk(" %x(%x)", r.start, r.end - r.start); |
102 | printk(", intrs ="); | 104 | printk(", intrs ="); |
103 | for (i = 0; i < adbs->n_intrs; ++i) | 105 | for (i = 0; i < adbs->n_intrs; ++i) |
104 | printk(" %x", adbs->intrs[i].line); | 106 | printk(" %x", adbs->intrs[i].line); |
105 | printk("\n"); } | 107 | printk("\n"); } |
106 | #endif | 108 | #endif |
107 | 109 | if (of_address_to_resource(adbs, 0, &r)) | |
108 | adb = ioremap(adbs->addrs->address, sizeof(struct adb_regs)); | 110 | return -ENXIO; |
111 | adb = ioremap(r.start, sizeof(struct adb_regs)); | ||
109 | 112 | ||
110 | out_8(&adb->ctrl.r, 0); | 113 | out_8(&adb->ctrl.r, 0); |
111 | out_8(&adb->intr.r, 0); | 114 | out_8(&adb->intr.r, 0); |