kernel: update kernel 4.4 to version 4.4.79
[openwrt/staging/dedeckeh.git] / target / linux / layerscape / patches-4.4 / 1105-mtd-spi-nor-add-DDR-quad-read-support.patch
index bed44b8783cf921baad795faa2304c5a29c6f942..df7e0d82f8fe6ab62cb2dc0c47616cff54077c50 100644 (file)
@@ -31,10 +31,10 @@ Signed-off-by: Yunhui Cui <yunhui.cui@nxp.com>
 -#define       USE_FSR                 0x80    /* use flag status register */
 +#define SPI_NOR_DDR_QUAD_READ 0x80    /* Flash supports DDR Quad Read */
 +#define       USE_FSR                 0x100   /* use flag status register */
+ #define       SPI_NOR_HAS_LOCK        0x100   /* Flash supports lock/unlock via SR */
  };
  
- #define JEDEC_MFR(info)       ((info)->id[0])
-@@ -144,13 +145,17 @@ static int read_cr(struct spi_nor *nor)
+@@ -145,13 +146,17 @@ static int read_cr(struct spi_nor *nor)
   * It can be used to support more commands with
   * different dummy cycle requirements.
   */
@@ -53,7 +53,7 @@ Signed-off-by: Yunhui Cui <yunhui.cui@nxp.com>
        case SPI_NOR_NORMAL:
                return 0;
        }
-@@ -797,7 +802,8 @@ static const struct flash_info spi_nor_i
+@@ -799,7 +804,8 @@ static const struct flash_info spi_nor_i
        { "s70fl01gs",  INFO(0x010221, 0x4d00, 256 * 1024, 256, 0) },
        { "s25sl12800", INFO(0x012018, 0x0300, 256 * 1024,  64, 0) },
        { "s25sl12801", INFO(0x012018, 0x0301,  64 * 1024, 256, 0) },
@@ -63,7 +63,7 @@ Signed-off-by: Yunhui Cui <yunhui.cui@nxp.com>
        { "s25fl129p0", INFO(0x012018, 0x4d00, 256 * 1024,  64, SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
        { "s25fl129p1", INFO(0x012018, 0x4d01,  64 * 1024, 256, SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
        { "s25sl004a",  INFO(0x010212,      0,  64 * 1024,   8, 0) },
-@@ -1186,6 +1192,23 @@ static int spansion_quad_enable(struct s
+@@ -1195,6 +1201,23 @@ static int spansion_quad_enable(struct s
        return 0;
  }
  
@@ -87,7 +87,7 @@ Signed-off-by: Yunhui Cui <yunhui.cui@nxp.com>
  static int set_quad_mode(struct spi_nor *nor, const struct flash_info *info)
  {
        int status;
-@@ -1375,8 +1398,15 @@ int spi_nor_scan(struct spi_nor *nor, co
+@@ -1385,8 +1408,15 @@ int spi_nor_scan(struct spi_nor *nor, co
        if (info->flags & SPI_NOR_NO_FR)
                nor->flash_read = SPI_NOR_NORMAL;
  
@@ -105,7 +105,7 @@ Signed-off-by: Yunhui Cui <yunhui.cui@nxp.com>
                ret = set_quad_mode(nor, info);
                if (ret) {
                        dev_err(dev, "quad mode not supported\n");
-@@ -1389,6 +1419,14 @@ int spi_nor_scan(struct spi_nor *nor, co
+@@ -1399,6 +1429,14 @@ int spi_nor_scan(struct spi_nor *nor, co
  
        /* Default commands */
        switch (nor->flash_read) {
@@ -120,7 +120,7 @@ Signed-off-by: Yunhui Cui <yunhui.cui@nxp.com>
        case SPI_NOR_QUAD:
                nor->read_opcode = SPINOR_OP_READ_1_1_4;
                break;
-@@ -1416,6 +1454,9 @@ int spi_nor_scan(struct spi_nor *nor, co
+@@ -1426,6 +1464,9 @@ int spi_nor_scan(struct spi_nor *nor, co
                if (JEDEC_MFR(info) == SNOR_MFR_SPANSION) {
                        /* Dedicated 4-byte command set */
                        switch (nor->flash_read) {
@@ -130,7 +130,7 @@ Signed-off-by: Yunhui Cui <yunhui.cui@nxp.com>
                        case SPI_NOR_QUAD:
                                nor->read_opcode = SPINOR_OP_READ4_1_1_4;
                                break;
-@@ -1445,7 +1486,7 @@ int spi_nor_scan(struct spi_nor *nor, co
+@@ -1455,7 +1496,7 @@ int spi_nor_scan(struct spi_nor *nor, co
                return -EINVAL;
        }