mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-24 21:54:01 +00:00
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>
This commit is contained in:
parent
40e219165b
commit
025421eab4
2 changed files with 5 additions and 6 deletions
|
@ -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;
|
||||
|
|
|
@ -33,7 +33,7 @@
|
|||
/* Maximum Long File Name length supported here is 128 UTF-16 code units */
|
||||
#define VFAT_MAXLEN_BYTES 256 /* Maximum LFN buffer in bytes */
|
||||
#define VFAT_MAXSEQ 9 /* Up to 9 of 13 2-byte UTF-16 entries */
|
||||
#define LINEAR_PREFETCH_SIZE (mydata->sect_size*2) /* Prefetch buffer size */
|
||||
#define PREFETCH_BLOCKS 2
|
||||
|
||||
#define MAX_CLUSTSIZE 65536
|
||||
#define DIRENTSPERBLOCK (mydata->sect_size / sizeof(dir_entry))
|
||||
|
|
Loading…
Reference in a new issue