[U-Boot] [RFC PATCH] USB style patch

Michael Trimarchi trimarchi at gandalf.sssup.it
Wed Nov 26 11:45:40 CET 2008


[PATCH] USB style patch

Signed-off-by: Michael Trimarchi <trimarchi at gandalf.sssup.it>

---
 common/cmd_usb.c |  591 ++++++++++++++++++++++++++++-------------------------
 common/usb.c     |   40 +++--
 include/usb.h    |  222 ++++++++++++---------
 3 files changed, 461 insertions(+), 392 deletions(-)

diff --git a/common/cmd_usb.c b/common/cmd_usb.c
index 99e551f..eeec080 100644
--- a/common/cmd_usb.c
+++ b/common/cmd_usb.c
@@ -36,178 +36,206 @@ static int usb_stor_curr_dev = -1; /* current device */
 #endif
 
 /* some display routines (info command) */
-char * usb_get_class_desc(unsigned char dclass)
+char *usb_get_class_desc(unsigned char dclass)
 {
-	switch(dclass) {
-		case USB_CLASS_PER_INTERFACE:
-			return("See Interface");
-		case USB_CLASS_AUDIO:
-			return("Audio");
-		case USB_CLASS_COMM:
-			return("Communication");
-		case USB_CLASS_HID:
-			return("Human Interface");
-		case USB_CLASS_PRINTER:
-			return("Printer");
-		case USB_CLASS_MASS_STORAGE:
-			return("Mass Storage");
-		case USB_CLASS_HUB:
-			return("Hub");
-		case USB_CLASS_DATA:
-			return("CDC Data");
-		case USB_CLASS_VENDOR_SPEC:
-			return("Vendor specific");
-		default :
-			return("");
+	switch (dclass) {
+	case USB_CLASS_PER_INTERFACE:
+		return "See Interface";
+	case USB_CLASS_AUDIO:
+		return "Audio";
+	case USB_CLASS_COMM:
+		return "Communication";
+	case USB_CLASS_HID:
+		return "Human Interface";
+	case USB_CLASS_PRINTER:
+		return "Printer";
+	case USB_CLASS_MASS_STORAGE:
+		return "Mass Storage";
+	case USB_CLASS_HUB:
+		return "Hub";
+	case USB_CLASS_DATA:
+		return "CDC Data";
+	case USB_CLASS_VENDOR_SPEC:
+		return "Vendor specific";
+	default:
+		return "";
 	}
 }
 
-void usb_display_class_sub(unsigned char dclass,unsigned char subclass,unsigned char proto)
+void usb_display_class_sub(unsigned char dclass, unsigned char subclass,
+			   unsigned char proto)
 {
-	switch(dclass) {
-		case USB_CLASS_PER_INTERFACE:
-			printf("See Interface");
+	switch (dclass) {
+	case USB_CLASS_PER_INTERFACE:
+		printf("See Interface");
+		break;
+	case USB_CLASS_HID:
+		printf("Human Interface, Subclass: ");
+		switch (subclass) {
+		case USB_SUB_HID_NONE:
+			printf("None");
 			break;
-		case USB_CLASS_HID:
-			printf("Human Interface, Subclass: ");
-			switch(subclass) {
-				case USB_SUB_HID_NONE:
-					printf("None");
-					break;
-				case USB_SUB_HID_BOOT:
-					printf("Boot ");
-					switch(proto) {
-						case USB_PROT_HID_NONE:
-							printf("None");
-							break;
-						case USB_PROT_HID_KEYBOARD:
-							printf("Keyboard");
-							break;
-						case USB_PROT_HID_MOUSE:
-							printf("Mouse");
-							break;
-						default:
-							printf("reserved");
-					}
-					break;
-				default:
-					printf("reserved");
+		case USB_SUB_HID_BOOT:
+			printf("Boot ");
+			switch (proto) {
+			case USB_PROT_HID_NONE:
+				printf("None");
+				break;
+			case USB_PROT_HID_KEYBOARD:
+				printf("Keyboard");
+				break;
+			case USB_PROT_HID_MOUSE:
+				printf("Mouse");
+				break;
+			default:
+				printf("reserved");
 			}
 			break;
-		case USB_CLASS_MASS_STORAGE:
-			printf("Mass Storage, ");
-			switch(subclass) {
-				case US_SC_RBC:
-					printf("RBC ");
-					break;
-				case US_SC_8020:
-					printf("SFF-8020i (ATAPI)");
-					break;
-				case US_SC_QIC:
-					printf("QIC-157 (Tape)");
-					break;
-				case US_SC_UFI:
-					printf("UFI");
-					break;
-				case US_SC_8070:
-					printf("SFF-8070");
-					break;
-				case US_SC_SCSI:
-					printf("Transp. SCSI");
-					break;
-				default:
-					printf("reserved");
-					break;
-			}
-			printf(", ");
-			switch(proto) {
-				case US_PR_CB:
-					printf("Command/Bulk");
-					break;
-				case US_PR_CBI:
-					printf("Command/Bulk/Int");
-					break;
-				case US_PR_BULK:
-					printf("Bulk only");
-					break;
-				default:
-					printf("reserved");
-			}
+		default:
+			printf("reserved");
+		}
+		break;
+	case USB_CLASS_MASS_STORAGE:
+		printf("Mass Storage, ");
+		switch (subclass) {
+		case US_SC_RBC:
+			printf("RBC ");
+			break;
+		case US_SC_8020:
+			printf("SFF-8020i (ATAPI)");
+			break;
+		case US_SC_QIC:
+			printf("QIC-157 (Tape)");
+			break;
+		case US_SC_UFI:
+			printf("UFI");
+			break;
+		case US_SC_8070:
+			printf("SFF-8070");
+			break;
+		case US_SC_SCSI:
+			printf("Transp. SCSI");
 			break;
 		default:
-			printf("%s",usb_get_class_desc(dclass));
+			printf("reserved");
+			break;
+		}
+		printf(", ");
+		switch (proto) {
+		case US_PR_CB:
+			printf("Command/Bulk");
+			break;
+		case US_PR_CBI:
+			printf("Command/Bulk/Int");
+			break;
+		case US_PR_BULK:
+			printf("Bulk only");
+			break;
+		default:
+			printf("reserved");
+		}
+		break;
+	default:
+		printf("%s", usb_get_class_desc(dclass));
 	}
 }
 
-void usb_display_string(struct usb_device *dev,int index)
+void usb_display_string(struct usb_device *dev, int index)
 {
 	char buffer[256];
-	if (index!=0) {
-		if (usb_string(dev,index,&buffer[0],256)>0);
-			printf("String: \"%s\"",buffer);
+	if (index != 0) {
+		if (usb_string(dev, index, &buffer[0], 256) > 0)
+			printf("String: \"%s\"", buffer);
 	}
 }
 
 void usb_display_desc(struct usb_device *dev)
 {
-	if (dev->descriptor.bDescriptorType==USB_DT_DEVICE) {
-		printf("%d: %s,  USB Revision %x.%x\n",dev->devnum,usb_get_class_desc(dev->config.if_desc[0].bInterfaceClass),
-			(dev->descriptor.bcdUSB>>8) & 0xff,dev->descriptor.bcdUSB & 0xff);
-		if (strlen(dev->mf) || strlen(dev->prod) || strlen(dev->serial))
-			printf(" - %s %s %s\n",dev->mf,dev->prod,dev->serial);
+	if (dev->descriptor.bDescriptorType == USB_DT_DEVICE) {
+		printf("%d: %s,  USB Revision %x.%x\n", dev->devnum,
+		usb_get_class_desc(dev->config.if_desc[0].bInterfaceClass),
+				   (dev->descriptor.bcdUSB>>8) & 0xff,
+				   dev->descriptor.bcdUSB & 0xff);
+
+		if (strlen(dev->mf) || strlen(dev->prod) ||
+		    strlen(dev->serial))
+			printf(" - %s %s %s\n", dev->mf, dev->prod,
+				dev->serial);
 		if (dev->descriptor.bDeviceClass) {
 			printf(" - Class: ");
-			usb_display_class_sub(dev->descriptor.bDeviceClass,dev->descriptor.bDeviceSubClass,dev->descriptor.bDeviceProtocol);
+			usb_display_class_sub(dev->descriptor.bDeviceClass,
+					      dev->descriptor.bDeviceSubClass,
+					      dev->descriptor.bDeviceProtocol);
 			printf("\n");
+		} else {
+			printf(" - Class: (from Interface) %s\n",
+			       usb_get_class_desc(
+				dev->config.if_desc[0].bInterfaceClass));
 		}
-		else {
-			printf(" - Class: (from Interface) %s\n",usb_get_class_desc(dev->config.if_desc[0].bInterfaceClass));
-		}
-		printf(" - PacketSize: %d  Configurations: %d\n",dev->descriptor.bMaxPacketSize0,dev->descriptor.bNumConfigurations);
-		printf(" - Vendor: 0x%04x  Product 0x%04x Version %d.%d\n",dev->descriptor.idVendor,dev->descriptor.idProduct,(dev->descriptor.bcdDevice>>8) & 0xff,dev->descriptor.bcdDevice & 0xff);
+		printf(" - PacketSize: %d  Configurations: %d\n",
+			dev->descriptor.bMaxPacketSize0,
+			dev->descriptor.bNumConfigurations);
+		printf(" - Vendor: 0x%04x  Product 0x%04x Version %d.%d\n",
+			dev->descriptor.idVendor, dev->descriptor.idProduct,
+			(dev->descriptor.bcdDevice>>8) & 0xff,
+			dev->descriptor.bcdDevice & 0xff);
 	}
 
 }
 
-void usb_display_conf_desc(struct usb_config_descriptor *config,struct usb_device *dev)
+void usb_display_conf_desc(struct usb_config_descriptor *config,
+			   struct usb_device *dev)
 {
-	printf("   Configuration: %d\n",config->bConfigurationValue);
-	printf("   - Interfaces: %d %s%s%dmA\n",config->bNumInterfaces,(config->bmAttributes & 0x40) ? "Self Powered " : "Bus Powered ",
-	(config->bmAttributes & 0x20) ? "Remote Wakeup " : "",config->MaxPower*2);
+	printf("   Configuration: %d\n", config->bConfigurationValue);
+	printf("   - Interfaces: %d %s%s%dmA\n", config->bNumInterfaces,
+	       (config->bmAttributes & 0x40) ? "Self Powered " : "Bus Powered ",
+	       (config->bmAttributes & 0x20) ? "Remote Wakeup " : "",
+		config->MaxPower*2);
 	if (config->iConfiguration) {
 		printf("   - ");
-		usb_display_string(dev,config->iConfiguration);
+		usb_display_string(dev, config->iConfiguration);
 		printf("\n");
 	}
 }
 
-void usb_display_if_desc(struct usb_interface_descriptor *ifdesc,struct usb_device *dev)
+void usb_display_if_desc(struct usb_interface_descriptor *ifdesc,
+			 struct usb_device *dev)
 {
-	printf("     Interface: %d\n",ifdesc->bInterfaceNumber);
-	printf("     - Alternate Setting %d, Endpoints: %d\n",ifdesc->bAlternateSetting,ifdesc->bNumEndpoints);
+	printf("     Interface: %d\n", ifdesc->bInterfaceNumber);
+	printf("     - Alternate Setting %d, Endpoints: %d\n",
+		ifdesc->bAlternateSetting, ifdesc->bNumEndpoints);
 	printf("     - Class ");
-	usb_display_class_sub(ifdesc->bInterfaceClass,ifdesc->bInterfaceSubClass,ifdesc->bInterfaceProtocol);
+	usb_display_class_sub(ifdesc->bInterfaceClass,
+		ifdesc->bInterfaceSubClass, ifdesc->bInterfaceProtocol);
 	printf("\n");
 	if (ifdesc->iInterface) {
 		printf("     - ");
-		usb_display_string(dev,ifdesc->iInterface);
+		usb_display_string(dev, ifdesc->iInterface);
 		printf("\n");
 	}
 }
 
 void usb_display_ep_desc(struct usb_endpoint_descriptor *epdesc)
 {
-	printf("     - Endpoint %d %s ",epdesc->bEndpointAddress & 0xf,(epdesc->bEndpointAddress & 0x80) ? "In" : "Out");
-	switch((epdesc->bmAttributes & 0x03))
-	{
-		case 0: printf("Control"); break;
-		case 1: printf("Isochronous"); break;
-		case 2: printf("Bulk"); break;
-		case 3: printf("Interrupt"); break;
+	printf("     - Endpoint %d %s ", epdesc->bEndpointAddress & 0xf,
+		(epdesc->bEndpointAddress & 0x80) ? "In" : "Out");
+	switch ((epdesc->bmAttributes & 0x03)) {
+	case 0:
+		printf("Control");
+		break;
+	case 1:
+		printf("Isochronous");
+		break;
+	case 2:
+		printf("Bulk");
+		break;
+	case 3:
+		printf("Interrupt");
+		break;
 	}
-	printf(" MaxPacket %d",epdesc->wMaxPacketSize);
-	if ((epdesc->bmAttributes & 0x03)==0x3)
-		printf(" Interval %dms",epdesc->bInterval);
+	printf(" MaxPacket %d", epdesc->wMaxPacketSize);
+	if ((epdesc->bmAttributes & 0x03) == 0x3)
+		printf(" Interval %dms", epdesc->bInterval);
 	printf("\n");
 }
 
@@ -217,15 +245,15 @@ void usb_display_config(struct usb_device *dev)
 	struct usb_config_descriptor *config;
 	struct usb_interface_descriptor *ifdesc;
 	struct usb_endpoint_descriptor *epdesc;
-	int i,ii;
-
-	config= &dev->config;
-	usb_display_conf_desc(config,dev);
-	for(i=0;i<config->no_of_if;i++) {
-		ifdesc= &config->if_desc[i];
-		usb_display_if_desc(ifdesc,dev);
-		for(ii=0;ii<ifdesc->no_of_ep;ii++) {
-			epdesc= &ifdesc->ep_desc[ii];
+	int i, ii;
+
+	config = &dev->config;
+	usb_display_conf_desc(config, dev);
+	for (i = 0; i < config->no_of_if; i++) {
+		ifdesc = &config->if_desc[i];
+		usb_display_if_desc(ifdesc, dev);
+		for (ii = 0; ii < ifdesc->no_of_ep; ii++) {
+			epdesc = &ifdesc->ep_desc[ii];
 			usb_display_ep_desc(epdesc);
 		}
 	}
@@ -233,31 +261,33 @@ void usb_display_config(struct usb_device *dev)
 }
 
 /* shows the device tree recursively */
-void usb_show_tree_graph(struct usb_device *dev,char *pre)
+void usb_show_tree_graph(struct usb_device *dev, char *pre)
 {
-	int i,index;
-	int has_child,last_child,port;
+	int i, index;
+	int has_child, last_child, port;
 
-	index=strlen(pre);
-	printf(" %s",pre);
+	index = strlen(pre);
+	printf(" %s", pre);
 	/* check if the device has connected children */
-	has_child=0;
-	for(i=0;i<dev->maxchild;i++) {
-		if (dev->children[i]!=NULL)
-			has_child=1;
+	has_child = 0;
+	for (i = 0; i < dev->maxchild; i++) {
+		if (dev->children[i] != NULL)
+			has_child = 1;
 	}
 	/* check if we are the last one */
-	last_child=1;
-	if (dev->parent!=NULL) {
-		for(i=0;i<dev->parent->maxchild;i++) {
+	last_child = 1;
+	if (dev->parent != NULL) {
+		for (i = 0; i < dev->parent->maxchild; i++) {
 			/* search for children */
-			if (dev->parent->children[i]==dev) {
-				/* found our pointer, see if we have a little sister */
-				port=i;
-				while(i++<dev->parent->maxchild) {
-					if (dev->parent->children[i]!=NULL) {
+			if (dev->parent->children[i] == dev) {
+				/* found our pointer, see if we have a
+				 * little sister
+				 */
+				port = i;
+				while (i++ < dev->parent->maxchild) {
+					if (dev->parent->children[i] != NULL) {
 						/* found a sister */
-						last_child=0;
+						last_child = 0;
 						break;
 					} /* if */
 				} /* while */
@@ -265,28 +295,27 @@ void usb_show_tree_graph(struct usb_device *dev,char *pre)
 		} /* for all children of the parent */
 		printf("\b+-");
 		/* correct last child */
-		if (last_child) {
-			pre[index-1]=' ';
-		}
+		if (last_child)
+			pre[index-1] = ' ';
 	} /* if not root hub */
 	else
 		printf(" ");
-	printf("%d ",dev->devnum);
-	pre[index++]=' ';
-	pre[index++]= has_child ? '|' : ' ';
-	pre[index]=0;
-	printf(" %s (%s, %dmA)\n",usb_get_class_desc(dev->config.if_desc[0].bInterfaceClass),
-		dev->slow ? "1.5MBit/s" : "12MBit/s",dev->config.MaxPower * 2);
-	if (strlen(dev->mf) ||
-	   strlen(dev->prod) ||
-	   strlen(dev->serial))
-		printf(" %s  %s %s %s\n",pre,dev->mf,dev->prod,dev->serial);
-	printf(" %s\n",pre);
-	if (dev->maxchild>0) {
-		for(i=0;i<dev->maxchild;i++) {
-			if (dev->children[i]!=NULL) {
-				usb_show_tree_graph(dev->children[i],pre);
-				pre[index]=0;
+	printf("%d ", dev->devnum);
+	pre[index++] = ' ';
+	pre[index++] = has_child ? '|' : ' ';
+	pre[index] = 0;
+	printf(" %s (%s, %dmA)\n", usb_get_class_desc(
+					dev->config.if_desc[0].bInterfaceClass),
+					dev->slow ? "1.5MBit/s" : "12MBit/s",
+					dev->config.MaxPower * 2);
+	if (strlen(dev->mf) || strlen(dev->prod) || strlen(dev->serial))
+		printf(" %s  %s %s %s\n", pre, dev->mf, dev->prod, dev->serial);
+	printf(" %s\n", pre);
+	if (dev->maxchild > 0) {
+		for (i = 0; i < dev->maxchild; i++) {
+			if (dev->children[i] != NULL) {
+				usb_show_tree_graph(dev->children[i], pre);
+				pre[index] = 0;
 			}
 		}
 	}
@@ -297,8 +326,8 @@ void usb_show_tree(struct usb_device *dev)
 {
 	char preamble[32];
 
-	memset(preamble,0,32);
-	usb_show_tree_graph(dev,&preamble[0]);
+	memset(preamble, 0, 32);
+	usb_show_tree_graph(dev, &preamble[0]);
 }
 
 
@@ -306,11 +335,11 @@ void usb_show_tree(struct usb_device *dev)
  * usb boot command intepreter. Derived from diskboot
  */
 #ifdef CONFIG_USB_STORAGE
-int do_usbboot (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
+int do_usbboot(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 {
 	char *boot_device = NULL;
 	char *ep;
-	int dev, part=1, rcode;
+	int dev, part = 1, rcode;
 	ulong addr, cnt;
 	disk_partition_t info;
 	image_header_t *hdr;
@@ -322,95 +351,98 @@ int do_usbboot (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 	switch (argc) {
 	case 1:
 		addr = CONFIG_SYS_LOAD_ADDR;
-		boot_device = getenv ("bootdevice");
+		boot_device = getenv("bootdevice");
 		break;
 	case 2:
 		addr = simple_strtoul(argv[1], NULL, 16);
-		boot_device = getenv ("bootdevice");
+		boot_device = getenv("bootdevice");
 		break;
 	case 3:
 		addr = simple_strtoul(argv[1], NULL, 16);
 		boot_device = argv[2];
 		break;
 	default:
-		printf ("Usage:\n%s\n", cmdtp->usage);
+		printf("Usage:\n%s\n", cmdtp->usage);
 		return 1;
 	}
 
 	if (!boot_device) {
-		puts ("\n** No boot device **\n");
+		puts("\n** No boot device **\n");
 		return 1;
 	}
 
 	dev = simple_strtoul(boot_device, &ep, 16);
-	stor_dev=usb_stor_get_dev(dev);
+	stor_dev = usb_stor_get_dev(dev);
 	if (stor_dev->type == DEV_TYPE_UNKNOWN) {
-		printf ("\n** Device %d not available\n", dev);
+		printf("\n** Device %d not available\n", dev);
 		return 1;
 	}
-	if (stor_dev->block_read==NULL) {
+	if (stor_dev->block_read == NULL) {
 		printf("storage device not initialized. Use usb scan\n");
 		return 1;
 	}
 	if (*ep) {
 		if (*ep != ':') {
-			puts ("\n** Invalid boot device, use `dev[:part]' **\n");
+			puts("\n** Invalid boot device, use `dev[:part]' **\n");
 			return 1;
 		}
 		part = simple_strtoul(++ep, NULL, 16);
 	}
 
-	if (get_partition_info (stor_dev, part, &info)) {
+	if (get_partition_info(stor_dev, part, &info)) {
 		/* try to boot raw .... */
-		strncpy((char *)&info.type[0], BOOT_PART_TYPE, sizeof(BOOT_PART_TYPE));
+		strncpy((char *)&info.type[0], BOOT_PART_TYPE,
+			sizeof(BOOT_PART_TYPE));
 		strncpy((char *)&info.name[0], "Raw", 4);
-		info.start=0;
-		info.blksz=0x200;
-		info.size=2880;
+		info.start = 0;
+		info.blksz = 0x200;
+		info.size = 2880;
 		printf("error reading partinfo...try to boot raw\n");
 	}
-	if ((strncmp((char *)info.type, BOOT_PART_TYPE, sizeof(info.type)) != 0) &&
-	    (strncmp((char *)info.type, BOOT_PART_COMP, sizeof(info.type)) != 0)) {
-		printf ("\n** Invalid partition type \"%.32s\""
+	if ((strncmp((char *)info.type, BOOT_PART_TYPE,
+	    sizeof(info.type)) != 0) &&
+	    (strncmp((char *)info.type, BOOT_PART_COMP,
+	    sizeof(info.type)) != 0)) {
+		printf("\n** Invalid partition type \"%.32s\""
 			" (expect \"" BOOT_PART_TYPE "\")\n",
 			info.type);
 		return 1;
 	}
-	printf ("\nLoading from USB device %d, partition %d: "
+	printf("\nLoading from USB device %d, partition %d: "
 		"Name: %.32s  Type: %.32s\n",
 		dev, part, info.name, info.type);
 
-	debug ("First Block: %ld,  # of blocks: %ld, Block Size: %ld\n",
+	debug("First Block: %ld,  # of blocks: %ld, Block Size: %ld\n",
 		info.start, info.size, info.blksz);
 
 	if (stor_dev->block_read(dev, info.start, 1, (ulong *)addr) != 1) {
-		printf ("** Read error on %d:%d\n", dev, part);
+		printf("** Read error on %d:%d\n", dev, part);
 		return 1;
 	}
 
-	switch (genimg_get_format ((void *)addr)) {
+	switch (genimg_get_format((void *)addr)) {
 	case IMAGE_FORMAT_LEGACY:
 		hdr = (image_header_t *)addr;
 
-		if (!image_check_hcrc (hdr)) {
-			puts ("\n** Bad Header Checksum **\n");
+		if (!image_check_hcrc(hdr)) {
+			puts("\n** Bad Header Checksum **\n");
 			return 1;
 		}
 
-		image_print_contents (hdr);
+		image_print_contents(hdr);
 
-		cnt = image_get_image_size (hdr);
+		cnt = image_get_image_size(hdr);
 		break;
 #if defined(CONFIG_FIT)
 	case IMAGE_FORMAT_FIT:
 		fit_hdr = (const void *)addr;
-		puts ("Fit image detected...\n");
+		puts("Fit image detected...\n");
 
-		cnt = fit_get_size (fit_hdr);
+		cnt = fit_get_size(fit_hdr);
 		break;
 #endif
 	default:
-		puts ("** Unknown image type\n");
+		puts("** Unknown image type\n");
 		return 1;
 	}
 
@@ -418,36 +450,38 @@ int do_usbboot (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 	cnt /= info.blksz;
 	cnt -= 1;
 
-	if (stor_dev->block_read (dev, info.start+1, cnt,
+	if (stor_dev->block_read(dev, info.start+1, cnt,
 		      (ulong *)(addr+info.blksz)) != cnt) {
-		printf ("\n** Read error on %d:%d\n", dev, part);
+		printf("\n** Read error on %d:%d\n", dev, part);
 		return 1;
 	}
 
 #if defined(CONFIG_FIT)
-	/* This cannot be done earlier, we need complete FIT image in RAM first */
-	if (genimg_get_format ((void *)addr) == IMAGE_FORMAT_FIT) {
-		if (!fit_check_format (fit_hdr)) {
-			puts ("** Bad FIT image format\n");
+	/* This cannot be done earlier, we need complete FIT image in RAM
+	 * first
+	 */
+	if (genimg_get_format((void *)addr) == IMAGE_FORMAT_FIT) {
+		if (!fit_check_format(fit_hdr)) {
+			puts("** Bad FIT image format\n");
 			return 1;
 		}
-		fit_print_contents (fit_hdr);
+		fit_print_contents(fit_hdr);
 	}
 #endif
 
 	/* Loading ok, update default load address */
 	load_addr = addr;
 
-	flush_cache (addr, (cnt+1)*info.blksz);
+	flush_cache(addr, (cnt+1)*info.blksz);
 
 	/* Check if we should attempt an auto-start */
-	if (((ep = getenv("autostart")) != NULL) && (strcmp(ep,"yes") == 0)) {
+	if (((ep = getenv("autostart")) != NULL) && (strcmp(ep, "yes") == 0)) {
 		char *local_args[2];
-		extern int do_bootm (cmd_tbl_t *, int, int, char *[]);
+		extern int do_bootm(cmd_tbl_t *, int, int, char *[]);
 		local_args[0] = argv[0];
 		local_args[1] = NULL;
-		printf ("Automatic boot of image at addr 0x%08lX ...\n", addr);
-		rcode=do_bootm (cmdtp, 0, 1, local_args);
+		printf("Automatic boot of image at addr 0x%08lX ...\n", addr);
+		rcode = do_bootm(cmdtp, 0, 1, local_args);
 		return rcode;
 	}
 	return 0;
@@ -455,10 +489,10 @@ int do_usbboot (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 #endif /* CONFIG_USB_STORAGE */
 
 
-/*********************************************************************************
+/******************************************************************************
  * usb command intepreter
  */
-int do_usb (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
+int do_usb(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 {
 
 	int i;
@@ -469,7 +503,7 @@ int do_usb (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 #endif
 
 	if ((strncmp(argv[1], "reset", 5) == 0) ||
-		 (strncmp(argv[1], "start", 5) == 0)){
+		 (strncmp(argv[1], "start", 5) == 0)) {
 		usb_stop();
 		printf("(Re)start USB...\n");
 		i = usb_init();
@@ -480,16 +514,17 @@ int do_usb (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 #endif
 		return 0;
 	}
-	if (strncmp(argv[1],"stop",4) == 0) {
+	if (strncmp(argv[1], "stop", 4) == 0) {
 #ifdef CONFIG_USB_KEYBOARD
-		if (argc==2) {
-			if (usb_kbd_deregister()!=0) {
-				printf("USB not stopped: usbkbd still using USB\n");
+		if (argc == 2) {
+			if (usb_kbd_deregister() != 0) {
+				printf("USB not stopped: usbkbd still"
+					" using USB\n");
 				return 1;
 			}
-		}
-		else { /* forced stop, switch console in to serial */
-			console_assign(stdin,"serial");
+		} else {
+			/* forced stop, switch console in to serial */
+			console_assign(stdin, "serial");
 			usb_kbd_deregister();
 		}
 #endif
@@ -501,40 +536,38 @@ int do_usb (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 		printf("USB is stopped. Please issue 'usb start' first.\n");
 		return 1;
 	}
-	if (strncmp(argv[1],"tree",4) == 0) {
+	if (strncmp(argv[1], "tree", 4) == 0) {
 		printf("\nDevice Tree:\n");
 		usb_show_tree(usb_get_dev_index(0));
 		return 0;
 	}
-	if (strncmp(argv[1],"inf",3) == 0) {
+	if (strncmp(argv[1], "inf", 3) == 0) {
 		int d;
-		if (argc==2) {
-			for(d=0;d<USB_MAX_DEVICE;d++) {
-				dev=usb_get_dev_index(d);
-				if (dev==NULL)
+		if (argc == 2) {
+			for (d = 0; d < USB_MAX_DEVICE; d++) {
+				dev = usb_get_dev_index(d);
+				if (dev == NULL)
 					break;
 				usb_display_desc(dev);
 				usb_display_config(dev);
 			}
 			return 0;
-		}
-		else {
+		} else {
 			int d;
 
-			i=simple_strtoul(argv[2], NULL, 16);
-			printf("config for device %d\n",i);
-			for(d=0;d<USB_MAX_DEVICE;d++) {
-				dev=usb_get_dev_index(d);
-				if (dev==NULL)
+			i = simple_strtoul(argv[2], NULL, 16);
+			printf("config for device %d\n", i);
+			for (d = 0; d < USB_MAX_DEVICE; d++) {
+				dev = usb_get_dev_index(d);
+				if (dev == NULL)
 					break;
-				if (dev->devnum==i)
+				if (dev->devnum == i)
 					break;
 			}
-			if (dev==NULL) {
+			if (dev == NULL) {
 				printf("*** NO Device avaiable ***\n");
 				return 0;
-			}
-			else {
+			} else {
 				usb_display_desc(dev);
 				usb_display_config(dev);
 			}
@@ -543,36 +576,36 @@ int do_usb (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 	}
 #ifdef CONFIG_USB_STORAGE
 	if (strncmp(argv[1], "scan", 4) == 0) {
-		printf("  NOTE: this command is obsolete and will be phased out\n");
-		printf("  please use 'usb storage' for USB storage devices information\n\n");
+		printf("  NOTE: this command is obsolete and will be"
+			" phased out\n");
+		printf("  please use 'usb storage' for USB storage devices"
+			" information\n\n");
 		usb_stor_info();
 		return 0;
 	}
 
-	if (strncmp(argv[1], "stor", 4) == 0) {
+	if (strncmp(argv[1], "stor", 4) == 0)
 		return usb_stor_info();
-	}
 
-	if (strncmp(argv[1],"part",4) == 0) {
+	if (strncmp(argv[1], "part", 4) == 0) {
 		int devno, ok = 0;
-		if (argc==2) {
-			for (devno=0; devno<USB_MAX_STOR_DEV; ++devno) {
-				stor_dev=usb_stor_get_dev(devno);
-				if (stor_dev->type!=DEV_TYPE_UNKNOWN) {
+		if (argc == 2) {
+			for (devno = 0; devno < USB_MAX_STOR_DEV; ++devno) {
+				stor_dev = usb_stor_get_dev(devno);
+				if (stor_dev->type != DEV_TYPE_UNKNOWN) {
 					ok++;
 					if (devno)
 						printf("\n");
-					printf("print_part of %x\n",devno);
+					printf("print_part of %x\n", devno);
 					print_part(stor_dev);
 				}
 			}
-		}
-		else {
-			devno=simple_strtoul(argv[2], NULL, 16);
-			stor_dev=usb_stor_get_dev(devno);
-			if (stor_dev->type!=DEV_TYPE_UNKNOWN) {
+		} else {
+			devno = simple_strtoul(argv[2], NULL, 16);
+			stor_dev = usb_stor_get_dev(devno);
+			if (stor_dev->type != DEV_TYPE_UNKNOWN) {
 				ok++;
-				printf("print_part of %x\n",devno);
+				printf("print_part of %x\n", devno);
 				print_part(stor_dev);
 			}
 		}
@@ -582,22 +615,24 @@ int do_usb (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 		}
 		return 0;
 	}
-	if (strcmp(argv[1],"read") == 0) {
-		if (usb_stor_curr_dev<0) {
+	if (strcmp(argv[1], "read") == 0) {
+		if (usb_stor_curr_dev < 0) {
 			printf("no current device selected\n");
 			return 1;
 		}
-		if (argc==5) {
+		if (argc == 5) {
 			unsigned long addr = simple_strtoul(argv[2], NULL, 16);
 			unsigned long blk  = simple_strtoul(argv[3], NULL, 16);
 			unsigned long cnt  = simple_strtoul(argv[4], NULL, 16);
 			unsigned long n;
-			printf ("\nUSB read: device %d block # %ld, count %ld ... ",
-					usb_stor_curr_dev, blk, cnt);
-			stor_dev=usb_stor_get_dev(usb_stor_curr_dev);
-			n = stor_dev->block_read(usb_stor_curr_dev, blk, cnt, (ulong *)addr);
-			printf ("%ld blocks read: %s\n",n,(n==cnt) ? "OK" : "ERROR");
-			if (n==cnt)
+			printf("\nUSB read: device %d block # %ld, count %ld"
+				" ... ", usb_stor_curr_dev, blk, cnt);
+			stor_dev = usb_stor_get_dev(usb_stor_curr_dev);
+			n = stor_dev->block_read(usb_stor_curr_dev, blk, cnt,
+						 (ulong *)addr);
+			printf("%ld blocks read: %s\n", n,
+				(n == cnt) ? "OK" : "ERROR");
+			if (n == cnt)
 				return 0;
 			return 1;
 		}
@@ -605,34 +640,31 @@ int do_usb (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 	if (strncmp(argv[1], "dev", 3) == 0) {
 		if (argc == 3) {
 			int dev = (int)simple_strtoul(argv[2], NULL, 10);
-			printf ("\nUSB device %d: ", dev);
+			printf("\nUSB device %d: ", dev);
 			if (dev >= USB_MAX_STOR_DEV) {
 				printf("unknown device\n");
 				return 1;
 			}
-			printf ("\n    Device %d: ", dev);
-			stor_dev=usb_stor_get_dev(dev);
+			printf("\n    Device %d: ", dev);
+			stor_dev = usb_stor_get_dev(dev);
 			dev_print(stor_dev);
-			if (stor_dev->type == DEV_TYPE_UNKNOWN) {
+			if (stor_dev->type == DEV_TYPE_UNKNOWN)
 				return 1;
-			}
 			usb_stor_curr_dev = dev;
 			printf("... is now current device\n");
 			return 0;
-		}
-		else {
-			printf ("\nUSB device %d: ", usb_stor_curr_dev);
-			stor_dev=usb_stor_get_dev(usb_stor_curr_dev);
+		} else {
+			printf("\nUSB device %d: ", usb_stor_curr_dev);
+			stor_dev = usb_stor_get_dev(usb_stor_curr_dev);
 			dev_print(stor_dev);
-			if (stor_dev->type == DEV_TYPE_UNKNOWN) {
+			if (stor_dev->type == DEV_TYPE_UNKNOWN)
 				return 1;
-			}
 			return 0;
 		}
 		return 0;
 	}
 #endif /* CONFIG_USB_STORAGE */
-	printf ("Usage:\n%s\n", cmdtp->usage);
+	printf("Usage:\n%s\n", cmdtp->usage);
 	return 1;
 }
 
@@ -646,7 +678,8 @@ U_BOOT_CMD(
 	"usb info [dev] - show available USB devices\n"
 	"usb storage  - show details of USB storage devices\n"
 	"usb dev [dev] - show or set current USB storage device\n"
-	"usb part [dev] - print partition table of one or all USB storage devices\n"
+	"usb part [dev] - print partition table of one or all USB storage"
+	" devices\n"
 	"usb read addr blk# cnt - read `cnt' blocks starting at block `blk#'\n"
 	"    to memory address `addr'\n"
 );
diff --git a/common/usb.c b/common/usb.c
index 7ab5df6..ee18152 100644
--- a/common/usb.c
+++ b/common/usb.c
@@ -58,7 +58,7 @@
 #undef USB_DEBUG
 
 #ifdef	USB_DEBUG
-#define	USB_PRINTF(fmt, args...)	printf (fmt , ##args)
+#define	USB_PRINTF(fmt, args...)	printf(fmt , ##args)
 #else
 #define USB_PRINTF(fmt, args...)
 #endif
@@ -87,11 +87,12 @@ static int hub_port_reset(struct usb_device *dev, int port,
  * wait_ms
  */
 
-void __inline__ wait_ms(unsigned long ms)
+inline void wait_ms(unsigned long ms)
 {
 	while (ms-- > 0)
 		udelay(1000);
 }
+
 /***************************************************************************
  * Init USB Device
  */
@@ -245,9 +246,9 @@ int usb_maxpacket(struct usb_device *dev, unsigned long pipe)
 {
 	/* direction is out -> use emaxpacket out */
 	if ((pipe & USB_DIR_IN) == 0)
-		return(dev->epmaxpacketout[((pipe>>15) & 0xf)]);
+		return dev->epmaxpacketout[((pipe>>15) & 0xf)];
 	else
-		return(dev->epmaxpacketin[((pipe>>15) & 0xf)]);
+		return dev->epmaxpacketin[((pipe>>15) & 0xf)];
 }
 
 /* The routine usb_set_maxpacket_ep() is extracted from the loop of routine
@@ -269,7 +270,7 @@ usb_set_maxpacket_ep(struct usb_device *dev, struct usb_endpoint_descriptor *ep)
 						USB_ENDPOINT_XFER_CONTROL) {
 		/* Control => bidirectional */
 		dev->epmaxpacketout[b] = ep->wMaxPacketSize;
-		dev->epmaxpacketin [b] = ep->wMaxPacketSize;
+		dev->epmaxpacketin[b] = ep->wMaxPacketSize;
 		USB_PRINTF("##Control EP epmaxpacketout/in[%d] = %d\n",
 			   b, dev->epmaxpacketin[b]);
 	} else {
@@ -779,13 +780,13 @@ int usb_new_device(struct usb_device *dev)
 	 * invalid header while reading 8 bytes as device descriptor. */
 	dev->descriptor.bMaxPacketSize0 = 8;	    /* Start off at 8 bytes  */
 	dev->maxpacketsize = PACKET_SIZE_8;
-	dev->epmaxpacketin [0] = 8;
+	dev->epmaxpacketin[0] = 8;
 	dev->epmaxpacketout[0] = 8;
 
 	err = usb_get_descriptor(dev, USB_DT_DEVICE, 0, &dev->descriptor, 8);
 	if (err < 8) {
 		printf("\n      USB device not responding, " \
-		       "giving up (status=%lX)\n",dev->status);
+		       "giving up (status=%lX)\n", dev->status);
 		return 1;
 	}
 #else
@@ -793,7 +794,8 @@ int usb_new_device(struct usb_device *dev)
 	 * reset of the device (Linux uses the same sequence)
 	 * Some equipment is said to work only with such init sequence; this
 	 * patch is based on the work by Alan Stern:
-	 * http://sourceforge.net/mailarchive/forum.php?thread_id=5729457&forum_id=5398
+	 * http://sourceforge.net/mailarchive/forum.php?
+	 * thread_id=5729457&forum_id=5398
 	 */
 	struct usb_device_descriptor *desc;
 	int port = -1;
@@ -809,7 +811,7 @@ int usb_new_device(struct usb_device *dev)
 	dev->descriptor.bMaxPacketSize0 = 64;	    /* Start off at 64 bytes  */
 	/* Default to 64 byte max packet size */
 	dev->maxpacketsize = PACKET_SIZE_64;
-	dev->epmaxpacketin [0] = 64;
+	dev->epmaxpacketin[0] = 64;
 	dev->epmaxpacketout[0] = 64;
 
 	err = usb_get_descriptor(dev, USB_DT_DEVICE, 0, desc, 64);
@@ -844,13 +846,21 @@ int usb_new_device(struct usb_device *dev)
 	}
 #endif
 
-	dev->epmaxpacketin [0] = dev->descriptor.bMaxPacketSize0;
+	dev->epmaxpacketin[0] = dev->descriptor.bMaxPacketSize0;
 	dev->epmaxpacketout[0] = dev->descriptor.bMaxPacketSize0;
 	switch (dev->descriptor.bMaxPacketSize0) {
-	case 8: dev->maxpacketsize  = PACKET_SIZE_8; break;
-	case 16: dev->maxpacketsize = PACKET_SIZE_16; break;
-	case 32: dev->maxpacketsize = PACKET_SIZE_32; break;
-	case 64: dev->maxpacketsize = PACKET_SIZE_64; break;
+	case 8:
+		dev->maxpacketsize  = PACKET_SIZE_8;
+		break;
+	case 16:
+		dev->maxpacketsize = PACKET_SIZE_16;
+		break;
+	case 32:
+		dev->maxpacketsize = PACKET_SIZE_32;
+		break;
+	case 64:
+		dev->maxpacketsize = PACKET_SIZE_64;
+		break;
 	}
 	dev->devnum = addr;
 
@@ -947,7 +957,7 @@ void usb_scan_devices(void)
 #undef	USB_HUB_DEBUG
 
 #ifdef	USB_HUB_DEBUG
-#define	USB_HUB_PRINTF(fmt, args...)	printf (fmt , ##args)
+#define	USB_HUB_PRINTF(fmt, args...)	printf(fmt , ##args)
 #else
 #define USB_HUB_PRINTF(fmt, args...)
 #endif
diff --git a/include/usb.h b/include/usb.h
index 9a2e72c..84a77b2 100644
--- a/include/usb.h
+++ b/include/usb.h
@@ -43,89 +43,88 @@
 
 /* String descriptor */
 struct usb_string_descriptor {
-	unsigned char  bLength;
-	unsigned char  bDescriptorType;
-	unsigned short wData[1];
+	unsigned char	bLength;
+	unsigned char	bDescriptorType;
+	unsigned short	wData[1];
 } __attribute__ ((packed));
 
 /* device request (setup) */
 struct devrequest {
-	unsigned char requesttype;
-	unsigned char request;
-	unsigned short value;
-	unsigned short index;
-	unsigned short length;
+	unsigned char	requesttype;
+	unsigned char	request;
+	unsigned short	value;
+	unsigned short	index;
+	unsigned short	length;
 } __attribute__ ((packed));
 
-
 /* All standard descriptors have these 2 fields in common */
 struct usb_descriptor_header {
-	unsigned char  bLength;
-	unsigned char  bDescriptorType;
+	unsigned char	bLength;
+	unsigned char	bDescriptorType;
 } __attribute__ ((packed));
 
 /* Device descriptor */
 struct usb_device_descriptor {
-	unsigned char  bLength;
-	unsigned char  bDescriptorType;
-	unsigned short bcdUSB;
-	unsigned char  bDeviceClass;
-	unsigned char  bDeviceSubClass;
-	unsigned char  bDeviceProtocol;
-	unsigned char  bMaxPacketSize0;
-	unsigned short idVendor;
-	unsigned short idProduct;
-	unsigned short bcdDevice;
-	unsigned char  iManufacturer;
-	unsigned char  iProduct;
-	unsigned char  iSerialNumber;
-	unsigned char  bNumConfigurations;
+	unsigned char	bLength;
+	unsigned char	bDescriptorType;
+	unsigned short	bcdUSB;
+	unsigned char	bDeviceClass;
+	unsigned char	bDeviceSubClass;
+	unsigned char	bDeviceProtocol;
+	unsigned char	bMaxPacketSize0;
+	unsigned short	idVendor;
+	unsigned short	idProduct;
+	unsigned short	bcdDevice;
+	unsigned char	iManufacturer;
+	unsigned char	iProduct;
+	unsigned char	iSerialNumber;
+	unsigned char	bNumConfigurations;
 } __attribute__ ((packed));
 
-
 /* Endpoint descriptor */
 struct usb_endpoint_descriptor {
-	unsigned char  bLength;
-	unsigned char  bDescriptorType;
-	unsigned char  bEndpointAddress;
-	unsigned char  bmAttributes;
-	unsigned short wMaxPacketSize;
-	unsigned char  bInterval;
-	unsigned char  bRefresh;
-	unsigned char  bSynchAddress;
-
+	unsigned char	bLength;
+	unsigned char	bDescriptorType;
+	unsigned char	bEndpointAddress;
+	unsigned char	bmAttributes;
+	unsigned short	wMaxPacketSize;
+	unsigned char	bInterval;
+	unsigned char	bRefresh;
+	unsigned char	bSynchAddress;
 } __attribute__ ((packed));
+
 /* Interface descriptor */
 struct usb_interface_descriptor {
-	unsigned char  bLength;
-	unsigned char  bDescriptorType;
-	unsigned char  bInterfaceNumber;
-	unsigned char  bAlternateSetting;
-	unsigned char  bNumEndpoints;
-	unsigned char  bInterfaceClass;
-	unsigned char  bInterfaceSubClass;
-	unsigned char  bInterfaceProtocol;
-	unsigned char  iInterface;
-
-	unsigned char  no_of_ep;
-	unsigned char  num_altsetting;
-	unsigned char  act_altsetting;
+	unsigned char	bLength;
+	unsigned char	bDescriptorType;
+	unsigned char	bInterfaceNumber;
+	unsigned char	bAlternateSetting;
+	unsigned char	bNumEndpoints;
+	unsigned char	bInterfaceClass;
+	unsigned char	bInterfaceSubClass;
+	unsigned char	bInterfaceProtocol;
+	unsigned char	iInterface;
+
+	unsigned char	no_of_ep;
+	unsigned char	num_altsetting;
+	unsigned char	act_altsetting;
+
 	struct usb_endpoint_descriptor ep_desc[USB_MAXENDPOINTS];
 } __attribute__ ((packed));
 
 
 /* Configuration descriptor information.. */
 struct usb_config_descriptor {
-	unsigned char  bLength;
-	unsigned char  bDescriptorType;
-	unsigned short wTotalLength;
-	unsigned char  bNumInterfaces;
-	unsigned char  bConfigurationValue;
-	unsigned char  iConfiguration;
-	unsigned char  bmAttributes;
-	unsigned char  MaxPower;
-
-	unsigned char  no_of_if;		/* number of interfaces */
+	unsigned char	bLength;
+	unsigned char	bDescriptorType;
+	unsigned short	wTotalLength;
+	unsigned char	bNumInterfaces;
+	unsigned char	bConfigurationValue;
+	unsigned char	iConfiguration;
+	unsigned char	bmAttributes;
+	unsigned char	MaxPower;
+
+	unsigned char	no_of_if;	/* number of interfaces */
 	struct usb_interface_descriptor if_desc[USB_MAXINTERFACES];
 } __attribute__ ((packed));
 
@@ -138,19 +137,20 @@ enum {
 };
 
 struct usb_device {
-	int devnum;			/* Device number on USB bus */
-	int slow;			/* Slow device? */
-	char mf[32];			/* manufacturer */
-	char prod[32];			/* product */
-	char serial[32];		/* serial number */
+	int	devnum;			/* Device number on USB bus */
+	int	slow;			/* Slow device? */
+	char	mf[32];			/* manufacturer */
+	char	prod[32];		/* product */
+	char	serial[32];		/* serial number */
 
 	/* Maximum packet size; one of: PACKET_SIZE_* */
 	int maxpacketsize;
 	/* one bit for each endpoint ([0] = IN, [1] = OUT) */
 	unsigned int toggle[2];
-	/* endpoint halts; one bit per endpoint # & direction; */
+	/* endpoint halts; one bit per endpoint # & direction;
+	 * [0] = IN, [1] = OUT
+	 */
 	unsigned int halted[2];
-			    /* [0] = IN, [1] = OUT */
 	int epmaxpacketin[16];		/* INput endpoint specific maximums */
 	int epmaxpacketout[16];		/* OUTput endpoint specific maximums */
 
@@ -180,21 +180,22 @@ struct usb_device {
  */
 
 #if defined(CONFIG_USB_UHCI) || defined(CONFIG_USB_OHCI) || \
-	defined(CONFIG_USB_OHCI_NEW) || defined (CONFIG_USB_SL811HS) || \
+	defined(CONFIG_USB_OHCI_NEW) || defined(CONFIG_USB_SL811HS) || \
 	defined(CONFIG_USB_ISP116X_HCD) || defined(CONFIG_USB_R8A66597_HCD)
 
 int usb_lowlevel_init(void);
 int usb_lowlevel_stop(void);
-int submit_bulk_msg(struct usb_device *dev, unsigned long pipe, void *buffer,int transfer_len);
+int submit_bulk_msg(struct usb_device *dev, unsigned long pipe,
+			void *buffer, int transfer_len);
 int submit_control_msg(struct usb_device *dev, unsigned long pipe, void *buffer,
-			int transfer_len,struct devrequest *setup);
+			int transfer_len, struct devrequest *setup);
 int submit_int_msg(struct usb_device *dev, unsigned long pipe, void *buffer,
 			int transfer_len, int interval);
 void usb_event_poll(void);
 
 /* Defines */
-#define USB_UHCI_VEND_ID 0x8086
-#define USB_UHCI_DEV_ID	 0x7112
+#define USB_UHCI_VEND_ID	0x8086
+#define USB_UHCI_DEV_ID		0x7112
 
 #else
 #error USB Lowlevel not defined
@@ -221,8 +222,9 @@ int usb_stop(void); /* stop the USB Controller */
 
 
 int usb_set_protocol(struct usb_device *dev, int ifnum, int protocol);
-int usb_set_idle(struct usb_device *dev, int ifnum, int duration, int report_id);
-struct usb_device * usb_get_dev_index(int index);
+int usb_set_idle(struct usb_device *dev, int ifnum, int duration,
+			int report_id);
+struct usb_device *usb_get_dev_index(int index);
 int usb_control_msg(struct usb_device *dev, unsigned int pipe,
 			unsigned char request, unsigned char requesttype,
 			unsigned short value, unsigned short index,
@@ -230,14 +232,17 @@ int usb_control_msg(struct usb_device *dev, unsigned int pipe,
 int usb_bulk_msg(struct usb_device *dev, unsigned int pipe,
 			void *data, int len, int *actual_length, int timeout);
 int usb_submit_int_msg(struct usb_device *dev, unsigned long pipe,
-			void *buffer,int transfer_len, int interval);
+			void *buffer, int transfer_len, int interval);
 void usb_disable_asynch(int disable);
-int usb_maxpacket(struct usb_device *dev,unsigned long pipe);
-void __inline__ wait_ms(unsigned long ms);
-int usb_get_configuration_no(struct usb_device *dev,unsigned char *buffer,int cfgno);
-int usb_get_report(struct usb_device *dev, int ifnum, unsigned char type, unsigned char id, void *buf, int size);
+int usb_maxpacket(struct usb_device *dev, unsigned long pipe);
+inline void wait_ms(unsigned long ms);
+int usb_get_configuration_no(struct usb_device *dev, unsigned char *buffer,
+				int cfgno);
+int usb_get_report(struct usb_device *dev, int ifnum, unsigned char type,
+			unsigned char id, void *buf, int size);
 int usb_get_class_descriptor(struct usb_device *dev, int ifnum,
-		unsigned char type, unsigned char id, void *buf, int size);
+			unsigned char type, unsigned char id, void *buf,
+			int size);
 int usb_clear_halt(struct usb_device *dev, int pipe);
 int usb_string(struct usb_device *dev, int index, char *buf, size_t size);
 int usb_set_interface(struct usb_device *dev, int interface, int alternate);
@@ -247,7 +252,7 @@ int usb_set_interface(struct usb_device *dev, int interface, int alternate);
 #define __swap_16(x) \
 	({ unsigned short x_ = (unsigned short)x; \
 	 (unsigned short)( \
-		((x_ & 0x00FFU) << 8) | ((x_ & 0xFF00U) >> 8) ); \
+		((x_ & 0x00FFU) << 8) | ((x_ & 0xFF00U) >> 8)); \
 	})
 #define __swap_32(x) \
 	({ unsigned long x_ = (unsigned long)x; \
@@ -255,7 +260,7 @@ int usb_set_interface(struct usb_device *dev, int interface, int alternate);
 		((x_ & 0x000000FFUL) << 24) | \
 		((x_ & 0x0000FF00UL) <<	 8) | \
 		((x_ & 0x00FF0000UL) >>	 8) | \
-		((x_ & 0xFF000000UL) >> 24) ); \
+		((x_ & 0xFF000000UL) >> 24)); \
 	})
 
 #ifdef LITTLEENDIAN
@@ -286,12 +291,14 @@ int usb_set_interface(struct usb_device *dev, int interface, int alternate);
  * unsigned int. The encoding is:
  *
  *  - max size:		bits 0-1	(00 = 8, 01 = 16, 10 = 32, 11 = 64)
- *  - direction:	bit 7		(0 = Host-to-Device [Out], 1 = Device-to-Host [In])
+ *  - direction:	bit 7		(0 = Host-to-Device [Out],
+ *					(1 = Device-to-Host [In])
  *  - device:		bits 8-14
  *  - endpoint:		bits 15-18
  *  - Data0/1:		bit 19
  *  - speed:		bit 26		(0 = Full, 1 = Low Speed)
- *  - pipe type:	bits 30-31	(00 = isochronous, 01 = interrupt, 10 = control, 11 = bulk)
+ *  - pipe type:	bits 30-31	(00 = isochronous, 01 = interrupt,
+ *					 10 = control, 11 = bulk)
  *
  * Why? Because it's arbitrary, and whatever encoding we select is really
  * up to us. This one happens to share a lot of bit positions with the UHCI
@@ -300,24 +307,42 @@ int usb_set_interface(struct usb_device *dev, int interface, int alternate);
  */
 /* Create various pipes... */
 #define create_pipe(dev,endpoint) \
-		(((dev)->devnum << 8) | (endpoint << 15) | ((dev)->slow << 26) | (dev)->maxpacketsize)
-#define default_pipe(dev) ((dev)->slow <<26)
-
-#define usb_sndctrlpipe(dev,endpoint)	((PIPE_CONTROL << 30) | create_pipe(dev,endpoint))
-#define usb_rcvctrlpipe(dev,endpoint)	((PIPE_CONTROL << 30) | create_pipe(dev,endpoint) | USB_DIR_IN)
-#define usb_sndisocpipe(dev,endpoint)	((PIPE_ISOCHRONOUS << 30) | create_pipe(dev,endpoint))
-#define usb_rcvisocpipe(dev,endpoint)	((PIPE_ISOCHRONOUS << 30) | create_pipe(dev,endpoint) | USB_DIR_IN)
-#define usb_sndbulkpipe(dev,endpoint)	((PIPE_BULK << 30) | create_pipe(dev,endpoint))
-#define usb_rcvbulkpipe(dev,endpoint)	((PIPE_BULK << 30) | create_pipe(dev,endpoint) | USB_DIR_IN)
-#define usb_sndintpipe(dev,endpoint)	((PIPE_INTERRUPT << 30) | create_pipe(dev,endpoint))
-#define usb_rcvintpipe(dev,endpoint)	((PIPE_INTERRUPT << 30) | create_pipe(dev,endpoint) | USB_DIR_IN)
-#define usb_snddefctrl(dev)		((PIPE_CONTROL << 30) | default_pipe(dev))
-#define usb_rcvdefctrl(dev)		((PIPE_CONTROL << 30) | default_pipe(dev) | USB_DIR_IN)
+		(((dev)->devnum << 8) | (endpoint << 15) | \
+		((dev)->slow << 26) | (dev)->maxpacketsize)
+#define default_pipe(dev) ((dev)->slow << 26)
+
+#define usb_sndctrlpipe(dev, endpoint)	((PIPE_CONTROL << 30) | \
+					 create_pipe(dev, endpoint))
+#define usb_rcvctrlpipe(dev, endpoint)	((PIPE_CONTROL << 30) | \
+					 create_pipe(dev, endpoint) | \
+					 USB_DIR_IN)
+#define usb_sndisocpipe(dev, endpoint)	((PIPE_ISOCHRONOUS << 30) | \
+					 create_pipe(dev, endpoint))
+#define usb_rcvisocpipe(dev, endpoint)	((PIPE_ISOCHRONOUS << 30) | \
+					 create_pipe(dev, endpoint) | \
+					 USB_DIR_IN)
+#define usb_sndbulkpipe(dev, endpoint)	((PIPE_BULK << 30) | \
+					 create_pipe(dev, endpoint))
+#define usb_rcvbulkpipe(dev, endpoint)	((PIPE_BULK << 30) | \
+					 create_pipe(dev, endpoint) | \
+					 USB_DIR_IN)
+#define usb_sndintpipe(dev, endpoint)	((PIPE_INTERRUPT << 30) | \
+					 create_pipe(dev, endpoint))
+#define usb_rcvintpipe(dev, endpoint)	((PIPE_INTERRUPT << 30) | \
+					 create_pipe(dev, endpoint) | \
+					 USB_DIR_IN)
+#define usb_snddefctrl(dev)		((PIPE_CONTROL << 30) | \
+					 default_pipe(dev))
+#define usb_rcvdefctrl(dev)		((PIPE_CONTROL << 30) | \
+					 default_pipe(dev) | \
+					 USB_DIR_IN)
 
 /* The D0/D1 toggle bits */
 #define usb_gettoggle(dev, ep, out) (((dev)->toggle[out] >> ep) & 1)
 #define usb_dotoggle(dev, ep, out)  ((dev)->toggle[out] ^= (1 << ep))
-#define usb_settoggle(dev, ep, out, bit) ((dev)->toggle[out] = ((dev)->toggle[out] & ~(1 << ep)) | ((bit) << ep))
+#define usb_settoggle(dev, ep, out, bit) ((dev)->toggle[out] = \
+						((dev)->toggle[out] & \
+						 ~(1 << ep)) | ((bit) << ep))
 
 /* Endpoint halt control/status */
 #define usb_endpoint_out(ep_dir)	(((ep_dir >> 7) & 1) ^ 1)
@@ -325,7 +350,8 @@ int usb_set_interface(struct usb_device *dev, int interface, int alternate);
 #define usb_endpoint_running(dev, ep, out) ((dev)->halted[out] &= ~(1 << (ep)))
 #define usb_endpoint_halted(dev, ep, out) ((dev)->halted[out] & (1 << (ep)))
 
-#define usb_packetid(pipe)	(((pipe) & USB_DIR_IN) ? USB_PID_IN : USB_PID_OUT)
+#define usb_packetid(pipe)	(((pipe) & USB_DIR_IN) ? USB_PID_IN : \
+				 USB_PID_OUT)
 
 #define usb_pipeout(pipe)	((((pipe) >> 7) & 1) ^ 1)
 #define usb_pipein(pipe)	(((pipe) >> 7) & 1)
@@ -365,7 +391,7 @@ struct usb_hub_descriptor {
 	unsigned char  bHubContrCurrent;
 	unsigned char  DeviceRemovable[(USB_MAXCHILDREN+1+7)/8];
 	unsigned char  PortPowerCtrlMask[(USB_MAXCHILDREN+1+7)/8];
-		/* DeviceRemovable and PortPwrCtrlMask want to be variable-length
+	/* DeviceRemovable and PortPwrCtrlMask want to be variable-length
 	   bitmaps that hold max 255 entries. (bit0 is ignored) */
 } __attribute__ ((packed));
 
-- 
1.5.6.5



More information about the U-Boot mailing list