mirror of https://github.com/OpenIPC/firmware.git
				
				
				
			
		
			
				
	
	
		
			46 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Diff
		
	
	
			
		
		
	
	
			46 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Diff
		
	
	
| --- linux-4.9.37/include/uapi/linux/usb/ch9.h	2017-07-12 16:42:41.000000000 +0300
 | |
| +++ linux-4.9.y/include/uapi/linux/usb/ch9.h	2021-06-07 13:01:34.000000000 +0300
 | |
| @@ -423,6 +423,14 @@
 | |
|  #define USB_ENDPOINT_XFER_INT		3
 | |
|  #define USB_ENDPOINT_MAX_ADJUSTABLE	0x80
 | |
|  
 | |
| +#define USB_EP_MAXP_MULT_SHIFT	11
 | |
| +#define USB_EP_MAXP_MULT_MASK	(3 << USB_EP_MAXP_MULT_SHIFT)
 | |
| +#define USB_EP_MAXP_MULT(m) \
 | |
| +	(((m) & USB_EP_MAXP_MULT_MASK) >> USB_EP_MAXP_MULT_SHIFT)
 | |
| +
 | |
| +
 | |
| +#define USB_ENDPOINT_MAXP_MASK	0x07ff
 | |
| +
 | |
|  /* The USB 3.0 spec redefines bits 5:4 of bmAttributes as interrupt ep type. */
 | |
|  #define USB_ENDPOINT_INTRTYPE		0x30
 | |
|  #define USB_ENDPOINT_INTR_PERIODIC	(0 << 4)
 | |
| @@ -623,11 +631,25 @@
 | |
|   * usb_endpoint_maxp - get endpoint's max packet size
 | |
|   * @epd: endpoint to be checked
 | |
|   *
 | |
| - * Returns @epd's max packet
 | |
| + * Returns @epd's max packet bits [10:0]
 | |
|   */
 | |
|  static inline int usb_endpoint_maxp(const struct usb_endpoint_descriptor *epd)
 | |
|  {
 | |
| -	return __le16_to_cpu(epd->wMaxPacketSize);
 | |
| +	return __le16_to_cpu(epd->wMaxPacketSize) & USB_ENDPOINT_MAXP_MASK;
 | |
| +}
 | |
| +
 | |
| +/**
 | |
| + * usb_endpoint_maxp_mult - get endpoint's transactional opportunities
 | |
| + * @epd: endpoint to be checked
 | |
| + *
 | |
| + * Return @epd's wMaxPacketSize[12:11] + 1
 | |
| + */
 | |
| +static inline int
 | |
| +usb_endpoint_maxp_mult(const struct usb_endpoint_descriptor *epd)
 | |
| +{
 | |
| +	int maxp = __le16_to_cpu(epd->wMaxPacketSize);
 | |
| +
 | |
| +	return USB_EP_MAXP_MULT(maxp) + 1;
 | |
|  }
 | |
|  
 | |
|  static inline int usb_endpoint_interrupt_type(
 |