kernel: revert a faulty upstream commit that was added with the spi-nor/m25p80 backport (fixes #20971)
kernel: revert a faulty upstream commit that was added with the spi-nor/m25p80 backport (fixes #20971)

Signed-off-by: Felix Fietkau <nbd@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@47664 3c298f89-4303-0410-b956-a3cf2f4a3e73

  From: Felix Fietkau <nbd@openwrt.org>
  Date: Thu, 26 Nov 2015 17:03:46 +0100
  Subject: [PATCH] Revert "mtd: spi-nor: disable protection for Winbond flash at
  startup"
 
  This reverts commit c6fc2171b249e73745c497b578b417a2946f1b2f.
 
  This commit is breaking read access on at least s25fl064k, but also
  possibly other Spansion flash chips.
 
  Any mtd read seems to succeed, but simply returns a zero-filled buffer.
 
  Signed-off-by: Felix Fietkau <nbd@openwrt.org>
  ---
 
  --- a/drivers/mtd/spi-nor/spi-nor.c
  +++ b/drivers/mtd/spi-nor/spi-nor.c
  @@ -1194,14 +1194,13 @@ int spi_nor_scan(struct spi_nor *nor, co
  mutex_init(&nor->lock);
 
  /*
  - * Atmel, SST, Intel/Numonyx, and others serial NOR tend to power up
  - * with the software protection bits set
  + * Atmel, SST and Intel/Numonyx serial nor tend to power
  + * up with the software protection bits set
  */
 
  if (JEDEC_MFR(info) == SNOR_MFR_ATMEL ||
  JEDEC_MFR(info) == SNOR_MFR_INTEL ||
  - JEDEC_MFR(info) == SNOR_MFR_SST ||
  - JEDEC_MFR(info) == SNOR_MFR_WINBOND) {
  + JEDEC_MFR(info) == SNOR_MFR_SST) {
  write_enable(nor);
  write_sr(nor, 0);
  }
 
Disable software protection bits for Macronix flashes. Disable software protection bits for Macronix flashes.
   
Signed-off-by: Felix Fietkau <nbd@openwrt.org> Signed-off-by: Felix Fietkau <nbd@openwrt.org>
   
--- a/drivers/mtd/spi-nor/spi-nor.c --- a/drivers/mtd/spi-nor/spi-nor.c
+++ b/drivers/mtd/spi-nor/spi-nor.c +++ b/drivers/mtd/spi-nor/spi-nor.c
@@ -1200,6 +1200,7 @@ int spi_nor_scan(struct spi_nor *nor, co @@ -1200,6 +1200,7 @@ int spi_nor_scan(struct spi_nor *nor, co
if (JEDEC_MFR(info) == SNOR_MFR_ATMEL || if (JEDEC_MFR(info) == SNOR_MFR_ATMEL ||
JEDEC_MFR(info) == SNOR_MFR_INTEL || JEDEC_MFR(info) == SNOR_MFR_INTEL ||
+ JEDEC_MFR(info) == SNOR_MFR_MACRONIX || + JEDEC_MFR(info) == SNOR_MFR_MACRONIX ||
JEDEC_MFR(info) == SNOR_MFR_SST || JEDEC_MFR(info) == SNOR_MFR_SST) {
JEDEC_MFR(info) == SNOR_MFR_WINBOND) {  
write_enable(nor); write_enable(nor);
  write_sr(nor, 0);
   
  From: Felix Fietkau <nbd@openwrt.org>
  Date: Thu, 26 Nov 2015 17:03:46 +0100
  Subject: [PATCH] Revert "mtd: spi-nor: disable protection for Winbond flash at
  startup"
 
  This reverts commit c6fc2171b249e73745c497b578b417a2946f1b2f.
 
  This commit is breaking read access on at least s25fl064k, but also
  possibly other Spansion flash chips.
 
  Any mtd read seems to succeed, but simply returns a zero-filled buffer.
 
  Signed-off-by: Felix Fietkau <nbd@openwrt.org>
  ---
 
  --- a/drivers/mtd/spi-nor/spi-nor.c
  +++ b/drivers/mtd/spi-nor/spi-nor.c
  @@ -1194,14 +1194,13 @@ int spi_nor_scan(struct spi_nor *nor, co
  mutex_init(&nor->lock);
 
  /*
  - * Atmel, SST, Intel/Numonyx, and others serial NOR tend to power up
  - * with the software protection bits set
  + * Atmel, SST and Intel/Numonyx serial nor tend to power
  + * up with the software protection bits set
  */
 
  if (JEDEC_MFR(info) == SNOR_MFR_ATMEL ||
  JEDEC_MFR(info) == SNOR_MFR_INTEL ||
  - JEDEC_MFR(info) == SNOR_MFR_SST ||
  - JEDEC_MFR(info) == SNOR_MFR_WINBOND) {
  + JEDEC_MFR(info) == SNOR_MFR_SST) {
  write_enable(nor);
  write_sr(nor, 0);
  }
 
Disable software protection bits for Macronix flashes. Disable software protection bits for Macronix flashes.
   
Signed-off-by: Felix Fietkau <nbd@openwrt.org> Signed-off-by: Felix Fietkau <nbd@openwrt.org>
   
--- a/drivers/mtd/spi-nor/spi-nor.c --- a/drivers/mtd/spi-nor/spi-nor.c
+++ b/drivers/mtd/spi-nor/spi-nor.c +++ b/drivers/mtd/spi-nor/spi-nor.c
@@ -1200,6 +1200,7 @@ int spi_nor_scan(struct spi_nor *nor, co @@ -1200,6 +1200,7 @@ int spi_nor_scan(struct spi_nor *nor, co
if (JEDEC_MFR(info) == SNOR_MFR_ATMEL || if (JEDEC_MFR(info) == SNOR_MFR_ATMEL ||
JEDEC_MFR(info) == SNOR_MFR_INTEL || JEDEC_MFR(info) == SNOR_MFR_INTEL ||
+ JEDEC_MFR(info) == SNOR_MFR_MACRONIX || + JEDEC_MFR(info) == SNOR_MFR_MACRONIX ||
JEDEC_MFR(info) == SNOR_MFR_SST || JEDEC_MFR(info) == SNOR_MFR_SST) {
JEDEC_MFR(info) == SNOR_MFR_WINBOND) {  
write_enable(nor); write_enable(nor);
  write_sr(nor, 0);
   
comments