diff --git a/drivers/usb/gadget/function/rndis.c b/drivers/usb/gadget/function/rndis.c index 5684e7e3e073..e3d9c104f747 100644 --- a/drivers/usb/gadget/function/rndis.c +++ b/drivers/usb/gadget/function/rndis.c @@ -806,8 +806,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); diff --git a/drivers/usb/gadget/function/rndis.h b/drivers/usb/gadget/function/rndis.h index 297c27ab48aa..de61b7bca40f 100644 --- a/drivers/usb/gadget/function/rndis.h +++ b/drivers/usb/gadget/function/rndis.h @@ -171,6 +171,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);