pandora-kernel.git
10 years agomtd: gpmi: add sanity check when mapping DMA for read_buf/write_buf
Huang Shijie [Wed, 18 Dec 2013 15:41:00 +0000 (23:41 +0800)]
mtd: gpmi: add sanity check when mapping DMA for read_buf/write_buf

The buffer pointer passed from the upper layer may points to
a buffer in the stack or a buffer allocated by vmalloc, and etc..

This patch adds more sanity check to this buffer.
After this patch, if we meet a buffer which is allocated by vmalloc or
a buffer in the stack, we will use our own DMA buffer @data_buffer_dma
to do the DMA operations. If the buffer is not the cases above, we will
map it for DMA operations directly.

Signed-off-by: Huang Shijie <shijie8@gmail.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agomtd: gpmi: allocate a proper buffer for non ECC read/write
Huang Shijie [Wed, 18 Dec 2013 15:40:59 +0000 (23:40 +0800)]
mtd: gpmi: allocate a proper buffer for non ECC read/write

The @data_buffer_dma buffer is used for non ECC read/write.

Currently, the length of the buffer is PAGE_SIZE, but the NAND chip may
has 8K page or 16K page. So we have to extend it for the large page NAND
chips.

The gpmi_alloc_dma_buffer will be called twice. The first time is to
allocate a temporary buffer for scanning the NAND chip; The second time
is to allocate a buffer to store the real page content.

This patch allocates a buffer of PAGE_SIZE size for scanning the NAND
chip when gpmi_alloc_dma_buffer is called the first time, and allocates a
buffer of the real NAND page size for the second time gpmi_alloc_dma_buffer
is called.

Signed-off-by: Huang Shijie <shijie8@gmail.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agomtd: m25p80: Set rx_nbits for Quad SPI transfers
Geert Uytterhoeven [Tue, 21 Jan 2014 12:59:17 +0000 (13:59 +0100)]
mtd: m25p80: Set rx_nbits for Quad SPI transfers

When using the Quad Read opcode, SPI masters still use Single SPI
transfers, as spi_transfer.rx_nbits defaults to SPI_NBITS_SINGLE.
Use SPI_NBITS_QUAD to fix this.

While an earlier version of commit 3487a63955c34ea508bcf4ca5131ddd953876e2d
("drivers: mtd: m25p80: add quad read support") did this correctly, it was
forgotten in the version that got merged.

Signed-off-by: Geert Uytterhoeven <geert+renesas@linux-m68k.org>
Acked-by: Marek Vasut <marex@denx.de>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agomtd: m25p80: Enable Quad SPI read transfers for s25fl512s
Geert Uytterhoeven [Tue, 21 Jan 2014 12:59:16 +0000 (13:59 +0100)]
mtd: m25p80: Enable Quad SPI read transfers for s25fl512s

Spansion s25fl512s supports Quad SPI transfers, hence set the
M25P80_QUAD_READ flag.

Signed-off-by: Geert Uytterhoeven <geert+renesas@linux-m68k.org>
Acked-by: Marek Vasut <marex@denx.de>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agomtd: s3c2410: Merge plat/regs-nand.h into s3c2410.c
Sachin Kamat [Fri, 10 Jan 2014 05:54:13 +0000 (11:24 +0530)]
mtd: s3c2410: Merge plat/regs-nand.h into s3c2410.c

plat/regs-nand.h is used only by S3C2410 nand driver. Since there
are no other users, merge this file into the driver code to remove
platform dependency. While at it also remove unused macros.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Acked-by: Kukjin Kim <kgene.kim@samsung.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agomtd: mtdram: add missing 'const'
Brian Norris [Sat, 11 Jan 2014 23:51:45 +0000 (15:51 -0800)]
mtd: mtdram: add missing 'const'

mtdram_init_device() wasn't updated along with mtd_partition.name.

Signed-off-by: Brian Norris <computersforpeace@gmail.com>
Cc: Geert Uytterhoeven <geert@linux-m68k.org>
10 years agomtd: m25p80: assign default read command
Brian Norris [Thu, 5 Dec 2013 06:59:40 +0000 (22:59 -0800)]
mtd: m25p80: assign default read command

In the following commit (in -next):

    commit 8552b439aba7f32063755d23f79ca27b4d0a3115
    drivers: mtd: m25p80: convert "bool" read check into an enum

We converted the boolean 'fast_read' property to become an enum
'flash_read', but at the same time, we changed the conditional path so
that it doesn't choose a default value in some cases (technically, we
choose the correct default simply by virtue of devm_kzalloc(), which
zeroes this out to be a NORMAL read operation, but still...).

Fix this by setting a default for the 'else' clause.

Signed-off-by: Brian Norris <computersforpeace@gmail.com>
Cc: Sourav Poddar <sourav.poddar@ti.com>
Acked-by: Marek Vasut <marex@denx.de>
10 years agomtd: nuc900_nand: remove redundant return value check of platform_get_resource()
Wei Yongjun [Tue, 7 Jan 2014 13:38:32 +0000 (21:38 +0800)]
mtd: nuc900_nand: remove redundant return value check of platform_get_resource()

Remove unneeded error handling on the result of a call
to platform_get_resource() when the value is passed to
devm_ioremap_resource().

Signed-off-by: Wei Yongjun <yongjun_wei@trendmicro.com.cn>
Reviewed-by: Jingoo Han <jg1.han@samsung.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agomtd: plat_nand: remove redundant return value check of platform_get_resource()
Wei Yongjun [Tue, 7 Jan 2014 13:38:12 +0000 (21:38 +0800)]
mtd: plat_nand: remove redundant return value check of platform_get_resource()

Remove unneeded error handling on the result of a call
to platform_get_resource() when the value is passed to
devm_ioremap_resource(). And move those two call together
to make the connection between them more clear.

Signed-off-by: Wei Yongjun <yongjun_wei@trendmicro.com.cn>
Reviewed-by: Jingoo Han <jg1.han@samsung.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agomtd: nand: add Intel manufacturer ID
Huang Shijie [Fri, 3 Jan 2014 08:50:39 +0000 (16:50 +0800)]
mtd: nand: add Intel manufacturer ID

Add the Intel manufacturer Id.
Tested with Intel JS29F32G08ACMD1(4096 + 224) which is ONFI 2.0 compliant
nand.

Signed-off-by: Huang Shijie <b32955@freescale.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agomtd: nand: add SanDisk manufacturer ID
Huang Shijie [Thu, 26 Dec 2013 07:37:45 +0000 (15:37 +0800)]
mtd: nand: add SanDisk manufacturer ID

