mtd: jedec_probe: initialise make sector erase command variable

Linux-MTD Mailing List linux-mtd at lists.infradead.org
Fri Mar 11 10:59:01 EST 2011


Gitweb:     http://git.infradead.org/?p=mtd-2.6.git;a=commit;h=ceabebb2bd2672f709e4454e16bc6042732e2dfe
Commit:     ceabebb2bd2672f709e4454e16bc6042732e2dfe
Parent:     efba2e313ea1b1bd69a7c4659263becf43bb1adc
Author:     Antony Pavlov <antony at niisi.msk.ru>
AuthorDate: Fri Feb 11 13:00:37 2011 +0300
Committer:  David Woodhouse <David.Woodhouse at intel.com>
CommitDate: Fri Mar 11 12:05:54 2011 +0000

    mtd: jedec_probe: initialise make sector erase command variable
    
    In the commit 08968041bef437ec363623cd3218c2b083537ada
     (mtd: cfi_cmdset_0002: make sector erase command variable)
    introdused a field sector_erase_cmd. In the same commit initialisation
    of cfi->sector_erase_cmd made in cfi_chip_setup()
    (file drivers/mtd/chips/cfi_probe.c), so the CFI chip has no problem:
    
    ...
            cfi->cfi_mode = CFI_MODE_CFI;
            cfi->sector_erase_cmd = CMD(0x30);
    ...
    
    But for the JEDEC chips this initialisation is not carried out,
    so the JEDEC chips have sector_erase_cmd == 0.
    
    This patch adds the missing initialisation.
    
    Signed-off-by: Antony Pavlov <antony at niisi.msk.ru>
    Acked-by: Guillaume LECERF <glecerf at gmail.com>
    Signed-off-by: David Woodhouse <David.Woodhouse at intel.com>
    CC: stable at kernel.org
---
 drivers/mtd/chips/jedec_probe.c |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/mtd/chips/jedec_probe.c b/drivers/mtd/chips/jedec_probe.c
index 7bedbb9..4e1be51 100644
--- a/drivers/mtd/chips/jedec_probe.c
+++ b/drivers/mtd/chips/jedec_probe.c
@@ -1935,7 +1935,7 @@ static void jedec_reset(u32 base, struct map_info *map, struct cfi_private *cfi)
 }
 
 
-static int cfi_jedec_setup(struct cfi_private *cfi, int index)
+static int cfi_jedec_setup(struct map_info *map, struct cfi_private *cfi, int index)
 {
 	int i,num_erase_regions;
 	uint8_t uaddr;
@@ -1962,6 +1962,7 @@ static int cfi_jedec_setup(struct cfi_private *cfi, int index)
 	cfi->cfiq->NumEraseRegions = jedec_table[index].nr_regions;
 	cfi->cfiq->DevSize = jedec_table[index].dev_size;
 	cfi->cfi_mode = CFI_MODE_JEDEC;
+	cfi->sector_erase_cmd = CMD(0x30);
 
 	for (i=0; i<num_erase_regions; i++){
 		cfi->cfiq->EraseRegionInfo[i] = jedec_table[index].regions[i];
@@ -2175,7 +2176,7 @@ static int jedec_probe_chip(struct map_info *map, __u32 base,
 				       "MTD %s(): matched device 0x%x,0x%x unlock_addrs: 0x%.4x 0x%.4x\n",
 				       __func__, cfi->mfr, cfi->id,
 				       cfi->addr_unlock1, cfi->addr_unlock2 );
-				if (!cfi_jedec_setup(cfi, i))
+				if (!cfi_jedec_setup(map, cfi, i))
 					return 0;
 				goto ok_out;
 			}



More information about the linux-mtd-cvs mailing list