Prevent USB commands from working when USB is stopped.

master
Bartlomiej Sieka 18 years ago
parent 7455af41d1
commit e51aae3829
  1. 2
      CHANGELOG
  2. 5
      common/cmd_usb.c
  3. 5
      common/usb.c

@ -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…
Cancel
Save