pkg/spiffs: init MTD device before accessing it's parameters

The parameters of the MTD device (`sector_count`, `page_size`)
are only known after the device has been initialized.

Init the device before using it to avoid reading all 0 on e.g. SD cards.
This commit is contained in:
Benjamin Valentin 2020-05-02 22:08:56 +02:00
parent 891a05dca6
commit 348b45f600

View File

@ -129,6 +129,12 @@ static int prepare(spiffs_desc_t *fs_desc)
mtd_dev_t *dev = SPIFFS_MTD_DEV; mtd_dev_t *dev = SPIFFS_MTD_DEV;
#endif #endif
int res = mtd_init(dev);
if (res) {
return res;
}
fs_desc->config.hal_read_f = _dev_read; fs_desc->config.hal_read_f = _dev_read;
fs_desc->config.hal_write_f = _dev_write; fs_desc->config.hal_write_f = _dev_write;
fs_desc->config.hal_erase_f = _dev_erase; fs_desc->config.hal_erase_f = _dev_erase;
@ -149,7 +155,7 @@ static int prepare(spiffs_desc_t *fs_desc)
fs_desc->config.phys_erase_block = dev->page_size * dev->pages_per_sector; fs_desc->config.phys_erase_block = dev->page_size * dev->pages_per_sector;
#endif #endif
return mtd_init(dev); return 0;
} }
static int _format(vfs_mount_t *mountp) static int _format(vfs_mount_t *mountp)