@ -175,10 +175,15 @@ static u32 nand_cache_off = (u32)-1;
static int read_nand_cached ( u32 off , u32 size , u_char * buf )
static int read_nand_cached ( u32 off , u32 size , u_char * buf )
{
{
struct mtdids * id = current_part - > dev - > id ;
struct mtdids * id = current_part - > dev - > id ;
struct mtd_info * mtd ;
u32 bytes_read = 0 ;
u32 bytes_read = 0 ;
size_t retlen ;
size_t retlen ;
int cpy_bytes ;
int cpy_bytes ;
mtd = get_nand_dev_by_index ( id - > num ) ;
if ( ! mtd )
return - 1 ;
while ( bytes_read < size ) {
while ( bytes_read < size ) {
if ( ( off + bytes_read < nand_cache_off ) | |
if ( ( off + bytes_read < nand_cache_off ) | |
( off + bytes_read > = nand_cache_off + NAND_CACHE_SIZE ) ) {
( off + bytes_read > = nand_cache_off + NAND_CACHE_SIZE ) ) {
@ -195,8 +200,8 @@ static int read_nand_cached(u32 off, u32 size, u_char *buf)
}
}
retlen = NAND_CACHE_SIZE ;
retlen = NAND_CACHE_SIZE ;
if ( nand_read ( nand_info [ id - > num ] , nand_cache_off ,
if ( nand_read ( mtd , nand_cache_off ,
& retlen , nand_cache ) ! = 0 | |
& retlen , nand_cache ) ! = 0 | |
retlen ! = NAND_CACHE_SIZE ) {
retlen ! = NAND_CACHE_SIZE ) {
printf ( " read_nand_cached: error reading nand off %#x size %d bytes \n " ,
printf ( " read_nand_cached: error reading nand off %#x size %d bytes \n " ,
nand_cache_off , NAND_CACHE_SIZE ) ;
nand_cache_off , NAND_CACHE_SIZE ) ;