Add the manufactor ID for SanDisk.
Make preparation for SanDisk SDTNRGAMA-008G.

Signed-off-by: Huang Shijie <b32955@freescale.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agomtd: nand: add support for Samsung K9LCG08U0B
Huang Shijie [Wed, 25 Dec 2013 09:18:55 +0000 (17:18 +0800)]
mtd: nand: add support for Samsung K9LCG08U0B

Assume that:
          tmp = ((extid >> 2) & 0x04) | (extid & 0x03));

From the K9LCG08U0B's datasheet, we know that:
  the oob size is 640 when tmp is 6;
  the oob size is 1024 when tmp is 7;

Signed-off-by: Huang Shijie <b32955@freescale.com>
[Brian: fixed compile issue]
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agomtd: nand: pxa3xx: Add support for 2048 bytes page size devices
Rodolfo Giometti [Mon, 13 Jan 2014 14:35:38 +0000 (15:35 +0100)]
mtd: nand: pxa3xx: Add support for 2048 bytes page size devices

This commit adds support for devices with 2048B page sizes and
4-bit ECC strength requirements. This is achieved by enabling the BCH
ECC engine, which provides a higher strength: 16-bit over 2048 bytes.

Additionally, add a proper ECC layout to model the controller's view
of the device (where 'U' means unused and 'B' is the bad block marker):

 ----------------------------------------------------
 | 2048B data | B | B | 30B spare | 30B ECC | U | U |
 ----------------------------------------------------

Signed-off-by: Rodolfo Giometti <giometti@linux.it>
[Brian: updated with Ezequiel's patch description]
Acked-by: Ezequiel Garcia <ezequiel.garcia@free-electrons.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agomtd: m25p80: Use OPCODE_QUAD_READ_4B for 4-byte addressing
Geert Uytterhoeven [Wed, 15 Jan 2014 15:48:55 +0000 (16:48 +0100)]
mtd: m25p80: Use OPCODE_QUAD_READ_4B for 4-byte addressing

commit 3487a63955c34ea508bcf4ca5131ddd953876e2d ("drivers: mtd: m25p80: add
quad read support") in -next added both the 3-byte OPCODE_QUAD_READ and the
4-byte OPCODE_QUAD_READ_4B, but incorrectly uses OPCODE_QUAD_READ for both
3-byte and 4-byte addressing.

Use OPCODE_QUAD_READ_4B in the 4-byte case to fix this.

Signed-off-by: Geert Uytterhoeven <geert+renesas@linux-m68k.org>
Acked-by: Marek Vasut <marex@denx.de>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agomtd: nand: don't use {read,write}_buf for 8-bit transfers
Uwe Kleine-König [Thu, 5 Dec 2013 21:22:04 +0000 (22:22 +0100)]
mtd: nand: don't use {read,write}_buf for 8-bit transfers

According to the Open NAND Flash Interface Specification (ONFI) Revision
3.1 "Parameters are always transferred on the lower 8-bits of the data
bus." for the Get Features and Set Features commands.

So using read_buf and write_buf is wrong for 16-bit wide nand chips as
they use I/O[15:0]. The Get Features command is easily fixed using 4
times the read_byte callback. For Set Features implement a new
overwritable callback "write_byte". Still I expect the default to work
just fine for all controllers and making it overwriteable was just done
for symmetry.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
[Brian: fixed warning]
Tested-by: Brian Norris <computersforpeace@gmail.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agomtd: nand: use __packed shorthand
Brian Norris [Thu, 5 Dec 2013 20:06:54 +0000 (12:06 -0800)]
mtd: nand: use __packed shorthand

To be consistent with the rest of include/linux/mtd/nand.h, we should
use the __packed shorthand instead of __attribute__((packed)).

Signed-off-by: Brian Norris <computersforpeace@gmail.com>
Acked-by: Huang Shijie <b32955@freescale.com>
10 years agomtd: nand: support Micron READ RETRY
Brian Norris [Tue, 3 Dec 2013 23:51:09 +0000 (15:51 -0800)]
mtd: nand: support Micron READ RETRY

Micron provides READ RETRY support via the ONFI vendor-specific
parameter block (to indicate how many read-retry modes are available)
and the ONFI {GET,SET}_FEATURES commands with a vendor-specific feature
address (to support reading/switching the current read-retry mode).

The recommended sequence is as follows:

  1. Perform PAGE_READ operation
  2. If no ECC error, we are done
  3. Run SET_FEATURES with feature address 89h, mode 1
  4. Retry PAGE_READ operation
  5. If ECC error and there are remaining supported modes, increment the
     mode and return to step 3. Otherwise, this is a true ECC error.
  6. Run SET_FEATURES with feature address 89h, mode 0, to return to the
     default state.

This patch implements the chip->setup_read_retry() callback for
Micron and fills in the chip->read_retries.

Tested on Micron MT29F32G08CBADA, which supports 8 read-retry modes.

The Micron vendor-specific table was checked against the datasheets for
the following Micron NAND:

Needs retry   Cell-type    Part number          Vendor revision    Byte 180
-----------   ---------    ----------------     ---------------    ------------
No            SLC          MT29F16G08ABABA      1                  Reserved (0)
No            MLC          MT29F32G08CBABA      1                  Reserved (0)
No            SLC          MT29F1G08AACWP       1                  0
Yes           MLC          MT29F32G08CBADA      1                  08h
Yes           MLC          MT29F64G08CBABA      2                  08h

Signed-off-by: Brian Norris <computersforpeace@gmail.com>
Acked-by: Huang Shijie <b32955@freescale.com>
10 years agomtd: nand: add generic READ RETRY support
Brian Norris [Fri, 3 Jan 2014 23:13:33 +0000 (15:13 -0800)]
mtd: nand: add generic READ RETRY support

Modern MLC (and even SLC?) NAND can experience a large number of
bitflips (beyond the recommended correctability capacity) due to drifts
in the voltage threshold (Vt). These bitflips can cause ECC errors to
occur well within the expected lifetime of the flash. To account for
this, some manufacturers provide a mechanism for shifting the Vt
threshold after a corrupted read.

The generic pattern seems to be that a particular flash has N read retry
modes (where N = 0, traditionally), and after an ECC failure, the host
should reconfigure the flash to use the next available mode, then retry
the read operation. This process repeats until all bitfips can be
corrected or until the host has tried all available retry modes.

This patch adds the infrastructure support for a
vendor-specific/flash-specific callback, used for setting the read-retry
mode (i.e., voltage threshold).

For now, this patch always returns the flash to mode 0 (the default
mode) after a successful read-retry, according to the flowchart found in
Micron's datasheets. This may need to change in the future if it is
determined that eventually, mode 0 is insufficient for the majority of
the flash cells (and so for performance reasons, we should leave the
flash in mode 1, 2, etc.).

Signed-off-by: Brian Norris <computersforpeace@gmail.com>
Acked-by: Huang Shijie <b32955@freescale.com>
10 years agomtd: nand: add ONFI vendor block for Micron
Brian Norris [Tue, 3 Dec 2013 20:02:20 +0000 (12:02 -0800)]
mtd: nand: add ONFI vendor block for Micron

Signed-off-by: Brian Norris <computersforpeace@gmail.com>
Acked-by: Huang Shijie <b32955@freescale.com>
10 years agomtd: nand: localize ECC failures per page
Brian Norris [Tue, 3 Dec 2013 19:04:14 +0000 (11:04 -0800)]
mtd: nand: localize ECC failures per page

ECC failures can be tracked at the page level, not the do_read_ops level
(i.e., a potentially multi-page transaction).

This helps prepare for READ RETRY support.

Signed-off-by: Brian Norris <computersforpeace@gmail.com>
Acked-by: Huang Shijie <b32955@freescale.com>
10 years agomtd: nand: pxa3xx: Add "armada370-nand" compatible
Ezequiel Garcia [Tue, 24 Dec 2013 15:40:07 +0000 (12:40 -0300)]
mtd: nand: pxa3xx: Add "armada370-nand" compatible

Now that the driver can support the Armada 370/XP SoC NAND controller,
add the devicetree compatible string, enabling its use.

Signed-off-by: Ezequiel Garcia <ezequiel.garcia@free-electrons.com>
Acked-by: Jason Cooper <jason@lakedaemon.net>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agomtd: denali: kill the NAND_MAX_PAGESIZE/NAND_MAX_OOBSIZE
Huang Shijie [Fri, 20 Dec 2013 16:02:28 +0000 (00:02 +0800)]
mtd: denali: kill the NAND_MAX_PAGESIZE/NAND_MAX_OOBSIZE

This patch kills the NAND_MAX_PAGESIZE/NAND_MAX_OOBSIZE by the following
way:
 1.) change the @buf field of nand_buf{} from an array to a pointer.
     also remove the DENALI_BUF_SIZE macro.

 2.) Before we call the nand_scan_ident, we allocate a temporary buffer
     whose size is PAGE_SIZE.

 3.) After we finish the nand_scan_ident, we have already getten the
     page size and oob size. We will allocate the right buffer size
     again.

