Fix some more style violations (mostly mis-indented case statements),
and reduce the scope of some variables.

Signed-off-by: Mario Six <mario....@gdsys.cc>
---

 drivers/mtd/cfi_flash.c | 610 ++++++++++++++++++++++++------------------------
 1 file changed, 305 insertions(+), 305 deletions(-)

diff --git a/drivers/mtd/cfi_flash.c b/drivers/mtd/cfi_flash.c
index 18be3bee53..2445632580 100644
--- a/drivers/mtd/cfi_flash.c
+++ b/drivers/mtd/cfi_flash.c
@@ -183,10 +183,10 @@ __maybe_weak u64 flash_read64(void *addr)
 flash_info_t *flash_get_info(ulong base)
 {
        int i;
-       flash_info_t *info;
 
        for (i = 0; i < CONFIG_SYS_MAX_FLASH_BANKS; i++) {
-               info = &flash_info[i];
+               flash_info_t *info = &flash_info[i];
+
                if (info->size && info->start[0] <= base &&
                    base <= info->start[0] + info->size - 1)
                        return info;
@@ -226,8 +226,6 @@ static inline void flash_unmap(flash_info_t *info, 
flash_sect_t sect,
 static void flash_make_cmd(flash_info_t *info, u32 cmd, void *cmdbuf)
 {
        int i;
-       int cword_offset;
-       int cp_offset;
 #if defined(__LITTLE_ENDIAN) || defined(CONFIG_SYS_WRITE_SWAPPED_DATA)
        u32 cmd_le = cpu_to_le32(cmd);
 #endif
@@ -235,7 +233,8 @@ static void flash_make_cmd(flash_info_t *info, u32 cmd, 
void *cmdbuf)
        uchar *cp = (uchar *)cmdbuf;
 
        for (i = info->portwidth; i > 0; i--) {
-               cword_offset = (info->portwidth - i) % info->chipwidth;
+               int cp_offset;
+               int cword_offset = (info->portwidth - i) % info->chipwidth;
 #if defined(__LITTLE_ENDIAN) || defined(CONFIG_SYS_WRITE_SWAPPED_DATA)
                cp_offset = info->portwidth - i;
                val = *((uchar *)&cmd_le + cword_offset);
@@ -1072,96 +1071,94 @@ int flash_erase(flash_info_t *info, int s_first, int 
s_last)
        }
 
        for (sect = s_first; sect <= s_last; sect++) {
+#ifdef CONFIG_SYS_FLASH_CHECK_BLANK_BEFORE_ERASE
+               int k;
+               int size;
+               int erased;
+               u32 *flash;
+#endif
+
                if (ctrlc()) {
                        printf("\n");
                        return 1;
                }
 
-               if (info->protect[sect] == 0) { /* not protected */
-#ifdef CONFIG_SYS_FLASH_CHECK_BLANK_BEFORE_ERASE
-                       int k;
-                       int size;
-                       int erased;
-                       u32 *flash;
+               if (info->protect[sect] != 0)
+                       continue;
 
-                       /*
-                        * Check if whole sector is erased
-                        */
-                       size = flash_sector_size(info, sect);
-                       erased = 1;
-                       flash = (u32 *)info->start[sect];
-                       /* divide by 4 for longword access */
-                       size = size >> 2;
-                       for (k = 0; k < size; k++) {
-                               if (flash_read32(flash++) != 0xffffffff) {
-                                       erased = 0;
-                                       break;
-                               }
-                       }
-                       if (erased) {
-                               if (flash_verbose)
-                                       putc(',');
-                               continue;
+#ifdef CONFIG_SYS_FLASH_CHECK_BLANK_BEFORE_ERASE
+               /*
+                * Check if whole sector is erased
+                */
+               size = flash_sector_size(info, sect);
+               erased = 1;
+               flash = (u32 *)info->start[sect];
+               /* divide by 4 for longword access */
+               size = size >> 2;
+               for (k = 0; k < size; k++) {
+                       if (flash_read32(flash++) != 0xffffffff) {
+                               erased = 0;
+                               break;
                        }
+               }
+               if (erased) {
+                       if (flash_verbose)
+                               putc(',');
+                       continue;
+               }
 #endif
-                       switch (info->vendor) {
-                       case CFI_CMDSET_INTEL_PROG_REGIONS:
-                       case CFI_CMDSET_INTEL_STANDARD:
-                       case CFI_CMDSET_INTEL_EXTENDED:
-                               flash_write_cmd(info, sect, 0,
-                                               FLASH_CMD_CLEAR_STATUS);
-                               flash_write_cmd(info, sect, 0,
-                                               FLASH_CMD_BLOCK_ERASE);
-                               flash_write_cmd(info, sect, 0,
-                                               FLASH_CMD_ERASE_CONFIRM);
-                               break;
-                       case CFI_CMDSET_AMD_STANDARD:
-                       case CFI_CMDSET_AMD_EXTENDED:
-                               flash_unlock_seq(info, sect);
-                               flash_write_cmd(info, sect,
-                                               info->addr_unlock1,
-                                               AMD_CMD_ERASE_START);
-                               flash_unlock_seq(info, sect);
-                               flash_write_cmd(info, sect, 0,
-                                               info->cmd_erase_sector);
-                               break;
+               switch (info->vendor) {
+               case CFI_CMDSET_INTEL_PROG_REGIONS:
+               case CFI_CMDSET_INTEL_STANDARD:
+               case CFI_CMDSET_INTEL_EXTENDED:
+                       flash_write_cmd(info, sect, 0, FLASH_CMD_CLEAR_STATUS);
+                       flash_write_cmd(info, sect, 0, FLASH_CMD_BLOCK_ERASE);
+                       flash_write_cmd(info, sect, 0, FLASH_CMD_ERASE_CONFIRM);
+                       break;
+               case CFI_CMDSET_AMD_STANDARD:
+               case CFI_CMDSET_AMD_EXTENDED:
+                       flash_unlock_seq(info, sect);
+                       flash_write_cmd(info, sect, info->addr_unlock1,
+                                       AMD_CMD_ERASE_START);
+                       flash_unlock_seq(info, sect);
+                       flash_write_cmd(info, sect, 0, info->cmd_erase_sector);
+                       break;
 #ifdef CONFIG_FLASH_CFI_LEGACY
-                       case CFI_CMDSET_AMD_LEGACY:
-                               flash_unlock_seq(info, 0);
-                               flash_write_cmd(info, 0, info->addr_unlock1,
-                                               AMD_CMD_ERASE_START);
-                               flash_unlock_seq(info, 0);
-                               flash_write_cmd(info, sect, 0,
-                                               AMD_CMD_ERASE_SECTOR);
-                               break;
+               case CFI_CMDSET_AMD_LEGACY:
+                       flash_unlock_seq(info, 0);
+                       flash_write_cmd(info, 0, info->addr_unlock1,
+                                       AMD_CMD_ERASE_START);
+                       flash_unlock_seq(info, 0);
+                       flash_write_cmd(info, sect, 0,
+                                       AMD_CMD_ERASE_SECTOR);
+                       break;
 #endif
-                       default:
-                               debug("Unknown flash vendor %d\n",
-                                     info->vendor);
-                               break;
-                       }
-
-                       if (use_flash_status_poll(info)) {
-                               cfiword_t cword;
-                               void *dest;
+               default:
+                       debug("Unknown flash vendor %d\n",
+                             info->vendor);
+                       break;
+               }
 
-                               cword.w64 = 0xffffffffffffffffULL;
-                               dest = flash_map(info, sect, 0);
-                               st = flash_status_poll(info, &cword, dest,
-                                                      info->erase_blk_tout,
-                                                      "erase");
-                               flash_unmap(info, sect, 0, dest);
-                       } else {
-                               st = flash_full_status_check(info, sect,
-                                                            
info->erase_blk_tout,
-                                                            "erase");
-                       }
+               if (use_flash_status_poll(info)) {
+                       cfiword_t cword;
+                       void *dest;
 
-                       if (st)
-                               rcode = 1;
-                       else if (flash_verbose)
-                               putc('.');
+                       cword.w64 = 0xffffffffffffffffULL;
+                       dest = flash_map(info, sect, 0);
+                       st = flash_status_poll(info, &cword, dest,
+                                              info->erase_blk_tout,
+                                              "erase");
+                       flash_unmap(info, sect, 0, dest);
+               } else {
+                       st = flash_full_status_check(info, sect,
+                                                    info->erase_blk_tout,
+                                                    "erase");
                }
+
+               if (st)
+                       rcode = 1;
+               else if (flash_verbose)
+                       putc('.');
        }
 
        if (flash_verbose)
@@ -1335,7 +1332,8 @@ int write_buff(flash_info_t *info, uchar *src, ulong 
addr, ulong cnt)
        wp = (addr & ~(info->portwidth - 1));
 
        /* handle unaligned start */
-       if ((aln = addr - wp) != 0) {
+       aln = addr - wp;
+       if (aln != 0) {
                cword.w32 = 0;
                p = (uchar *)wp;
                for (i = 0; i < aln; ++i)
@@ -1366,7 +1364,8 @@ int write_buff(flash_info_t *info, uchar *src, ulong 
addr, ulong cnt)
                        cword.w32 = 0;
                        for (i = 0; i < info->portwidth; i++)
                                flash_add_byte(info, &cword, *src++);
-                       if ((rc = flash_write_cfiword(info, wp, cword)) != 0)
+                       rc = flash_write_cfiword(info, wp, cword);
+                       if (rc != 0)
                                return rc;
                        wp += info->portwidth;
                        cnt -= info->portwidth;
@@ -1377,7 +1376,8 @@ int write_buff(flash_info_t *info, uchar *src, ulong 
addr, ulong cnt)
                i = buffered_size - (wp % buffered_size);
                if (i > cnt)
                        i = cnt;
-               if ((rc = flash_write_cfibuffer(info, wp, src, i)) != ERR_OK)
+               rc = flash_write_cfibuffer(info, wp, src, i);
+               if (rc != ERR_OK)
                        return rc;
                i -= i & (info->portwidth - 1);
                wp += i;
@@ -1393,7 +1393,8 @@ int write_buff(flash_info_t *info, uchar *src, ulong 
addr, ulong cnt)
                cword.w32 = 0;
                for (i = 0; i < info->portwidth; i++)
                        flash_add_byte(info, &cword, *src++);
-               if ((rc = flash_write_cfiword(info, wp, cword)) != 0)
+               rc = flash_write_cfiword(info, wp, cword);
+               if (rc != 0)
                        return rc;
                wp += info->portwidth;
                cnt -= info->portwidth;
@@ -1567,9 +1568,9 @@ int flash_real_protect(flash_info_t *info, long sector, 
int prot)
         * flash_full_status_check() to work correctly
         */
        flash_write_cmd(info, sector, 0, FLASH_CMD_READ_STATUS);
-       if ((retcode =
-            flash_full_status_check(info, sector, info->erase_blk_tout,
-                                    prot ? "protect" : "unprotect")) == 0) {
+       retcode = flash_full_status_check(info, sector, info->erase_blk_tout,
+                                         prot ? "protect" : "unprotect");
+       if (retcode == 0) {
                info->protect[sector] = prot;
 
                /*
@@ -1682,22 +1683,22 @@ static int cmdset_intel_init(flash_info_t *info, struct 
cfi_qry *qry)
 
 static void cmdset_amd_read_jedec_ids(flash_info_t *info)
 {
-       ushort bankId = 0;
-       uchar manuId;
+       ushort bank_id = 0;
+       uchar manu_id;
 
        flash_write_cmd(info, 0, 0, AMD_CMD_RESET);
        flash_unlock_seq(info, 0);
        flash_write_cmd(info, 0, info->addr_unlock1, FLASH_CMD_READ_ID);
        udelay(1000); /* some flash are slow to respond */
 
-       manuId = flash_read_uchar (info, FLASH_OFFSET_MANUFACTURER_ID);
+       manu_id = flash_read_uchar (info, FLASH_OFFSET_MANUFACTURER_ID);
        /* JEDEC JEP106Z specifies ID codes up to bank 7 */
-       while (manuId == FLASH_CONTINUATION_CODE && bankId < 0x800) {
-               bankId += 0x100;
-               manuId = flash_read_uchar(info,
-                                         bankId | 
FLASH_OFFSET_MANUFACTURER_ID);
+       while (manu_id == FLASH_CONTINUATION_CODE && bank_id < 0x800) {
+               bank_id += 0x100;
+               manu_id = flash_read_uchar(info,
+                                          bank_id | 
FLASH_OFFSET_MANUFACTURER_ID);
        }
-       info->manufacturer_id = manuId;
+       info->manufacturer_id = manu_id;
 
        switch (info->chipwidth) {
        case FLASH_CFI_8BIT:
@@ -1870,7 +1871,7 @@ static void __flash_cmd_reset(flash_info_t *info)
 }
 
 void flash_cmd_reset(flash_info_t *info)
-       __attribute__((weak,alias("__flash_cmd_reset")));
+       __attribute__((weak, alias("__flash_cmd_reset")));
 
 static int __flash_detect_cfi(flash_info_t *info, struct cfi_qry *qry)
 {
@@ -2052,8 +2053,6 @@ ulong flash_get_size(phys_addr_t base, int banknum)
        unsigned long tmp;
        int size_ratio;
        uchar num_erase_regions;
-       int erase_region_size;
-       int erase_region_count;
        struct cfi_qry qry;
        unsigned long max_size;
 
@@ -2067,196 +2066,200 @@ ulong flash_get_size(phys_addr_t base, int banknum)
 
        info->start[0] = (ulong)map_physmem(base, info->portwidth, MAP_NOCACHE);
 
-       if (flash_detect_cfi(info, &qry)) {
-               info->vendor = le16_to_cpu(get_unaligned(&qry.p_id));
-               info->ext_addr = le16_to_cpu(get_unaligned(&qry.p_adr));
-               num_erase_regions = qry.num_erase_regions;
+       if (!flash_detect_cfi(info, &qry))
+               return info->size;
 
-               if (info->ext_addr) {
-                       info->cfi_version = (ushort)flash_read_uchar (info,
-                                               info->ext_addr + 3) << 8;
-                       info->cfi_version |= (ushort)flash_read_uchar (info,
-                                               info->ext_addr + 4);
-               }
+       info->vendor = le16_to_cpu(get_unaligned(&qry.p_id));
+       info->ext_addr = le16_to_cpu(get_unaligned(&qry.p_adr));
+       num_erase_regions = qry.num_erase_regions;
+
+       if (info->ext_addr) {
+               info->cfi_version = (ushort)flash_read_uchar (info,
+                                       info->ext_addr + 3) << 8;
+               info->cfi_version |= (ushort)flash_read_uchar (info,
+                                       info->ext_addr + 4);
+       }
 
 #ifdef DEBUG
-               flash_printqry(&qry);
+       flash_printqry(&qry);
 #endif
 
-               switch (info->vendor) {
-               case CFI_CMDSET_INTEL_PROG_REGIONS:
-               case CFI_CMDSET_INTEL_STANDARD:
-               case CFI_CMDSET_INTEL_EXTENDED:
-                       cmdset_intel_init(info, &qry);
-                       break;
-               case CFI_CMDSET_AMD_STANDARD:
-               case CFI_CMDSET_AMD_EXTENDED:
-                       cmdset_amd_init(info, &qry);
-                       break;
-               default:
-                       printf("CFI: Unknown command set 0x%x\n",
-                              info->vendor);
-                       /*
-                        * Unfortunately, this means we don't know how
-                        * to get the chip back to Read mode. Might
-                        * as well try an Intel-style reset...
-                        */
-                       flash_write_cmd(info, 0, 0, FLASH_CMD_RESET);
-                       return 0;
-               }
+       switch (info->vendor) {
+       case CFI_CMDSET_INTEL_PROG_REGIONS:
+       case CFI_CMDSET_INTEL_STANDARD:
+       case CFI_CMDSET_INTEL_EXTENDED:
+               cmdset_intel_init(info, &qry);
+               break;
+       case CFI_CMDSET_AMD_STANDARD:
+       case CFI_CMDSET_AMD_EXTENDED:
+               cmdset_amd_init(info, &qry);
+               break;
+       default:
+               printf("CFI: Unknown command set 0x%x\n",
+                      info->vendor);
+               /*
+                * Unfortunately, this means we don't know how
+                * to get the chip back to Read mode. Might
+                * as well try an Intel-style reset...
+                */
+               flash_write_cmd(info, 0, 0, FLASH_CMD_RESET);
+               return 0;
+       }
 
-               /* Do manufacturer-specific fixups */
-               switch (info->manufacturer_id) {
-               case 0x0001: /* AMD */
-               case 0x0037: /* AMIC */
-                       flash_fixup_amd(info, &qry);
-                       break;
-               case 0x001f:
-                       flash_fixup_atmel(info, &qry);
-                       break;
-               case 0x0020:
-                       flash_fixup_stm(info, &qry);
-                       break;
-               case 0x00bf: /* SST */
-                       flash_fixup_sst(info, &qry);
-                       break;
-               case 0x0089: /* Numonyx */
-                       flash_fixup_num(info, &qry);
+       /* Do manufacturer-specific fixups */
+       switch (info->manufacturer_id) {
+       case 0x0001: /* AMD */
+       case 0x0037: /* AMIC */
+               flash_fixup_amd(info, &qry);
+               break;
+       case 0x001f:
+               flash_fixup_atmel(info, &qry);
+               break;
+       case 0x0020:
+               flash_fixup_stm(info, &qry);
+               break;
+       case 0x00bf: /* SST */
+               flash_fixup_sst(info, &qry);
+               break;
+       case 0x0089: /* Numonyx */
+               flash_fixup_num(info, &qry);
+               break;
+       }
+
+       debug("manufacturer is %d\n", info->vendor);
+       debug("manufacturer id is 0x%x\n", info->manufacturer_id);
+       debug("device id is 0x%x\n", info->device_id);
+       debug("device id2 is 0x%x\n", info->device_id2);
+       debug("cfi version is 0x%04x\n", info->cfi_version);
+
+       size_ratio = info->portwidth / info->chipwidth;
+       /* if the chip is x8/x16 reduce the ratio by half */
+       if ((info->interface == FLASH_CFI_X8X16) &&
+           (info->chipwidth == FLASH_CFI_BY8)) {
+               size_ratio >>= 1;
+       }
+       debug("size_ratio %d port %d bits chip %d bits\n",
+             size_ratio, info->portwidth << CFI_FLASH_SHIFT_WIDTH,
+             info->chipwidth << CFI_FLASH_SHIFT_WIDTH);
+       info->size = 1 << qry.dev_size;
+       /* multiply the size by the number of chips */
+       info->size *= size_ratio;
+       max_size = cfi_flash_bank_size(banknum);
+       if (max_size && (info->size > max_size)) {
+               debug("[truncated from %ldMiB]", info->size >> 20);
+               info->size = max_size;
+       }
+       debug("found %d erase regions\n", num_erase_regions);
+       sect_cnt = 0;
+       sector = base;
+       for (i = 0; i < num_erase_regions; i++) {
+               int erase_region_size;
+               int erase_region_count;
+
+               if (i > NUM_ERASE_REGIONS) {
+                       printf("%d erase regions found, only %d used\n",
+                              num_erase_regions, NUM_ERASE_REGIONS);
                        break;
                }
 
-               debug("manufacturer is %d\n", info->vendor);
-               debug("manufacturer id is 0x%x\n", info->manufacturer_id);
-               debug("device id is 0x%x\n", info->device_id);
-               debug("device id2 is 0x%x\n", info->device_id2);
-               debug("cfi version is 0x%04x\n", info->cfi_version);
-
-               size_ratio = info->portwidth / info->chipwidth;
-               /* if the chip is x8/x16 reduce the ratio by half */
-               if ((info->interface == FLASH_CFI_X8X16) &&
-                   (info->chipwidth == FLASH_CFI_BY8)) {
-                       size_ratio >>= 1;
-               }
-               debug("size_ratio %d port %d bits chip %d bits\n",
-                     size_ratio, info->portwidth << CFI_FLASH_SHIFT_WIDTH,
-                     info->chipwidth << CFI_FLASH_SHIFT_WIDTH);
-               info->size = 1 << qry.dev_size;
-               /* multiply the size by the number of chips */
-               info->size *= size_ratio;
-               max_size = cfi_flash_bank_size(banknum);
-               if (max_size && (info->size > max_size)) {
-                       debug("[truncated from %ldMiB]", info->size >> 20);
-                       info->size = max_size;
-               }
-               debug("found %d erase regions\n", num_erase_regions);
-               sect_cnt = 0;
-               sector = base;
-               for (i = 0; i < num_erase_regions; i++) {
-                       if (i > NUM_ERASE_REGIONS) {
-                               printf("%d erase regions found, only %d used\n",
-                                      num_erase_regions, NUM_ERASE_REGIONS);
+               tmp = le32_to_cpu(get_unaligned(
+                                       &qry.erase_region_info[i]));
+               debug("erase region %u: 0x%08lx\n", i, tmp);
+
+               erase_region_count = (tmp & 0xffff) + 1;
+               tmp >>= 16;
+               erase_region_size =
+                       (tmp & 0xffff) ? ((tmp & 0xffff) * 256) : 128;
+               debug("erase_region_count = %d erase_region_size = %d\n",
+                     erase_region_count, erase_region_size);
+               for (j = 0; j < erase_region_count; j++) {
+                       if (sector - base >= info->size)
+                               break;
+                       if (sect_cnt >= CONFIG_SYS_MAX_FLASH_SECT) {
+                               printf("ERROR: too many flash sectors\n");
                                break;
                        }
+                       info->start[sect_cnt] =
+                               (ulong)map_physmem(sector,
+                                                  info->portwidth,
+                                                  MAP_NOCACHE);
+                       sector += (erase_region_size * size_ratio);
 
-                       tmp = le32_to_cpu(get_unaligned(
-                                               &qry.erase_region_info[i]));
-                       debug("erase region %u: 0x%08lx\n", i, tmp);
-
-                       erase_region_count = (tmp & 0xffff) + 1;
-                       tmp >>= 16;
-                       erase_region_size =
-                               (tmp & 0xffff) ? ((tmp & 0xffff) * 256) : 128;
-                       debug("erase_region_count = %d erase_region_size = 
%d\n",
-                             erase_region_count, erase_region_size);
-                       for (j = 0; j < erase_region_count; j++) {
-                               if (sector - base >= info->size)
-                                       break;
-                               if (sect_cnt >= CONFIG_SYS_MAX_FLASH_SECT) {
-                                       printf("ERROR: too many flash 
sectors\n");
-                                       break;
-                               }
-                               info->start[sect_cnt] =
-                                       (ulong)map_physmem(sector,
-                                                          info->portwidth,
-                                                          MAP_NOCACHE);
-                               sector += (erase_region_size * size_ratio);
-
+                       /*
+                        * Only read protection status from
+                        * supported devices (intel...)
+                        */
+                       switch (info->vendor) {
+                       case CFI_CMDSET_INTEL_PROG_REGIONS:
+                       case CFI_CMDSET_INTEL_EXTENDED:
+                       case CFI_CMDSET_INTEL_STANDARD:
                                /*
-                                * Only read protection status from
-                                * supported devices (intel...)
+                                * Set flash to read-id mode. Otherwise
+                                * reading protected status is not
+                                * guaranteed.
                                 */
-                               switch (info->vendor) {
-                               case CFI_CMDSET_INTEL_PROG_REGIONS:
-                               case CFI_CMDSET_INTEL_EXTENDED:
-                               case CFI_CMDSET_INTEL_STANDARD:
-                                       /*
-                                        * Set flash to read-id mode. Otherwise
-                                        * reading protected status is not
-                                        * guaranteed.
-                                        */
-                                       flash_write_cmd(info, sect_cnt, 0,
-                                                       FLASH_CMD_READ_ID);
-                                       info->protect[sect_cnt] =
-                                               flash_isset(info, sect_cnt,
-                                                           
FLASH_OFFSET_PROTECT,
-                                                           
FLASH_STATUS_PROTECT);
-                                       flash_write_cmd(info, sect_cnt, 0,
-                                                       FLASH_CMD_RESET);
-                                       break;
-                               case CFI_CMDSET_AMD_EXTENDED:
-                               case CFI_CMDSET_AMD_STANDARD:
-                                       if (!info->legacy_unlock) {
-                                               /* default: not protected */
-                                               info->protect[sect_cnt] = 0;
-                                               break;
-                                       }
-
-                                       /* Read protection (PPB) from sector */
-                                       flash_write_cmd(info, 0, 0,
-                                                       info->cmd_reset);
-                                       flash_unlock_seq(info, 0);
-                                       flash_write_cmd(info, 0,
-                                                       info->addr_unlock1,
-                                                       FLASH_CMD_READ_ID);
-                                       info->protect[sect_cnt] =
-                                               flash_isset(
-                                                       info, sect_cnt,
-                                                       FLASH_OFFSET_PROTECT,
-                                                       FLASH_STATUS_PROTECT);
-                                       break;
-                               default:
+                               flash_write_cmd(info, sect_cnt, 0,
+                                               FLASH_CMD_READ_ID);
+                               info->protect[sect_cnt] =
+                                       flash_isset(info, sect_cnt,
+                                                   FLASH_OFFSET_PROTECT,
+                                                   FLASH_STATUS_PROTECT);
+                               flash_write_cmd(info, sect_cnt, 0,
+                                               FLASH_CMD_RESET);
+                               break;
+                       case CFI_CMDSET_AMD_EXTENDED:
+                       case CFI_CMDSET_AMD_STANDARD:
+                               if (!info->legacy_unlock) {
                                        /* default: not protected */
                                        info->protect[sect_cnt] = 0;
+                                       break;
                                }
 
-                               sect_cnt++;
+                               /* Read protection (PPB) from sector */
+                               flash_write_cmd(info, 0, 0,
+                                               info->cmd_reset);
+                               flash_unlock_seq(info, 0);
+                               flash_write_cmd(info, 0,
+                                               info->addr_unlock1,
+                                               FLASH_CMD_READ_ID);
+                               info->protect[sect_cnt] =
+                                       flash_isset(
+                                               info, sect_cnt,
+                                               FLASH_OFFSET_PROTECT,
+                                               FLASH_STATUS_PROTECT);
+                               break;
+                       default:
+                               /* default: not protected */
+                               info->protect[sect_cnt] = 0;
                        }
-               }
 
-               info->sector_count = sect_cnt;
-               info->buffer_size = 1 << le16_to_cpu(qry.max_buf_write_size);
-               tmp = 1 << qry.block_erase_timeout_typ;
-               info->erase_blk_tout = tmp *
-                       (1 << qry.block_erase_timeout_max);
-               tmp = (1 << qry.buf_write_timeout_typ) *
-                       (1 << qry.buf_write_timeout_max);
-
-               /* round up when converting to ms */
-               info->buffer_write_tout = (tmp + 999) / 1000;
-               tmp = (1 << qry.word_write_timeout_typ) *
-                       (1 << qry.word_write_timeout_max);
-               /* round up when converting to ms */
-               info->write_tout = (tmp + 999) / 1000;
-               info->flash_id = FLASH_MAN_CFI;
-               if ((info->interface == FLASH_CFI_X8X16) &&
-                   (info->chipwidth == FLASH_CFI_BY8)) {
-                       /* XXX - Need to test on x8/x16 in parallel. */
-                       info->portwidth >>= 1;
+                       sect_cnt++;
                }
+       }
 
-               flash_write_cmd(info, 0, 0, info->cmd_reset);
+       info->sector_count = sect_cnt;
+       info->buffer_size = 1 << le16_to_cpu(qry.max_buf_write_size);
+       tmp = 1 << qry.block_erase_timeout_typ;
+       info->erase_blk_tout = tmp *
+               (1 << qry.block_erase_timeout_max);
+       tmp = (1 << qry.buf_write_timeout_typ) *
+               (1 << qry.buf_write_timeout_max);
+
+       /* round up when converting to ms */
+       info->buffer_write_tout = (tmp + 999) / 1000;
+       tmp = (1 << qry.word_write_timeout_typ) *
+               (1 << qry.word_write_timeout_max);
+       /* round up when converting to ms */
+       info->write_tout = (tmp + 999) / 1000;
+       info->flash_id = FLASH_MAN_CFI;
+       if ((info->interface == FLASH_CFI_X8X16) &&
+           (info->chipwidth == FLASH_CFI_BY8)) {
+               /* XXX - Need to test on x8/x16 in parallel. */
+               info->portwidth >>= 1;
        }
 
+       flash_write_cmd(info, 0, 0, info->cmd_reset);
+
        return info->size;
 }
 
@@ -2375,54 +2378,51 @@ unsigned long flash_init(void)
                               i + 1, flash_info[i].size,
                               flash_info[i].size >> 20);
 #endif /* CONFIG_SYS_FLASH_QUIET_TEST */
+                       continue;
                }
 #ifdef CONFIG_SYS_FLASH_PROTECTION
-               else if (strcmp(s, "yes") == 0) {
+               if (strcmp(s, "yes") != 0)
+                       continue;
+
+               /*
+                * Only the U-Boot image and it's environment is protected, all
+                * other sectors are unprotected (unlocked) if flash hardware
+                * protection is used (CONFIG_SYS_FLASH_PROTECTION) and the
+                * environment variable "unlock" is set to "yes".
+                */
+               if (flash_info[i].legacy_unlock) {
+                       int k;
+
                        /*
-                        * Only the U-Boot image and it's environment
-                        * is protected, all other sectors are
-                        * unprotected (unlocked) if flash hardware
-                        * protection is used (CONFIG_SYS_FLASH_PROTECTION)
-                        * and the environment variable "unlock" is
-                        * set to "yes".
+                        * Disable legacy_unlock temporarily, since
+                        * flash_real_protect would relock all other sectors
+                        * again otherwise.
                         */
-                       if (flash_info[i].legacy_unlock) {
-                               int k;
+                       flash_info[i].legacy_unlock = 0;
 
-                               /*
-                                * Disable legacy_unlock temporarily,
-                                * since flash_real_protect would
-                                * relock all other sectors again
-                                * otherwise.
-                                */
-                               flash_info[i].legacy_unlock = 0;
+                       /*
+                        * Legacy unlocking (e.g. Intel J3) -> unlock only one
+                        * sector. This will unlock all sectors.
+                        */
+                       flash_real_protect(&flash_info[i], 0, 0);
 
-                               /*
-                                * Legacy unlocking (e.g. Intel J3) ->
-                                * unlock only one sector. This will
-                                * unlock all sectors.
-                                */
-                               flash_real_protect(&flash_info[i], 0, 0);
+                       flash_info[i].legacy_unlock = 1;
 
-                               flash_info[i].legacy_unlock = 1;
+                       /*
+                        * Manually mark other sectors as unlocked (unprotected)
+                        */
+                       for (k = 1; k < flash_info[i].sector_count; k++)
+                               flash_info[i].protect[k] = 0;
 
-                               /*
-                                * Manually mark other sectors as
-                                * unlocked (unprotected)
-                                */
-                               for (k = 1; k < flash_info[i].sector_count; k++)
-                                       flash_info[i].protect[k] = 0;
-                       } else {
-                               /*
-                                * No legancy unlocking -> unlock all sectors
-                                */
-                               flash_protect(FLAG_PROTECT_CLEAR,
-                                             flash_info[i].start[0],
-                                             flash_info[i].start[0]
-                                             + flash_info[i].size - 1,
-                                             &flash_info[i]);
-                       }
+                       continue;
                }
+
+               /*
+                * No legacy unlocking -> unlock all sectors
+                */
+               flash_protect(FLAG_PROTECT_CLEAR, flash_info[i].start[0],
+                             flash_info[i].start[0] + flash_info[i].size - 1,
+                             &flash_info[i]);
 #endif /* CONFIG_SYS_FLASH_PROTECTION */
        }
 
-- 
2.11.0

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot

Reply via email to