can't erase "sharp".
Takashi YOSHII
takasi-y at ops.dti.ne.jp
Thu May 16 12:17:32 EDT 2002
I'm using drivers/mtd/chip/sharp.c (I know it's "obsolete", though).
And, found "eraseall" command doesn't work upon it.
The operation stops at 0%, and the command never exit.
I added few lines(see the patch below), and it works, perhaps...
I'm not sure if it is correct (especially when signals received).
Could someone tell me the right answer, please?
Regards,
/ yoshii
Index: drivers/mtd/chips/sharp.c
===================================================================
RCS file: /home/cvs/mtd/drivers/mtd/chips/sharp.c,v
retrieving revision 1.7
diff -u -r1.7 sharp.c
--- drivers/mtd/chips/sharp.c 13 Feb 2002 15:49:07 -0000 1.7
+++ drivers/mtd/chips/sharp.c 16 May 2002 15:25:33 -0000
@@ -409,7 +409,10 @@
while(len){
ret = sharp_erase_oneblock(map, &sharp->chips[chipnum], adr);
- if(ret)return ret;
+ if(ret){
+ instr->state = MTD_ERASE_FAILED;
+ return ret;
+ }
adr += mtd->erasesize;
len -= mtd->erasesize;
@@ -421,6 +424,7 @@
}
}
+ instr->state = MTD_ERASE_DONE;
if(instr->callback)
instr->callback(instr);
More information about the linux-mtd
mailing list