Skip to content

Commit

Permalink
Merge pull request #18113 from benpicco/drivers/mtd_mapper-inherit
Browse files Browse the repository at this point in the history
drivers/mtd_mapper: inherit physical properties
  • Loading branch information
benpicco committed Jun 5, 2022
2 parents c485bd4 + 53f891e commit 4160ed7
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 10 deletions.
18 changes: 14 additions & 4 deletions drivers/mtd_mapper/mtd_mapper.c
Original file line number Diff line number Diff line change
Expand Up @@ -74,11 +74,21 @@ static int _init(mtd_dev_t *mtd)
mtd_mapper_region_t *region = container_of(mtd, mtd_mapper_region_t, mtd);
mtd_dev_t *backing_mtd = region->parent->mtd;

/* Configuration sanity checks */
assert(backing_mtd->page_size == region->mtd.page_size);
assert(backing_mtd->pages_per_sector == region->mtd.pages_per_sector);
/* inherit physical properties */
if (region->mtd.page_size == 0) {
region->mtd.page_size = backing_mtd->page_size;
}
if (region->mtd.pages_per_sector == 0) {
region->mtd.pages_per_sector = backing_mtd->pages_per_sector;
}
region->mtd.write_size = backing_mtd->write_size;

/* Configuration sanity check */
assert(backing_mtd->page_size >= region->mtd.page_size);
assert(backing_mtd->write_size <= region->mtd.page_size);
assert(region->mtd.page_size * region->mtd.pages_per_sector
== backing_mtd->page_size * backing_mtd->pages_per_sector);
assert(backing_mtd->sector_count >= region->mtd.sector_count);
assert(backing_mtd->write_size == region->mtd.write_size);

/* offset + region size must not exceed the backing device */
assert(region->sector + region->mtd.sector_count <= backing_mtd->sector_count);
Expand Down
6 changes: 0 additions & 6 deletions tests/mtd_mapper/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -192,9 +192,6 @@ static mtd_mapper_region_t _region_a = {
.mtd = {
.driver = &mtd_mapper_driver,
.sector_count = SECTOR_COUNT / 2,
.pages_per_sector = PAGE_PER_SECTOR,
.page_size = PAGE_SIZE,
.write_size = WRITE_SIZE,
},
.parent = &_parent,
.sector = 0,
Expand All @@ -204,9 +201,6 @@ static mtd_mapper_region_t _region_b = {
.mtd = {
.driver = &mtd_mapper_driver,
.sector_count = SECTOR_COUNT / 2,
.pages_per_sector = PAGE_PER_SECTOR,
.page_size = PAGE_SIZE,
.write_size = WRITE_SIZE,
},
.parent = &_parent,
.sector = SECTOR_COUNT / 2,
Expand Down

0 comments on commit 4160ed7

Please sign in to comment.