|
@@ -346,6 +346,8 @@ struct usb_gadget_ops {
|
|
|
* or B-Peripheral wants to take host role.
|
|
|
* @quirk_ep_out_aligned_size: epout requires buffer size to be aligned to
|
|
|
* MaxPacketSize.
|
|
|
+ * @quirk_avoids_skb_reserve: udc/platform wants to avoid skb_reserve() in
|
|
|
+ * u_ether.c to improve performance.
|
|
|
* @is_selfpowered: if the gadget is self-powered.
|
|
|
* @deactivated: True if gadget is deactivated - in deactivated state it cannot
|
|
|
* be connected.
|
|
@@ -398,6 +400,7 @@ struct usb_gadget {
|
|
|
unsigned quirk_altset_not_supp:1;
|
|
|
unsigned quirk_stall_not_supp:1;
|
|
|
unsigned quirk_zlp_not_supp:1;
|
|
|
+ unsigned quirk_avoids_skb_reserve:1;
|
|
|
unsigned is_selfpowered:1;
|
|
|
unsigned deactivated:1;
|
|
|
unsigned connected:1;
|
|
@@ -473,6 +476,16 @@ static inline int gadget_is_zlp_supported(struct usb_gadget *g)
|
|
|
return !g->quirk_zlp_not_supp;
|
|
|
}
|
|
|
|
|
|
+/**
|
|
|
+ * gadget_avoids_skb_reserve - return true iff the hardware would like to avoid
|
|
|
+ * skb_reserve to improve performance.
|
|
|
+ * @g: controller to check for quirk
|
|
|
+ */
|
|
|
+static inline int gadget_avoids_skb_reserve(struct usb_gadget *g)
|
|
|
+{
|
|
|
+ return g->quirk_avoids_skb_reserve;
|
|
|
+}
|
|
|
+
|
|
|
/**
|
|
|
* gadget_is_dualspeed - return true iff the hardware handles high speed
|
|
|
* @g: controller that might support both high and full speeds
|