Signed-off-by: Huang Shijie <shijie8@gmail.com>
Reviewed-by: Josh Triplett <josh@joshtriplett.org>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agomtd: mxc-nand: kill the NAND_MAX_PAGESIZE/NAND_MAX_OOBSIZE
Huang Shijie [Fri, 20 Dec 2013 16:02:27 +0000 (00:02 +0800)]
mtd: mxc-nand: kill the NAND_MAX_PAGESIZE/NAND_MAX_OOBSIZE

We kill the NAND_MAX_PAGESIZE/NAND_MAX_OOBSIZE by the following way:
 1.) Before we call the nand_scan_ident, we allocate a temporary buffer
     whose size is PAGE_SIZE.
 2.) After we finish the nand_scan_ident, we have already getten the
     page size and oob size. We will allocate the right buffer size
     again.

Signed-off-by: Huang Shijie <shijie8@gmail.com>
Reviewed-by: Josh Triplett <josh@joshtriplett.org>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agomtd: nand: Update mtd.name assignment type to u64 for IFC, eLBC
Prabhakar Kushwaha [Sat, 28 Dec 2013 06:47:35 +0000 (12:17 +0530)]
mtd: nand: Update mtd.name assignment type to u64 for IFC, eLBC

mtd.name is assigned to IFC NAND physical address. Assignment type is u32.
It is not providing correct physical address of IFC NAND.

Update assignment type to u64.

Signed-off-by: Prabhakar Kushwaha <prabhakar@freescale.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agomtd: nand: assign mtd->name in find_full_id_nand
Cai Zhiyong [Wed, 25 Dec 2013 13:19:21 +0000 (21:19 +0800)]
mtd: nand: assign mtd->name in find_full_id_nand

This patch assigned the type->name to mtd->name when mtd->name is
NULL in function "find_full_id_nand".
mtd->name is NULL may cause some problem.

Signed-off-by: Cai Zhiyong <caizhiyong@huawei.com>
Acked-by: Huang Shijie <b32955@freescale.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agomtd: onenand: Trivial cleanup in samsung.h
Sachin Kamat [Thu, 26 Dec 2013 06:18:34 +0000 (11:48 +0530)]
mtd: onenand: Trivial cleanup in samsung.h

commit 93115b7fa8f4 ("mtd: onenand/samsung: make regs-onenand.h file local")
moved the file to the current location but forgot to remove the pointer to
its previous location. Clean it up.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agomtd: orion: Cleanup mtd-orion_nand.h header
Sachin Kamat [Mon, 30 Dec 2013 06:30:21 +0000 (12:00 +0530)]
mtd: orion: Cleanup mtd-orion_nand.h header

Commit c02cecb92ed4 ("ARM: orion: move platform_data definitions")
moved the file to the current location but forgot to remove the pointer
to its previous location. Clean it up. While at it also change the header
file protection macros appropriately.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agomtd: omap2: Cleanup header files
Sachin Kamat [Mon, 30 Dec 2013 06:30:20 +0000 (12:00 +0530)]
mtd: omap2: Cleanup header files

Commit 2203747c9771 ("ARM: omap: move platform_data definitions")
moved the files to the current location but forgot to remove the pointer
to its previous location. Clean it up.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Acked-by: Pekon Gupta <pekon@ti.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agomtd: denali: Drop print of build date/time
Josh Triplett [Mon, 23 Dec 2013 21:54:56 +0000 (13:54 -0800)]
mtd: denali: Drop print of build date/time

The kernel already has this information, and individual drivers
shouldn't duplicate that.  This also eliminates the use of __DATE__ and
__TIME__, which make the build non-deterministic.

Signed-off-by: Josh Triplett <josh@joshtriplett.org>
Reviewed-by: Jingoo Han <jg1.han@samsung.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agomtd: bcm47xxpart: alternative MAGIC for board_data partition
Rafał Miłecki [Sat, 21 Dec 2013 18:39:12 +0000 (19:39 +0100)]
mtd: bcm47xxpart: alternative MAGIC for board_data partition

