net: usb: Add MUX support in embedded rmnet driver
Due to limited number of HSIC endpoints, to support
more than existing number of control and data channels,
driver needs to MUX all the data channels as well as
the control channels into one HSIC interface. MUX
support is enabled on PID 0x9075. MUX header is added
to IP/control packet based on the channel id while
transmitting to mdm device. Similarly, while receiving
driver removes and parses the MUX header and based on
channel id it forwards IP/control packet to appropriate
network interface/control channel.
Change-Id: If37c672347ab47be6e02d4efd33a70c46486b5f1
Signed-off-by: Hemant Kumar <hemantk@codeaurora.org>
diff --git a/include/linux/usb/usbnet.h b/include/linux/usb/usbnet.h
index 72f5c96..642c4fe 100644
--- a/include/linux/usb/usbnet.h
+++ b/include/linux/usb/usbnet.h
@@ -131,6 +131,9 @@
/* link reset handling, called from defer_kevent */
int (*link_reset)(struct usbnet *);
+ /*in case if usbnet wrapper wants to override rx_complete()*/
+ void (*rx_complete) (struct urb *);
+
/* fixup rx packet (strip framing) */
int (*rx_fixup)(struct usbnet *dev, struct sk_buff *skb);
@@ -228,5 +231,7 @@
extern void usbnet_set_msglevel(struct net_device *, u32);
extern void usbnet_get_drvinfo(struct net_device *, struct ethtool_drvinfo *);
extern int usbnet_nway_reset(struct net_device *net);
+extern void usbnet_terminate_urbs(struct usbnet *dev);
+extern void rx_complete(struct urb *urb);
#endif /* __LINUX_USB_USBNET_H */