Lines Matching +full:max +full:- +full:speed
1 // SPDX-License-Identifier: GPL-2.0+
16 * reason -- maybe it's just too deep of a directory structure.
24 * this in any plug-and-play environment.)
26 * 1999-12-16: Thomas Sailer <sailer@ife.ee.ethz.ch>
32 * 2000-01-04: Thomas Sailer <sailer@ife.ee.ethz.ch>
34 * 2000-07-05: Ashley Montanaro <ashley@compsoc.man.ac.uk>
55 "\nT: Bus=%2.2d Lev=%2.2d Prnt=%2.2d Port=%2.2d Cnt=%2.2d Dev#=%3d Spd=%-4s MxCh=%2d\n";
77 "D: Ver=%2x.%02x Cls=%02x(%-5s) Sub=%02x Prot=%02x MxPS=%2d #Cfgs=%3d\n";
89 "A: FirstIf#=%2d IfCount=%2d Cls=%02x(%-5s) Sub=%02x Prot=%02x\n";
93 "I:%c If#=%2d Alt=%2d #EPs=%2d Cls=%02x(%-5s) Sub=%02x Prot=%02x Driver=%s\n";
97 "E: Ad=%02x(%c) Atr=%02x(%-4s) MxPS=%4d Ivl=%d%cs\n";
105 /* max. 5 chars. per name string */
117 {USB_CLASS_CONTENT_SEC, "c-sec"},
127 {-1, "unk."} /* leave as last */
136 for (ix = 0; clas_info[ix].class != -1; ix++) in class_decode()
142 static char *usb_dump_endpoint_descriptor(int speed, char *start, char *end, in usb_dump_endpoint_descriptor() argument
153 if (speed == USB_SPEED_HIGH) in usb_dump_endpoint_descriptor()
175 interval = usb_decode_interval(desc, speed); in usb_dump_endpoint_descriptor()
183 start += sprintf(start, format_endpt, desc->bEndpointAddress, dir, in usb_dump_endpoint_descriptor()
184 desc->bmAttributes, type, in usb_dump_endpoint_descriptor()
202 desc = &intfc->altsetting[setno].desc; in usb_dump_interface_descriptor()
204 driver_name = (iface->dev.driver in usb_dump_interface_descriptor()
205 ? iface->dev.driver->name in usb_dump_interface_descriptor()
207 active = (desc == &iface->cur_altsetting->desc); in usb_dump_interface_descriptor()
211 desc->bInterfaceNumber, in usb_dump_interface_descriptor()
212 desc->bAlternateSetting, in usb_dump_interface_descriptor()
213 desc->bNumEndpoints, in usb_dump_interface_descriptor()
214 desc->bInterfaceClass, in usb_dump_interface_descriptor()
215 class_decode(desc->bInterfaceClass), in usb_dump_interface_descriptor()
216 desc->bInterfaceSubClass, in usb_dump_interface_descriptor()
217 desc->bInterfaceProtocol, in usb_dump_interface_descriptor()
222 static char *usb_dump_interface(int speed, char *start, char *end, in usb_dump_interface() argument
226 const struct usb_host_interface *desc = &intfc->altsetting[setno]; in usb_dump_interface()
230 for (i = 0; i < desc->desc.bNumEndpoints; i++) { in usb_dump_interface()
233 start = usb_dump_endpoint_descriptor(speed, in usb_dump_interface()
234 start, end, &desc->endpoint[i].desc); in usb_dump_interface()
245 iad->bFirstInterface, in usb_dump_iad_descriptor()
246 iad->bInterfaceCount, in usb_dump_iad_descriptor()
247 iad->bFunctionClass, in usb_dump_iad_descriptor()
248 class_decode(iad->bFunctionClass), in usb_dump_iad_descriptor()
249 iad->bFunctionSubClass, in usb_dump_iad_descriptor()
250 iad->bFunctionProtocol); in usb_dump_iad_descriptor()
261 int active, int speed) in usb_dump_config_descriptor() argument
267 if (speed >= USB_SPEED_SUPER) in usb_dump_config_descriptor()
274 desc->bNumInterfaces, in usb_dump_config_descriptor()
275 desc->bConfigurationValue, in usb_dump_config_descriptor()
276 desc->bmAttributes, in usb_dump_config_descriptor()
277 desc->bMaxPower * mul); in usb_dump_config_descriptor()
281 static char *usb_dump_config(int speed, char *start, char *end, in usb_dump_config() argument
293 start = usb_dump_config_descriptor(start, end, &config->desc, active, in usb_dump_config()
294 speed); in usb_dump_config()
296 if (config->intf_assoc[i] == NULL) in usb_dump_config()
299 config->intf_assoc[i]); in usb_dump_config()
301 for (i = 0; i < config->desc.bNumInterfaces; i++) { in usb_dump_config()
302 intfc = config->intf_cache[i]; in usb_dump_config()
303 interface = config->interface[i]; in usb_dump_config()
304 for (j = 0; j < intfc->num_altsetting; j++) { in usb_dump_config()
307 start = usb_dump_interface(speed, in usb_dump_config()
320 u16 bcdUSB = le16_to_cpu(desc->bcdUSB); in usb_dump_device_descriptor()
321 u16 bcdDevice = le16_to_cpu(desc->bcdDevice); in usb_dump_device_descriptor()
327 desc->bDeviceClass, in usb_dump_device_descriptor()
328 class_decode(desc->bDeviceClass), in usb_dump_device_descriptor()
329 desc->bDeviceSubClass, in usb_dump_device_descriptor()
330 desc->bDeviceProtocol, in usb_dump_device_descriptor()
331 desc->bMaxPacketSize0, in usb_dump_device_descriptor()
332 desc->bNumConfigurations); in usb_dump_device_descriptor()
336 le16_to_cpu(desc->idVendor), in usb_dump_device_descriptor()
337 le16_to_cpu(desc->idProduct), in usb_dump_device_descriptor()
350 if (dev->manufacturer) in usb_dump_device_strings()
352 dev->manufacturer); in usb_dump_device_strings()
355 if (dev->product) in usb_dump_device_strings()
356 start += sprintf(start, format_string_product, dev->product); in usb_dump_device_strings()
360 if (dev->serial) in usb_dump_device_strings()
362 dev->serial); in usb_dump_device_strings()
375 start = usb_dump_device_descriptor(start, end, &dev->descriptor); in usb_dump_desc()
382 for (i = 0; i < dev->descriptor.bNumConfigurations; i++) { in usb_dump_desc()
385 start = usb_dump_config(dev->speed, in usb_dump_desc()
386 start, end, dev->config + i, in usb_dump_desc()
388 (dev->config + i) == dev->actconfig); in usb_dump_desc()
407 ptr++; leng--; in usb_dump_hub_descriptor()
419 if (index <= dev->maxstring && dev->stringindex && in usb_dump_string()
420 dev->stringindex[index]) in usb_dump_string()
422 dev->stringindex[index]); in usb_dump_string()
431 * buffer - the user-space buffer to write data into
432 * nbytes - the maximum number of bytes to write
433 * skip_bytes - the number of bytes to skip before writing anything
434 * file_offset - the offset into the devices file on completion
445 char *pages_start, *data_end, *speed; in usb_device_dump() local
460 return -ENOMEM; in usb_device_dump()
462 if (usbdev->parent && usbdev->parent->devnum != -1) in usb_device_dump()
463 parent_devnum = usbdev->parent->devnum; in usb_device_dump()
468 switch (usbdev->speed) { in usb_device_dump()
470 speed = "1.5"; break; in usb_device_dump()
473 speed = "12"; break; in usb_device_dump()
474 case USB_SPEED_WIRELESS: /* Wireless has no real fixed speed */ in usb_device_dump()
476 speed = "480"; break; in usb_device_dump()
478 speed = "5000"; break; in usb_device_dump()
480 speed = "10000"; break; in usb_device_dump()
482 speed = "??"; in usb_device_dump()
485 bus->busnum, level, parent_devnum, in usb_device_dump()
486 index, count, usbdev->devnum, in usb_device_dump()
487 speed, usbdev->maxchild); in usb_device_dump()
489 * level = topology-tier level; in usb_device_dump()
496 int max; in usb_device_dump() local
498 /* super/high speed reserves 80%, full/low reserves 90% */ in usb_device_dump()
499 if (usbdev->speed == USB_SPEED_HIGH || in usb_device_dump()
500 usbdev->speed >= USB_SPEED_SUPER) in usb_device_dump()
501 max = 800; in usb_device_dump()
503 max = FRAME_TIME_MAX_USECS_ALLOC; in usb_device_dump()
510 bus->bandwidth_allocated, max, in usb_device_dump()
511 (100 * bus->bandwidth_allocated + max / 2) in usb_device_dump()
512 / max, in usb_device_dump()
513 bus->bandwidth_int_reqs, in usb_device_dump()
514 bus->bandwidth_isoc_reqs); in usb_device_dump()
517 data_end = usb_dump_desc(data_end, pages_start + (2 * PAGE_SIZE) - 256, in usb_device_dump()
520 if (data_end > (pages_start + (2 * PAGE_SIZE) - 256)) in usb_device_dump()
523 length = data_end - pages_start; in usb_device_dump()
526 length -= *skip_bytes; in usb_device_dump()
531 return -EFAULT; in usb_device_dump()
533 *nbytes -= length; in usb_device_dump()
539 *skip_bytes -= length; in usb_device_dump()
548 level + 1, chix - 1, ++cnt); in usb_device_dump()
550 if (ret == -EFAULT) in usb_device_dump()
566 return -EINVAL; in usb_device_read()
574 if (!bus_to_hcd(bus)->rh_registered) in usb_device_read()
576 usb_lock_device(bus->root_hub); in usb_device_read()
578 bus->root_hub, bus, 0, 0, 0); in usb_device_read()
579 usb_unlock_device(bus->root_hub); in usb_device_read()