aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/mtd/redboot.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2011-11-07 12:11:16 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2011-11-07 12:11:16 -0500
commite0d65113a70f1dc514e625cc4e7a7485a4bf72df (patch)
tree7320a130dc304623f5cf4b5dd8f67fb1776225ca /drivers/mtd/redboot.c
parentcf5e15fbd72c13977720aa15b7b7e00e1d8fd8f2 (diff)
parent48e546b7f281f251893baa40769581fd15f085fb (diff)
Merge git://git.infradead.org/mtd-2.6
* git://git.infradead.org/mtd-2.6: (226 commits) mtd: tests: annotate as DANGEROUS in Kconfig mtd: tests: don't use mtd0 as a default mtd: clean up usage of MTD_DOCPROBE_ADDRESS jffs2: add compr=lzo and compr=zlib options jffs2: implement mount option parsing and compression overriding mtd: nand: initialize ops.mode mtd: provide an alias for the redboot module name mtd: m25p80: don't probe device which has status of 'disabled' mtd: nand_h1900 never worked mtd: Add DiskOnChip G3 support mtd: m25p80: add EON flash EN25Q32B into spi flash id table mtd: mark block device queue as non-rotational mtd: r852: make r852_pm_ops static mtd: m25p80: add support for at25df321a spi data flash mtd: mxc_nand: preset_v1_v2: unlock all NAND flash blocks mtd: nand: switch `check_pattern()' to standard `memcmp()' mtd: nand: invalidate cache on unaligned reads mtd: nand: do not scan bad blocks with NAND_BBT_NO_OOB set mtd: nand: wait to set BBT version mtd: nand: scrub BBT on ECC errors ... Fix up trivial conflicts: - arch/arm/mach-at91/board-usb-a9260.c Merged into board-usb-a926x.c - drivers/mtd/maps/lantiq-flash.c add_mtd_partitions -> mtd_device_register vs changed to use mtd_device_parse_register.
Diffstat (limited to 'drivers/mtd/redboot.c')
-rw-r--r--drivers/mtd/redboot.c16
1 files changed, 9 insertions, 7 deletions
diff --git a/drivers/mtd/redboot.c b/drivers/mtd/redboot.c
index 84b4dda023f..e366b1d84ea 100644
--- a/drivers/mtd/redboot.c
+++ b/drivers/mtd/redboot.c
@@ -57,8 +57,8 @@ static inline int redboot_checksum(struct fis_image_desc *img)
57} 57}
58 58
59static int parse_redboot_partitions(struct mtd_info *master, 59static int parse_redboot_partitions(struct mtd_info *master,
60 struct mtd_partition **pparts, 60 struct mtd_partition **pparts,
61 unsigned long fis_origin) 61 struct mtd_part_parser_data *data)
62{ 62{
63 int nrparts = 0; 63 int nrparts = 0;
64 struct fis_image_desc *buf; 64 struct fis_image_desc *buf;
@@ -198,11 +198,10 @@ static int parse_redboot_partitions(struct mtd_info *master,
198 goto out; 198 goto out;
199 } 199 }
200 new_fl->img = &buf[i]; 200 new_fl->img = &buf[i];
201 if (fis_origin) { 201 if (data && data->origin)
202 buf[i].flash_base -= fis_origin; 202 buf[i].flash_base -= data->origin;
203 } else { 203 else
204 buf[i].flash_base &= master->size-1; 204 buf[i].flash_base &= master->size-1;
205 }
206 205
207 /* I'm sure the JFFS2 code has done me permanent damage. 206 /* I'm sure the JFFS2 code has done me permanent damage.
208 * I now think the following is _normal_ 207 * I now think the following is _normal_
@@ -298,6 +297,9 @@ static struct mtd_part_parser redboot_parser = {
298 .name = "RedBoot", 297 .name = "RedBoot",
299}; 298};
300 299
300/* mtd parsers will request the module by parser name */
301MODULE_ALIAS("RedBoot");
302
301static int __init redboot_parser_init(void) 303static int __init redboot_parser_init(void)
302{ 304{
303 return register_mtd_parser(&redboot_parser); 305 return register_mtd_parser(&redboot_parser);