Some devices (like WNDR3700v3) have board_data without MPFR magic, some
extra header or extra NVRAM around 0x100. In such case we have to look
for another magic which is BD 0B 0D BD (BD probably stands for Board
Data). It's located "far far away", so instead of extending buffer add
another mtd_read.

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agomtd: bcm47xxpart: find boot partition by CFE magic
Rafał Miłecki [Sat, 21 Dec 2013 18:39:11 +0000 (19:39 +0100)]
mtd: bcm47xxpart: find boot partition by CFE magic

Some devices have even nicer-to-recognize CFE thanks to the magic.

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agomtd: Hide CONFIG_MTD_BLKDEVS from the menu
Ezequiel Garcia [Fri, 13 Dec 2013 13:58:44 +0000 (10:58 -0300)]
mtd: Hide CONFIG_MTD_BLKDEVS from the menu

Make this option a hidden one and get a cleaner configuration.
This option just selects a common infrastructure for MTD-based devices
to expose a block interface. There is no point in allowing a separate
enable/disable.

Signed-off-by: Ezequiel Garcia <ezequiel.garcia@free-electrons.com>
[Brian: keep symbol as tristate]
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agomtd: onenand: fix warning (integer used as pointer)
Brian Norris [Fri, 20 Sep 2013 19:44:26 +0000 (12:44 -0700)]
mtd: onenand: fix warning (integer used as pointer)

Fixes this sparse warning:

    CHECK   drivers/mtd/onenand/generic.c
  drivers/mtd/onenand/generic.c:61:62: warning: Using plain integer as NULL pointer

Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agomtd: omap2: use nand_base defaults for polled I/O
Brian Norris [Wed, 30 Oct 2013 23:39:51 +0000 (19:39 -0400)]
mtd: omap2: use nand_base defaults for polled I/O

The omap_{read,write}_buf{8,16}() functions are identical to the default
nand_base versions. Just let nand_base assign them in the
NAND_OMAP_POLLED case.

Signed-off-by: Brian Norris <computersforpeace@gmail.com>
Tested-by: Pekon Gupta <pekon@ti.com>
10 years agomtd: nand-gpio: don't waste memory for OF failure
Brian Norris [Sat, 14 Dec 2013 05:19:58 +0000 (21:19 -0800)]
mtd: nand-gpio: don't waste memory for OF failure

We shouldn't try to allocate a resource until we're sure the
of_property_read_u64() call didn't fail. This is especially important if
we use this code for both CONFIG_OF and !CONFIG_OF builds, since
of_property_read_u64() will always return -ENOSYS for !CONFIG_OF.

Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agomtd: plat_nand: Remove unnecessary OOM messages
Jingoo Han [Fri, 3 Jan 2014 02:17:29 +0000 (11:17 +0900)]
mtd: plat_nand: Remove unnecessary OOM messages

The site-specific OOM messages are unnecessary, because they
duplicate the MM subsystem generic OOM message.

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agomtd: plat_nand: Use devm_*() functions
Jingoo Han [Fri, 3 Jan 2014 02:16:28 +0000 (11:16 +0900)]
mtd: plat_nand: Use devm_*() functions

Use devm_*() functions to make cleanup paths simpler.

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agomtd: ixp4xx: Use devm_*() functions
Jingoo Han [Fri, 3 Jan 2014 02:15:04 +0000 (11:15 +0900)]
mtd: ixp4xx: Use devm_*() functions

Use devm_*() functions to make cleanup paths simpler.

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agomtd: sharpsl: use dev_err() instead of printk()
Jingoo Han [Thu, 26 Dec 2013 03:32:29 +0000 (12:32 +0900)]
mtd: sharpsl: use dev_err() instead of printk()

Use dev_err() instead of printk() to provide a better message
to userspace.

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agomtd: orion_nand: use dev_err() instead of printk()
Jingoo Han [Thu, 26 Dec 2013 03:31:52 +0000 (12:31 +0900)]
mtd: orion_nand: use dev_err() instead of printk()

Use dev_err() instead of printk() to provide a better message
to userspace.

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agomtd: fsmc_nand: use dev_warn() instead of printk()
Jingoo Han [Thu, 26 Dec 2013 03:31:25 +0000 (12:31 +0900)]
mtd: fsmc_nand: use dev_warn() instead of printk()

Use dev_warn() instead of printk() to provide a better message
to userspace.

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agomtd: atmel_nand: use dev_err() instead of printk()
Jingoo Han [Thu, 26 Dec 2013 03:30:58 +0000 (12:30 +0900)]
mtd: atmel_nand: use dev_err() instead of printk()

Use dev_err() instead of printk() to provide a better message
to userspace.

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
Acked-by: Josh Wu <josh.wu@atmel.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agomtd: sh_flctl: Remove unnecessary OOM messages
Jingoo Han [Thu, 26 Dec 2013 03:22:37 +0000 (12:22 +0900)]
mtd: sh_flctl: Remove unnecessary OOM messages

The site-specific OOM messages are unnecessary, because they
duplicate the MM subsystem generic OOM message.

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agomtd: s3c2410: Remove unnecessary OOM messages
Jingoo Han [Thu, 26 Dec 2013 03:21:39 +0000 (12:21 +0900)]
mtd: s3c2410: Remove unnecessary OOM messages

The site-specific OOM messages are unnecessary, because they
duplicate the MM subsystem generic OOM message.

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agomtd: mpc5121_nfc: Remove unnecessary OOM messages
Jingoo Han [Thu, 26 Dec 2013 03:19:55 +0000 (12:19 +0900)]
mtd: mpc5121_nfc: Remove unnecessary OOM messages

The site-specific OOM messages are unnecessary, because they
duplicate the MM subsystem generic OOM message.

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agomtd: lpc32xx_slc: Remove unnecessary OOM messages
Jingoo Han [Thu, 26 Dec 2013 03:18:56 +0000 (12:18 +0900)]
mtd: lpc32xx_slc: Remove unnecessary OOM messages

The site-specific OOM messages are unnecessary, because they
duplicate the MM subsystem generic OOM message.

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
Acked-by: Roland Stigge <stigge@antcom.de>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agomtd: lpc32xx_mlc: Remove unnecessary OOM messages
Jingoo Han [Thu, 26 Dec 2013 03:18:24 +0000 (12:18 +0900)]
mtd: lpc32xx_mlc: Remove unnecessary OOM messages

