Now that there is only one sequence number (rather than both requested and
assigned ones) we can simplify this function. Also update its caller to
simplify the logic.

Signed-off-by: Simon Glass <s...@chromium.org>
---

 arch/arm/mach-k3/am6_init.c     |  2 +-
 arch/arm/mach-k3/j721e_init.c   |  2 +-
 arch/arm/mach-k3/sysfw-loader.c |  2 +-
 drivers/core/device.c           | 16 +++++--------
 drivers/core/uclass.c           | 22 ++++++------------
 drivers/spi/spi-uclass.c        |  4 ++--
 drivers/usb/host/usb-uclass.c   |  4 ++--
 include/dm/device.h             | 18 +++++----------
 include/dm/uclass-internal.h    | 18 +++++----------
 net/eth-uclass.c                |  2 +-
 test/dm/bus.c                   | 16 ++++++-------
 test/dm/test-fdt.c              | 40 ++++++++++++++++-----------------
 12 files changed, 58 insertions(+), 88 deletions(-)

diff --git a/arch/arm/mach-k3/am6_init.c b/arch/arm/mach-k3/am6_init.c
index 603834e5078..0fed5aec59d 100644
--- a/arch/arm/mach-k3/am6_init.c
+++ b/arch/arm/mach-k3/am6_init.c
@@ -208,7 +208,7 @@ void board_init_f(ulong dummy)
         * firmware (SYSFW) image for various purposes and SYSFW depends on us
         * to initialize its pin settings.
         */
-       ret = uclass_find_device_by_seq(UCLASS_SERIAL, 0, true, &dev);
+       ret = uclass_find_device_by_seq(UCLASS_SERIAL, 0, &dev);
        if (!ret)
                pinctrl_select_state(dev, "default");
 
diff --git a/arch/arm/mach-k3/j721e_init.c b/arch/arm/mach-k3/j721e_init.c
index a36e4ed603b..0201690f93c 100644
--- a/arch/arm/mach-k3/j721e_init.c
+++ b/arch/arm/mach-k3/j721e_init.c
@@ -167,7 +167,7 @@ void board_init_f(ulong dummy)
         * firmware (SYSFW) image for various purposes and SYSFW depends on us
         * to initialize its pin settings.
         */
-       ret = uclass_find_device_by_seq(UCLASS_SERIAL, 0, true, &dev);
+       ret = uclass_find_device_by_seq(UCLASS_SERIAL, 0, &dev);
        if (!ret)
                pinctrl_select_state(dev, "default");
 
diff --git a/arch/arm/mach-k3/sysfw-loader.c b/arch/arm/mach-k3/sysfw-loader.c
index 78c158c63f7..708d9c8508e 100644
--- a/arch/arm/mach-k3/sysfw-loader.c
+++ b/arch/arm/mach-k3/sysfw-loader.c
@@ -223,7 +223,7 @@ static void *k3_sysfw_get_spi_addr(void)
        int ret;
 
        ret = uclass_find_device_by_seq(UCLASS_SPI, CONFIG_SF_DEFAULT_BUS,
-                                       true, &dev);
+                                       &dev);
        if (ret)
                return NULL;
 
diff --git a/drivers/core/device.c b/drivers/core/device.c
index df188620149..d57a8bc1343 100644
--- a/drivers/core/device.c
+++ b/drivers/core/device.c
@@ -653,15 +653,15 @@ int device_get_child_count(const struct udevice *parent)
        return count;
 }
 
