Loading drivers/usb/gadget/function/f_mdm_data.c +1 −0 Original line number Diff line number Diff line Loading @@ -1231,6 +1231,7 @@ mdm_data_set_alt(struct usb_function *f, unsigned int intf, unsigned int alt) pr_debug("%s: mdm_data_port: %pK\n", __func__, port); port->tx_q_size = mdm_data_tx_q_size; port->rx_q_size = mdm_data_rx_q_size; ret = config_ep_by_speed(cdev->gadget, f, port->in); if (ret) { port->in->desc = NULL; Loading drivers/usb/misc/ks_bridge.c +8 −0 Original line number Diff line number Diff line Loading @@ -88,6 +88,9 @@ static rwlock_t dbg_lock = __RW_LOCK_UNLOCKED(lck); static unsigned int enable_dbg = 1; module_param(enable_dbg, uint, 0644); static bool prevent_edl_probe; module_param(prevent_edl_probe, bool, 0644); /*get_timestamp - returns time of day in us */ static unsigned int get_timestamp(void) { Loading Loading @@ -633,6 +636,11 @@ ksb_usb_probe(struct usb_interface *ifc, const struct usb_device_id *id) pr_debug("%s: id: %lu\n", __func__, id->driver_info); if (prevent_edl_probe && (le16_to_cpu(id->idProduct) == 0x9008)) { pr_err("%s: Preventing EDL device enumeration\n", __func__); return -EINVAL; } udev = interface_to_usbdev(ifc); if (udev->actconfig->desc.bNumInterfaces > 1) { pr_err("%s: Invalid configuration: More than 1 interface\n", Loading drivers/usb/misc/mdm_data_bridge.c +3 −1 Original line number Diff line number Diff line Loading @@ -513,7 +513,7 @@ int data_bridge_write(unsigned int id, struct sk_buff *skb) struct urb *txurb; struct timestamp_info *info = (struct timestamp_info *)skb->cb; struct data_bridge *dev = __mdm_dev[id]; struct bridge *brdg; struct bridge *brdg = dev->brdg; if (!dev->brdg || dev->err) { pr_err("%s: Bridge closed or device disconnected\n", __func__); Loading Loading @@ -968,6 +968,8 @@ static void bridge_disconnect(struct usb_interface *intf) /*driver info stores data bridge name used to match bridge xport name*/ static const struct usb_device_id bridge_ids[] = { { USB_DEVICE_INTERFACE_NUMBER(0x05c6, 0x9008, 0), .driver_info = (kernel_ulong_t)("edl"), }, { USB_DEVICE_INTERFACE_NUMBER(0x05c6, 0x9102, 6), .driver_info = (kernel_ulong_t)("qdss"), }, { USB_DEVICE_INTERFACE_NUMBER(0x05c6, 0x9102, 7), Loading include/linux/usb/usb_bridge.h +3 −0 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ enum bridge_id { USB_BRIDGE_QDSS, USB_BRIDGE_DPL, USB_BRIDGE_EDL, MAX_BRIDGE_DEVICES, }; Loading @@ -34,6 +35,8 @@ static int bridge_name_to_id(const char *name) return USB_BRIDGE_QDSS; if (!strncasecmp(name, "dpl", MAX_INST_NAME_LEN)) return USB_BRIDGE_DPL; if (!strncasecmp(name, "edl", MAX_INST_NAME_LEN)) return USB_BRIDGE_EDL; fail: return -EINVAL; Loading Loading
drivers/usb/gadget/function/f_mdm_data.c +1 −0 Original line number Diff line number Diff line Loading @@ -1231,6 +1231,7 @@ mdm_data_set_alt(struct usb_function *f, unsigned int intf, unsigned int alt) pr_debug("%s: mdm_data_port: %pK\n", __func__, port); port->tx_q_size = mdm_data_tx_q_size; port->rx_q_size = mdm_data_rx_q_size; ret = config_ep_by_speed(cdev->gadget, f, port->in); if (ret) { port->in->desc = NULL; Loading
drivers/usb/misc/ks_bridge.c +8 −0 Original line number Diff line number Diff line Loading @@ -88,6 +88,9 @@ static rwlock_t dbg_lock = __RW_LOCK_UNLOCKED(lck); static unsigned int enable_dbg = 1; module_param(enable_dbg, uint, 0644); static bool prevent_edl_probe; module_param(prevent_edl_probe, bool, 0644); /*get_timestamp - returns time of day in us */ static unsigned int get_timestamp(void) { Loading Loading @@ -633,6 +636,11 @@ ksb_usb_probe(struct usb_interface *ifc, const struct usb_device_id *id) pr_debug("%s: id: %lu\n", __func__, id->driver_info); if (prevent_edl_probe && (le16_to_cpu(id->idProduct) == 0x9008)) { pr_err("%s: Preventing EDL device enumeration\n", __func__); return -EINVAL; } udev = interface_to_usbdev(ifc); if (udev->actconfig->desc.bNumInterfaces > 1) { pr_err("%s: Invalid configuration: More than 1 interface\n", Loading
drivers/usb/misc/mdm_data_bridge.c +3 −1 Original line number Diff line number Diff line Loading @@ -513,7 +513,7 @@ int data_bridge_write(unsigned int id, struct sk_buff *skb) struct urb *txurb; struct timestamp_info *info = (struct timestamp_info *)skb->cb; struct data_bridge *dev = __mdm_dev[id]; struct bridge *brdg; struct bridge *brdg = dev->brdg; if (!dev->brdg || dev->err) { pr_err("%s: Bridge closed or device disconnected\n", __func__); Loading Loading @@ -968,6 +968,8 @@ static void bridge_disconnect(struct usb_interface *intf) /*driver info stores data bridge name used to match bridge xport name*/ static const struct usb_device_id bridge_ids[] = { { USB_DEVICE_INTERFACE_NUMBER(0x05c6, 0x9008, 0), .driver_info = (kernel_ulong_t)("edl"), }, { USB_DEVICE_INTERFACE_NUMBER(0x05c6, 0x9102, 6), .driver_info = (kernel_ulong_t)("qdss"), }, { USB_DEVICE_INTERFACE_NUMBER(0x05c6, 0x9102, 7), Loading
include/linux/usb/usb_bridge.h +3 −0 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ enum bridge_id { USB_BRIDGE_QDSS, USB_BRIDGE_DPL, USB_BRIDGE_EDL, MAX_BRIDGE_DEVICES, }; Loading @@ -34,6 +35,8 @@ static int bridge_name_to_id(const char *name) return USB_BRIDGE_QDSS; if (!strncasecmp(name, "dpl", MAX_INST_NAME_LEN)) return USB_BRIDGE_DPL; if (!strncasecmp(name, "edl", MAX_INST_NAME_LEN)) return USB_BRIDGE_EDL; fail: return -EINVAL; Loading