* [U-Boot] [PATCH 0/5] dm: core: Fix up test failures
@ 2015-04-19 13:20 Simon Glass
2015-04-19 13:20 ` [U-Boot] [PATCH 1/5] dm: core: Handle recursive unbinding of uclass devices Simon Glass
` (4 more replies)
0 siblings, 5 replies; 17+ messages in thread
From: Simon Glass @ 2015-04-19 13:20 UTC (permalink / raw)
To: u-boot
While implementing the USB tests some strange failures crept in. I was not
able to debug them at the time and they were seemingly independent of the
USB tests. I then forgot about it.
I have now tracked these failures down. This series corrects them so that
the driver model tests run from start to finish.
The main problems are:
- recursive calls to uclass device_unbind() are not handled from within
uclass_destroy()
- dm_test_uclass_before_ready() can stop sandbox from working correctly for
tests that run after it
This series fixes these as well as a minor LCD console problem with sandbox.
It also updates the driver model README for recently added tests.
Simon Glass (5):
dm: core: Handle recursive unbinding of uclass devices
dm: usb: Add a terminator to the string destructor list
lcd: Call lcd_sync() after completing the scroll
dm: Update the README to reflect the current test output
dm: test: Don't clear global_data in dm_test_uclass_before_ready()
common/lcd_console.c | 2 +-
doc/driver-model/README.txt | 58 ++++++++++++++++++++++++++++++++++++------
drivers/core/uclass.c | 12 +++++++--
drivers/usb/emul/sandbox_hub.c | 1 +
test/dm/core.c | 6 +++--
5 files changed, 66 insertions(+), 13 deletions(-)
--
2.2.0.rc0.207.ga3a616c
^ permalink raw reply [flat|nested] 17+ messages in thread
* [U-Boot] [PATCH 1/5] dm: core: Handle recursive unbinding of uclass devices
2015-04-19 13:20 [U-Boot] [PATCH 0/5] dm: core: Fix up test failures Simon Glass
@ 2015-04-19 13:20 ` Simon Glass
2015-04-21 15:30 ` Joe Hershberger
2015-04-19 13:20 ` [U-Boot] [PATCH 2/5] dm: usb: Add a terminator to the string destructor list Simon Glass
` (3 subsequent siblings)
4 siblings, 1 reply; 17+ messages in thread
From: Simon Glass @ 2015-04-19 13:20 UTC (permalink / raw)
To: u-boot
Since a device can have children in the same uclass as itself, we need
to handle unbinding carefully: we must allow that unbinding a device in a
uclass may cause another device in the same uclass to be unbound.
Adjust the code to cope.
Signed-off-by: Simon Glass <sjg@chromium.org>
---
drivers/core/uclass.c | 12 ++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)
diff --git a/drivers/core/uclass.c b/drivers/core/uclass.c
index 98c15e5..45fcd08 100644
--- a/drivers/core/uclass.c
+++ b/drivers/core/uclass.c
@@ -99,10 +99,18 @@ fail_mem:
int uclass_destroy(struct uclass *uc)
{
struct uclass_driver *uc_drv;
- struct udevice *dev, *tmp;
+ struct udevice *dev;
int ret;
- list_for_each_entry_safe(dev, tmp, &uc->dev_head, uclass_node) {
+ /*
+ * We cannot use list_for_each_entry_safe() here. If a device in this
+ * uclass has a child device also in this uclass, it will be also be
+ * unbound (by the recursion in the call to device_unbind() below).
+ * We can loop until the list is empty.
+ */
+ while (!list_empty(&uc->dev_head)) {
+ dev = list_first_entry(&uc->dev_head, struct udevice,
+ uclass_node);
ret = device_remove(dev);
if (ret)
return ret;
--
2.2.0.rc0.207.ga3a616c
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [U-Boot] [PATCH 2/5] dm: usb: Add a terminator to the string destructor list
2015-04-19 13:20 [U-Boot] [PATCH 0/5] dm: core: Fix up test failures Simon Glass
2015-04-19 13:20 ` [U-Boot] [PATCH 1/5] dm: core: Handle recursive unbinding of uclass devices Simon Glass
@ 2015-04-19 13:20 ` Simon Glass
2015-04-21 15:40 ` Joe Hershberger
2015-04-19 13:21 ` [U-Boot] [PATCH 3/5] lcd: Call lcd_sync() after completing the scroll Simon Glass
` (2 subsequent siblings)
4 siblings, 1 reply; 17+ messages in thread
From: Simon Glass @ 2015-04-19 13:20 UTC (permalink / raw)
To: u-boot
The terminator is missing. Add it for completeness.
Signed-off-by: Simon Glass <sjg@chromium.org>
---
drivers/usb/emul/sandbox_hub.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/usb/emul/sandbox_hub.c b/drivers/usb/emul/sandbox_hub.c
index 280c708..baf8bdc 100644
--- a/drivers/usb/emul/sandbox_hub.c
+++ b/drivers/usb/emul/sandbox_hub.c
@@ -32,6 +32,7 @@ static struct usb_string hub_strings[] = {
{STRING_MANUFACTURER, "sandbox"},
{STRING_PRODUCT, "hub"},
{STRING_SERIAL, "2345"},
+ {},
};
static struct usb_device_descriptor hub_device_desc = {
--
2.2.0.rc0.207.ga3a616c
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [U-Boot] [PATCH 3/5] lcd: Call lcd_sync() after completing the scroll
2015-04-19 13:20 [U-Boot] [PATCH 0/5] dm: core: Fix up test failures Simon Glass
2015-04-19 13:20 ` [U-Boot] [PATCH 1/5] dm: core: Handle recursive unbinding of uclass devices Simon Glass
2015-04-19 13:20 ` [U-Boot] [PATCH 2/5] dm: usb: Add a terminator to the string destructor list Simon Glass
@ 2015-04-19 13:21 ` Simon Glass
2015-04-22 18:01 ` Simon Glass
2015-04-19 13:21 ` [U-Boot] [PATCH 4/5] dm: Update the README to reflect the current test output Simon Glass
2015-04-19 13:21 ` [U-Boot] [PATCH 5/5] dm: test: Don't clear global_data in dm_test_uclass_before_ready() Simon Glass
4 siblings, 1 reply; 17+ messages in thread
From: Simon Glass @ 2015-04-19 13:21 UTC (permalink / raw)
To: u-boot
On sandbox, if you add a printf() to malloc() for debugging, the output will
eventually cause the screen to scroll. Since lcd_sync() calls SDL functions
which allocate memory, and this happens before we have updated
console_curr_row, U-Boot gets locked in an infinite loop.
Flip the order of the two statements to avoid this.
Signed-off-by: Simon Glass <sjg@chromium.org>
---
common/lcd_console.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/common/lcd_console.c b/common/lcd_console.c
index 8bf83b9..ab48fd6 100644
--- a/common/lcd_console.c
+++ b/common/lcd_console.c
@@ -120,8 +120,8 @@ static void console_scrollup(void)
*ppix++ = bg_color;
}
#endif
- lcd_sync();
console_curr_row -= rows;
+ lcd_sync();
}
static inline void console_back(void)
--
2.2.0.rc0.207.ga3a616c
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [U-Boot] [PATCH 4/5] dm: Update the README to reflect the current test output
2015-04-19 13:20 [U-Boot] [PATCH 0/5] dm: core: Fix up test failures Simon Glass
` (2 preceding siblings ...)
2015-04-19 13:21 ` [U-Boot] [PATCH 3/5] lcd: Call lcd_sync() after completing the scroll Simon Glass
@ 2015-04-19 13:21 ` Simon Glass
2015-04-21 15:40 ` Joe Hershberger
2015-04-19 13:21 ` [U-Boot] [PATCH 5/5] dm: test: Don't clear global_data in dm_test_uclass_before_ready() Simon Glass
4 siblings, 1 reply; 17+ messages in thread
From: Simon Glass @ 2015-04-19 13:21 UTC (permalink / raw)
To: u-boot
There are a lot more tests now. To avoid confusion add the updated test
output to the driver model README.
Signed-off-by: Simon Glass <sjg@chromium.org>
---
doc/driver-model/README.txt | 58 ++++++++++++++++++++++++++++++++++++++-------
1 file changed, 50 insertions(+), 8 deletions(-)
diff --git a/doc/driver-model/README.txt b/doc/driver-model/README.txt
index f83264d..f0276b1 100644
--- a/doc/driver-model/README.txt
+++ b/doc/driver-model/README.txt
@@ -95,43 +95,82 @@ are provided in test/dm. To run them, try:
You should see something like this:
<...U-Boot banner...>
- Running 29 driver model tests
+ Running 53 driver model tests
Test: dm_test_autobind
Test: dm_test_autoprobe
+ Test: dm_test_bus_child_post_bind
+ Test: dm_test_bus_child_post_bind_uclass
+ Test: dm_test_bus_child_pre_probe_uclass
Test: dm_test_bus_children
- Device 'd-test': seq 3 is in use by 'b-test'
- Device 'c-test at 0': seq 0 is in use by 'a-test'
- Device 'c-test at 1': seq 1 is in use by 'd-test'
+ Device 'c-test at 0': seq 0 is in use by 'd-test'
+ Device 'c-test at 1': seq 1 is in use by 'f-test'
Test: dm_test_bus_children_funcs
Test: dm_test_bus_children_iterators
Test: dm_test_bus_parent_data
+ Test: dm_test_bus_parent_data_uclass
Test: dm_test_bus_parent_ops
+ Test: dm_test_bus_parent_platdata
+ Test: dm_test_bus_parent_platdata_uclass
Test: dm_test_children
+ Test: dm_test_device_get_uclass_id
+ Test: dm_test_eth
+ Using eth at 10002000 device
+ Using eth at 10003000 device
+ Using eth at 10004000 device
+ Test: dm_test_eth_alias
+ Using eth at 10002000 device
+ Using eth at 10004000 device
+ Using eth at 10002000 device
+ Using eth at 10003000 device
+ Test: dm_test_eth_prime
+ Using eth at 10003000 device
+ Using eth at 10002000 device
+ Test: dm_test_eth_rotate
+
+ Error: eth at 10004000 address not set.
+
+ Error: eth at 10004000 address not set.
+ Using eth at 10002000 device
+
+ Error: eth at 10004000 address not set.
+
+ Error: eth at 10004000 address not set.
+ Using eth at 10004000 device
Test: dm_test_fdt
- Device 'd-test': seq 3 is in use by 'b-test'
Test: dm_test_fdt_offset
Test: dm_test_fdt_pre_reloc
Test: dm_test_fdt_uclass_seq
- Device 'd-test': seq 3 is in use by 'b-test'
- Device 'a-test': seq 0 is in use by 'd-test'
Test: dm_test_gpio
extra-gpios: get_value: error: gpio b5 not reserved
Test: dm_test_gpio_anon
Test: dm_test_gpio_copy
Test: dm_test_gpio_leak
extra-gpios: get_value: error: gpio b5 not reserved
+ Test: dm_test_gpio_phandles
Test: dm_test_gpio_requestf
+ Test: dm_test_i2c_bytewise
+ Test: dm_test_i2c_find
+ Test: dm_test_i2c_offset
+ Test: dm_test_i2c_offset_len
+ Test: dm_test_i2c_probe_empty
+ Test: dm_test_i2c_read_write
+ Test: dm_test_i2c_speed
Test: dm_test_leak
Test: dm_test_lifecycle
+ Test: dm_test_net_retry
+ Using eth at 10004000 device
+ Using eth at 10002000 device
+ Using eth at 10004000 device
Test: dm_test_operations
Test: dm_test_ordering
+ Test: dm_test_pci_base
+ Test: dm_test_pci_swapcase
Test: dm_test_platdata
Test: dm_test_pre_reloc
Test: dm_test_remove
Test: dm_test_spi_find
Invalid chip select 0:0 (err=-19)
SF: Failed to get idcodes
- Device 'name-emul': seq 0 is in use by 'name-emul'
SF: Detected M25P16 with page size 256 Bytes, erase size 64 KiB, total 2 MiB
Test: dm_test_spi_flash
2097152 bytes written in 0 ms
@@ -150,6 +189,9 @@ You should see something like this:
SF: Detected M25P16 with page size 256 Bytes, erase size 64 KiB, total 2 MiB
Test: dm_test_uclass
Test: dm_test_uclass_before_ready
+ Test: dm_test_usb_base
+ Test: dm_test_usb_flash
+ USB-1: scanning bus 1 for devices... 2 USB Device(s) found
Failures: 0
--
2.2.0.rc0.207.ga3a616c
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [U-Boot] [PATCH 5/5] dm: test: Don't clear global_data in dm_test_uclass_before_ready()
2015-04-19 13:20 [U-Boot] [PATCH 0/5] dm: core: Fix up test failures Simon Glass
` (3 preceding siblings ...)
2015-04-19 13:21 ` [U-Boot] [PATCH 4/5] dm: Update the README to reflect the current test output Simon Glass
@ 2015-04-19 13:21 ` Simon Glass
2015-04-21 16:00 ` Joe Hershberger
4 siblings, 1 reply; 17+ messages in thread
From: Simon Glass @ 2015-04-19 13:21 UTC (permalink / raw)
To: u-boot
We must not clear global_data even in tests, since the ram_buffer (which
is used by malloc()) will also be lost, and subsequent tests will fail.
Zero only the global_data fields that are required for the test to function.
Signed-off-by: Simon Glass <sjg@chromium.org>
---
test/dm/core.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/test/dm/core.c b/test/dm/core.c
index 990d390..4b9c987 100644
--- a/test/dm/core.c
+++ b/test/dm/core.c
@@ -596,12 +596,14 @@ static int dm_test_uclass_before_ready(struct dm_test_state *dms)
ut_assertok(uclass_get(UCLASS_TEST, &uc));
- memset(gd, '\0', sizeof(*gd));
+ gd->dm_root = NULL;
+ gd->dm_root_f = NULL;
+ memset(&gd->uclass_root, '\0', sizeof(gd->uclass_root));
+
ut_asserteq_ptr(NULL, uclass_find(UCLASS_TEST));
return 0;
}
-
DM_TEST(dm_test_uclass_before_ready, 0);
static int dm_test_device_get_uclass_id(struct dm_test_state *dms)
--
2.2.0.rc0.207.ga3a616c
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [U-Boot] [PATCH 1/5] dm: core: Handle recursive unbinding of uclass devices
2015-04-19 13:20 ` [U-Boot] [PATCH 1/5] dm: core: Handle recursive unbinding of uclass devices Simon Glass
@ 2015-04-21 15:30 ` Joe Hershberger
2015-04-22 18:01 ` Simon Glass
0 siblings, 1 reply; 17+ messages in thread
From: Joe Hershberger @ 2015-04-21 15:30 UTC (permalink / raw)
To: u-boot
Hi Simon,
On Sun, Apr 19, 2015 at 8:20 AM, Simon Glass <sjg@chromium.org> wrote:
> Since a device can have children in the same uclass as itself, we need
> to handle unbinding carefully: we must allow that unbinding a device in a
> uclass may cause another device in the same uclass to be unbound.
>
> Adjust the code to cope.
>
> Signed-off-by: Simon Glass <sjg@chromium.org>
This fixed the seg fault I was seeing. Thanks!
Reviewed-by: Joe Hershberger <joe.hershberger@ni.com>
Tested-by: Joe Hershberger <joe.hershberger@ni.com>
^ permalink raw reply [flat|nested] 17+ messages in thread
* [U-Boot] [PATCH 2/5] dm: usb: Add a terminator to the string destructor list
2015-04-19 13:20 ` [U-Boot] [PATCH 2/5] dm: usb: Add a terminator to the string destructor list Simon Glass
@ 2015-04-21 15:40 ` Joe Hershberger
2015-04-21 17:08 ` Marek Vasut
0 siblings, 1 reply; 17+ messages in thread
From: Joe Hershberger @ 2015-04-21 15:40 UTC (permalink / raw)
To: u-boot
Hi Simon,
On Sun, Apr 19, 2015 at 8:20 AM, Simon Glass <sjg@chromium.org> wrote:
> The terminator is missing. Add it for completeness.
>
> Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Joe Hershberger <joe.hershberger@ni.com>
Tested-by: Joe Hershberger <joe.hershberger@ni.com>
^ permalink raw reply [flat|nested] 17+ messages in thread
* [U-Boot] [PATCH 4/5] dm: Update the README to reflect the current test output
2015-04-19 13:21 ` [U-Boot] [PATCH 4/5] dm: Update the README to reflect the current test output Simon Glass
@ 2015-04-21 15:40 ` Joe Hershberger
2015-04-22 18:01 ` Simon Glass
0 siblings, 1 reply; 17+ messages in thread
From: Joe Hershberger @ 2015-04-21 15:40 UTC (permalink / raw)
To: u-boot
Hi Simon,
On Sun, Apr 19, 2015 at 8:21 AM, Simon Glass <sjg@chromium.org> wrote:
> There are a lot more tests now. To avoid confusion add the updated test
> output to the driver model README.
>
> Signed-off-by: Simon Glass <sjg@chromium.org>
> ---
Reviewed-by: Joe Hershberger <joe.hershberger@ni.com>
^ permalink raw reply [flat|nested] 17+ messages in thread
* [U-Boot] [PATCH 5/5] dm: test: Don't clear global_data in dm_test_uclass_before_ready()
2015-04-19 13:21 ` [U-Boot] [PATCH 5/5] dm: test: Don't clear global_data in dm_test_uclass_before_ready() Simon Glass
@ 2015-04-21 16:00 ` Joe Hershberger
2015-04-22 18:01 ` Simon Glass
0 siblings, 1 reply; 17+ messages in thread
From: Joe Hershberger @ 2015-04-21 16:00 UTC (permalink / raw)
To: u-boot
Hi Simon,
On Sun, Apr 19, 2015 at 8:21 AM, Simon Glass <sjg@chromium.org> wrote:
> We must not clear global_data even in tests, since the ram_buffer (which
> is used by malloc()) will also be lost, and subsequent tests will fail.
>
> Zero only the global_data fields that are required for the test to function.
>
> Signed-off-by: Simon Glass <sjg@chromium.org>
For me, this fixed:
"""
Test: dm_test_usb_base
/home/joe/u-boot/test/dm/test-main.c:27, dm_test_init(): 0 ==
dm_init(): Expected 0, got -12
/home/joe/u-boot/test/dm/test-main.c:93, dm_test_main(): 0 ==
dm_test_init(dms): Expected 0, got -1
"""
Reviewed-by: Joe Hershberger <joe.hershberger@ni.com>
Tested-by: Joe Hershberger <joe.hershberger@ni.com>
^ permalink raw reply [flat|nested] 17+ messages in thread
* [U-Boot] [PATCH 2/5] dm: usb: Add a terminator to the string destructor list
2015-04-21 15:40 ` Joe Hershberger
@ 2015-04-21 17:08 ` Marek Vasut
2015-04-21 17:11 ` Simon Glass
0 siblings, 1 reply; 17+ messages in thread
From: Marek Vasut @ 2015-04-21 17:08 UTC (permalink / raw)
To: u-boot
On Tuesday, April 21, 2015 at 05:40:00 PM, Joe Hershberger wrote:
> Hi Simon,
>
> On Sun, Apr 19, 2015 at 8:20 AM, Simon Glass <sjg@chromium.org> wrote:
> > The terminator is missing. Add it for completeness.
> >
> > Signed-off-by: Simon Glass <sjg@chromium.org>
>
> Reviewed-by: Joe Hershberger <joe.hershberger@ni.com>
> Tested-by: Joe Hershberger <joe.hershberger@ni.com>
Hi Simon,
will you pick these please ?
Best regards,
Marek Vasut
^ permalink raw reply [flat|nested] 17+ messages in thread
* [U-Boot] [PATCH 2/5] dm: usb: Add a terminator to the string destructor list
2015-04-21 17:08 ` Marek Vasut
@ 2015-04-21 17:11 ` Simon Glass
2015-04-22 18:01 ` Simon Glass
0 siblings, 1 reply; 17+ messages in thread
From: Simon Glass @ 2015-04-21 17:11 UTC (permalink / raw)
To: u-boot
Hi Marek,
Yes, will do. I need to review the pmic stuff too.
Regards,
Simon
On 21 April 2015 at 11:08, Marek Vasut <marex@denx.de> wrote:
> On Tuesday, April 21, 2015 at 05:40:00 PM, Joe Hershberger wrote:
>> Hi Simon,
>>
>> On Sun, Apr 19, 2015 at 8:20 AM, Simon Glass <sjg@chromium.org> wrote:
>> > The terminator is missing. Add it for completeness.
>> >
>> > Signed-off-by: Simon Glass <sjg@chromium.org>
>>
>> Reviewed-by: Joe Hershberger <joe.hershberger@ni.com>
>> Tested-by: Joe Hershberger <joe.hershberger@ni.com>
>
> Hi Simon,
>
> will you pick these please ?
>
> Best regards,
> Marek Vasut
^ permalink raw reply [flat|nested] 17+ messages in thread
* [U-Boot] [PATCH 1/5] dm: core: Handle recursive unbinding of uclass devices
2015-04-21 15:30 ` Joe Hershberger
@ 2015-04-22 18:01 ` Simon Glass
0 siblings, 0 replies; 17+ messages in thread
From: Simon Glass @ 2015-04-22 18:01 UTC (permalink / raw)
To: u-boot
On 21 April 2015 at 09:30, Joe Hershberger <joe.hershberger@gmail.com> wrote:
> Hi Simon,
>
> On Sun, Apr 19, 2015 at 8:20 AM, Simon Glass <sjg@chromium.org> wrote:
>> Since a device can have children in the same uclass as itself, we need
>> to handle unbinding carefully: we must allow that unbinding a device in a
>> uclass may cause another device in the same uclass to be unbound.
>>
>> Adjust the code to cope.
>>
>> Signed-off-by: Simon Glass <sjg@chromium.org>
>
> This fixed the seg fault I was seeing. Thanks!
>
> Reviewed-by: Joe Hershberger <joe.hershberger@ni.com>
> Tested-by: Joe Hershberger <joe.hershberger@ni.com>
Applied to u-boot-dm.
^ permalink raw reply [flat|nested] 17+ messages in thread
* [U-Boot] [PATCH 2/5] dm: usb: Add a terminator to the string destructor list
2015-04-21 17:11 ` Simon Glass
@ 2015-04-22 18:01 ` Simon Glass
0 siblings, 0 replies; 17+ messages in thread
From: Simon Glass @ 2015-04-22 18:01 UTC (permalink / raw)
To: u-boot
On 21 April 2015 at 11:11, Simon Glass <sjg@chromium.org> wrote:
> Hi Marek,
>
> Yes, will do. I need to review the pmic stuff too.
>
> Regards,
> Simon
>
>
> On 21 April 2015 at 11:08, Marek Vasut <marex@denx.de> wrote:
>> On Tuesday, April 21, 2015 at 05:40:00 PM, Joe Hershberger wrote:
>>> Hi Simon,
>>>
>>> On Sun, Apr 19, 2015 at 8:20 AM, Simon Glass <sjg@chromium.org> wrote:
>>> > The terminator is missing. Add it for completeness.
>>> >
>>> > Signed-off-by: Simon Glass <sjg@chromium.org>
>>>
>>> Reviewed-by: Joe Hershberger <joe.hershberger@ni.com>
>>> Tested-by: Joe Hershberger <joe.hershberger@ni.com>
>>
>> Hi Simon,
>>
>> will you pick these please ?
>>
>> Best regards,
>> Marek Vasut
Applied to u-boot-dm.
^ permalink raw reply [flat|nested] 17+ messages in thread
* [U-Boot] [PATCH 3/5] lcd: Call lcd_sync() after completing the scroll
2015-04-19 13:21 ` [U-Boot] [PATCH 3/5] lcd: Call lcd_sync() after completing the scroll Simon Glass
@ 2015-04-22 18:01 ` Simon Glass
0 siblings, 0 replies; 17+ messages in thread
From: Simon Glass @ 2015-04-22 18:01 UTC (permalink / raw)
To: u-boot
Hi,
On 19 April 2015 at 07:21, Simon Glass <sjg@chromium.org> wrote:
> On sandbox, if you add a printf() to malloc() for debugging, the output will
> eventually cause the screen to scroll. Since lcd_sync() calls SDL functions
> which allocate memory, and this happens before we have updated
> console_curr_row, U-Boot gets locked in an infinite loop.
>
> Flip the order of the two statements to avoid this.
>
> Signed-off-by: Simon Glass <sjg@chromium.org>
> ---
>
> common/lcd_console.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/common/lcd_console.c b/common/lcd_console.c
> index 8bf83b9..ab48fd6 100644
> --- a/common/lcd_console.c
> +++ b/common/lcd_console.c
> @@ -120,8 +120,8 @@ static void console_scrollup(void)
> *ppix++ = bg_color;
> }
> #endif
> - lcd_sync();
> console_curr_row -= rows;
> + lcd_sync();
> }
>
> static inline void console_back(void)
> --
> 2.2.0.rc0.207.ga3a616c
>
This patch is obsolete now since this problem is fixed by an earlier
patch, now applied.
I am dropping it.
Regards,
Simon
^ permalink raw reply [flat|nested] 17+ messages in thread
* [U-Boot] [PATCH 4/5] dm: Update the README to reflect the current test output
2015-04-21 15:40 ` Joe Hershberger
@ 2015-04-22 18:01 ` Simon Glass
0 siblings, 0 replies; 17+ messages in thread
From: Simon Glass @ 2015-04-22 18:01 UTC (permalink / raw)
To: u-boot
On 21 April 2015 at 09:40, Joe Hershberger <joe.hershberger@gmail.com> wrote:
> Hi Simon,
>
> On Sun, Apr 19, 2015 at 8:21 AM, Simon Glass <sjg@chromium.org> wrote:
>> There are a lot more tests now. To avoid confusion add the updated test
>> output to the driver model README.
>>
>> Signed-off-by: Simon Glass <sjg@chromium.org>
>> ---
>
> Reviewed-by: Joe Hershberger <joe.hershberger@ni.com>
Applied to u-boot-dm.
^ permalink raw reply [flat|nested] 17+ messages in thread
* [U-Boot] [PATCH 5/5] dm: test: Don't clear global_data in dm_test_uclass_before_ready()
2015-04-21 16:00 ` Joe Hershberger
@ 2015-04-22 18:01 ` Simon Glass
0 siblings, 0 replies; 17+ messages in thread
From: Simon Glass @ 2015-04-22 18:01 UTC (permalink / raw)
To: u-boot
On 21 April 2015 at 10:00, Joe Hershberger <joe.hershberger@gmail.com> wrote:
> Hi Simon,
>
> On Sun, Apr 19, 2015 at 8:21 AM, Simon Glass <sjg@chromium.org> wrote:
>> We must not clear global_data even in tests, since the ram_buffer (which
>> is used by malloc()) will also be lost, and subsequent tests will fail.
>>
>> Zero only the global_data fields that are required for the test to function.
>>
>> Signed-off-by: Simon Glass <sjg@chromium.org>
>
> For me, this fixed:
>
> """
> Test: dm_test_usb_base
> /home/joe/u-boot/test/dm/test-main.c:27, dm_test_init(): 0 ==
> dm_init(): Expected 0, got -12
> /home/joe/u-boot/test/dm/test-main.c:93, dm_test_main(): 0 ==
> dm_test_init(dms): Expected 0, got -1
> """
>
> Reviewed-by: Joe Hershberger <joe.hershberger@ni.com>
> Tested-by: Joe Hershberger <joe.hershberger@ni.com>
Applied to u-boot-dm.
^ permalink raw reply [flat|nested] 17+ messages in thread
end of thread, other threads:[~2015-04-22 18:01 UTC | newest]
Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-04-19 13:20 [U-Boot] [PATCH 0/5] dm: core: Fix up test failures Simon Glass
2015-04-19 13:20 ` [U-Boot] [PATCH 1/5] dm: core: Handle recursive unbinding of uclass devices Simon Glass
2015-04-21 15:30 ` Joe Hershberger
2015-04-22 18:01 ` Simon Glass
2015-04-19 13:20 ` [U-Boot] [PATCH 2/5] dm: usb: Add a terminator to the string destructor list Simon Glass
2015-04-21 15:40 ` Joe Hershberger
2015-04-21 17:08 ` Marek Vasut
2015-04-21 17:11 ` Simon Glass
2015-04-22 18:01 ` Simon Glass
2015-04-19 13:21 ` [U-Boot] [PATCH 3/5] lcd: Call lcd_sync() after completing the scroll Simon Glass
2015-04-22 18:01 ` Simon Glass
2015-04-19 13:21 ` [U-Boot] [PATCH 4/5] dm: Update the README to reflect the current test output Simon Glass
2015-04-21 15:40 ` Joe Hershberger
2015-04-22 18:01 ` Simon Glass
2015-04-19 13:21 ` [U-Boot] [PATCH 5/5] dm: test: Don't clear global_data in dm_test_uclass_before_ready() Simon Glass
2015-04-21 16:00 ` Joe Hershberger
2015-04-22 18:01 ` Simon Glass
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.