Loading drivers/usb/gadget/function/f_gsi.c +10 −0 Original line number Diff line number Diff line Loading @@ -1565,12 +1565,22 @@ static void gsi_rndis_command_complete(struct usb_ep *ep, struct usb_request *req) { struct f_gsi *gsi = req->context; rndis_init_msg_type *buf; int status; status = rndis_msg_parser(gsi->params, (u8 *) req->buf); if (status < 0) log_event_err("RNDIS command error %d, %d/%d", status, req->actual, req->length); buf = (rndis_init_msg_type *)req->buf; if (buf->MessageType == RNDIS_MSG_INIT) { gsi->d_port.in_aggr_size = min_t(u32, gsi->d_port.in_aggr_size, gsi->params->dl_max_xfer_size); log_event_dbg("RNDIS host dl_aggr_size:%d in_aggr_size:%d\n", gsi->params->dl_max_xfer_size, gsi->d_port.in_aggr_size); } } static void Loading drivers/usb/gadget/function/rndis.c +11 −2 Original line number Diff line number Diff line Loading @@ -813,8 +813,17 @@ int rndis_msg_parser(struct rndis_params *params, u8 *buf) /* For USB: responses may take up to 10 seconds */ switch (MsgType) { case RNDIS_MSG_INIT: pr_debug("%s: RNDIS_MSG_INIT\n", __func__); pr_debug("%s: RNDIS_MSG_INIT\n", __func__); tmp++; /* to get RequestID */ params->host_rndis_major_ver = get_unaligned_le32(tmp++); params->host_rndis_minor_ver = get_unaligned_le32(tmp++); params->dl_max_xfer_size = get_unaligned_le32(tmp++); pr_debug("%s(): RNDIS Host Major:%d Minor:%d version\n", __func__, params->host_rndis_major_ver, params->host_rndis_minor_ver); pr_debug("%s(): DL Max Transfer size:%x\n", __func__, params->dl_max_xfer_size); params->state = RNDIS_INITIALIZED; return rndis_init_response(params, (rndis_init_msg_type *)buf); Loading drivers/usb/gadget/function/rndis.h +3 −0 Original line number Diff line number Diff line Loading @@ -191,6 +191,9 @@ typedef struct rndis_params u32 vendorID; u8 max_pkt_per_xfer; u32 host_rndis_major_ver; u32 host_rndis_minor_ver; u32 dl_max_xfer_size; const char *vendorDescr; u8 pkt_alignment_factor; void (*resp_avail)(void *v); Loading Loading
drivers/usb/gadget/function/f_gsi.c +10 −0 Original line number Diff line number Diff line Loading @@ -1565,12 +1565,22 @@ static void gsi_rndis_command_complete(struct usb_ep *ep, struct usb_request *req) { struct f_gsi *gsi = req->context; rndis_init_msg_type *buf; int status; status = rndis_msg_parser(gsi->params, (u8 *) req->buf); if (status < 0) log_event_err("RNDIS command error %d, %d/%d", status, req->actual, req->length); buf = (rndis_init_msg_type *)req->buf; if (buf->MessageType == RNDIS_MSG_INIT) { gsi->d_port.in_aggr_size = min_t(u32, gsi->d_port.in_aggr_size, gsi->params->dl_max_xfer_size); log_event_dbg("RNDIS host dl_aggr_size:%d in_aggr_size:%d\n", gsi->params->dl_max_xfer_size, gsi->d_port.in_aggr_size); } } static void Loading
drivers/usb/gadget/function/rndis.c +11 −2 Original line number Diff line number Diff line Loading @@ -813,8 +813,17 @@ int rndis_msg_parser(struct rndis_params *params, u8 *buf) /* For USB: responses may take up to 10 seconds */ switch (MsgType) { case RNDIS_MSG_INIT: pr_debug("%s: RNDIS_MSG_INIT\n", __func__); pr_debug("%s: RNDIS_MSG_INIT\n", __func__); tmp++; /* to get RequestID */ params->host_rndis_major_ver = get_unaligned_le32(tmp++); params->host_rndis_minor_ver = get_unaligned_le32(tmp++); params->dl_max_xfer_size = get_unaligned_le32(tmp++); pr_debug("%s(): RNDIS Host Major:%d Minor:%d version\n", __func__, params->host_rndis_major_ver, params->host_rndis_minor_ver); pr_debug("%s(): DL Max Transfer size:%x\n", __func__, params->dl_max_xfer_size); params->state = RNDIS_INITIALIZED; return rndis_init_response(params, (rndis_init_msg_type *)buf); Loading
drivers/usb/gadget/function/rndis.h +3 −0 Original line number Diff line number Diff line Loading @@ -191,6 +191,9 @@ typedef struct rndis_params u32 vendorID; u8 max_pkt_per_xfer; u32 host_rndis_major_ver; u32 host_rndis_minor_ver; u32 dl_max_xfer_size; const char *vendorDescr; u8 pkt_alignment_factor; void (*resp_avail)(void *v); Loading