diff options
Diffstat (limited to 'target/linux')
-rw-r--r-- | target/linux/generic/files/drivers/mtd/mtdsplit/mtdsplit_uimage.c | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/target/linux/generic/files/drivers/mtd/mtdsplit/mtdsplit_uimage.c b/target/linux/generic/files/drivers/mtd/mtdsplit/mtdsplit_uimage.c index 091403ae91..2ac559a3f3 100644 --- a/target/linux/generic/files/drivers/mtd/mtdsplit/mtdsplit_uimage.c +++ b/target/linux/generic/files/drivers/mtd/mtdsplit/mtdsplit_uimage.c @@ -398,22 +398,29 @@ static ssize_t uimage_find_fonfxc(u_char *buf, size_t len, int *extralen) return 0; } +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 9, 0) +static const struct of_device_id mtdsplit_uimage_fonfxc_of_match_table[] = { + { .compatible = "fonfxc,uimage" }, + {}, +}; +#endif + static int mtdsplit_uimage_parse_fonfxc(struct mtd_info *master, const struct mtd_partition **pparts, struct mtd_part_parser_data *data) { + struct device_node *np_mtd; + + np_mtd = mtd_get_of_node(master); + if (!np_mtd || + !of_match_node(mtdsplit_uimage_fonfxc_of_match_table, np_mtd)) + return -ENODEV; + return __mtdsplit_parse_uimage(master, pparts, data, uimage_find_fonfxc); } -#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 9, 0) -static const struct of_device_id mtdsplit_uimage_fonfxc_of_match_table[] = { - { .compatible = "fonfxc,uimage" }, - {}, -}; -#endif - static struct mtd_part_parser uimage_fonfxc_parser = { .owner = THIS_MODULE, .name = "fonfxc-fw", |