diff options
author | Al Viro <viro@www.linux.org.uk> | 2005-04-25 10:55:58 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-04-25 10:55:58 -0400 |
commit | d01daf72f0a238c5ccfba7bf82999e384927412e (patch) | |
tree | 77ad6895e968291f1a7f012f4d20696c1a04058e | |
parent | ba724a373a7184dce869e8adb79a0a03d91fbdd8 (diff) |
[PATCH] ppc iomem annotations: pmac_low_i2c
Signed-off-by: Al Viro <viro@parcelfarce.linux.theplanet.co.uk>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-rw-r--r-- | arch/ppc/platforms/pmac_low_i2c.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/arch/ppc/platforms/pmac_low_i2c.c b/arch/ppc/platforms/pmac_low_i2c.c index d07579f2b8b9..08583fce1692 100644 --- a/arch/ppc/platforms/pmac_low_i2c.c +++ b/arch/ppc/platforms/pmac_low_i2c.c | |||
@@ -54,7 +54,7 @@ struct low_i2c_host | |||
54 | int mode; /* Current mode */ | 54 | int mode; /* Current mode */ |
55 | int channel; /* Current channel */ | 55 | int channel; /* Current channel */ |
56 | int num_channels; /* Number of channels */ | 56 | int num_channels; /* Number of channels */ |
57 | unsigned long base; /* For keywest-i2c, base address */ | 57 | void __iomem * base; /* For keywest-i2c, base address */ |
58 | int bsteps; /* And register stepping */ | 58 | int bsteps; /* And register stepping */ |
59 | int speed; /* And speed */ | 59 | int speed; /* And speed */ |
60 | }; | 60 | }; |
@@ -154,14 +154,12 @@ static const char *__kw_state_names[] = { | |||
154 | 154 | ||
155 | static inline u8 __kw_read_reg(struct low_i2c_host *host, reg_t reg) | 155 | static inline u8 __kw_read_reg(struct low_i2c_host *host, reg_t reg) |
156 | { | 156 | { |
157 | return in_8(((volatile u8 *)host->base) | 157 | return in_8(host->base + (((unsigned)reg) << host->bsteps)); |
158 | + (((unsigned)reg) << host->bsteps)); | ||
159 | } | 158 | } |
160 | 159 | ||
161 | static inline void __kw_write_reg(struct low_i2c_host *host, reg_t reg, u8 val) | 160 | static inline void __kw_write_reg(struct low_i2c_host *host, reg_t reg, u8 val) |
162 | { | 161 | { |
163 | out_8(((volatile u8 *)host->base) | 162 | out_8(host->base + (((unsigned)reg) << host->bsteps), val); |
164 | + (((unsigned)reg) << host->bsteps), val); | ||
165 | (void)__kw_read_reg(host, reg_subaddr); | 163 | (void)__kw_read_reg(host, reg_subaddr); |
166 | } | 164 | } |
167 | 165 | ||
@@ -370,7 +368,7 @@ static void keywest_low_i2c_add(struct device_node *np) | |||
370 | break; | 368 | break; |
371 | } | 369 | } |
372 | host->mode = pmac_low_i2c_mode_std; | 370 | host->mode = pmac_low_i2c_mode_std; |
373 | host->base = (unsigned long)ioremap(np->addrs[0].address + aoffset, | 371 | host->base = ioremap(np->addrs[0].address + aoffset, |
374 | np->addrs[0].size); | 372 | np->addrs[0].size); |
375 | host->func = keywest_low_i2c_func; | 373 | host->func = keywest_low_i2c_func; |
376 | } | 374 | } |