Skip to contentSkip to conversation

USB style patch

RFC PATCH New Michael Trimarchi 4 participants 8 messages Nov 26, 2008 – Nov 27, 2008

lore
Share & tools
lore
#0 lore raw

RFC PATCH 1/1 USB style patch

[PATCH] USB style patch

---
 common/cmd_usb.c |  591 ++++++++++++++++++++++++++++-------------------------
 common/usb.c     |   40 +++--
 include/usb.h    |  222 ++++++++++++---------
 3 files changed, 461 insertions(+), 392 deletions(-)
common/cmd_usb.c +312 -279
index 99e551f..eeec080 100644
@@ -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"
 );
common/usb.c +25 -15
index 7ab5df6..ee18152 100644
@@ -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
include/usb.h +124 -98

339 lines not on this page · raw message

Signature · 1 line
1.5.6.5
#1 lore raw

RFC PATCH 1/1 USB style patch

Hello Michael,

Nice work, but I have a few small comments:

common/cmd_usb.c static int usb_stor_curr_dev = -1; /* current device */ · line 93

Quoted 7 lines
common/cmd_usb.c +5 -0
+                       case USB_PROT_HID_MOUSE:
+                               printf("Mouse");
+                               break;
+                       default:
+                               printf("reserved");
                       }
                       break;

A default case without a break...

common/cmd_usb.c static int usb_stor_curr_dev = -1; /* current device */ · line 121

Quoted 7 lines
common/cmd_usb.c +4 -1
+               case US_SC_SCSI:
+                       printf("Transp. SCSI");
                       break;
               default:
-                       printf("%s",usb_get_class_desc(dclass));
+                       printf("reserved");
+                       break;

And a default case with a break...
I see the 'break' keyword is not being used very consequent across all these files/switch-statements.

common/cmd_usb.c int do_usb (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) · line 582

Quoted 6 lines
common/cmd_usb.c +4 -2
-               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");

I believe it is good to keep line lengths below 80 characters in general, but code should not become less readable by this. In case of printf lines, it becomes more difficult to 'grep' for the strings printed in the terminal to find them back in the code. So, I am very curious about the point of view Wolfgang about this rule. (How strict does this rule need to be applied?)

Kind Regards,

Remy

author
#2 lore raw

RFC PATCH 1/1 USB style patch

Hi,

Quoted 15 lines · Remy Bohmer

Hello Michael,

Nice work, but I have a few small comments:

Quoted 8 lines
common/cmd_usb.c +5 -0
+                       case USB_PROT_HID_MOUSE:
+                               printf("Mouse");
+                               break;
+                       default:
+                               printf("reserved");
                       }
                       break;

I check it.

Quoted 12 lines

A default case without a break...

common/cmd_usb.c static int usb_stor_curr_dev = -1; /* current device */ · line 121

Quoted 8 lines
common/cmd_usb.c +4 -1
+               case US_SC_SCSI:
+                       printf("Transp. SCSI");
                       break;
               default:
-                       printf("%s",usb_get_class_desc(dclass));
+                       printf("reserved");
+                       break;
Quoted 5 lines

And a default case with a break...
I see the 'break' keyword is not being used very consequent across all these files/switch-statements.

I check

Quoted 8 lines

common/cmd_usb.c int do_usb (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) · line 582

Quoted 7 lines
common/cmd_usb.c +4 -2
-               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");
Quoted 7 lines

I believe it is good to keep line lengths below 80 characters in general, but code should not become less readable by this. In case of printf lines, it becomes more difficult to 'grep' for the strings printed in the terminal to find them back in the code. So, I am very curious about the point of view Wolfgang about this rule. (How strict does this rule need to be applied?)

I prefer to break the line but I wait for Walfgang answer.

Quoted 5 lines

Kind Regards,

Remy

Regards Michael

#3 lore raw

RFC PATCH 1/1 USB style patch

Dear michael,