The site-specific OOM messages are unnecessary, because they
duplicate the MM subsystem generic OOM message.

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
Acked-by: Roland Stigge <stigge@antcom.de>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agomtd: nand-gpio: Remove unnecessary OOM messages
Jingoo Han [Thu, 26 Dec 2013 03:17:42 +0000 (12:17 +0900)]
mtd: nand-gpio: Remove unnecessary OOM messages

The site-specific OOM messages are unnecessary, because they
duplicate the MM subsystem generic OOM message.

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agomtd: fsmc_nand: Remove unnecessary OOM messages
Jingoo Han [Thu, 26 Dec 2013 03:16:38 +0000 (12:16 +0900)]
mtd: fsmc_nand: Remove unnecessary OOM messages

The site-specific OOM messages are unnecessary, because they
duplicate the MM subsystem generic OOM message.

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agomtd: davinci_nand: Remove unnecessary OOM messages
Jingoo Han [Thu, 26 Dec 2013 03:13:59 +0000 (12:13 +0900)]
mtd: davinci_nand: Remove unnecessary OOM messages

The site-specific OOM messages are unnecessary, because they
duplicate the MM subsystem generic OOM message.

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agomtd: txx9ndfmc: Remove unnecessary OOM messages
Jingoo Han [Thu, 26 Dec 2013 03:12:03 +0000 (12:12 +0900)]
mtd: txx9ndfmc: Remove unnecessary OOM messages

The site-specific OOM messages are unnecessary, because they
duplicate the MM subsystem generic OOM message.

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agomtd: jz4740_nand: Remove unnecessary OOM messages
Jingoo Han [Thu, 26 Dec 2013 03:09:47 +0000 (12:09 +0900)]
mtd: jz4740_nand: Remove unnecessary OOM messages

The site-specific OOM messages are unnecessary, because they
duplicate the MM subsystem generic OOM message.

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agomtd: fsl_ifc_nand: Remove unnecessary OOM messages
Jingoo Han [Thu, 26 Dec 2013 03:09:19 +0000 (12:09 +0900)]
mtd: fsl_ifc_nand: Remove unnecessary OOM messages

The site-specific OOM messages are unnecessary, because they
duplicate the MM subsystem generic OOM message.

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agomtd: fsl_elbc_nand: Remove unnecessary OOM messages
Jingoo Han [Thu, 26 Dec 2013 03:08:24 +0000 (12:08 +0900)]
mtd: fsl_elbc_nand: Remove unnecessary OOM messages

The site-specific OOM messages are unnecessary, because they
duplicate the MM subsystem generic OOM message.

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agomtd: diskonchip: Remove unnecessary OOM messages
Jingoo Han [Thu, 26 Dec 2013 03:07:20 +0000 (12:07 +0900)]
mtd: diskonchip: Remove unnecessary OOM messages

The site-specific OOM messages are unnecessary, because they
duplicate the MM subsystem generic OOM message.

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agomtd: cs553x_nand: Remove unnecessary OOM messages
Jingoo Han [Thu, 26 Dec 2013 03:06:46 +0000 (12:06 +0900)]
mtd: cs553x_nand: Remove unnecessary OOM messages

The site-specific OOM messages are unnecessary, because they
duplicate the MM subsystem generic OOM message.

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agomtd: cmx270_nand: Remove unnecessary OOM messages
Jingoo Han [Thu, 26 Dec 2013 03:06:00 +0000 (12:06 +0900)]
mtd: cmx270_nand: Remove unnecessary OOM messages

The site-specific OOM messages are unnecessary, because they
duplicate the MM subsystem generic OOM message.

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agomtd: cafe_nand: Remove unnecessary OOM messages
Jingoo Han [Thu, 26 Dec 2013 03:04:58 +0000 (12:04 +0900)]
mtd: cafe_nand: Remove unnecessary OOM messages

The site-specific OOM messages are unnecessary, because they
duplicate the MM subsystem generic OOM message.

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agomtd: bf5xx_nand: Remove unnecessary OOM messages
Jingoo Han [Thu, 26 Dec 2013 03:04:18 +0000 (12:04 +0900)]
mtd: bf5xx_nand: Remove unnecessary OOM messages

The site-specific OOM messages are unnecessary, because they
duplicate the MM subsystem generic OOM message.

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
Acked-by: Mike Frysinger <vapier@gentoo.org>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agomtd: au1550nd: Remove unnecessary OOM messages
Jingoo Han [Thu, 26 Dec 2013 03:02:30 +0000 (12:02 +0900)]
mtd: au1550nd: Remove unnecessary OOM messages

The site-specific OOM messages are unnecessary, because they
duplicate the MM subsystem generic OOM message.

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agomtd: sharpsl: Remove unnecessary OOM messages
Jingoo Han [Thu, 26 Dec 2013 03:01:55 +0000 (12:01 +0900)]
mtd: sharpsl: Remove unnecessary OOM messages

The site-specific OOM messages are unnecessary, because they
duplicate the MM subsystem generic OOM message.

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agomtd: orion_nand: Remove unnecessary OOM messages
Jingoo Han [Thu, 26 Dec 2013 03:00:58 +0000 (12:00 +0900)]
mtd: orion_nand: Remove unnecessary OOM messages

The site-specific OOM messages are unnecessary, because they
duplicate the MM subsystem generic OOM message.

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agomtd: atmel_nand: Remove unnecessary OOM messages
Jingoo Han [Thu, 26 Dec 2013 03:00:16 +0000 (12:00 +0900)]
mtd: atmel_nand: Remove unnecessary OOM messages

The site-specific OOM messages are unnecessary, because they
duplicate the MM subsystem generic OOM message.

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
Acked-by: Josh Wu <josh.wu@atmel.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agomtd: tmio_nand: Use devm_*() functions
Jingoo Han [Thu, 26 Dec 2013 01:45:55 +0000 (10:45 +0900)]
mtd: tmio_nand: Use devm_*() functions

Use devm_*() functions to make cleanup paths simpler.

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agomtd: nuc900_nand: Use devm_*() functions
Jingoo Han [Thu, 26 Dec 2013 01:44:59 +0000 (10:44 +0900)]
mtd: nuc900_nand: Use devm_*() functions

Use devm_*() functions to make cleanup paths simpler.

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agomtd: lpc32xx_slc: Use devm_*() functions
Jingoo Han [Thu, 26 Dec 2013 01:44:30 +0000 (10:44 +0900)]
mtd: lpc32xx_slc: Use devm_*() functions

