From mboxrd@z Thu Jan 1 00:00:00 1970 From: Boris Brezillon Date: Wed, 5 Dec 2018 11:37:54 +0100 Subject: [U-Boot] [PATCH v3 25/28] cmd: nand/sf: isolate legacy code In-Reply-To: <20181204235714.11805-26-miquel.raynal@bootlin.com> References: <20181204235714.11805-1-miquel.raynal@bootlin.com> <20181204235714.11805-26-miquel.raynal@bootlin.com> Message-ID: <20181205113754.3d0272ef@bbrezillon> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On Wed, 5 Dec 2018 00:57:11 +0100 Miquel Raynal wrote: > The 'sf' command is not supposed to rely on the MTD stack, but both > 'sf' and 'nand' commands use helpers located in mtd_uboot.c. Despite > their location, these functions do not depend at all on the MTD > stack. > > This file (drivers/mtd/mtd_uboot.c) is only compiled if CONFIG_MTD is > selected, which is incoherent with the current situation. Solve this ^inconsistent > by mobing these three functions (which are only used by the above two ^ moving > commands) out of mtd_uboot.c and put them in a C file only compiled > with cmd/sf.c and cmd/nand.c. > > Signed-off-by: Miquel Raynal > --- > cmd/Makefile | 4 +- > cmd/legacy-mtd-utils.c | 99 +++++++++++++++++++++++++++++++++++++++++ > cmd/legacy-mtd-utils.h | 14 ++++++ > cmd/nand.c | 2 + > cmd/sf.c | 2 + > drivers/mtd/mtd_uboot.c | 94 -------------------------------------- > include/linux/mtd/mtd.h | 6 --- > 7 files changed, 119 insertions(+), 102 deletions(-) > create mode 100644 cmd/legacy-mtd-utils.c > create mode 100644 cmd/legacy-mtd-utils.h > > diff --git a/cmd/Makefile b/cmd/Makefile > index 0534ddc679..54c54c062d 100644 > --- a/cmd/Makefile > +++ b/cmd/Makefile > @@ -94,7 +94,7 @@ obj-$(CONFIG_CMD_MMC_SPI) += mmc_spi.o > obj-$(CONFIG_MP) += mp.o > obj-$(CONFIG_CMD_MTD) += mtd.o > obj-$(CONFIG_CMD_MTDPARTS) += mtdparts.o > -obj-$(CONFIG_CMD_NAND) += nand.o > +obj-$(CONFIG_CMD_NAND) += nand.o legacy-mtd-utils.o > obj-$(CONFIG_CMD_NET) += net.o > obj-$(CONFIG_CMD_ONENAND) += onenand.o > obj-$(CONFIG_CMD_OSD) += osd.o > @@ -115,7 +115,7 @@ obj-$(CONFIG_CMD_ROCKUSB) += rockusb.o > obj-$(CONFIG_SANDBOX) += host.o > obj-$(CONFIG_CMD_SATA) += sata.o > obj-$(CONFIG_CMD_NVME) += nvme.o > -obj-$(CONFIG_CMD_SF) += sf.o > +obj-$(CONFIG_CMD_SF) += sf.o legacy-mtd-utils.o That won't work if you enable both CMD_SF and CMD_NAND. The linker will complain that some symbols are duplicated. Either you add a new hidden Kconfig option that is selected by CMD_NAND and CMD_SF, or you use the ifeq trick: ifeq (,$(findstring y,$(CONFIG_CMD_NAND)$(CONFIG_CMD_SF))) obj-y += legacy-mtd-utils.o endif