Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d4472c65 authored by qctecmdr Service's avatar qctecmdr Service Committed by Gerrit - the friendly Code Review server
Browse files

Merge "f_gsi: Pass 64 byte as max_pkt_size to IPA driver"

parents 43768a6b 41d5c6f1
Loading
Loading
Loading
Loading
+13 −4
Original line number Diff line number Diff line
@@ -1202,6 +1202,8 @@ EXPORT_SYMBOL(gsi_register_device);
int gsi_write_device_scratch(unsigned long dev_hdl,
		struct gsi_device_scratch *val)
{
	unsigned int max_usb_pkt_size = 0;

	if (!gsi_ctx) {
		pr_err("%s:%d gsi context not allocated\n", __func__, __LINE__);
		return -GSI_STATUS_NODEV;
@@ -1220,7 +1222,8 @@ int gsi_write_device_scratch(unsigned long dev_hdl,

	if (val->max_usb_pkt_size_valid &&
			val->max_usb_pkt_size != 1024 &&
			val->max_usb_pkt_size != 512) {
			val->max_usb_pkt_size != 512 &&
			val->max_usb_pkt_size != 64) {
		GSIERR("bad USB max pkt size dev_hdl=0x%lx sz=%u\n", dev_hdl,
				val->max_usb_pkt_size);
		return -GSI_STATUS_INVALID_PARAMS;
@@ -1230,9 +1233,15 @@ int gsi_write_device_scratch(unsigned long dev_hdl,
	if (val->mhi_base_chan_idx_valid)
		gsi_ctx->scratch.word0.s.mhi_base_chan_idx =
			val->mhi_base_chan_idx;
	if (val->max_usb_pkt_size_valid)
		gsi_ctx->scratch.word0.s.max_usb_pkt_size =

	if (val->max_usb_pkt_size_valid) {
		max_usb_pkt_size = 2;
		if (val->max_usb_pkt_size > 64)
			max_usb_pkt_size =
				(val->max_usb_pkt_size == 1024) ? 1 : 0;
		gsi_ctx->scratch.word0.s.max_usb_pkt_size = max_usb_pkt_size;
	}

	gsi_writel(gsi_ctx->scratch.word0.val,
			gsi_ctx->base +
			GSI_EE_n_CNTXT_SCRATCH_0_OFFS(gsi_ctx->per.ee));
+1 −1
Original line number Diff line number Diff line
@@ -1493,7 +1493,7 @@ static bool ipa3_usb_check_connect_params(
	IPA_USB_DBG_LOW("max_supported_bandwidth_mbps = %d\n",
		params->max_supported_bandwidth_mbps);

	if (params->max_pkt_size < IPA_USB_HIGH_SPEED_512B  ||
	if (params->max_pkt_size < IPA_USB_FULL_SPEED_64B  ||
		params->max_pkt_size > IPA_USB_SUPER_SPEED_1024B  ||
		params->ipa_to_usb_xferrscidx > 127 ||
		(params->teth_prot != IPA_USB_DIAG &&
+3 −2
Original line number Diff line number Diff line
@@ -586,8 +586,9 @@ static int ipa_connect_channels(struct gsi_data_port *d_port)

	/* Populate connection params */
	conn_params->max_pkt_size =
		(cdev->gadget->speed >= USB_SPEED_SUPER) ?
		IPA_USB_SUPER_SPEED_1024B : IPA_USB_HIGH_SPEED_512B;
		le16_to_cpu(d_port->in_ep->desc->wMaxPacketSize);
	log_event_dbg("%s(): max_pkt_size:%d\n", __func__,
		conn_params->max_pkt_size);
	conn_params->ipa_to_usb_xferrscidx =
			d_port->in_xfer_rsc_index;
	conn_params->usb_to_ipa_xferrscidx =
+2 −1
Original line number Diff line number Diff line
@@ -40,6 +40,7 @@ enum ipa_usb_notify_event {
};

enum ipa_usb_max_usb_packet_size {
	IPA_USB_FULL_SPEED_64B = 64,
	IPA_USB_HIGH_SPEED_512B = 512,
	IPA_USB_SUPER_SPEED_1024B = 1024
};
@@ -62,7 +63,7 @@ struct ipa_usb_teth_prot_params {
 * ipa_usb_xdci_connect_params - parameters required to start IN, OUT
 * channels, and connect RNDIS/ECM/teth_bridge
 *
 * @max_pkt_size:          high speed or full speed
 * @max_pkt_size:          USB speed (full/high/super/super-speed plus)
 * @ipa_to_usb_xferrscidx: Transfer Resource Index (XferRscIdx) for IN channel.
 *                         The hardware-assigned transfer resource index for the
 *                         transfer, which was returned in response to the
+1 −1
Original line number Diff line number Diff line
@@ -772,7 +772,7 @@ union __packed gsi_evt_scratch {
 *                           MHI base channel index
 * @max_usb_pkt_size_valid:  is max_usb_pkt_size valid?
 * @max_usb_pkt_size:        max USB packet size in bytes (valid values are
 *                           512 and 1024)
 *                           64, 512 and 1024)
 */
struct gsi_device_scratch {
	bool mhi_base_chan_idx_valid;