22 Nov, 2012

1 commit


21 Nov, 2012

8 commits


18 Nov, 2012

4 commits

  • Correct spelling typo in printk within drivers/mtd/tests.

    Signed-off-by: Masanari Iida
    Signed-off-by: Artem Bityutskiy

    Masanari Iida
     
  • When we scan several nand chips with nand_scan(), such as
    .......................
    nand_scan(*, 2);
    .......................

    In nand_scan_ident(), the maxchips will become 2, so the current code
    will select chip 1 to read the device ID. But the chip 0 is still
    selected in this case.

    To make the logic clear, we'd better de-select the chip when it is not used.

    This patch de-select the nand chip if it is not used any more.

    Signed-off-by: Huang Shijie
    Signed-off-by: Artem Bityutskiy

    Huang Shijie
     
  • 'set' is tested for NULL. But subsequently accessed without the check.
    Thus making it conditional to avoid NULL pointer dereferencing.

    Signed-off-by: Sachin Kamat
    Signed-off-by: Artem Bityutskiy

    Sachin Kamat
     
  • Users of jffs2_do_reserve_space() expect they still held
    erase_completion_lock after call to it. But there is a path
    where jffs2_do_reserve_space() leaves erase_completion_lock unlocked.
    The patch fixes it.

    Found by Linux Driver Verification project (linuxtesting.org).

    Signed-off-by: Alexey Khoroshilov
    Cc: stable@vger.kernel.org
    Signed-off-by: Artem Bityutskiy

    Alexey Khoroshilov
     

16 Nov, 2012

