
Simon,
2014-09-29 0:17 GMT+09:00 Simon Glass sjg@chromium.org:
Hi Masahiro,
On 28 September 2014 07:52, Masahiro Yamada yamada.m@jp.panasonic.com wrote:
The function uclass_find() looks for a uclass in the linked list of gd->uclass_root; gd->dm_root has nothing to do with gd->uclass_root. Remove this confusing code.
Signed-off-by: Masahiro Yamada yamada.m@jp.panasonic.com
drivers/core/uclass.c | 2 -- 1 file changed, 2 deletions(-)
diff --git a/drivers/core/uclass.c b/drivers/core/uclass.c index 901b06e..74df613 100644 --- a/drivers/core/uclass.c +++ b/drivers/core/uclass.c @@ -23,8 +23,6 @@ struct uclass *uclass_find(enum uclass_id key) { struct uclass *uc;
if (!gd->dm_root)
return NULL; /* * TODO(sjg@chromium.org): Optimise this, perhaps moving the found * node to the start of the list, or creating a linear array mapping
This came in in commit:
c910e2e dm: Avoid accessing uclasses before they are ready
Please see that (and the test that was added) for an explanation.
Commit c910e2e says:
dm: Avoid accessing uclasses before they are ready
Don't allow access to uclasses before they have been initialised.
I still don't get it. The log did not help me because it is not saying 'why'.
What kind problem would happen if this check was dropped?
gd->dm_root is set when the root device is bound. At the first call of uclass_find(), it is true gd->dm_root is NULL, but gd->uclass_root is also empty.
This function, anyway, returns NULL. The behavior is still the same, I think.