Merge "usb: gadget: f_gsi: Send 0 byte packet when both ctrl and data paths setup"
This commit is contained in:
commit
1fdf41c69f
1 changed files with 16 additions and 4 deletions
|
|
@ -73,6 +73,7 @@ static int gsi_alloc_trb_buffer(struct f_gsi *gsi);
|
|||
static void gsi_free_trb_buffer(struct f_gsi *gsi);
|
||||
static struct gsi_ctrl_pkt *gsi_ctrl_pkt_alloc(unsigned int len, gfp_t flags);
|
||||
static void gsi_ctrl_pkt_free(struct gsi_ctrl_pkt *pkt);
|
||||
static int gsi_ctrl_send_cpkt_tomodem(struct f_gsi *gsi, void *buf, size_t len);
|
||||
|
||||
static inline bool is_ext_prot_ether(int prot_id)
|
||||
{
|
||||
|
|
@ -740,6 +741,12 @@ static int ipa_connect_channels(struct gsi_data_port *d_port)
|
|||
ipa_out_channel_out_params.db_reg_phs_addr_msb;
|
||||
}
|
||||
|
||||
/* Send 0 byte packet to QTI only if DTR linetstate is HIGH already */
|
||||
if (gsi->rmnet_dtr_status &&
|
||||
(gsi->prot_id == USB_PROT_RMNET_IPA ||
|
||||
gsi->prot_id == USB_PROT_RMNET_V2X_IPA))
|
||||
gsi_ctrl_send_cpkt_tomodem(gsi, NULL, 0);
|
||||
|
||||
return ret;
|
||||
|
||||
end_xfer_ep_out:
|
||||
|
|
@ -2220,6 +2227,14 @@ gsi_setup(struct usb_function *f, const struct usb_ctrlrequest *ctrl)
|
|||
queue_work(gsi->c_port.uevent_wq,
|
||||
&gsi->c_port.uevent_work);
|
||||
|
||||
/* Send 0 byte packet to QTI only if IPA connect is done */
|
||||
if (gsi->rmnet_dtr_status) {
|
||||
if (gsi->prot_id == USB_PROT_RMNET_ETHER)
|
||||
gsi_ctrl_send_cpkt_tomodem(gsi, NULL, 0);
|
||||
else if (gsi->d_port.in_channel_handle != -EINVAL)
|
||||
gsi_ctrl_send_cpkt_tomodem(gsi, NULL, 0);
|
||||
}
|
||||
|
||||
value = 0;
|
||||
break;
|
||||
case ((USB_DIR_OUT | USB_TYPE_CLASS | USB_RECIP_INTERFACE) << 8)
|
||||
|
|
@ -2624,10 +2639,7 @@ static int gsi_set_alt(struct usb_function *f, unsigned int intf,
|
|||
if (gsi->prot_id == USB_PROT_DIAG_IPA ||
|
||||
gsi->prot_id == USB_PROT_DPL_ETHER ||
|
||||
gsi->prot_id == USB_PROT_GPS_CTRL ||
|
||||
gsi->prot_id == USB_PROT_MBIM_IPA ||
|
||||
gsi->prot_id == USB_PROT_RMNET_IPA ||
|
||||
gsi->prot_id == USB_PROT_RMNET_V2X_IPA ||
|
||||
gsi->prot_id == USB_PROT_RMNET_ETHER)
|
||||
gsi->prot_id == USB_PROT_MBIM_IPA)
|
||||
gsi_ctrl_send_cpkt_tomodem(gsi, NULL, 0);
|
||||
|
||||
if (gsi->c_port.uevent_wq)
|
||||
|
|
|
|||
Loading…
Reference in a new issue