Rndis: Don't request Host to send aggregated RNDIS packets

Currently MaxPacketsPerTransfer is set to 3 due to which
Windows 7 Host is sending aggregated RNDIS packets. RNDIS driver
is not having de-aggregation support and due to that multi-packet
RNDIS data are not getting decoded properly and those packets are
being discarded. This is leading to degradation in TCP UPLINK
throughput. Hence set MaxPacketsPerTransfer to 1 and accordingly
set MaxTransferSize for accepting 1 RNDIS packet.

CRs-Fixed: 392052
Signed-off-by: Mayank Rana <mrana@codeaurora.org>
(cherry picked from commit e5d2b3da2f8583f7b7625085234309f912a96c14)

Change-Id: I59e5f35084b546d2d72d3f87446f0775f80941b2
Signed-off-by: Sudhir Sharma <sudsha@codeaurora.org>
diff --git a/drivers/usb/gadget/rndis.c b/drivers/usb/gadget/rndis.c
index e0520c7..087c928 100644
--- a/drivers/usb/gadget/rndis.c
+++ b/drivers/usb/gadget/rndis.c
@@ -586,11 +586,11 @@
 	resp->DeviceFlags = cpu_to_le32(RNDIS_DF_CONNECTIONLESS);
 	resp->Medium = cpu_to_le32(RNDIS_MEDIUM_802_3);
 	resp->MaxPacketsPerTransfer = cpu_to_le32(params->max_pkt_per_xfer);
-	resp->MaxTransferSize = cpu_to_le32(params->max_pkt_per_xfer *
-		(params->dev->mtu
+	resp->MaxTransferSize = cpu_to_le32(
+		  params->dev->mtu
 		+ sizeof(struct ethhdr)
 		+ sizeof(struct rndis_packet_msg_type)
-		+ 22));
+		+ 22);
 	resp->PacketAlignmentFactor = cpu_to_le32(0);
 	resp->AFListOffset = cpu_to_le32(0);
 	resp->AFListSize = cpu_to_le32(0);
@@ -902,8 +902,7 @@
 			rndis_per_dev_params[i].used = 1;
 			rndis_per_dev_params[i].resp_avail = resp_avail;
 			rndis_per_dev_params[i].v = v;
-			rndis_per_dev_params[i].max_pkt_per_xfer =
-							TX_SKB_HOLD_THRESHOLD;
+			rndis_per_dev_params[i].max_pkt_per_xfer = 1;
 			pr_debug("%s: configNr = %d\n", __func__, i);
 			return i;
 		}