]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
spinand: bind UBI block
authorAlexey Romanov <avromanov@salutedevices.com>
Thu, 18 Jul 2024 05:45:28 +0000 (08:45 +0300)
committerMichael Trimarchi <michael@amarulasolutions.com>
Thu, 8 Aug 2024 07:28:09 +0000 (09:28 +0200)
UBI block is virtual block device, which is an abstraction
over MTD layer. Therefore it is logical to use it in combination
with MTD drivers.

Signed-off-by: Alexey Romanov <avromanov@salutedevices.com>
Reviewed-by: Frieder Schrempf <frieder.schrempf@kontron.de>
Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
drivers/mtd/nand/spi/core.c

index 54a90ff295c93aff50c2c6aeee578d267a310d04..f5ddfbf4b837a7589c646222afb988128bf7af62 100644 (file)
@@ -25,6 +25,7 @@
 #include <watchdog.h>
 #include <spi.h>
 #include <spi-mem.h>
+#include <ubi_uboot.h>
 #include <dm/device_compat.h>
 #include <dm/devres.h>
 #include <linux/bitops.h>
@@ -1180,9 +1181,16 @@ static int spinand_bind(struct udevice *dev)
 {
        if (blk_enabled()) {
                struct spinand_plat *plat = dev_get_plat(dev);
+               int ret;
+
+               if (CONFIG_IS_ENABLED(MTD_BLOCK)) {
+                       ret = mtd_bind(dev, &plat->mtd);
+                       if (ret)
+                               return ret;
+               }
 
-               if (CONFIG_IS_ENABLED(MTD_BLOCK))
-                       return mtd_bind(dev, &plat->mtd);
+               if (CONFIG_IS_ENABLED(UBI_BLOCK))
+                       return ubi_bind(dev);
        }
 
        return 0;