summaryrefslogtreecommitdiff
path: root/fs/fat
diff options
context:
space:
mode:
authorSergei Shtylyov <sshtylyov@ru.mvista.com>2011-08-19 09:37:46 +0000
committerWolfgang Denk <wd@denx.de>2011-10-01 21:52:19 +0200
commit025421eab453fd41a3cc14a0fc48115b0dc4c287 (patch)
treeedea3f18319116fc6320b90617844a40f35ce842 /fs/fat
parent40e219165bcdf450cc69976fa129f2ef9889973a (diff)
downloadu-boot-imx-025421eab453fd41a3cc14a0fc48115b0dc4c287.zip
u-boot-imx-025421eab453fd41a3cc14a0fc48115b0dc4c287.tar.gz
u-boot-imx-025421eab453fd41a3cc14a0fc48115b0dc4c287.tar.bz2
fat: replace LINEAR_PREFETCH_SIZE with PREFETCH_BLOCKS
Currently in do_fat_read() when reading FAT sectors, we have to divide down LINEAR_PREFETCH_SIZE by the sector size, whereas it's defined as 2 sectors worth of bytes. In order to avoid redundant multiplication/division, introduce #define PREFETCH_BLOCKS instead of #define LINEAR_PREFETCH_SIZE. Signed-off-by: Sergei Shtylyov <sshtylyov@mvista.com>
Diffstat (limited to 'fs/fat')
-rw-r--r--fs/fat/fat.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/fs/fat/fat.c b/fs/fat/fat.c
index aa0be18..756ac64 100644
--- a/fs/fat/fat.c
+++ b/fs/fat/fat.c
@@ -440,10 +440,9 @@ get_vfatname (fsdata *mydata, int curclust, __u8 *cluster,
{
dir_entry *realdent;
dir_slot *slotptr = (dir_slot *)retdent;
- __u8 *buflimit = cluster + ((curclust == 0) ?
- LINEAR_PREFETCH_SIZE :
- (mydata->clust_size * mydata->sect_size)
- );
+ __u8 *buflimit = cluster + mydata->sect_size * ((curclust == 0) ?
+ PREFETCH_BLOCKS :
+ mydata->clust_size);
__u8 counter = (slotptr->id & ~LAST_LONG_ENTRY_MASK) & 0xff;
int idx = 0;
@@ -880,7 +879,7 @@ do_fat_read (const char *filename, void *buffer, unsigned long maxsize,
if (disk_read(cursect,
(mydata->fatsize == 32) ?
(mydata->clust_size) :
- LINEAR_PREFETCH_SIZE / mydata->sect_size,
+ PREFETCH_BLOCKS,
do_fat_read_block) < 0) {
debug("Error: reading rootdir block\n");
goto exit;