Merge tag 'for-linus-20160801' of git://git.infradead.org/linux-mtd
authorLinus Torvalds <torvalds@linux-foundation.org>
Tue, 2 Aug 2016 21:05:11 +0000 (17:05 -0400)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 2 Aug 2016 21:05:11 +0000 (17:05 -0400)
Pull MTD updates from Brian Norris:
 "NAND:

    Quoting Boris:
     'This pull request contains only one notable change:
       - Addition of the MTK NAND controller driver

      And a bunch of specific NAND driver improvements/fixes. Here are the
      changes that are worth mentioning:
       - A few fixes/improvements for the xway NAND controller driver
       - A few fixes for the sunxi NAND controller driver
       - Support for DMA in the sunxi NAND driver
       - Support for the sunxi NAND controller IP embedded in A23/A33 SoCs
       - Addition for bitflips detection in erased pages to the brcmnand driver
       - Support for new brcmnand IPs
       - Update of the OMAP-GPMC binding to support DMA channel description'

    In addition, some small fixes around error handling, etc., as well
    as one long-standing corner case issue (2.6.20, I think?) with
    writing 1 byte less than a page.

  NOR:

   - rework some error handling on reads and writes, so we can better
     handle (for instance) SPI controllers which have limitations on
     their maximum transfer size

   - add new Cadence Quad SPI flash controller driver

   - add new Atmel QSPI flash controller driver

   - add new Hisilicon SPI flash controller driver

   - support a few new flash, and update supported features on others

   - fix the logic used for detecting a fully-unlocked flash

  And other miscellaneous small fixes"

* tag 'for-linus-20160801' of git://git.infradead.org/linux-mtd: (60 commits)
  mtd: spi-nor: don't build Cadence QuadSPI on non-ARM
  mtd: mtk-nor: remove duplicated include from mtk-quadspi.c
  mtd: nand: fix bug writing 1 byte less than page size
  mtd: update description of MTD_BCM47XXSFLASH symbol
  mtd: spi-nor: Add driver for Cadence Quad SPI Flash Controller
  mtd: spi-nor: Bindings for Cadence Quad SPI Flash Controller driver
  mtd: nand: brcmnand: Change BUG_ON in brcmnand_send_cmd
  mtd: pmcmsp-flash: Allocating too much in init_msp_flash()
  mtd: maps: sa1100-flash: potential NULL dereference
  mtd: atmel-quadspi: add driver for Atmel QSPI controller
  mtd: nand: omap2: fix return value check in omap_nand_probe()
  Documentation: atmel-quadspi: add binding file for Atmel QSPI driver
  mtd: spi-nor: add hisilicon spi-nor flash controller driver
  mtd: spi-nor: support dual, quad, and WP for Gigadevice
  mtd: spi-nor: Added support for n25q00a.
  memory: Update dependency of IFC for Layerscape
  mtd: nand: jz4780: Update MODULE_AUTHOR email address
  mtd: nand: sunxi: prevent a small memory leak
  mtd: nand: sunxi: add reset line support
  mtd: nand: sunxi: update DT bindings
  ...

1  2 
drivers/memory/Kconfig
drivers/mtd/devices/Kconfig
drivers/mtd/nand/omap2.c

diff --combined drivers/memory/Kconfig
index 133712346911dd694b28cda4cc80fcb86636fdd9,5645705c7110c27426c5a2b165005a66ad94376f..4b4c0c3c3d2feab9d8958684bcd52d8f2ab64419
@@@ -25,17 -25,6 +25,17 @@@ config ATMEL_SDRAM
          Starting with the at91sam9g45, this controller supports SDR, DDR and
          LP-DDR memories.
  
 +config ATMEL_EBI
 +      bool "Atmel EBI driver"
 +      default y
 +      depends on ARCH_AT91 && OF
 +      select MFD_SYSCON
 +      help
 +        Driver for Atmel EBI controller.
 +        Used to configure the EBI (external bus interface) when the device-
 +        tree is used. This bus supports NANDs, external ethernet controller,
 +        SRAMs, ATA devices, etc.
 +
  config TI_AEMIF
        tristate "Texas Instruments AEMIF driver"
        depends on (ARCH_DAVINCI || ARCH_KEYSTONE) && OF
@@@ -115,7 -104,7 +115,7 @@@ config FSL_CORENET_C
  
  config FSL_IFC
        bool
