]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - include/linux/usb.h
USB: introduce usb_device_no_sg_constraint() helper
[karo-tx-linux.git] / include / linux / usb.h
index acb1b0aa77d85fdbdf83031bde45896ae9024f61..001629cd1a97b831f2eb448013c114b3a76f0de7 100644 (file)
@@ -337,6 +337,7 @@ struct usb_bus {
                                         * the ep queue on a short transfer
                                         * with the URB_SHORT_NOT_OK flag set.
                                         */
+       unsigned no_sg_constraint:1;    /* no sg constraint */
        unsigned sg_tablesize;          /* 0 or largest number of sg list entries */
 
        int devnum_next;                /* Next open device number in
@@ -684,6 +685,11 @@ static inline bool usb_device_supports_ltm(struct usb_device *udev)
        return udev->bos->ss_cap->bmAttributes & USB_LTM_SUPPORT;
 }
 
+static inline bool usb_device_no_sg_constraint(struct usb_device *udev)
+{
+       return udev && udev->bus && udev->bus->no_sg_constraint;
+}
+
 
 /*-------------------------------------------------------------------------*/
 
@@ -1253,7 +1259,7 @@ typedef void (*usb_complete_t)(struct urb *);
  *     transfer_buffer.
  * @sg: scatter gather buffer list, the buffer size of each element in
  *     the list (except the last) must be divisible by the endpoint's
- *     max packet size
+ *     max packet size if no_sg_constraint isn't set in 'struct usb_bus'
  * @num_mapped_sgs: (internal) number of mapped sg entries
  * @num_sgs: number of entries in the sg list
  * @transfer_buffer_length: How big is transfer_buffer.  The transfer may