/* root_hub_string is used by each host controller's root hub code, so that they're identified consistently throughout the system.  */
static int usb_root_hub_string(int id, int serial, char *type, __u8 *data, int len)
/* root_hub_string is used by each host controller's root hub code, so that they're identified consistently throughout the system.  */
static int usb_root_hub_string(int id, int serial, char *type, __u8 *data, int len)
{
	char buf [30];
	if (id == 0) {
		*data++ = 4; *data++ = 3;
		*data++ = 0; *data++ = 0;
		return 4;
	} else if (id == 1) {
		sprintf (buf, "%#x", serial);
	} else if (id == 2) {
		sprintf (buf, "USB %s Root Hub", type);
	} else
	    return 0;
	ascii2utf (buf, data + 2, len - 2);
	data [0] = 2 + strlen(buf) * 2;
	data [1] = 3;
	return data [0];
}