-int device_find_child_by_seq(const struct udevice *parent, int seq_or_req_seq,
-                            bool find_req_seq, struct udevice **devp)
+int device_find_child_by_seq(const struct udevice *parent, int seq,
+                            struct udevice **devp)
 {
        struct udevice *dev;
 
        *devp = NULL;
 
        list_for_each_entry(dev, &parent->child_head, sibling_node) {
-               if (dev->sqq == seq_or_req_seq) {
+               if (dev->sqq == seq) {
                        *devp = dev;
                        return 0;
                }
@@ -677,14 +677,8 @@ int device_get_child_by_seq(const struct udevice *parent, 
int seq,
        int ret;
 
        *devp = NULL;
-       ret = device_find_child_by_seq(parent, seq, false, &dev);
-       if (ret == -ENODEV) {
-               /*
-                * We didn't find it in probed devices. See if there is one
-                * that will request this seq if probed.
-                */
-               ret = device_find_child_by_seq(parent, seq, true, &dev);
-       }
+       ret = device_find_child_by_seq(parent, seq, &dev);
+
        return device_get_device_tail(dev, ret, devp);
 }
 
diff --git a/drivers/core/uclass.c b/drivers/core/uclass.c
index b63ebb5d1e7..48d81221c38 100644
--- a/drivers/core/uclass.c
+++ b/drivers/core/uclass.c
@@ -328,25 +328,23 @@ void uclass_alloc_all_seqs(void)
        }
 }
 
-int uclass_find_device_by_seq(enum uclass_id id, int seq_or_req_seq,
-                             bool find_req_seq, struct udevice **devp)
+int uclass_find_device_by_seq(enum uclass_id id, int seq, struct udevice 
**devp)
 {
        struct uclass *uc;
        struct udevice *dev;
        int ret;
 
        *devp = NULL;
-       log_debug("%d %d\n", find_req_seq, seq_or_req_seq);
-       if (seq_or_req_seq == -1)
+       log_debug("%d\n", seq);
+       if (seq == -1)
                return -ENODEV;
        ret = uclass_get(id, &uc);
        if (ret)
                return ret;
 
        uclass_foreach_dev(dev, uc) {
-               log_debug("   - %d %d '%s'\n",
-                         dev->req_seq, dev_seq(dev), dev->name);
-               if (dev_seq(dev) == seq_or_req_seq) {
+               log_debug("   - %d '%s'\n", dev->sqq, dev->name);
+               if (dev->sqq == seq) {
                        *devp = dev;
                        log_debug("   - found\n");
                        return 0;
@@ -506,14 +504,8 @@ int uclass_get_device_by_seq(enum uclass_id id, int seq, 
struct udevice **devp)
        int ret;
 
        *devp = NULL;
-       ret = uclass_find_device_by_seq(id, seq, false, &dev);
-       if (ret == -ENODEV) {
-               /*
-                * We didn't find it in probed devices. See if there is one
-                * that will request this seq if probed.
-                */
-               ret = uclass_find_device_by_seq(id, seq, true, &dev);
-       }
+       ret = uclass_find_device_by_seq(id, seq, &dev);
+
        return uclass_get_device_tail(dev, ret, devp);
 }
 
diff --git a/drivers/spi/spi-uclass.c b/drivers/spi/spi-uclass.c
index 55a8eed8901..08f165837d2 100644
--- a/drivers/spi/spi-uclass.c
+++ b/drivers/spi/spi-uclass.c
@@ -273,7 +273,7 @@ int spi_cs_is_valid(unsigned int busnum, unsigned int cs)
        struct udevice *bus;
        int ret;
 
-       ret = uclass_find_device_by_seq(UCLASS_SPI, busnum, false, &bus);
+       ret = uclass_find_device_by_seq(UCLASS_SPI, busnum, &bus);
        if (ret) {
                debug("%s: No bus %d\n", __func__, busnum);
                return ret;
@@ -302,7 +302,7 @@ int spi_find_bus_and_cs(int busnum, int cs, struct udevice 
**busp,
        struct udevice *bus, *dev;
        int ret;
 
-       ret = uclass_find_device_by_seq(UCLASS_SPI, busnum, false, &bus);
+       ret = uclass_find_device_by_seq(UCLASS_SPI, busnum, &bus);
        if (ret) {
                debug("%s: No bus %d\n", __func__, busnum);
                return ret;
diff --git a/drivers/usb/host/usb-uclass.c b/drivers/usb/host/usb-uclass.c
index 453c2bbb0b6..de8a244625e 100644
--- a/drivers/usb/host/usb-uclass.c
+++ b/drivers/usb/host/usb-uclass.c
@@ -394,7 +394,7 @@ int usb_setup_ehci_gadget(struct ehci_ctrl **ctlrp)
        int ret;
 
        /* Find the old device and remove it */
-       ret = uclass_find_device_by_seq(UCLASS_USB, 0, true, &dev);
+       ret = uclass_find_device_by_seq(UCLASS_USB, 0, &dev);
        if (ret)
                return ret;
        ret = device_remove(dev, DM_REMOVE_NORMAL);
@@ -417,7 +417,7 @@ int usb_remove_ehci_gadget(struct ehci_ctrl **ctlrp)
        int ret;
 
        /* Find the old device and remove it */
-       ret = uclass_find_device_by_seq(UCLASS_USB, 0, true, &dev);
+       ret = uclass_find_device_by_seq(UCLASS_USB, 0, &dev);
        if (ret)
                return ret;
        ret = device_remove(dev, DM_REMOVE_NORMAL);
diff --git a/include/dm/device.h b/include/dm/device.h
index 3362569dc98..073c5438fc2 100644
--- a/include/dm/device.h
+++ b/include/dm/device.h
@@ -452,24 +452,16 @@ int device_get_child_count(const struct udevice *parent);
 /**
  * device_find_child_by_seq() - Find a child device based on a sequence
  *
- * This searches for a device with the given seq or req_seq.
- *
- * For seq, if an active device has this sequence it will be returned.
- * If there is no such device then this will return -ENODEV.
- *
- * For req_seq, if a device (whether activated or not) has this req_seq
- * value, that device will be returned. This is a strong indication that
- * the device will receive that sequence when activated.
+ * This searches for a device with the given seq.
  *
  * @parent: Parent device
- * @seq_or_req_seq: Sequence number to find (0=first)
- * @find_req_seq: true to find req_seq, false to find seq
+ * @seq: Sequence number to find (0=first)
  * @devp: Returns pointer to device (there is only one per for each seq).
  * Set to NULL if none is found
- * @return 0 if OK, -ve on error
+ * @return 0 if OK, -ENODEV if not found
  */
-int device_find_child_by_seq(const struct udevice *parent, int seq_or_req_seq,
-                            bool find_req_seq, struct udevice **devp);
+int device_find_child_by_seq(const struct udevice *parent, int seq,
+                            struct udevice **devp);
 
 /**
  * device_get_child_by_seq() - Get a child device based on a sequence
diff --git a/include/dm/uclass-internal.h b/include/dm/uclass-internal.h
index 2c21871e0fd..9c23d3f223e 100644
--- a/include/dm/uclass-internal.h
+++ b/include/dm/uclass-internal.h
@@ -103,25 +103,17 @@ int uclass_find_device_by_name(enum uclass_id id, const 
char *name,
 /**
  * uclass_find_device_by_seq() - Find uclass device based on ID and sequence
  *
- * This searches for a device with the given seq or req_seq.
- *
- * For seq, if an active device has this sequence it will be returned.
- * If there is no such device then this will return -ENODEV.
- *
- * For req_seq, if a device (whether activated or not) has this req_seq
- * value, that device will be returned. This is a strong indication that
- * the device will receive that sequence when activated.
+ * This searches for a device with the given seq.
  *
  * The device is NOT probed, it is merely returned.
  *
  * @id: ID to look up
- * @seq_or_req_seq: Sequence number to find (0=first)
- * @find_req_seq: true to find req_seq, false to find seq
+ * @seq: Sequence number to find (0=first)
  * @devp: Returns pointer to device (there is only one per for each seq)
- * @return 0 if OK, -ve on error
+ * @return 0 if OK, -ENODEV if not found
  */
-int uclass_find_device_by_seq(enum uclass_id id, int seq_or_req_seq,
-                             bool find_req_seq, struct udevice **devp);
+int uclass_find_device_by_seq(enum uclass_id id, int seq,
+                             struct udevice **devp);
 
 /**
  * uclass_find_device_by_of_offset() - Find a uclass device by device tree node
diff --git a/net/eth-uclass.c b/net/eth-uclass.c
index 5c1ee57fb59..4b4aaecf366 100644
--- a/net/eth-uclass.c
+++ b/net/eth-uclass.c
@@ -232,7 +232,7 @@ static int on_ethaddr(const char *name, const char *value, 
enum env_op op,
        /* look for an index after "eth" */
        index = simple_strtoul(name + 3, NULL, 10);
 
-       retval = uclass_find_device_by_seq(UCLASS_ETH, index, false, &dev);
+       retval = uclass_find_device_by_seq(UCLASS_ETH, index, &dev);
        if (!retval) {
                struct eth_pdata *pdata = dev->platdata;
                switch (op) {
diff --git a/test/dm/bus.c b/test/dm/bus.c
index e1fa67d91e1..27dd066350e 100644
--- a/test/dm/bus.c
+++ b/test/dm/bus.c
@@ -157,17 +157,17 @@ static int dm_test_bus_children_funcs(struct 
unit_test_state *uts)
        ut_asserteq_str("c-test@5", dev->name);
 
        /* Device with sequence number 0 should be accessible */
-       ut_asserteq(-ENODEV, device_find_child_by_seq(bus, -1, true, &dev));
-       ut_assertok(device_find_child_by_seq(bus, 0, true, &dev));
+       ut_asserteq(-ENODEV, device_find_child_by_seq(bus, -1, &dev));
+       ut_assertok(device_find_child_by_seq(bus, 0, &dev));
        ut_assert(!(dev->flags & DM_FLAG_ACTIVATED));
-       ut_asserteq(0, device_find_child_by_seq(bus, 0, false, &dev));
+       ut_asserteq(0, device_find_child_by_seq(bus, 0, &dev));
        ut_assertok(device_get_child_by_seq(bus, 0, &dev));
        ut_assert(dev->flags & DM_FLAG_ACTIVATED);
-       ut_asserteq(0, device_find_child_by_seq(bus, 0, false, &dev));
+       ut_asserteq(0, device_find_child_by_seq(bus, 0, &dev));
 
        /* There is no device with sequence number 2 */
-       ut_asserteq(-ENODEV, device_find_child_by_seq(bus, 2, false, &dev));
-       ut_asserteq(-ENODEV, device_find_child_by_seq(bus, 2, true, &dev));
+       ut_asserteq(-ENODEV, device_find_child_by_seq(bus, 2, &dev));
+       ut_asserteq(-ENODEV, device_find_child_by_seq(bus, 2, &dev));
        ut_asserteq(-ENODEV, device_get_child_by_seq(bus, 2, &dev));
 
        /* Looking for something that is not a child */
@@ -221,7 +221,7 @@ static int dm_test_bus_children_iterators(struct 
unit_test_state *uts)
        ut_asserteq_ptr(dev, NULL);
 
        /* Move to the next child without using device_find_first_child() */
-       ut_assertok(device_find_child_by_seq(bus, 5, true, &dev));
+       ut_assertok(device_find_child_by_seq(bus, 5, &dev));
        ut_asserteq_str("c-test@5", dev->name);
        ut_assertok(device_find_next_child(&dev));
        ut_asserteq_str("c-test@0", dev->name);
@@ -246,7 +246,7 @@ static int test_bus_parent_data(struct unit_test_state *uts)
        ut_assertok(uclass_get_device(UCLASS_TEST_BUS, 0, &bus));
 
        /* Check that parent data is allocated */
-       ut_assertok(device_find_child_by_seq(bus, 0, true, &dev));
+       ut_assertok(device_find_child_by_seq(bus, 0, &dev));
        ut_asserteq_ptr(NULL, dev_get_parent_priv(dev));
        ut_assertok(device_get_child_by_seq(bus, 0, &dev));
        parent_data = dev_get_parent_priv(dev);
diff --git a/test/dm/test-fdt.c b/test/dm/test-fdt.c
index 75b72313e86..50267f2fc26 100644
--- a/test/dm/test-fdt.c
+++ b/test/dm/test-fdt.c
@@ -332,21 +332,21 @@ static int dm_test_fdt_uclass_seq(struct unit_test_state 
*uts)
        int i;
 
        /* A few basic santiy tests */
-       ut_assertok(uclass_find_device_by_seq(UCLASS_TEST_FDT, 3, true, &dev));
+       ut_assertok(uclass_find_device_by_seq(UCLASS_TEST_FDT, 3, &dev));
        ut_asserteq_str("b-test", dev->name);
 
-       ut_assertok(uclass_find_device_by_seq(UCLASS_TEST_FDT, 8, true, &dev));
+       ut_assertok(uclass_find_device_by_seq(UCLASS_TEST_FDT, 8, &dev));
        ut_asserteq_str("a-test", dev->name);
 
        /*
         * c-test@0 has the testfdt0 alias but is not bound since some-bus does
         * not bind its children. So d-test gets it.
         */
-       ut_assertok(uclass_find_device_by_seq(UCLASS_TEST_FDT, 0, true, &dev));
+       ut_assertok(uclass_find_device_by_seq(UCLASS_TEST_FDT, 0, &dev));
        ut_asserteq_str("d-test", dev->name);
 
        ut_asserteq(-ENODEV, uclass_find_device_by_seq(UCLASS_TEST_FDT, 9,
-                                                      true, &dev));
+                                                      &dev));
        ut_asserteq_ptr(NULL, dev);
 
        /* Test aliases */
@@ -376,11 +376,11 @@ static int dm_test_fdt_uclass_seq(struct unit_test_state 
*uts)
 
        /* There should be no holes in our sequence numbers */
        for (i = 0; i < 9; i++) {
-               ut_assertok(uclass_find_device_by_seq(UCLASS_TEST_FDT, i, true,
+               ut_assertok(uclass_find_device_by_seq(UCLASS_TEST_FDT, i,
                                                      &dev));
        }
        ut_asserteq(-ENODEV, uclass_find_device_by_seq(UCLASS_TEST_FDT, 9,
-                                                      true, &dev));
+                                                      &dev));
 
        return 0;
 }
@@ -581,30 +581,30 @@ static int dm_test_fdt_translation(struct unit_test_state 
*uts)
        fdt32_t dma_addr[2];
 
        /* Some simple translations */
-       ut_assertok(uclass_find_device_by_seq(UCLASS_TEST_DUMMY, 0, true, 
&dev));
+       ut_assertok(uclass_find_device_by_seq(UCLASS_TEST_DUMMY, 0, &dev));
        ut_asserteq_str("dev@0,0", dev->name);
        ut_asserteq(0x8000, dev_read_addr(dev));
 
-       ut_assertok(uclass_find_device_by_seq(UCLASS_TEST_DUMMY, 1, true, 
&dev));
+       ut_assertok(uclass_find_device_by_seq(UCLASS_TEST_DUMMY, 1, &dev));
        ut_asserteq_str("dev@1,100", dev->name);
        ut_asserteq(0x9000, dev_read_addr(dev));
 
-       ut_assertok(uclass_find_device_by_seq(UCLASS_TEST_DUMMY, 2, true, 
&dev));
+       ut_assertok(uclass_find_device_by_seq(UCLASS_TEST_DUMMY, 2, &dev));
        ut_asserteq_str("dev@2,200", dev->name);
        ut_asserteq(0xA000, dev_read_addr(dev));
 
        /* No translation for busses with #size-cells == 0 */
-       ut_assertok(uclass_find_device_by_seq(UCLASS_TEST_DUMMY, 3, true, 
&dev));
+       ut_assertok(uclass_find_device_by_seq(UCLASS_TEST_DUMMY, 3, &dev));
        ut_asserteq_str("dev@42", dev->name);
        ut_asserteq(0x42, dev_read_addr(dev));
 
        /* dma address translation */
-       ut_assertok(uclass_find_device_by_seq(UCLASS_TEST_DUMMY, 0, true, 
&dev));
+       ut_assertok(uclass_find_device_by_seq(UCLASS_TEST_DUMMY, 0, &dev));
        dma_addr[0] = cpu_to_be32(0);
        dma_addr[1] = cpu_to_be32(0);
        ut_asserteq(0x10000000, dev_translate_dma_address(dev, dma_addr));
 
-       ut_assertok(uclass_find_device_by_seq(UCLASS_TEST_DUMMY, 1, true, 
&dev));
+       ut_assertok(uclass_find_device_by_seq(UCLASS_TEST_DUMMY, 1, &dev));
        dma_addr[0] = cpu_to_be32(1);
        dma_addr[1] = cpu_to_be32(0x100);
        ut_asserteq(0x20000000, dev_translate_dma_address(dev, dma_addr));
@@ -622,7 +622,7 @@ static int dm_test_fdt_get_addr_ptr_flat(struct 
unit_test_state *uts)
        ut_assertok(uclass_first_device_err(UCLASS_GPIO, &gpio));
        ut_assertnull(devfdt_get_addr_ptr(gpio));
 
-       ut_assertok(uclass_find_device_by_seq(UCLASS_TEST_DUMMY, 0, true, 
&dev));
+       ut_assertok(uclass_find_device_by_seq(UCLASS_TEST_DUMMY, 0, &dev));
        ptr = devfdt_get_addr_ptr(dev);
        ut_asserteq_ptr((void *)0x8000, ptr);
 
@@ -637,7 +637,7 @@ static int dm_test_fdt_remap_addr_flat(struct 
unit_test_state *uts)
        fdt_addr_t addr;
        void *paddr;
 
-       ut_assertok(uclass_find_device_by_seq(UCLASS_TEST_DUMMY, 0, true, 
&dev));
+       ut_assertok(uclass_find_device_by_seq(UCLASS_TEST_DUMMY, 0, &dev));
 
        addr = devfdt_get_addr(dev);
        ut_asserteq(0x8000, addr);
@@ -658,7 +658,7 @@ static int dm_test_fdt_remap_addr_index_flat(struct 
unit_test_state *uts)
        fdt_size_t size;
        void *paddr;
 
-       ut_assertok(uclass_find_device_by_seq(UCLASS_TEST_DUMMY, 0, true, 
&dev));
+       ut_assertok(uclass_find_device_by_seq(UCLASS_TEST_DUMMY, 0, &dev));
 
        addr = devfdt_get_addr_size_index(dev, 0, &size);
        ut_asserteq(0x8000, addr);
@@ -680,7 +680,7 @@ static int dm_test_fdt_remap_addr_name_flat(struct 
unit_test_state *uts)
        fdt_size_t size;
        void *paddr;
 
-       ut_assertok(uclass_find_device_by_seq(UCLASS_TEST_DUMMY, 0, true, 
&dev));
+       ut_assertok(uclass_find_device_by_seq(UCLASS_TEST_DUMMY, 0, &dev));
 
        addr = devfdt_get_addr_size_name(dev, "sandbox-dummy-0", &size);
        ut_asserteq(0x8000, addr);
@@ -701,7 +701,7 @@ static int dm_test_fdt_remap_addr_live(struct 
unit_test_state *uts)
        fdt_addr_t addr;
        void *paddr;
 
-       ut_assertok(uclass_find_device_by_seq(UCLASS_TEST_DUMMY, 0, true, 
&dev));
+       ut_assertok(uclass_find_device_by_seq(UCLASS_TEST_DUMMY, 0, &dev));
 
        addr = dev_read_addr(dev);
        ut_asserteq(0x8000, addr);
@@ -722,7 +722,7 @@ static int dm_test_fdt_remap_addr_index_live(struct 
unit_test_state *uts)
        fdt_size_t size;
        void *paddr;
 
-       ut_assertok(uclass_find_device_by_seq(UCLASS_TEST_DUMMY, 0, true, 
&dev));
+       ut_assertok(uclass_find_device_by_seq(UCLASS_TEST_DUMMY, 0, &dev));
 
        addr = dev_read_addr_size_index(dev, 0, &size);
        ut_asserteq(0x8000, addr);
@@ -744,7 +744,7 @@ static int dm_test_fdt_remap_addr_name_live(struct 
unit_test_state *uts)
        fdt_size_t size;
        void *paddr;
 
-       ut_assertok(uclass_find_device_by_seq(UCLASS_TEST_DUMMY, 0, true, 
&dev));
+       ut_assertok(uclass_find_device_by_seq(UCLASS_TEST_DUMMY, 0, &dev));
 
        addr = dev_read_addr_size_name(dev, "sandbox-dummy-0", &size);
        ut_asserteq(0x8000, addr);
@@ -779,7 +779,7 @@ static int dm_test_fdt_livetree_writing(struct 
unit_test_state *uts)
 
        device_bind_driver_to_node(dm_root(), "usb_sandbox", "usb@2", node,
                                   &dev);
-       ut_assertok(uclass_find_device_by_seq(UCLASS_USB, 2, true, &dev));
+       ut_assertok(uclass_find_device_by_seq(UCLASS_USB, 2, &dev));
 
        /* Test string property setting */
 
-- 
2.29.2.454.gaff20da3a2-goog

Reply via email to