diff options
Diffstat (limited to 'drivers/mtd/maps/ixp2000.c')
-rw-r--r-- | drivers/mtd/maps/ixp2000.c | 30 |
1 files changed, 15 insertions, 15 deletions
diff --git a/drivers/mtd/maps/ixp2000.c b/drivers/mtd/maps/ixp2000.c index 78c68f49be83..aa29a4a741bf 100644 --- a/drivers/mtd/maps/ixp2000.c +++ b/drivers/mtd/maps/ixp2000.c | |||
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | * $Id: ixp2000.c,v 1.8 2005/11/07 08:09:02 gleixner Exp $ | 2 | * $Id: ixp2000.c,v 1.9 2005/11/07 11:14:27 gleixner Exp $ |
3 | * | 3 | * |
4 | * drivers/mtd/maps/ixp2000.c | 4 | * drivers/mtd/maps/ixp2000.c |
5 | * | 5 | * |
@@ -14,7 +14,7 @@ | |||
14 | * This program is free software; you can redistribute it and/or modify | 14 | * This program is free software; you can redistribute it and/or modify |
15 | * it under the terms of the GNU General Public License version 2 as | 15 | * it under the terms of the GNU General Public License version 2 as |
16 | * published by the Free Software Foundation. | 16 | * published by the Free Software Foundation. |
17 | * | 17 | * |
18 | */ | 18 | */ |
19 | 19 | ||
20 | #include <linux/module.h> | 20 | #include <linux/module.h> |
@@ -46,8 +46,8 @@ struct ixp2000_flash_info { | |||
46 | }; | 46 | }; |
47 | 47 | ||
48 | static inline unsigned long flash_bank_setup(struct map_info *map, unsigned long ofs) | 48 | static inline unsigned long flash_bank_setup(struct map_info *map, unsigned long ofs) |
49 | { | 49 | { |
50 | unsigned long (*set_bank)(unsigned long) = | 50 | unsigned long (*set_bank)(unsigned long) = |
51 | (unsigned long(*)(unsigned long))map->map_priv_2; | 51 | (unsigned long(*)(unsigned long))map->map_priv_2; |
52 | 52 | ||
53 | return (set_bank ? set_bank(ofs) : ofs); | 53 | return (set_bank ? set_bank(ofs) : ofs); |
@@ -55,8 +55,8 @@ static inline unsigned long flash_bank_setup(struct map_info *map, unsigned long | |||
55 | 55 | ||
56 | #ifdef __ARMEB__ | 56 | #ifdef __ARMEB__ |
57 | /* | 57 | /* |
58 | * Rev A0 and A1 of IXP2400 silicon have a broken addressing unit which | 58 | * Rev A0 and A1 of IXP2400 silicon have a broken addressing unit which |
59 | * causes the lower address bits to be XORed with 0x11 on 8 bit accesses | 59 | * causes the lower address bits to be XORed with 0x11 on 8 bit accesses |
60 | * and XORed with 0x10 on 16 bit accesses. See the spec update, erratum 44. | 60 | * and XORed with 0x10 on 16 bit accesses. See the spec update, erratum 44. |
61 | */ | 61 | */ |
62 | static int erratum44_workaround = 0; | 62 | static int erratum44_workaround = 0; |
@@ -90,7 +90,7 @@ static void ixp2000_flash_copy_from(struct map_info *map, void *to, | |||
90 | unsigned long from, ssize_t len) | 90 | unsigned long from, ssize_t len) |
91 | { | 91 | { |
92 | from = flash_bank_setup(map, from); | 92 | from = flash_bank_setup(map, from); |
93 | while(len--) | 93 | while(len--) |
94 | *(__u8 *) to++ = *(__u8 *)(map->map_priv_1 + from++); | 94 | *(__u8 *) to++ = *(__u8 *)(map->map_priv_1 + from++); |
95 | } | 95 | } |
96 | 96 | ||
@@ -149,11 +149,11 @@ static int ixp2000_flash_probe(struct device *_dev) | |||
149 | static const char *probes[] = { "RedBoot", "cmdlinepart", NULL }; | 149 | static const char *probes[] = { "RedBoot", "cmdlinepart", NULL }; |
150 | struct platform_device *dev = to_platform_device(_dev); | 150 | struct platform_device *dev = to_platform_device(_dev); |
151 | struct ixp2000_flash_data *ixp_data = dev->dev.platform_data; | 151 | struct ixp2000_flash_data *ixp_data = dev->dev.platform_data; |
152 | struct flash_platform_data *plat; | 152 | struct flash_platform_data *plat; |
153 | struct ixp2000_flash_info *info; | 153 | struct ixp2000_flash_info *info; |
154 | unsigned long window_size; | 154 | unsigned long window_size; |
155 | int err = -1; | 155 | int err = -1; |
156 | 156 | ||
157 | if (!ixp_data) | 157 | if (!ixp_data) |
158 | return -ENODEV; | 158 | return -ENODEV; |
159 | 159 | ||
@@ -162,7 +162,7 @@ static int ixp2000_flash_probe(struct device *_dev) | |||
162 | return -ENODEV; | 162 | return -ENODEV; |
163 | 163 | ||
164 | window_size = dev->resource->end - dev->resource->start + 1; | 164 | window_size = dev->resource->end - dev->resource->start + 1; |
165 | dev_info(_dev, "Probe of IXP2000 flash(%d banks x %dMiB)\n", | 165 | dev_info(_dev, "Probe of IXP2000 flash(%d banks x %dMiB)\n", |
166 | ixp_data->nr_banks, ((u32)window_size >> 20)); | 166 | ixp_data->nr_banks, ((u32)window_size >> 20)); |
167 | 167 | ||
168 | if (plat->width != 1) { | 168 | if (plat->width != 1) { |
@@ -175,7 +175,7 @@ static int ixp2000_flash_probe(struct device *_dev) | |||
175 | if(!info) { | 175 | if(!info) { |
176 | err = -ENOMEM; | 176 | err = -ENOMEM; |
177 | goto Error; | 177 | goto Error; |
178 | } | 178 | } |
179 | memzero(info, sizeof(struct ixp2000_flash_info)); | 179 | memzero(info, sizeof(struct ixp2000_flash_info)); |
180 | 180 | ||
181 | dev_set_drvdata(&dev->dev, info); | 181 | dev_set_drvdata(&dev->dev, info); |
@@ -185,7 +185,7 @@ static int ixp2000_flash_probe(struct device *_dev) | |||
185 | * not attempt to do a direct access on us. | 185 | * not attempt to do a direct access on us. |
186 | */ | 186 | */ |
187 | info->map.phys = NO_XIP; | 187 | info->map.phys = NO_XIP; |
188 | 188 | ||
189 | info->nr_banks = ixp_data->nr_banks; | 189 | info->nr_banks = ixp_data->nr_banks; |
190 | info->map.size = ixp_data->nr_banks * window_size; | 190 | info->map.size = ixp_data->nr_banks * window_size; |
191 | info->map.bankwidth = 1; | 191 | info->map.bankwidth = 1; |
@@ -201,8 +201,8 @@ static int ixp2000_flash_probe(struct device *_dev) | |||
201 | info->map.copy_from = ixp2000_flash_copy_from; | 201 | info->map.copy_from = ixp2000_flash_copy_from; |
202 | info->map.copy_to = ixp2000_flash_copy_to; | 202 | info->map.copy_to = ixp2000_flash_copy_to; |
203 | 203 | ||
204 | info->res = request_mem_region(dev->resource->start, | 204 | info->res = request_mem_region(dev->resource->start, |
205 | dev->resource->end - dev->resource->start + 1, | 205 | dev->resource->end - dev->resource->start + 1, |
206 | dev->dev.bus_id); | 206 | dev->dev.bus_id); |
207 | if (!info->res) { | 207 | if (!info->res) { |
208 | dev_err(_dev, "Could not reserve memory region\n"); | 208 | dev_err(_dev, "Could not reserve memory region\n"); |
@@ -210,7 +210,7 @@ static int ixp2000_flash_probe(struct device *_dev) | |||
210 | goto Error; | 210 | goto Error; |
211 | } | 211 | } |
212 | 212 | ||
213 | info->map.map_priv_1 = (unsigned long) ioremap(dev->resource->start, | 213 | info->map.map_priv_1 = (unsigned long) ioremap(dev->resource->start, |
214 | dev->resource->end - dev->resource->start + 1); | 214 | dev->resource->end - dev->resource->start + 1); |
215 | if (!info->map.map_priv_1) { | 215 | if (!info->map.map_priv_1) { |
216 | dev_err(_dev, "Failed to ioremap flash region\n"); | 216 | dev_err(_dev, "Failed to ioremap flash region\n"); |