aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/mtd/maps/ixp2000.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/mtd/maps/ixp2000.c')
-rw-r--r--drivers/mtd/maps/ixp2000.c30
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
48static inline unsigned long flash_bank_setup(struct map_info *map, unsigned long ofs) 48static 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 */
62static int erratum44_workaround = 0; 62static 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");