diff options
| author | Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> | 2008-08-31 04:24:55 +0200 | 
|---|---|---|
| committer | Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> | 2008-08-31 04:24:55 +0200 | 
| commit | c1de7a6daf9c657484e1c6d433f01fccd49a7f48 (patch) | |
| tree | 7d73ef79e8208b3ac21de13a4a4e968dbf0e6e19 /common/console.c | |
| parent | ef0255fc75f28655f9681422079287d68a14dbaa (diff) | |
| download | olio-uboot-2014.01-c1de7a6daf9c657484e1c6d433f01fccd49a7f48.tar.xz olio-uboot-2014.01-c1de7a6daf9c657484e1c6d433f01fccd49a7f48.zip | |
devices: merge to list_head
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Diffstat (limited to 'common/console.c')
| -rw-r--r-- | common/console.c | 62 | 
1 files changed, 25 insertions, 37 deletions
| diff --git a/common/console.c b/common/console.c index 1b095b1ca..cfcaeb86c 100644 --- a/common/console.c +++ b/common/console.c @@ -325,9 +325,22 @@ inline void dbg(const char *fmt, ...)  /** U-Boot INIT FUNCTIONS *************************************************/ +device_t *search_device (int flags, char *name) +{ +	device_t *dev; + +	dev = device_get_by_name(name); + +	if(dev && (dev->flags & flags)) +		return dev; + +	return NULL; +} +  int console_assign (int file, char *devname)  { -	int flag, i; +	int flag; +	device_t *dev;  	/* Check for valid file */  	switch (file) { @@ -344,16 +357,10 @@ int console_assign (int file, char *devname)  	/* Check for valid device name */ -	for (i = 1; i <= ListNumItems (devlist); i++) { -		device_t *dev = ListGetPtrToItem (devlist, i); - -		if (strcmp (devname, dev->name) == 0) { -			if (dev->flags & flag) -				return console_setfile (file, dev); +	dev = search_device(flag, devname); -			return -1; -		} -	} +	if(dev) +		return console_setfile (file, dev);  	return -1;  } @@ -371,27 +378,6 @@ int console_init_f (void)  	return (0);  } -#if defined(CFG_CONSOLE_IS_IN_ENV) || defined(CONFIG_SPLASH_SCREEN) || defined(CONFIG_SILENT_CONSOLE) -/* search a device */ -device_t *search_device (int flags, char *name) -{ -	int i, items; -	device_t *dev = NULL; - -	items = ListNumItems (devlist); -	if (name == NULL) -		return dev; - -	for (i = 1; i <= items; i++) { -		dev = ListGetPtrToItem (devlist, i); -		if ((dev->flags & flags) && (strcmp (name, dev->name) == 0)) { -			break; -		} -	} -	return dev; -} -#endif /* CFG_CONSOLE_IS_IN_ENV || CONFIG_SPLASH_SCREEN */ -  #ifdef CFG_CONSOLE_IS_IN_ENV  /* Called after the relocation - use desired console functions */  int console_init_r (void) @@ -488,7 +474,10 @@ int console_init_r (void)  int console_init_r (void)  {  	device_t *inputdev = NULL, *outputdev = NULL; -	int i, items = ListNumItems (devlist); +	int i; +	struct list_head *list = device_get_list(); +	struct list_head *pos; +	device_t *dev;  #ifdef CONFIG_SPLASH_SCREEN  	/* suppress all output if splash screen is enabled and we have @@ -498,11 +487,8 @@ int console_init_r (void)  #endif  	/* Scan devices looking for input and output devices */ -	for (i = 1; -	     (i <= items) && ((inputdev == NULL) || (outputdev == NULL)); -	     i++ -	    ) { -		device_t *dev = ListGetPtrToItem (devlist, i); +	list_for_each(pos, list) { +		dev = list_entry(pos, device_t, list);  		if ((dev->flags & DEV_FLAGS_INPUT) && (inputdev == NULL)) {  			inputdev = dev; @@ -510,6 +496,8 @@ int console_init_r (void)  		if ((dev->flags & DEV_FLAGS_OUTPUT) && (outputdev == NULL)) {  			outputdev = dev;  		} +		if(inputdev && outputdev) +			break;  	}  	/* Initializes output console first */ |