-       depends on FSL_SOC
+       depends on FSL_SOC || ARCH_LAYERSCAPE
  
  config JZ4780_NEMC
        bool "Ingenic JZ4780 SoC NEMC driver"
index 64a248556d290b6ac5db0ff09046bea96a77f51f,bf8238fb2e12da1cc2441fb44b86d2977d8811db..58329d2dacd1f74da67e9c45e001b01de41d4e94
@@@ -113,12 -113,12 +113,12 @@@ config MTD_SST25
          if you want to specify device partitioning.
  
  config MTD_BCM47XXSFLASH
-       tristate "R/O support for serial flash on BCMA bus"
+       tristate "Support for serial flash on BCMA bus"
 -      depends on BCMA_SFLASH
 +      depends on BCMA_SFLASH && (MIPS || ARM)
        help
          BCMA bus can have various flash memories attached, they are
          registered by bcma as platform devices. This enables driver for
-         serial flash memories (only read-only mode is implemented).
+         serial flash memories.
  
  config MTD_SLRAM
        tristate "Uncached system RAM"
@@@ -171,18 -171,6 +171,6 @@@ config MTDRAM_ERASE_SIZ
          as a module, it is also possible to specify this as a parameter when
          loading the module.
  
- #If not a module (I don't want to test it as a module)
- config MTDRAM_ABS_POS
-       hex "SRAM Hexadecimal Absolute position or 0"
-       depends on MTD_MTDRAM=y
-       default "0"
-       help
-         If you have system RAM accessible by the CPU but not used by Linux
-         in normal operation, you can give the physical address at which the
-         available RAM starts, and the MTDRAM driver will use it instead of
-         allocating space from Linux's available memory. Otherwise, leave
-         this set to zero. Most people will want to leave this as zero.
  config MTD_BLOCK2MTD
        tristate "MTD using block device"
        depends on BLOCK
diff --combined drivers/mtd/nand/omap2.c
index a136da8df6fe897d4f908d2723d4a95d8b152933,3dfd512b198b2a7b8d64442009af243dcdf30f6f..a59361c36f404ff08fa7bc314777203b7dc22a93
  #define       PREFETCH_STATUS_FIFO_CNT(val)   ((val >> 24) & 0x7F)
  #define       STATUS_BUFF_EMPTY               0x00000001
  
- #define OMAP24XX_DMA_GPMC             4
  #define SECTOR_BYTES          512
  /* 4 bit padding to make byte aligned, 56 = 52 + 4 */
  #define BCH4_BIT_PAD          4
@@@ -1657,11 -1655,8 +1655,11 @@@ static int omap_get_dt_info(struct devi
  
        /* detect availability of ELM module. Won't be present pre-OMAP4 */
        info->elm_of_node = of_parse_phandle(child, "ti,elm-id", 0);
 -      if (!info->elm_of_node)
 -              dev_dbg(dev, "ti,elm-id not in DT\n");
 +      if (!info->elm_of_node) {
 +              info->elm_of_node = of_parse_phandle(child, "elm_id", 0);
 +              if (!info->elm_of_node)
 +                      dev_dbg(dev, "ti,elm-id not in DT\n");
 +      }
  
        /* select ecc-scheme for NAND */
        if (of_property_read_string(child, "ti,nand-ecc-opt", &s)) {
@@@ -1811,7 -1806,6 +1809,6 @@@ static int omap_nand_probe(struct platf
        struct nand_chip                *nand_chip;
        int                             err;
        dma_cap_mask_t                  mask;
-       unsigned                        sig;
        struct resource                 *res;
        struct device                   *dev = &pdev->dev;
        int                             min_oobbytes = BADBLOCK_MARKER_LENGTH;
        case NAND_OMAP_PREFETCH_DMA:
                dma_cap_zero(mask);
                dma_cap_set(DMA_SLAVE, mask);
-               sig = OMAP24XX_DMA_GPMC;
-               info->dma = dma_request_channel(mask, omap_dma_filter_fn, &sig);
-               if (!info->dma) {
+               info->dma = dma_request_chan(pdev->dev.parent, "rxtx");
+               if (IS_ERR(info->dma)) {
                        dev_err(&pdev->dev, "DMA engine request failed\n");
-                       err = -ENXIO;
+                       err = PTR_ERR(info->dma);
                        goto return_error;
                } else {
                        struct dma_slave_config cfg;
This page took 0.052484 seconds and 5 git commands to generate.