Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ab2020f2 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
* git://git.infradead.org/mtd-2.6: (59 commits)
  mtd: mtdpart: disallow reading OOB past the end of the partition
  mtd: pxa3xx_nand: NULL dereference in pxa3xx_nand_probe
  UBI: use mtd->writebufsize to set minimal I/O unit size
  mtd: initialize writebufsize in the MTD object of a partition
  mtd: onenand: add mtd->writebufsize initialization
  mtd: nand: add mtd->writebufsize initialization
  mtd: cfi: add writebufsize initialization
  mtd: add writebufsize field to mtd_info struct
  mtd: OneNAND: OMAP2/3: prevent regulator sleeping while OneNAND is in use
  mtd: OneNAND: add enable / disable methods to onenand_chip
  mtd: m25p80: Fix JEDEC ID for AT26DF321
  mtd: txx9ndfmc: limit transfer bytes to 512 (ECC provides 6 bytes max)
  mtd: cfi_cmdset_0002: add support for Samsung K8D3x16UxC NOR chips
  mtd: cfi_cmdset_0002: add support for Samsung K8D6x16UxM NOR chips
  mtd: nand: ams-delta: drop omap_read/write, use ioremap
  mtd: m25p80: add debugging trace in sst_write
  mtd: nand: ams-delta: select for built-in by default
  mtd: OneNAND: lighten scary initial bad block messages
  mtd: OneNAND: OMAP2/3: add support for command line partitioning
  mtd: nand: rearrange ONFI revision checking, add ONFI 2.3
  ...

Fix up trivial conflict in drivers/mtd/Kconfig as per DavidW.
parents 235646a4 154bf89f
Loading
Loading
Loading
Loading
+17 −0
Original line number Diff line number Diff line
@@ -179,6 +179,22 @@ static struct omap_board_config_kernel ams_delta_config[] = {
	{ OMAP_TAG_LCD,		&ams_delta_lcd_config },
};

static struct resource ams_delta_nand_resources[] = {
	[0] = {
		.start	= OMAP1_MPUIO_BASE,
		.end	= OMAP1_MPUIO_BASE +
				OMAP_MPUIO_IO_CNTL + sizeof(u32) - 1,
		.flags	= IORESOURCE_MEM,
	},
};

static struct platform_device ams_delta_nand_device = {
	.name	= "ams-delta-nand",
	.id	= -1,
	.num_resources	= ARRAY_SIZE(ams_delta_nand_resources),
	.resource	= ams_delta_nand_resources,
};

