]> git.sur5r.net Git - u-boot/blobdiff - disk/part.c
sf: add paired dev info for winbond w25q16jv
[u-boot] / disk / part.c
index 16de7a2c3139d6deeedd61b2c080edd4a8a33ca1..9266a09ec3f38d20855471680a70b8321ae9cdf7 100644 (file)
@@ -1,8 +1,7 @@
+// SPDX-License-Identifier: GPL-2.0+
 /*
  * (C) Copyright 2001
  * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
- *
- * SPDX-License-Identifier:    GPL-2.0+
  */
 
 #include <common.h>
@@ -24,9 +23,6 @@
 /* Check all partition types */
 #define PART_TYPE_ALL          -1
 
-DECLARE_GLOBAL_DATA_PTR;
-
-#ifdef CONFIG_HAVE_BLOCK_DEVICE
 static struct part_driver *part_driver_lookup_type(struct blk_desc *dev_desc)
 {
        struct part_driver *drv =
@@ -55,6 +51,7 @@ static struct part_driver *part_driver_lookup_type(struct blk_desc *dev_desc)
        return NULL;
 }
 
+#ifdef CONFIG_HAVE_BLOCK_DEVICE
 static struct blk_desc *get_dev_hwpart(const char *ifname, int dev, int hwpart)
 {
        struct blk_desc *dev_desc;
@@ -644,28 +641,25 @@ cleanup:
 int part_get_info_by_name_type(struct blk_desc *dev_desc, const char *name,
                               disk_partition_t *info, int part_type)
 {
-       struct part_driver *first_drv =
-               ll_entry_start(struct part_driver, part_driver);
-       const int n_drvs = ll_entry_count(struct part_driver, part_driver);
        struct part_driver *part_drv;
-
-       for (part_drv = first_drv; part_drv != first_drv + n_drvs; part_drv++) {
-               int ret;
-               int i;
-               for (i = 1; i < part_drv->max_entries; i++) {
-                       if (part_type >= 0 && part_type != part_drv->part_type)
-                               break;
-                       ret = part_drv->get_info(dev_desc, i, info);
-                       if (ret != 0) {
-                               /* no more entries in table */
-                               break;
-                       }
-                       if (strcmp(name, (const char *)info->name) == 0) {
-                               /* matched */
-                               return i;
-                       }
+       int ret;
+       int i;
+
+       part_drv = part_driver_lookup_type(dev_desc);
+       if (!part_drv)
+               return -1;
+       for (i = 1; i < part_drv->max_entries; i++) {
+               ret = part_drv->get_info(dev_desc, i, info);
+               if (ret != 0) {
+                       /* no more entries in table */
+                       break;
+               }
+               if (strcmp(name, (const char *)info->name) == 0) {
+                       /* matched */
+                       return i;
                }
        }
+
        return -1;
 }