[PATCH/RFC] OneNAND simulator support

Adrian Hunter ext-adrian.hunter at nokia.com
Fri Mar 23 03:57:59 EDT 2007


ext Kyungmin Park wrote:
> To Adrian,
> 
> After patch http://git.infradead.org/?p=mtd-
> 2.6.git;a=commitdiff;h=5bc399e9ef430efd5725b66aa2ad7ad2d81e372b;hp=81280d5879761
> f90b3a341d52371d03998730d8e
> 
> --- a/drivers/mtd/onenand/onenand_base.c
> +++ b/drivers/mtd/onenand/onenand_base.c
> @@ -854,7 +854,8 @@ static int onenand_transfer_auto_oob(str
>  			int n = ed - st;
>  			memcpy(buf, oob_buf + st, n);
>  			buf += n;
> -		}
> +		} else
> +			break;
>  	}
>  	return 0;
>  }
> @@ -1295,7 +1296,8 @@ static int onenand_fill_auto_oob(struct 
>  			int n = ed - st;
>  			memcpy(oob_buf + st, buf, n);
>  			buf += n;
> -		}
> +		} else
> +			break;
>  	}
>  	return 0;
>  }
> 
> It don't pass the oobtest since I assume oob passed at first, but oobtest don't
> do that.
> Basically I optimizeed it for JFFS2. 
> Do I revert it or do nothing? please give your opinion.


How about this: (NB I haven't tried it but maybe it works ;-)



--- a/drivers/mtd/onenand/onenand_base.c
+++ b/drivers/mtd/onenand/onenand_base.c
@@ -854,7 +854,8 @@ static int onenand_transfer_auto_oob(str
 			int n = ed - st;
 			memcpy(buf, oob_buf + st, n);
 			buf += n;
-		}
+		} else if (column == 0)
+			break;
 	}
 	return 0;
 }
@@ -1295,7 +1296,8 @@ static int onenand_fill_auto_oob(struct 
 			int n = ed - st;
 			memcpy(oob_buf + st, buf, n);
 			buf += n;
-		}
+		} else if (column == 0)
+			break;
 	}
 	return 0;
 }





More information about the linux-mtd mailing list