Use devm_*() functions to make cleanup paths simpler.

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
Acked-by: Roland Stigge <stigge@antcom.de>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agomtd: denali_dt: Use devm_clk_get()
Jingoo Han [Thu, 26 Dec 2013 01:43:11 +0000 (10:43 +0900)]
mtd: denali_dt: Use devm_clk_get()

Use devm_clk_get() to make cleanup paths simpler.

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agomtd: lantiq-flash: Use devm_kzalloc()
Jingoo Han [Thu, 26 Dec 2013 01:42:34 +0000 (10:42 +0900)]
mtd: lantiq-flash: Use devm_kzalloc()

Use devm_kzalloc() to make cleanup paths simpler. Also, checking
return value of devm_kzalloc() is added in order to check if the
allocation succeded.

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
Acked-by: John Crispin <blogic@openwrt.org>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agomtd: docg3: Use devm_*() functions
Jingoo Han [Thu, 26 Dec 2013 01:40:52 +0000 (10:40 +0900)]
mtd: docg3: Use devm_*() functions

Use devm_*() functions to make cleanup paths simpler.

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agomtd: nand: pxa3xx: Consolidate ECC initialization
Ezequiel Garcia [Wed, 18 Dec 2013 21:44:10 +0000 (18:44 -0300)]
mtd: nand: pxa3xx: Consolidate ECC initialization

In order to avoid code duplication, let's consolidate the ECC setting
for all SoC variants. Such decision is based on page size and ECC
strength requirements.

Also, provide a default value for the case where such ECC information
is not provided (non-ONFI devices).

Tested-by: Arnaud Ebalard <arno@natisbad.org>
Signed-off-by: Ezequiel Garcia <ezequiel.garcia@free-electrons.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agomtd: nand: pxa3xx: Use extended cmdfunc() only if needed
Ezequiel Garcia [Wed, 18 Dec 2013 21:44:09 +0000 (18:44 -0300)]
mtd: nand: pxa3xx: Use extended cmdfunc() only if needed

Currently, we have two different cmdfunc's implementations:
one for PXA3xx SoC variant and one for Armada 370/XP SoC variant.

The former is the legacy one, typically constrained to devices
with page sizes smaller or equal to the controller's FIFO buffer.
On the other side, the latter _only_ supports the so-called extended
command semantics, which allow to handle devices with larger
page sizes (4 KiB, 8 KiB, ...).

This means we currently don't support devices with smaller pages on the
A370/XP SoC. Fix it by first renaming the cmdfuncs variants, and then
make the choice based on device page size (and SoC variant), rather than
SoC variant alone.

While at it, add a check for page size, to make sure we don't allow larger
pages sizes on the PXA3xx variant.

Tested-by: Arnaud Ebalard <arno@natisbad.org>
Signed-off-by: Ezequiel Garcia <ezequiel.garcia@free-electrons.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agomtd: nand: pxa3xx: Clear need_wait flag when starting a command
Ezequiel Garcia [Wed, 18 Dec 2013 21:44:08 +0000 (18:44 -0300)]
mtd: nand: pxa3xx: Clear need_wait flag when starting a command

Currently the driver assumes all commands will eventually trigger a RnB
transition, and thus a "device is ready" IRQ.

This assumption means that on every issued command, the dev_ready completion
handler is init'ed and the need_wait flag is set.

However this is incorrect: some commands (such as NAND_CMD_STATUS) don't
make the device 'busy' and thus a RnB transition never occurs.
Given, the NAND core never calls waitfunc() after such commands, this
is not a problem.

Therefore, it's possible to only clear the need_wait flag on every command
that is started.