9 commits

  • linux,mtd-name allow to specify the mtd name for retro capability with
    physmap-flash drivers as boot loader pass the mtd partition via the old
    device name physmap-flash.

    Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD
    Signed-off-by: Artem Bityutskiy

    Jean-Christophe PLAGNIOL-VILLARD
     
  • IFC_FIR_OP_CMD0 issues command for execution without checking flash
    readiness. It may cause problem if flash is not ready. Instead use
    IFC_FIR_OP_CW0 which Wait for tWB time and poll R/B to return high or
    time-out, before issuing command.

    NAND_CMD_READID command implemention does not fulfill above requirement. So
    update its programming.

    Signed-off-by: Prabhakar Kushwaha
    Signed-off-by: Hemant Nautiyal
    Signed-off-by: Artem Bityutskiy

    Prabhakar Kushwaha
     
  • The map_word_load() function initializes exactly
    as many words in the buffer as required, but gcc
    cannot figure this out and gives a misleading
    warning. Marking the local variable as
    uninitialized_var shuts up that warning.

    Without this patch, building acs5k_defconfig results in:

    drivers/mtd/chips/cfi_cmdset_0002.c: In function 'cfi_amdstd_panic_write':
    include/linux/mtd/map.h:331:11: warning: 'r.x[0]' may be used uninitialized in this function [-Wuninitialized]
    drivers/mtd/chips/cfi_cmdset_0002.c: In function 'cfi_amdstd_write_words':
    include/linux/mtd/map.h:331:11: warning: 'r.x[0]' may be used uninitialized in this function [-Wuninitialized]
    drivers/mtd/chips/cfi_cmdset_0001.c: In function 'cfi_intelext_write_words':
    include/linux/mtd/map.h:331:11: warning: 'r.x[0]' may be used uninitialized in this function [-Wuninitialized]

    Signed-off-by: Arnd Bergmann
    Signed-off-by: Artem Bityutskiy

    Arnd Bergmann
     
  • The diskonchip drivers traditionally use home-grown macros for
    doing MMIO accesses, which cause a lot of warnings, at least
    on ARM machines:

    drivers/mtd/devices/doc2000.c: In function 'doc_write':
    drivers/mtd/devices/doc2000.c:854:5: warning: value computed is not used [-Wunused-value]
    drivers/mtd/devices/doc2000.c: In function 'doc_erase':
    drivers/mtd/devices/doc2000.c:1123:5: warning: value computed is not used [-Wunused-value
    drivers/mtd/nand/diskonchip.c: In function 'doc2000_read_byte':
    drivers/mtd/nand/diskonchip.c:318:3: warning: value computed is not used [-Wunused-value]

    A nicer solution is to use the architecture-defined I/O accessors.
    Here, we use the __raw_readl/__raw_writel style, instead of the
    proper readl/writel ones, in order to preserve the odd semantics
    of the existing macros that have their own barrier implementation
    and no byte swap. It would be nice to fix this properly and use
    the correct accessors as well as make the word size independent
    from the architecture, but I guess the hardware is obsolete
    enough that we should better not mess the driver an more than
    necessary.

    Signed-off-by: Arnd Bergmann
    Signed-off-by: Artem Bityutskiy

    Arnd Bergmann
     
  • Enabling the diskonchip drivers on most architectures results
    in a pointless warning "#warning Unknown architecture for
    DiskOnChip. No default probe locations defined". The driver
    can in fact handle the default location already through the
    CONFIG_MTD_DOCPROBE_ADDRESS, which gets set on the platforms
    that need it, and we get a run-time error if this is not
    set correctly.

    Signed-off-by: Arnd Bergmann
    Signed-off-by: Artem Bityutskiy

    Arnd Bergmann
     
  • This patch allow to detect buggy driver/hardware with
    bad RnB (dev_ready) management or when timeout occurs in polling mode.

    This works when dev_ready is set or not set.
    There are 2 methods to wait for an erase/program command completion:

    1. Wait until nand RnB pin goes high (that's what chip->dev_ready usually does)
    2. Poll the device: send a status (0x70) command and read status byte in a loop
    until bit NAND_STATUS_READY is set

    In all cases, you should send a status command after completion, to check if
    the operation was successful. And if the operation completed, the status should
    have bit NAND_STATUS_READY set.

    Signed-off-by: Matthieu CASTET
    Signed-off-by: Artem Bityutskiy

    Matthieu CASTET
     
  • Enhance the driver to support partition subnodes inside the nand
    device bindings to describe partions on the nand device.

    Signed-off-by: Murali Karicheri
    Reviewed-by: Grant Likely
    Signed-off-by: Artem Bityutskiy

    Murali Karicheri
     
  • When the kernel parses the following cmdline

    #mtdparts=gpmi-nand:16m(boot),16m(kernel),1g(home),4g(test),-(usr)

    for a big nand chip Micron MT29F64G08AFAAAWP(8GB), we got the following wrong
    result:

    .............................................
    "mtd: partition size too small (0)"
    .............................................

    We can not get any partition.

    The "4g(test)" partition triggers a overflow of the "size". The memparse()
    returns 4g to the "size", but the size is "unsigned long" type, so a overflow
    occurs, the "size" becomes zero in the end.

    This patch changes the "size"/"offset" to "unsigned long long" type,
    and replaces the UINT_MAX with ULLONG_MAX for macros SIZE_REMAINING and
    OFFSET_CONTINUOUS.

    Signed-off-by: Huang Shijie
    Signed-off-by: Artem Bityutskiy

    Huang Shijie
     
  • This patch is an attempt to fix following compilation warning.

    In file included from drivers/mtd/chips/cfi_cmdset_0001.c:35:0:
    drivers/mtd/chips/cfi_cmdset_0001.c: In function 'cfi_intelext_write_words':
    include/linux/mtd/map.h:331:11: warning: 'r.x[0]' may be used uninitialized in this function [-Wmaybe-uninitialized]

    I could have used uninitialized_var() too, but didn't used it as the final else
    part of map_word_load() is missing. So there is a chance that it might be passed
    uninitialized. Better initialize to zero.

    Signed-off-by: Viresh Kumar
    Signed-off-by: Artem Bityutskiy

    Viresh Kumar
     

15 Nov, 2012

18 commits