mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-10 15:14:43 +00:00
Prevent USB commands from working when USB is stopped.
This commit is contained in:
parent
7455af41d1
commit
e51aae3829
3 changed files with 12 additions and 0 deletions
|
@ -2,6 +2,8 @@
|
|||
Changes since U-Boot 1.1.4:
|
||||
======================================================================
|
||||
|
||||
* Prevent USB commands from working when USB is stopped.
|
||||
|
||||
* Add rudimentary handling of alternate settings of USB interfaces.
|
||||
This is in order to fix issues with some USB sticks or knives timing
|
||||
out during initialisation. Some code readability improvements.
|
||||
|
|
|
@ -444,6 +444,7 @@ int do_usb (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
|
|||
|
||||
int i;
|
||||
struct usb_device *dev = NULL;
|
||||
extern char usb_started;
|
||||
#ifdef CONFIG_USB_STORAGE
|
||||
block_dev_desc_t *stor_dev;
|
||||
#endif
|
||||
|
@ -477,6 +478,10 @@ int do_usb (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
|
|||
usb_stop();
|
||||
return 0;
|
||||
}
|
||||
if (!usb_started) {
|
||||
printf("USB is stopped. Please issue 'usb start' first.\n");
|
||||
return 1;
|
||||
}
|
||||
if (strncmp(argv[1],"tree",4) == 0) {
|
||||
printf("\nDevice Tree:\n");
|
||||
usb_show_tree(usb_get_dev_index(0));
|
||||
|
|
|
@ -72,6 +72,8 @@ static int running;
|
|||
static int asynch_allowed;
|
||||
static struct devrequest setup_packet;
|
||||
|
||||
char usb_started; /* flag for the started/stopped USB status */
|
||||
|
||||
/**********************************************************************
|
||||
* some forward declerations...
|
||||
*/
|
||||
|
@ -110,10 +112,12 @@ int usb_init(void)
|
|||
printf("scanning bus for devices... ");
|
||||
running=1;
|
||||
usb_scan_devices();
|
||||
usb_started = 1;
|
||||
return 0;
|
||||
}
|
||||
else {
|
||||
printf("Error, couldn't init Lowlevel part\n");
|
||||
usb_started = 0;
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
@ -124,6 +128,7 @@ int usb_init(void)
|
|||
int usb_stop(void)
|
||||
{
|
||||
asynch_allowed=1;
|
||||
usb_started = 0;
|
||||
usb_hub_reset();
|
||||
return usb_lowlevel_stop();
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue