mirror of
https://source.denx.de/u-boot/u-boot.git
synced 2026-06-13 15:03:58 +03:00
dm: core: Add flags parameter to device_remove()
This patch adds the flags parameter to device_remove() and changes all calls to this function to provide the default value of DM_REMOVE_NORMAL for "normal" device removal. This is in preparation for the driver specific pre-OS (e.g. DMA cancelling) remove support. Signed-off-by: Stefan Roese <sr@denx.de> Cc: Simon Glass <sjg@chromium.org> Acked-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
committed by
Simon Glass
parent
11db152246
commit
706865afe5
@@ -222,7 +222,7 @@ static int test_bus_parent_data(struct unit_test_state *uts)
|
||||
/* Check that it starts at 0 and goes away when device is removed */
|
||||
parent_data->sum += 5;
|
||||
ut_asserteq(5, parent_data->sum);
|
||||
device_remove(dev);
|
||||
device_remove(dev, DM_REMOVE_NORMAL);
|
||||
ut_asserteq_ptr(NULL, dev_get_parent_priv(dev));
|
||||
|
||||
/* Check that we can do this twice */
|
||||
@@ -323,7 +323,7 @@ static int dm_test_bus_parent_ops(struct unit_test_state *uts)
|
||||
continue;
|
||||
parent_data = dev_get_parent_priv(dev);
|
||||
ut_asserteq(FLAG_CHILD_PROBED, parent_data->flag);
|
||||
ut_assertok(device_remove(dev));
|
||||
ut_assertok(device_remove(dev, DM_REMOVE_NORMAL));
|
||||
ut_asserteq_ptr(NULL, dev_get_parent_priv(dev));
|
||||
ut_asserteq_ptr(dms->removed, dev);
|
||||
}
|
||||
@@ -360,7 +360,7 @@ static int test_bus_parent_platdata(struct unit_test_state *uts)
|
||||
plat->count++;
|
||||
ut_asserteq(1, plat->count);
|
||||
device_probe(dev);
|
||||
device_remove(dev);
|
||||
device_remove(dev, DM_REMOVE_NORMAL);
|
||||
|
||||
ut_asserteq_ptr(plat, dev_get_parent_platdata(dev));
|
||||
ut_asserteq(1, plat->count);
|
||||
@@ -370,7 +370,7 @@ static int test_bus_parent_platdata(struct unit_test_state *uts)
|
||||
ut_asserteq(3, child_count);
|
||||
|
||||
/* Removing the bus should also have no effect (it is still bound) */
|
||||
device_remove(bus);
|
||||
device_remove(bus, DM_REMOVE_NORMAL);
|
||||
for (device_find_first_child(bus, &dev), child_count = 0;
|
||||
dev;
|
||||
device_find_next_child(&dev)) {
|
||||
|
||||
@@ -319,7 +319,7 @@ static int dm_test_lifecycle(struct unit_test_state *uts)
|
||||
|
||||
/* Now remove device 3 */
|
||||
ut_asserteq(0, dm_testdrv_op_count[DM_TEST_OP_PRE_REMOVE]);
|
||||
ut_assertok(device_remove(dev));
|
||||
ut_assertok(device_remove(dev, DM_REMOVE_NORMAL));
|
||||
ut_asserteq(1, dm_testdrv_op_count[DM_TEST_OP_PRE_REMOVE]);
|
||||
|
||||
ut_asserteq(0, dm_testdrv_op_count[DM_TEST_OP_UNBIND]);
|
||||
@@ -352,7 +352,7 @@ static int dm_test_ordering(struct unit_test_state *uts)
|
||||
ut_assert(dev_last);
|
||||
|
||||
/* Now remove device 3 */
|
||||
ut_assertok(device_remove(dev));
|
||||
ut_assertok(device_remove(dev, DM_REMOVE_NORMAL));
|
||||
ut_assertok(device_unbind(dev));
|
||||
|
||||
/* The device numbering should have shifted down one */
|
||||
@@ -371,9 +371,9 @@ static int dm_test_ordering(struct unit_test_state *uts)
|
||||
ut_assert(pingret == 102);
|
||||
|
||||
/* Remove 3 and 4 */
|
||||
ut_assertok(device_remove(dev_penultimate));
|
||||
ut_assertok(device_remove(dev_penultimate, DM_REMOVE_NORMAL));
|
||||
ut_assertok(device_unbind(dev_penultimate));
|
||||
ut_assertok(device_remove(dev_last));
|
||||
ut_assertok(device_remove(dev_last, DM_REMOVE_NORMAL));
|
||||
ut_assertok(device_unbind(dev_last));
|
||||
|
||||
/* Our device should now be in position 3 */
|
||||
@@ -381,7 +381,7 @@ static int dm_test_ordering(struct unit_test_state *uts)
|
||||
ut_assert(dev == test_dev);
|
||||
|
||||
/* Now remove device 3 */
|
||||
ut_assertok(device_remove(dev));
|
||||
ut_assertok(device_remove(dev, DM_REMOVE_NORMAL));
|
||||
ut_assertok(device_unbind(dev));
|
||||
|
||||
return 0;
|
||||
@@ -457,7 +457,7 @@ static int dm_test_remove(struct unit_test_state *uts)
|
||||
ut_assert(dev);
|
||||
ut_assertf(dev->flags & DM_FLAG_ACTIVATED,
|
||||
"Driver %d/%s not activated", i, dev->name);
|
||||
ut_assertok(device_remove(dev));
|
||||
ut_assertok(device_remove(dev, DM_REMOVE_NORMAL));
|
||||
ut_assertf(!(dev->flags & DM_FLAG_ACTIVATED),
|
||||
"Driver %d/%s should have deactivated", i,
|
||||
dev->name);
|
||||
@@ -611,14 +611,14 @@ static int dm_test_children(struct unit_test_state *uts)
|
||||
ut_asserteq(total, dm_testdrv_op_count[DM_TEST_OP_PROBE]);
|
||||
|
||||
/* Remove a top-level child and check that the children are removed */
|
||||
ut_assertok(device_remove(top[2]));
|
||||
ut_assertok(device_remove(top[2], DM_REMOVE_NORMAL));
|
||||
ut_asserteq(NODE_COUNT + 1, dm_testdrv_op_count[DM_TEST_OP_REMOVE]);
|
||||
dm_testdrv_op_count[DM_TEST_OP_REMOVE] = 0;
|
||||
|
||||
/* Try one with grandchildren */
|
||||
ut_assertok(uclass_get_device(UCLASS_TEST, 5, &dev));
|
||||
ut_asserteq_ptr(dev, top[5]);
|
||||
ut_assertok(device_remove(dev));
|
||||
ut_assertok(device_remove(dev, DM_REMOVE_NORMAL));
|
||||
ut_asserteq(1 + NODE_COUNT * (1 + NODE_COUNT),
|
||||
dm_testdrv_op_count[DM_TEST_OP_REMOVE]);
|
||||
|
||||
|
||||
@@ -116,7 +116,7 @@ static int dm_test_eth_act(struct unit_test_state *uts)
|
||||
for (i = 0; i < DM_TEST_ETH_NUM; i++) {
|
||||
ut_assertok(uclass_find_device_by_name(UCLASS_ETH,
|
||||
ethname[i], &dev[i]));
|
||||
ut_assertok(device_remove(dev[i]));
|
||||
ut_assertok(device_remove(dev[i], DM_REMOVE_NORMAL));
|
||||
|
||||
/* Invalidate MAC address */
|
||||
strcpy(ethaddr[i], getenv(addrname[i]));
|
||||
|
||||
@@ -36,7 +36,7 @@ static int dm_test_spi_find(struct unit_test_state *uts)
|
||||
ut_asserteq(0, uclass_get_device_by_seq(UCLASS_SPI, busnum, &bus));
|
||||
ut_assertok(spi_cs_info(bus, cs, &info));
|
||||
of_offset = dev_of_offset(info.dev);
|
||||
device_remove(info.dev);
|
||||
device_remove(info.dev, DM_REMOVE_NORMAL);
|
||||
device_unbind(info.dev);
|
||||
|
||||
/*
|
||||
|
||||
Reference in New Issue
Block a user