diff --git a/drivers/bch/bchlib_cache.c b/drivers/bch/bchlib_cache.c index 4c62087b56bb4a96c04ab51933438737de496422..2c5610a9c8171a367cb538e2ed02f62e19aaad95 100755 --- a/drivers/bch/bchlib_cache.c +++ b/drivers/bch/bchlib_cache.c @@ -113,7 +113,8 @@ int bchlib_readsector(FAR struct bchlib_s *bch, unsigned long long sector) } bch->sector = (unsigned long long)-1; - ret = los_disk_read(bch->disk->disk_id, (FAR void *)bch->buffer, sector, 1); + /* useRead is set TRUE, it'll use read block for not reading large data */ + ret = los_disk_read(bch->disk->disk_id, (FAR void *)bch->buffer, sector, 1, TRUE); if (ret < 0) { PRINTK("Read failed: %d\n", ret); diff --git a/drivers/bch/bchlib_read.c b/drivers/bch/bchlib_read.c index 0c3960c6dde3e4eb994158d2b9a3feb3ee7ea596..a9a7033fe20af8bda66ec095dc74e040e16d2935 100755 --- a/drivers/bch/bchlib_read.c +++ b/drivers/bch/bchlib_read.c @@ -159,7 +159,8 @@ ssize_t bchlib_read(FAR void *handle, FAR char *buffer, loff_t offset, size_t le { nsectors = bch->nsectors - sector; } - ret = los_disk_read(bch->disk->disk_id, (FAR void *)buffer, sector + bch->sectstart, nsectors); + /* No need for reading large contiguous data, useRead(param 4) is set TRUE */ + ret = los_disk_read(bch->disk->disk_id, (FAR void *)buffer, sector + bch->sectstart, nsectors, TRUE); if (ret < 0) {