Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge tag 'for-linus-20150909' of git://git.infradead.org/linux-mtd

Pull more MTD updates from Brian Norris:
"There was one significant bug in my first pull request, fixed here. I
also threw in a few trivial ID additions and a small module rename.

Details:

- SPI NOR: bug fix for a "end of table" check that resulted in a NULL
dereference in some cases

- SPI NOR: a few new IDs / feature flags

- OMAP2 NAND: rename module so it doesn't conflict with onenand
omap2.ko"

* tag 'for-linus-20150909' of git://git.infradead.org/linux-mtd:
mtd: spi-nor: fix NULL dereference when no match found in spi_nor_ids[]
mtd: spi-nor: s25sl064p supports both dual and quad I/O
mtd: spi-nor: allow dual/quad reads on S25FL129P
mtd: nand: omap2: Rename shippable module to omap2_nand
mtd: spi-nor: Add support for sst25wf020a
mtd: spi-nor: Add support for Micron n25q064a serial flash

+8 -5
+2 -1
drivers/mtd/nand/Makefile
··· 26 26 obj-$(CONFIG_MTD_NAND_NDFC) += ndfc.o 27 27 obj-$(CONFIG_MTD_NAND_ATMEL) += atmel_nand.o 28 28 obj-$(CONFIG_MTD_NAND_GPIO) += gpio.o 29 - obj-$(CONFIG_MTD_NAND_OMAP2) += omap2.o 29 + omap2_nand-objs := omap2.o 30 + obj-$(CONFIG_MTD_NAND_OMAP2) += omap2_nand.o 30 31 obj-$(CONFIG_MTD_NAND_OMAP_BCH_BUILD) += omap_elm.o 31 32 obj-$(CONFIG_MTD_NAND_CM_X270) += cmx270_nand.o 32 33 obj-$(CONFIG_MTD_NAND_PXA3xx) += pxa3xx_nand.o
+6 -4
drivers/mtd/spi-nor/spi-nor.c
··· 586 586 /* Micron */ 587 587 { "n25q032", INFO(0x20ba16, 0, 64 * 1024, 64, SPI_NOR_QUAD_READ) }, 588 588 { "n25q064", INFO(0x20ba17, 0, 64 * 1024, 128, SECT_4K | SPI_NOR_QUAD_READ) }, 589 + { "n25q064a", INFO(0x20bb17, 0, 64 * 1024, 128, SECT_4K | SPI_NOR_QUAD_READ) }, 589 590 { "n25q128a11", INFO(0x20bb18, 0, 64 * 1024, 256, SPI_NOR_QUAD_READ) }, 590 591 { "n25q128a13", INFO(0x20ba18, 0, 64 * 1024, 256, SPI_NOR_QUAD_READ) }, 591 592 { "n25q256a", INFO(0x20ba19, 0, 64 * 1024, 512, SECT_4K | SPI_NOR_QUAD_READ) }, ··· 603 602 * for the chips listed here (without boot sectors). 604 603 */ 605 604 { "s25sl032p", INFO(0x010215, 0x4d00, 64 * 1024, 64, SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) }, 606 - { "s25sl064p", INFO(0x010216, 0x4d00, 64 * 1024, 128, 0) }, 605 + { "s25sl064p", INFO(0x010216, 0x4d00, 64 * 1024, 128, SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) }, 607 606 { "s25fl256s0", INFO(0x010219, 0x4d00, 256 * 1024, 128, 0) }, 608 607 { "s25fl256s1", INFO(0x010219, 0x4d01, 64 * 1024, 512, SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) }, 609 608 { "s25fl512s", INFO(0x010220, 0x4d00, 256 * 1024, 256, SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) }, ··· 611 610 { "s25sl12800", INFO(0x012018, 0x0300, 256 * 1024, 64, 0) }, 612 611 { "s25sl12801", INFO(0x012018, 0x0301, 64 * 1024, 256, 0) }, 613 612 { "s25fl128s", INFO6(0x012018, 0x4d0180, 64 * 1024, 256, SECT_4K | SPI_NOR_QUAD_READ) }, 614 - { "s25fl129p0", INFO(0x012018, 0x4d00, 256 * 1024, 64, 0) }, 615 - { "s25fl129p1", INFO(0x012018, 0x4d01, 64 * 1024, 256, 0) }, 613 + { "s25fl129p0", INFO(0x012018, 0x4d00, 256 * 1024, 64, SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) }, 614 + { "s25fl129p1", INFO(0x012018, 0x4d01, 64 * 1024, 256, SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) }, 616 615 { "s25sl004a", INFO(0x010212, 0, 64 * 1024, 8, 0) }, 617 616 { "s25sl008a", INFO(0x010213, 0, 64 * 1024, 16, 0) }, 618 617 { "s25sl016a", INFO(0x010214, 0, 64 * 1024, 32, 0) }, ··· 634 633 { "sst25wf512", INFO(0xbf2501, 0, 64 * 1024, 1, SECT_4K | SST_WRITE) }, 635 634 { "sst25wf010", INFO(0xbf2502, 0, 64 * 1024, 2, SECT_4K | SST_WRITE) }, 636 635 { "sst25wf020", INFO(0xbf2503, 0, 64 * 1024, 4, SECT_4K | SST_WRITE) }, 636 + { "sst25wf020a", INFO(0x621612, 0, 64 * 1024, 4, SECT_4K) }, 637 637 { "sst25wf040", INFO(0xbf2504, 0, 64 * 1024, 8, SECT_4K | SST_WRITE) }, 638 638 { "sst25wf080", INFO(0xbf2505, 0, 64 * 1024, 16, SECT_4K | SST_WRITE) }, 639 639 ··· 1218 1216 { 1219 1217 const struct flash_info *id = spi_nor_ids; 1220 1218 1221 - while (id->name[0]) { 1219 + while (id->name) { 1222 1220 if (!strcmp(name, id->name)) 1223 1221 return id; 1224 1222 id++;