This fixes a current bug that can be reproduced on PXA boards by writing
blank (all 0xff'ed) to a page:

  1. The kernel issues NAND_CMD_STATUS and sets need_wait=1. The flag
     won't be cleared for this command since no RnB transition is
     involved.

  2. NAND_CMD_PAGEPROG is issued but since the data is blank, the driver
     decides not to execute the command (and no IRQ activity is
     involved).

  3. The NAND core calls waitfunc() and waits for the dev_ready
     completion, which will never end since the device _is_ already ready.

Tested-by: Arnaud Ebalard <arno@natisbad.org>
Signed-off-by: Ezequiel Garcia <ezequiel.garcia@free-electrons.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agomtd: denali: Mark function is_erased() as static
Rashika Kheria [Fri, 13 Dec 2013 07:16:04 +0000 (12:46 +0530)]
mtd: denali: Mark function is_erased() as static

This patch marks the function is_erased() as static in denali.c because
it is not used outside this file.

This patch elimiates the following warning in nand/denali.c:
drivers/mtd/nand/denali.c:900:6: warning: no previous prototype for ‘is_erased’ [-Wmissing-prototypes]

Signed-off-by: Rashika Kheria <rashika.kheria@gmail.com>
Reviewed-by: Josh Triplett <josh@joshtriplett.org>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agomtd: lpddr: Mark functions as static and remove unused function
Rashika Kheria [Fri, 13 Dec 2013 07:14:07 +0000 (12:44 +0530)]
mtd: lpddr: Mark functions as static and remove unused function

This patch marks the functions do_write_buffer() and do_erase_oneblock()
as static because because they are not used outside this file. It also
removes the unused function word_program() in lpddr/lpddr_cmds.c.

Thus, it also removes the following warnings in lpddr/lpddr_cmds.c:
drivers/mtd/lpddr/lpddr_cmds.c:391:5: warning: no previous prototype for ‘do_write_buffer’ [-Wmissing-prototypes]
drivers/mtd/lpddr/lpddr_cmds.c:472:5: warning: no previous prototype for ‘do_erase_oneblock’ [-Wmissing-prototypes]
drivers/mtd/lpddr/lpddr_cmds.c:751:5: warning: no previous prototype for ‘word_program’ [-Wmissing-prototypes]

Signed-off-by: Rashika Kheria <rashika.kheria@gmail.com>
Reviewed-by: Josh Triplett <josh@joshtriplett.org>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agomtd: nand: lpc32xx_mlc: drop custom write_page callback
Brian Norris [Tue, 17 Dec 2013 04:50:32 +0000 (20:50 -0800)]
mtd: nand: lpc32xx_mlc: drop custom write_page callback

This driver doesn't need its own custom chip->write_page callback; the
only "custom" requirement is that this driver does not support subpage
writes, which we can avoid using the NAND_NO_SUBPAGE_WRITE flag. With
NAND_NO_SUBPAGE_WRITE, the default routine (nand_write_page()) should
perform the equivalent operations.

Signed-off-by: Brian Norris <computersforpeace@gmail.com>
Acked-by: Roland Stigge <stigge@antcom.de>
Tested-by: Roland Stigge <stigge@antcom.de>
10 years agomtd: nand: davinci: don't request AEMIF address range
Ivan Khoronzhuk [Tue, 17 Dec 2013 13:38:31 +0000 (15:38 +0200)]
mtd: nand: davinci: don't request AEMIF address range

The TI AEMIF driver registers are used to setup timings for each chip
select. The same registers range is used to setup NAND settings.
The AEMIF and NAND drivers not use the same registers in this range.

In case with TI AEMIF driver, the memory address range is requested
already by AEMIF, so we cannot request it twice, just ioremap.

Acked-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Reviewed-by: Grygorii Strashko <grygorii.strashko@ti.com>
Reviewed-by: Taras Kondratiuk <taras@ti.com>
Signed-off-by: Ivan Khoronzhuk <ivan.khoronzhuk@ti.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agomtd: nand: davinci: reuse driver for Keystone arch
Ivan Khoronzhuk [Tue, 17 Dec 2013 13:38:12 +0000 (15:38 +0200)]
mtd: nand: davinci: reuse driver for Keystone arch

The Keystone arch has compatible nand device, so reuse it.
In case with Keystone it depends on TI_AEMIF because AEMIF
driver is responsible to set timings.

See http://www.ti.com/lit/ug/sprugz3a/sprugz3a.pdf

Reviewed-by: Grygorii Strashko <grygorii.strashko@ti.com>
Reviewed-by: Taras Kondratiuk <taras@ti.com>
Signed-off-by: Ivan Khoronzhuk <ivan.khoronzhuk@ti.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agomtd: nand: davinci: adjust DT properties to MTD generic
Ivan Khoronzhuk [Tue, 17 Dec 2013 13:37:56 +0000 (15:37 +0200)]
mtd: nand: davinci: adjust DT properties to MTD generic

The properties davinci-ecc-mode, davinci-nand-use-bbt, davinci-nand-buswidth
are MTD generic. Correct names for them are: nand-ecc-mode, nand-on-flash-bbt,
nand-bus-width accordingly. So rename them in dts and documentation.

Reviewed-by: Grygorii Strashko <grygorii.strashko@ti.com>
Reviewed-by: Taras Kondratiuk <taras@ti.com>
Signed-off-by: Ivan Khoronzhuk <ivan.khoronzhuk@ti.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agomtd: nand: davinci: extend description of bindings
Ivan Khoronzhuk [Tue, 17 Dec 2013 13:37:37 +0000 (15:37 +0200)]
mtd: nand: davinci: extend description of bindings

Extend bindings for davinci_nand driver to be more clear.
This is clarification only, without semantic changes.

Reviewed-by: Grygorii Strashko <grygorii.strashko@ti.com>
Reviewed-by: Taras Kondratiuk <taras@ti.com>
Signed-off-by: Ivan Khoronzhuk <ivan.khoronzhuk@ti.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agomtd: nand: davinci: move bindings under mtd
Ivan Khoronzhuk [Tue, 17 Dec 2013 13:37:22 +0000 (15:37 +0200)]
mtd: nand: davinci: move bindings under mtd

Move bindings under mtd. Do this in order to make davinci-nand
driver usable by keystone architecture.

Acked-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Reviewed-by: Grygorii Strashko <grygorii.strashko@ti.com>
Reviewed-by: Taras Kondratiuk <taras@ti.com>
Signed-off-by: Ivan Khoronzhuk <ivan.khoronzhuk@ti.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agomtd: nand: davinci: simplify error handling
Ivan Khoronzhuk [Tue, 17 Dec 2013 13:37:00 +0000 (15:37 +0200)]
mtd: nand: davinci: simplify error handling

There is not needed to use a lot of names for err handling.
It complicates code support and reading.

Acked-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Reviewed-by: Grygorii Strashko <grygorii.strashko@ti.com>
Reviewed-by: Taras Kondratiuk <taras@ti.com>
Signed-off-by: Ivan Khoronzhuk <ivan.khoronzhuk@ti.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agomtd: nand: davinci: check required ti,davinci-chipselect property
Ivan Khoronzhuk [Tue, 17 Dec 2013 13:36:44 +0000 (15:36 +0200)]
mtd: nand: davinci: check required ti,davinci-chipselect property

The property "ti,davinci-chipselect" is required. So we have to check
if it is set.

Reviewed-by: Grygorii Strashko <grygorii.strashko@ti.com>
Reviewed-by: Taras Kondratiuk <taras@ti.com>
Signed-off-by: Ivan Khoronzhuk <ivan.khoronzhuk@ti.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agomtd: nand: davinci: return ENOMEM if memory allocation is failed
Ivan Khoronzhuk [Tue, 17 Dec 2013 13:36:05 +0000 (15:36 +0200)]
mtd: nand: davinci: return ENOMEM if memory allocation is failed

In case when memory allocation is failed the driver should return
ENOMEM instead of ENODEV.

Reviewed-by: Grygorii Strashko <grygorii.strashko@ti.com>
Reviewed-by: Taras Kondratiuk <taras@ti.com>
Signed-off-by: Ivan Khoronzhuk <ivan.khoronzhuk@ti.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agomtd: nand: davinci: fix driver registration
Ivan Khoronzhuk [Tue, 17 Dec 2013 13:33:50 +0000 (15:33 +0200)]
mtd: nand: davinci: fix driver registration

When kernel is booted using DT, there is no guarantee that Davinci
NAND device has been created already at the time when driver init
function is executed. Therefore, platform_driver_probe() can't be used
because this may result the Davinci NAND driver will never be probed.
The driver probing has to be made with core mechanism.

Acked-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Reviewed-by: Grygorii Strashko <grygorii.strashko@ti.com>
Reviewed-by: Taras Kondratiuk <taras@ti.com>
Signed-off-by: Ivan Khoronzhuk <ivan.khoronzhuk@ti.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agomtd: au1550nd: add missing platform_set_drvdata()
Wei Yongjun [Mon, 11 Nov 2013 06:18:29 +0000 (14:18 +0800)]
mtd: au1550nd: add missing platform_set_drvdata()

Add missing platform_set_drvdata() in au1550nd_probe(), otherwise
calling platform_get_drvdata() in remove returns NULL.

Signed-off-by: Wei Yongjun <yongjun_wei@trendmicro.com.cn>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agomtd: mxc_nand: add missing clk_disable_unprepare() in mxcnd_remove()
Wei Yongjun [Tue, 17 Dec 2013 03:35:35 +0000 (11:35 +0800)]
mtd: mxc_nand: add missing clk_disable_unprepare() in mxcnd_remove()

clock source is prepared and enabled by clk_prepare_enable() in
mxcnd_probe() function, but no disable/unprepare in mxcnd_remove().

Signed-off-by: Wei Yongjun <yongjun_wei@trendmicro.com.cn>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agomtd: nand: sh_flctl: Remove unneeded CONFIG_OF
Ezequiel Garcia [Sat, 7 Dec 2013 14:31:01 +0000 (11:31 -0300)]
mtd: nand: sh_flctl: Remove unneeded CONFIG_OF

Since the of_mtd header provides dummy stubs for !CONFIG_OF, it's safe
to remove the #ifdef CONFIG_OF. Build tested only.

Signed-off-by: Ezequiel Garcia <ezequiel.garcia@free-electrons.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agoMAINTAINERS: mtd: add PXA3xx NAND driver to MAINTAINERS
Ezequiel Garcia [Wed, 4 Dec 2013 23:28:46 +0000 (15:28 -0800)]
MAINTAINERS: mtd: add PXA3xx NAND driver to MAINTAINERS

Add the pxa3xx-nand driver which supports PXA3xx and Armada 370/XP SoC
family to MAINTAINERS to ensure I get proper Cc on patches.

Signed-off-by: Ezequiel Garcia <ezequiel.garcia@free-electrons.com>
Acked-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agoMAINTAINERS: mtd: add Brian Norris for MTD maintenance
Brian Norris [Wed, 4 Dec 2013 23:28:45 +0000 (15:28 -0800)]
MAINTAINERS: mtd: add Brian Norris for MTD maintenance

While we're at it, change the git URL to remove the version legacy. It's
been a symlink to linux-mtd.git for a while now anyway.

Signed-off-by: Brian Norris <computersforpeace@gmail.com>
Cc: David Woodhouse <dwmw2@infradead.org>
Cc: linux-mtd@lists.infradead.org
Acked-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
10 years agomtd: denali: remove DEFINE_PCI_DEVICE_TABLE macro
Jingoo Han [Mon, 2 Dec 2013 23:18:28 +0000 (08:18 +0900)]
mtd: denali: remove DEFINE_PCI_DEVICE_TABLE macro

Don't use DEFINE_PCI_DEVICE_TABLE macro, because this macro
is not preferred.

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agomtd: sh_flctl: use devm_* managed allocators
Laurent Pinchart [Wed, 27 Nov 2013 10:27:44 +0000 (11:27 +0100)]
mtd: sh_flctl: use devm_* managed allocators

This simplifies error and cleanup code paths.

Cc: David Woodhouse <dwmw2@infradead.org>
Cc: linux-mtd@lists.infradead.org
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agomtd: sh_flctl: fix warnings due to improper casts
Laurent Pinchart [Wed, 27 Nov 2013 10:17:28 +0000 (11:17 +0100)]
mtd: sh_flctl: fix warnings due to improper casts

Cast pointers to uintptr_t instead of unsigned int. This fixes warnings
on platforms where pointers have a different size than int.

Cc: David Woodhouse <dwmw2@infradead.org>
Cc: linux-mtd@lists.infradead.org
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agomtd: sh_flctl: enable driver compilation with COMPILE_TEST
Laurent Pinchart [Wed, 27 Nov 2013 01:18:31 +0000 (02:18 +0100)]
mtd: sh_flctl: enable driver compilation with COMPILE_TEST

This helps increasing build testing coverage.

Cc: David Woodhouse <dwmw2@infradead.org>
Cc: linux-mtd@lists.infradead.org
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Acked-by: Simon Horman <horms@verge.net.au>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agomtd: make register_mtd_parser return void
Axel Lin [Sun, 1 Dec 2013 11:01:06 +0000 (19:01 +0800)]
mtd: make register_mtd_parser return void

register_mtd_parser never fails; hence make it return void.

Signed-off-by: Axel Lin <axel.lin@ingics.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agomtd: make deregister_mtd_parser return void
Axel Lin [Sun, 1 Dec 2013 10:59:15 +0000 (18:59 +0800)]
mtd: make deregister_mtd_parser return void

deregister_mtd_parser never fails; hence make it return void.

Signed-off-by: Axel Lin <axel.lin@ingics.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agojffs2: NULL return of kmem_cache_zalloc should be handled
Zhouyi Zhou [Mon, 2 Dec 2013 10:37:05 +0000 (18:37 +0800)]
jffs2: NULL return of kmem_cache_zalloc should be handled

NULL return of kmem_cache_zalloc should be handled in jffs2_alloc_xattr_datum
and jff2_alloc_xattr_ref.

Signed-off-by: Zhouyi Zhou <yizhouzhou@ict.ac.cn>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agomtd: nand: refactor print messages
Ezequiel Garcia [Mon, 25 Nov 2013 11:30:31 +0000 (08:30 -0300)]
mtd: nand: refactor print messages

Add a nice "nand:" prefix to all pr_xxx() messages. This allows
to get rid of the "NAND" words in messages, given the context
is already given by the prefix.

Remove the __func__ report from messages where it's not needed and refactor
the device detection messages to show itself in several lines.

Signed-off-by: Ezequiel Garcia <ezequiel.garcia@free-electrons.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agomtd: tests: mtd_nandecctest: Use IS_ENABLED() macro
Fabio Estevam [Mon, 2 Dec 2013 02:30:27 +0000 (00:30 -0200)]
mtd: tests: mtd_nandecctest: Use IS_ENABLED() macro

Using the IS_ENABLED() macro can make the code shorter and simpler.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agomtd: convert to use ATTRIBUTE_GROUPS
Axel Lin [Mon, 2 Dec 2013 02:12:25 +0000 (10:12 +0800)]
mtd: convert to use ATTRIBUTE_GROUPS

Use new ATTRIBUTE_GROUPS macro to declare attribute groups.

Signed-off-by: Axel Lin <axel.lin@ingics.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agomtd: m25p80: add support for m25px16
Igor Grinberg [Mon, 11 Nov 2013 20:55:29 +0000 (22:55 +0200)]
mtd: m25p80: add support for m25px16

Add support for Micron m25px16 spi flash chip.

Signed-off-by: Igor Grinberg <grinberg@compulab.co.il>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>