hc
2024-02-20 102a0743326a03cd1a1202ceda21e175b7d3575c
kernel/drivers/usb/core/endpoint.c
....@@ -84,40 +84,13 @@
8484 char *buf)
8585 {
8686 struct ep_device *ep = to_ep_device(dev);
87
+ unsigned int interval;
8788 char unit;
88
- unsigned interval = 0;
89
- unsigned in;
9089
91
- in = (ep->desc->bEndpointAddress & USB_DIR_IN);
92
-
93
- switch (usb_endpoint_type(ep->desc)) {
94
- case USB_ENDPOINT_XFER_CONTROL:
95
- if (ep->udev->speed == USB_SPEED_HIGH)
96
- /* uframes per NAK */
97
- interval = ep->desc->bInterval;
98
- break;
99
-
100
- case USB_ENDPOINT_XFER_ISOC:
101
- interval = 1 << (ep->desc->bInterval - 1);
102
- break;
103
-
104
- case USB_ENDPOINT_XFER_BULK:
105
- if (ep->udev->speed == USB_SPEED_HIGH && !in)
106
- /* uframes per NAK */
107
- interval = ep->desc->bInterval;
108
- break;
109
-
110
- case USB_ENDPOINT_XFER_INT:
111
- if (ep->udev->speed == USB_SPEED_HIGH)
112
- interval = 1 << (ep->desc->bInterval - 1);
113
- else
114
- interval = ep->desc->bInterval;
115
- break;
116
- }
117
- interval *= (ep->udev->speed == USB_SPEED_HIGH) ? 125 : 1000;
118
- if (interval % 1000)
90
+ interval = usb_decode_interval(ep->desc, ep->udev->speed);
91
+ if (interval % 1000) {
11992 unit = 'u';
120
- else {
93
+ } else {
12194 unit = 'm';
12295 interval /= 1000;
12396 }