diff -u -r1.68 cfi_cmdset_0002.c --- drivers/mtd/chips/cfi_cmdset_0002.c 21 Apr 2003 23:26:25 -0000 1.68 +++ drivers/mtd/chips/cfi_cmdset_0002.c 5 May 2003 20:21:53 -0000 @@ -925,7 +931,16 @@ DEBUG( MTD_DEBUG_LEVEL3, "MTD %s(): Check 0x%.8x 0x%.8x\n", __func__, oldstatus, status ); - ones = CMD( (__u8)~0 ); + switch(CFIDEV_BUSWIDTH) { + case(CFIDEV_BUSWIDTH_1): ones = (__u8)~0; break; + case(CFIDEV_BUSWIDTH_2): ones = (__u16)~0; break; + case(CFIDEV_BUSWIDTH_3): ones = (__u32)~0; break; + case(CFIDEV_BUSWIDTH_4): ones = (__u64)~0; break; + default: + printk(KERN_WARNING "Unsupported buswidth\n"); + goto erase_failed; + } + ones = CMD( ones ); if ( oldstatus == ones && status == ones ) { /* success - do nothing */ @@ -1095,8 +1111,17 @@ DEBUG( MTD_DEBUG_LEVEL3, "MTD %s(): Check 0x%.8x 0x%.8x\n", __func__, oldstatus, status ); - ones = CMD( (__u8)~0 ); - + switch(CFIDEV_BUSWIDTH) { + case(CFIDEV_BUSWIDTH_1): ones = (__u8)~0; break; + case(CFIDEV_BUSWIDTH_2): ones = (__u16)~0; break; + case(CFIDEV_BUSWIDTH_3): ones = (__u32)~0; break; + case(CFIDEV_BUSWIDTH_4): ones = (__u64)~0; break; + default: + printk(KERN_WARNING "Unsupported buswidth\n"); + goto erase_failed; + } + ones = CMD( ones ); + if ( oldstatus == ones && status == ones ) { /* success - do nothing */ goto erase_done;