Quoted 9 lines · In message <[email protected]> you wrote:
Quoted 9 lines
Quoted 8 lines
common/cmd_usb.c +4 -2
-               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");
Quoted 8 lines
Quoted 7 lines

I believe it is good to keep line lengths below 80 characters in general, but code should not become less readable by this. In case of printf lines, it becomes more difficult to 'grep' for the strings printed in the terminal to find them back in the code. So, I am very curious about the point of view Wolfgang about this rule. (How strict does this rule need to be applied?)

I prefer to break the line but I wait for Walfgang answer.

I tend to go with Remy here, but tyher eis another (even better)
option: do what the warning says, and remove the obsolete code.

Best regards,

Wolfgang Denk

Signature · 5 lines
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
The nice thing about  standards  is that there are  so many to choose
from.                                           - Andrew S. Tanenbaum
author
#4 lore raw

RFC PATCH 1/1 USB style patch

Quoted 20 lines · Wolfgang Denk

Dear michael,

Quoted 16 lines · In message <[email protected]> you wrote:
Quoted 16 lines

common/cmd_usb.c int do_usb (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) · line 582

Quoted 8 lines
common/cmd_usb.c +4 -2
-               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");

I believe it is good to keep line lengths below 80 characters in general, but code should not become less readable by this. In case of printf lines, it becomes more difficult to 'grep' for the strings printed in the terminal to find them back in the code. So, I am very curious about the point of view Wolfgang about this rule. (How strict does this rule need to be applied?)

Quoted 7 lines
Quoted 2 lines

I prefer to break the line but I wait for Walfgang answer.

I tend to go with Remy here, but tyher eis another (even better)
option: do what the warning says, and remove the obsolete code.

At the end, can I break to 80 char and "..remove the obsolete code"? It is nessary a grep with the full message? There are a lot of situation when the grep is impossible.

Quoted 5 lines

Best regards,

Wolfgang Denk

Regards Michael

#5 lore raw

RFC PATCH 1/1 USB style patch

Dear Michael,

Quoted 3 lines · In message <[email protected]> you wrote:
Quoted 3 lines
Quoted 3 lines
Quoted 3 lines
Quoted 3 lines
common/cmd_usb.c +0 -2
-               printf("  NOTE: this command is obsolete and will be phased out\n");
-               printf("  please use 'usb storage' for USB storage devices information\n\n");

...

Quoted 3 lines

At the end, can I break to 80 char and "..remove the obsolete code"? It is nessary a grep with the full message? There are a lot of situation when the grep is impossible.

No, you misunderstand.

I mean: this is a warning that obsolete code will be removed. So let's actually remove that obsolete code, and the warning with it. This long line disappears then, too :-)

Best regards,

Wolfgang Denk

Signature · 5 lines
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
Those who do not  understand  Unix  are  condemned  to  reinvent  it,
poorly.              - Henry Spencer, University of Toronto Unix hack
#6 lore raw

[U-Boot] grep for message (was: USB style patch)

In reply to michael
Quoted 2 lines

It is nessary a grep with the full message? There are a lot of situation when the grep is impossible.

FWIW, I think it's not important to have the message in one line.

I prefer to grep for the message in the object files. This is especially useful when the same message appears in different places (e.g., different archs), so I'm sure I only get the ones that are in my binary

#!/bin/sh
find . -name "*.o" -o -name "*.ko" | xargs nm -o | grep $1

/alessandro

author
#7 lore raw

[U-Boot] grep for message

Hi,

Quoted 11 lines · Alessandro Rubini
Quoted 3 lines

It is nessary a grep with the full message? There are a lot of situation when the grep is impossible.

FWIW, I think it's not important to have the message in one line.

I prefer to grep for the message in the object files. This is especially useful when the same message appears in different places (e.g., different archs), so I'm sure I only get the ones that are in my binary

Quoted 6 lines
   #!/bin/sh
   find . -name "*.o" -o -name "*.ko" | xargs nm -o | grep $1

/alessandro

I'm agree with Alessandro. The code is more readable if we have lines < 80 chars.

Regards Michael