static struct resource ams_delta_kp_resources[] = {
	[0] = {
		.start	= INT_KEYBOARD,
@@ -265,6 +281,7 @@ static struct omap1_cam_platform_data ams_delta_camera_platform_data = {
};

static struct platform_device *ams_delta_devices[] __initdata = {
	&ams_delta_nand_device,
	&ams_delta_kp_device,
	&ams_delta_lcd_device,
	&ams_delta_led_device,
+1 −0
Original line number Diff line number Diff line
@@ -23,6 +23,7 @@ struct omap_onenand_platform_data {
	int                     (*onenand_setup)(void __iomem *, int freq);
	int			dma_channel;
	u8			flags;
	u8			regulator_can_sleep;
};

#define ONENAND_MAX_PARTITIONS 8
+11 −8
Original line number Diff line number Diff line
@@ -53,9 +53,10 @@ config MTD_PARTITIONS
	  devices. Partitioning on NFTL 'devices' is a different - that's the
	  'normal' form of partitioning used on a block device.

if MTD_PARTITIONS

config MTD_REDBOOT_PARTS
	tristate "RedBoot partition table parsing"
	depends on MTD_PARTITIONS
	---help---
	  RedBoot is a ROM monitor and bootloader which deals with multiple
	  'images' in flash devices by putting a table one of the erase
@@ -72,9 +73,10 @@ config MTD_REDBOOT_PARTS
	  SA1100 map driver (CONFIG_MTD_SA1100) has an option for this, for
	  example.

if MTD_REDBOOT_PARTS

config MTD_REDBOOT_DIRECTORY_BLOCK
	int "Location of RedBoot partition table"
	depends on MTD_REDBOOT_PARTS
	default "-1"
	---help---
	  This option is the Linux counterpart to the
@@ -91,18 +93,18 @@ config MTD_REDBOOT_DIRECTORY_BLOCK

config MTD_REDBOOT_PARTS_UNALLOCATED
	bool "Include unallocated flash regions"
	depends on MTD_REDBOOT_PARTS
	help
	  If you need to register each unallocated flash region as a MTD
	  'partition', enable this option.

config MTD_REDBOOT_PARTS_READONLY
	bool "Force read-only for RedBoot system images"
	depends on MTD_REDBOOT_PARTS
	help
	  If you need to force read-only for 'RedBoot', 'RedBoot Config' and
	  'FIS directory' images, enable this option.

endif # MTD_REDBOOT_PARTS

config MTD_CMDLINE_PARTS
	bool "Command line partition table parsing"
	depends on MTD_PARTITIONS = "y" && MTD = "y"
@@ -142,7 +144,7 @@ config MTD_CMDLINE_PARTS

config MTD_AFS_PARTS
	tristate "ARM Firmware Suite partition parsing"
	depends on ARM && MTD_PARTITIONS
	depends on ARM
	---help---
	  The ARM Firmware Suite allows the user to divide flash devices into
	  multiple 'images'. Each such image has a header containing its name
@@ -158,8 +160,8 @@ config MTD_AFS_PARTS
	  example.

config MTD_OF_PARTS
	tristate "Flash partition map based on OF description"
	depends on OF && MTD_PARTITIONS
	def_bool y
	depends on OF
	help
	  This provides a partition parsing function which derives
	  the partition map from the children of the flash node,
@@ -167,10 +169,11 @@ config MTD_OF_PARTS

config MTD_AR7_PARTS
	tristate "TI AR7 partitioning support"
	depends on MTD_PARTITIONS
	---help---
	  TI AR7 partitioning support

endif # MTD_PARTITIONS

comment "User Modules And Translation Layers"

config MTD_CHAR
+1 −1
Original line number Diff line number Diff line
@@ -6,13 +6,13 @@
obj-$(CONFIG_MTD)		+= mtd.o
mtd-y				:= mtdcore.o mtdsuper.o
mtd-$(CONFIG_MTD_PARTITIONS)	+= mtdpart.o
mtd-$(CONFIG_MTD_OF_PARTS)	+= ofpart.o

obj-$(CONFIG_MTD_CONCAT)	+= mtdconcat.o
obj-$(CONFIG_MTD_REDBOOT_PARTS) += redboot.o
obj-$(CONFIG_MTD_CMDLINE_PARTS) += cmdlinepart.o
obj-$(CONFIG_MTD_AFS_PARTS)	+= afs.o
obj-$(CONFIG_MTD_AR7_PARTS)	+= ar7part.o
obj-$(CONFIG_MTD_OF_PARTS)      += ofpart.o

# 'Users' - code which presents functionality to userspace.
obj-$(CONFIG_MTD_CHAR)		+= mtdchar.o
+28 −27
Original line number Diff line number Diff line
@@ -162,7 +162,7 @@ static void cfi_tell_features(struct cfi_pri_intelext *extp)
#endif

/* Atmel chips don't use the same PRI format as Intel chips */
static void fixup_convert_atmel_pri(struct mtd_info *mtd, void *param)
static void fixup_convert_atmel_pri(struct mtd_info *mtd)
{
	struct map_info *map = mtd->priv;
	struct cfi_private *cfi = map->fldrv_priv;
@@ -202,7 +202,7 @@ static void fixup_convert_atmel_pri(struct mtd_info *mtd, void *param)
	cfi->cfiq->BufWriteTimeoutMax = 0;
}

static void fixup_at49bv640dx_lock(struct mtd_info *mtd, void *param)
static void fixup_at49bv640dx_lock(struct mtd_info *mtd)
{
	struct map_info *map = mtd->priv;
	struct cfi_private *cfi = map->fldrv_priv;
@@ -214,7 +214,7 @@ static void fixup_at49bv640dx_lock(struct mtd_info *mtd, void *param)

#ifdef CMDSET0001_DISABLE_ERASE_SUSPEND_ON_WRITE
/* Some Intel Strata Flash prior to FPO revision C has bugs in this area */
static void fixup_intel_strataflash(struct mtd_info *mtd, void* param)
static void fixup_intel_strataflash(struct mtd_info *mtd)
{
	struct map_info *map = mtd->priv;
	struct cfi_private *cfi = map->fldrv_priv;
@@ -227,7 +227,7 @@ static void fixup_intel_strataflash(struct mtd_info *mtd, void* param)
#endif

#ifdef CMDSET0001_DISABLE_WRITE_SUSPEND
static void fixup_no_write_suspend(struct mtd_info *mtd, void* param)
static void fixup_no_write_suspend(struct mtd_info *mtd)
{
	struct map_info *map = mtd->priv;
	struct cfi_private *cfi = map->fldrv_priv;
@@ -240,7 +240,7 @@ static void fixup_no_write_suspend(struct mtd_info *mtd, void* param)
}
#endif

static void fixup_st_m28w320ct(struct mtd_info *mtd, void* param)
static void fixup_st_m28w320ct(struct mtd_info *mtd)
{
	struct map_info *map = mtd->priv;
	struct cfi_private *cfi = map->fldrv_priv;
@@ -249,7 +249,7 @@ static void fixup_st_m28w320ct(struct mtd_info *mtd, void* param)
	cfi->cfiq->BufWriteTimeoutMax = 0;	/* Not supported */
}

static void fixup_st_m28w320cb(struct mtd_info *mtd, void* param)
static void fixup_st_m28w320cb(struct mtd_info *mtd)
{
	struct map_info *map = mtd->priv;
	struct cfi_private *cfi = map->fldrv_priv;
@@ -259,7 +259,7 @@ static void fixup_st_m28w320cb(struct mtd_info *mtd, void* param)
		(cfi->cfiq->EraseRegionInfo[1] & 0xffff0000) | 0x3e;
};

static void fixup_use_point(struct mtd_info *mtd, void *param)
static void fixup_use_point(struct mtd_info *mtd)
{
	struct map_info *map = mtd->priv;
	if (!mtd->point && map_is_linear(map)) {
@@ -268,7 +268,7 @@ static void fixup_use_point(struct mtd_info *mtd, void *param)
	}
}

static void fixup_use_write_buffers(struct mtd_info *mtd, void *param)
static void fixup_use_write_buffers(struct mtd_info *mtd)
{
	struct map_info *map = mtd->priv;
	struct cfi_private *cfi = map->fldrv_priv;
@@ -282,7 +282,7 @@ static void fixup_use_write_buffers(struct mtd_info *mtd, void *param)
/*
 * Some chips power-up with all sectors locked by default.
 */
static void fixup_unlock_powerup_lock(struct mtd_info *mtd, void *param)
static void fixup_unlock_powerup_lock(struct mtd_info *mtd)
{
	struct map_info *map = mtd->priv;
	struct cfi_private *cfi = map->fldrv_priv;
@@ -295,31 +295,31 @@ static void fixup_unlock_powerup_lock(struct mtd_info *mtd, void *param)
}

static struct cfi_fixup cfi_fixup_table[] = {
	{ CFI_MFR_ATMEL, CFI_ID_ANY, fixup_convert_atmel_pri, NULL },
	{ CFI_MFR_ATMEL, AT49BV640D, fixup_at49bv640dx_lock, NULL },
	{ CFI_MFR_ATMEL, AT49BV640DT, fixup_at49bv640dx_lock, NULL },
	{ CFI_MFR_ATMEL, CFI_ID_ANY, fixup_convert_atmel_pri },
	{ CFI_MFR_ATMEL, AT49BV640D, fixup_at49bv640dx_lock },
	{ CFI_MFR_ATMEL, AT49BV640DT, fixup_at49bv640dx_lock },
#ifdef CMDSET0001_DISABLE_ERASE_SUSPEND_ON_WRITE
	{ CFI_MFR_ANY, CFI_ID_ANY, fixup_intel_strataflash, NULL },
	{ CFI_MFR_ANY, CFI_ID_ANY, fixup_intel_strataflash },
#endif
#ifdef CMDSET0001_DISABLE_WRITE_SUSPEND
	{ CFI_MFR_ANY, CFI_ID_ANY, fixup_no_write_suspend, NULL },
	{ CFI_MFR_ANY, CFI_ID_ANY, fixup_no_write_suspend },
#endif
#if !FORCE_WORD_WRITE
	{ CFI_MFR_ANY, CFI_ID_ANY, fixup_use_write_buffers, NULL },
	{ CFI_MFR_ANY, CFI_ID_ANY, fixup_use_write_buffers },
#endif
	{ CFI_MFR_ST, 0x00ba, /* M28W320CT */ fixup_st_m28w320ct, NULL },
	{ CFI_MFR_ST, 0x00bb, /* M28W320CB */ fixup_st_m28w320cb, NULL },
	{ CFI_MFR_INTEL, CFI_ID_ANY, fixup_unlock_powerup_lock, NULL, },
	{ 0, 0, NULL, NULL }
	{ CFI_MFR_ST, 0x00ba, /* M28W320CT */ fixup_st_m28w320ct },
	{ CFI_MFR_ST, 0x00bb, /* M28W320CB */ fixup_st_m28w320cb },
	{ CFI_MFR_INTEL, CFI_ID_ANY, fixup_unlock_powerup_lock },
	{ 0, 0, NULL }
};

static struct cfi_fixup jedec_fixup_table[] = {
	{ CFI_MFR_INTEL, I82802AB,   fixup_use_fwh_lock, NULL, },
	{ CFI_MFR_INTEL, I82802AC,   fixup_use_fwh_lock, NULL, },
	{ CFI_MFR_ST,    M50LPW080,  fixup_use_fwh_lock, NULL, },
	{ CFI_MFR_ST,    M50FLW080A, fixup_use_fwh_lock, NULL, },
	{ CFI_MFR_ST,    M50FLW080B, fixup_use_fwh_lock, NULL, },
	{ 0, 0, NULL, NULL }
	{ CFI_MFR_INTEL, I82802AB,   fixup_use_fwh_lock },
	{ CFI_MFR_INTEL, I82802AC,   fixup_use_fwh_lock },
	{ CFI_MFR_ST,    M50LPW080,  fixup_use_fwh_lock },
	{ CFI_MFR_ST,    M50FLW080A, fixup_use_fwh_lock },
	{ CFI_MFR_ST,    M50FLW080B, fixup_use_fwh_lock },
	{ 0, 0, NULL }
};
static struct cfi_fixup fixup_table[] = {
	/* The CFI vendor ids and the JEDEC vendor IDs appear
@@ -327,8 +327,8 @@ static struct cfi_fixup fixup_table[] = {
	 * well.  This table is to pick all cases where
	 * we know that is the case.
	 */
	{ CFI_MFR_ANY, CFI_ID_ANY, fixup_use_point, NULL },
	{ 0, 0, NULL, NULL }
	{ CFI_MFR_ANY, CFI_ID_ANY, fixup_use_point },
	{ 0, 0, NULL }
};

static void cfi_fixup_major_minor(struct cfi_private *cfi,
@@ -455,6 +455,7 @@ struct mtd_info *cfi_cmdset_0001(struct map_info *map, int primary)
	mtd->flags   = MTD_CAP_NORFLASH;
	mtd->name    = map->name;
	mtd->writesize = 1;
	mtd->writebufsize = 1 << cfi->cfiq->MaxBufWriteSize;

	mtd->reboot_notifier.notifier_call = cfi_intelext_reboot;

Loading