Message ID | 20211026002344.405160-21-sjg@chromium.org |
---|---|
State | Changes Requested |
Delegated to: | Tom Rini |
Headers | show |
Series | fdt: Make OF_BOARD a boolean option | expand |
Hi Simon, likewise, since this is a pretty big patchset split it of in refactoring/new code patchsets so we can actually review it. Thanks /Ilias On Mon, Oct 25, 2021 at 06:23:38PM -0600, Simon Glass wrote: > Refactor the code to drop the #ifdefs for this feature. > > Signed-off-by: Simon Glass <sjg@chromium.org> > --- > > (no changes since v1) > > dts/Kconfig | 1 - > include/asm-generic/global_data.h | 8 ++++++++ > lib/fdtdec.c | 31 +++++++++++-------------------- > 3 files changed, 19 insertions(+), 21 deletions(-) > > diff --git a/dts/Kconfig b/dts/Kconfig > index 20ddc534a61..0f7e3ad7db7 100644 > --- a/dts/Kconfig > +++ b/dts/Kconfig > @@ -176,7 +176,6 @@ endchoice > > config MULTI_DTB_FIT_UNCOMPRESS_SZ > hex "Size of memory reserved to uncompress the DTBs" > - depends on (MULTI_DTB_FIT_GZIP || MULTI_DTB_FIT_LZO) > default 0x8000 > help > This is the size of this area where the DTBs are uncompressed. > diff --git a/include/asm-generic/global_data.h b/include/asm-generic/global_data.h > index 16fd305a65c..99daa20c765 100644 > --- a/include/asm-generic/global_data.h > +++ b/include/asm-generic/global_data.h > @@ -512,6 +512,14 @@ static_assert(sizeof(struct global_data) == GD_SIZE); > #define gd_acpi_ctx() NULL > #endif > > +#if CONFIG_IS_ENABLED(MULTI_DTB_FIT) > +#define gd_multi_dtb_fit() gd->multi_dtb_fit > +#define gd_set_multi_dtb_fit(_dtb) gd->multi_dtb_fit = _dtb > +#else > +#define gd_multi_dtb_fit() NULL > +#define gd_set_multi_dtb_fit(_dtb) > +#endif > + > /** > * enum gd_flags - global data flags > * > diff --git a/lib/fdtdec.c b/lib/fdtdec.c > index 58ea8f70cfe..15a990e5b98 100644 > --- a/lib/fdtdec.c > +++ b/lib/fdtdec.c > @@ -1146,11 +1146,10 @@ int fdtdec_setup_mem_size_base_lowest(void) > return 0; > } > > -#if CONFIG_IS_ENABLED(MULTI_DTB_FIT) > -# if CONFIG_IS_ENABLED(MULTI_DTB_FIT_GZIP) ||\ > - CONFIG_IS_ENABLED(MULTI_DTB_FIT_LZO) > static int uncompress_blob(const void *src, ulong sz_src, void **dstp) > { > +#if CONFIG_IS_ENABLED(MULTI_DTB_FIT_GZIP) ||\ > + CONFIG_IS_ENABLED(MULTI_DTB_FIT_LZO) > size_t sz_out = CONFIG_VAL(MULTI_DTB_FIT_UNCOMPRESS_SZ); > bool gzip = 0, lzo = 0; > ulong sz_in = sz_src; > @@ -1175,11 +1174,11 @@ static int uncompress_blob(const void *src, ulong sz_src, void **dstp) > return -ENOMEM; > } > } else { > -# if CONFIG_IS_ENABLED(MULTI_DTB_FIT_USER_DEFINED_AREA) > +# if CONFIG_IS_ENABLED(MULTI_DTB_FIT_USER_DEFINED_AREA) > dst = (void *)CONFIG_VAL(MULTI_DTB_FIT_USER_DEF_ADDR); > -# else > +# else > return -ENOTSUPP; > -# endif > +# endif > } > > if (CONFIG_IS_ENABLED(GZIP) && gzip) > @@ -1197,16 +1196,12 @@ static int uncompress_blob(const void *src, ulong sz_src, void **dstp) > return -EBADMSG; > } > *dstp = dst; > - return 0; > -} > -# else > -static int uncompress_blob(const void *src, ulong sz_src, void **dstp) > -{ > +#else > + *dstp = (void *)src; > *dstp = (void *)src; > +#endif > return 0; > } > -# endif > -#endif > > #if defined(CONFIG_OF_BOARD) || defined(CONFIG_OF_SEPARATE) > /* > @@ -1603,7 +1598,6 @@ __weak int fdtdec_board_setup(const void *fdt_blob) > */ > static void setup_multi_dtb_fit(void) > { > -# if CONFIG_IS_ENABLED(MULTI_DTB_FIT) > void *blob; > > /* > @@ -1621,10 +1615,9 @@ static void setup_multi_dtb_fit(void) > */ > blob = locate_dtb_in_fit(gd->fdt_blob); > if (blob) { > - gd->multi_dtb_fit = gd->fdt_blob; > + gd_set_multi_dtb_fit(gd->fdt_blob); > gd->fdt_blob = blob; > } > -#endif /* # MULTI_DTB_FIT */ > } > > int fdtdec_setup(void) > @@ -1659,7 +1652,6 @@ int fdtdec_setup(void) > return ret; > } > > -#if CONFIG_IS_ENABLED(MULTI_DTB_FIT) > int fdtdec_resetup(int *rescan) > { > void *fdt_blob; > @@ -1670,8 +1662,8 @@ int fdtdec_resetup(int *rescan) > * FIT image stillpresent there. Save the time and space > * required to uncompress it again. > */ > - if (gd->multi_dtb_fit) { > - fdt_blob = locate_dtb_in_fit(gd->multi_dtb_fit); > + if (gd_multi_dtb_fit()) { > + fdt_blob = locate_dtb_in_fit(gd_multi_dtb_fit()); > > if (fdt_blob == gd->fdt_blob) { > /* > @@ -1695,7 +1687,6 @@ int fdtdec_resetup(int *rescan) > *rescan = 0; > return 0; > } > -#endif > > int fdtdec_decode_ram_size(const void *blob, const char *area, int board_id, > phys_addr_t *basep, phys_size_t *sizep, > -- > 2.33.0.1079.g6e70778dc9-goog >
diff --git a/dts/Kconfig b/dts/Kconfig index 20ddc534a61..0f7e3ad7db7 100644 --- a/dts/Kconfig +++ b/dts/Kconfig @@ -176,7 +176,6 @@ endchoice config MULTI_DTB_FIT_UNCOMPRESS_SZ hex "Size of memory reserved to uncompress the DTBs" - depends on (MULTI_DTB_FIT_GZIP || MULTI_DTB_FIT_LZO) default 0x8000 help This is the size of this area where the DTBs are uncompressed. diff --git a/include/asm-generic/global_data.h b/include/asm-generic/global_data.h index 16fd305a65c..99daa20c765 100644 --- a/include/asm-generic/global_data.h +++ b/include/asm-generic/global_data.h @@ -512,6 +512,14 @@ static_assert(sizeof(struct global_data) == GD_SIZE); #define gd_acpi_ctx() NULL #endif +#if CONFIG_IS_ENABLED(MULTI_DTB_FIT) +#define gd_multi_dtb_fit() gd->multi_dtb_fit +#define gd_set_multi_dtb_fit(_dtb) gd->multi_dtb_fit = _dtb +#else +#define gd_multi_dtb_fit() NULL +#define gd_set_multi_dtb_fit(_dtb) +#endif + /** * enum gd_flags - global data flags * diff --git a/lib/fdtdec.c b/lib/fdtdec.c index 58ea8f70cfe..15a990e5b98 100644 --- a/lib/fdtdec.c +++ b/lib/fdtdec.c @@ -1146,11 +1146,10 @@ int fdtdec_setup_mem_size_base_lowest(void) return 0; } -#if CONFIG_IS_ENABLED(MULTI_DTB_FIT) -# if CONFIG_IS_ENABLED(MULTI_DTB_FIT_GZIP) ||\ - CONFIG_IS_ENABLED(MULTI_DTB_FIT_LZO) static int uncompress_blob(const void *src, ulong sz_src, void **dstp) { +#if CONFIG_IS_ENABLED(MULTI_DTB_FIT_GZIP) ||\ + CONFIG_IS_ENABLED(MULTI_DTB_FIT_LZO) size_t sz_out = CONFIG_VAL(MULTI_DTB_FIT_UNCOMPRESS_SZ); bool gzip = 0, lzo = 0; ulong sz_in = sz_src; @@ -1175,11 +1174,11 @@ static int uncompress_blob(const void *src, ulong sz_src, void **dstp) return -ENOMEM; } } else { -# if CONFIG_IS_ENABLED(MULTI_DTB_FIT_USER_DEFINED_AREA) +# if CONFIG_IS_ENABLED(MULTI_DTB_FIT_USER_DEFINED_AREA) dst = (void *)CONFIG_VAL(MULTI_DTB_FIT_USER_DEF_ADDR); -# else +# else return -ENOTSUPP; -# endif +# endif } if (CONFIG_IS_ENABLED(GZIP) && gzip) @@ -1197,16 +1196,12 @@ static int uncompress_blob(const void *src, ulong sz_src, void **dstp) return -EBADMSG; } *dstp = dst; - return 0; -} -# else -static int uncompress_blob(const void *src, ulong sz_src, void **dstp) -{ +#else + *dstp = (void *)src; *dstp = (void *)src; +#endif return 0; } -# endif -#endif #if defined(CONFIG_OF_BOARD) || defined(CONFIG_OF_SEPARATE) /* @@ -1603,7 +1598,6 @@ __weak int fdtdec_board_setup(const void *fdt_blob) */ static void setup_multi_dtb_fit(void) { -# if CONFIG_IS_ENABLED(MULTI_DTB_FIT) void *blob; /* @@ -1621,10 +1615,9 @@ static void setup_multi_dtb_fit(void) */ blob = locate_dtb_in_fit(gd->fdt_blob); if (blob) { - gd->multi_dtb_fit = gd->fdt_blob; + gd_set_multi_dtb_fit(gd->fdt_blob); gd->fdt_blob = blob; } -#endif /* # MULTI_DTB_FIT */ } int fdtdec_setup(void) @@ -1659,7 +1652,6 @@ int fdtdec_setup(void) return ret; } -#if CONFIG_IS_ENABLED(MULTI_DTB_FIT) int fdtdec_resetup(int *rescan) { void *fdt_blob; @@ -1670,8 +1662,8 @@ int fdtdec_resetup(int *rescan) * FIT image stillpresent there. Save the time and space * required to uncompress it again. */ - if (gd->multi_dtb_fit) { - fdt_blob = locate_dtb_in_fit(gd->multi_dtb_fit); + if (gd_multi_dtb_fit()) { + fdt_blob = locate_dtb_in_fit(gd_multi_dtb_fit()); if (fdt_blob == gd->fdt_blob) { /* @@ -1695,7 +1687,6 @@ int fdtdec_resetup(int *rescan) *rescan = 0; return 0; } -#endif int fdtdec_decode_ram_size(const void *blob, const char *area, int board_id, phys_addr_t *basep, phys_size_t *sizep,
Refactor the code to drop the #ifdefs for this feature. Signed-off-by: Simon Glass <sjg@chromium.org> --- (no changes since v1) dts/Kconfig | 1 - include/asm-generic/global_data.h | 8 ++++++++ lib/fdtdec.c | 31 +++++++++++-------------------- 3 files changed, 19 insertions(+), 21 deletions(-)