summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDevdutt Patnaik <dpatnaik@codeaurora.org>2016-06-03 15:48:14 -0700
committerSkylar Chang <chiaweic@codeaurora.org>2016-07-26 17:27:43 -0700
commit8b42db22598a3da960af4a36533ccc2ecf742340 (patch)
treee7933e6c45d9dafefabc7532ee34926fce6f7358
parenta5dd060414a6697135c0b22f5155e592cc96c455 (diff)
usb: f_gsi: Update connection parameters for GSI channels
Stage 1 SMMU enablement on IPA requires that the USB driver pass physical and virtual addresses to IPA for addresses that GSI hardware will write to. Update the connection params for GSI channels to pass this info to IPA driver. Change-Id: Ibeedeef900b069b3a113b2daabf461797f28287b Signed-off-by: Devdutt Patnaik <dpatnaik@codeaurora.org>
-rw-r--r--drivers/usb/gadget/function/f_gsi.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/drivers/usb/gadget/function/f_gsi.c b/drivers/usb/gadget/function/f_gsi.c
index 8a80110445e5..fdf981d1d56c 100644
--- a/drivers/usb/gadget/function/f_gsi.c
+++ b/drivers/usb/gadget/function/f_gsi.c
@@ -257,7 +257,13 @@ static int ipa_connect_channels(struct gsi_data_port *d_port)
in_params->xfer_ring_len = gsi_channel_info.xfer_ring_len;
in_params->xfer_ring_base_addr = gsi_channel_info.xfer_ring_base_addr;
in_params->xfer_scratch.last_trb_addr_iova =
- d_port->in_last_trb_addr = gsi_channel_info.last_trb_addr;
+ gsi_channel_info.last_trb_addr;
+ in_params->xfer_ring_base_addr = in_params->xfer_ring_base_addr_iova =
+ gsi_channel_info.xfer_ring_base_addr;
+ in_params->data_buff_base_len = d_port->in_request.buf_len *
+ d_port->in_request.num_bufs;
+ in_params->data_buff_base_addr = in_params->data_buff_base_addr_iova =
+ d_port->in_request.dma;
in_params->xfer_scratch.const_buffer_size =
gsi_channel_info.const_buffer_size;
in_params->xfer_scratch.depcmd_low_addr =
@@ -289,7 +295,13 @@ static int ipa_connect_channels(struct gsi_data_port *d_port)
out_params->xfer_ring_len =
gsi_channel_info.xfer_ring_len;
out_params->xfer_ring_base_addr =
+ out_params->xfer_ring_base_addr_iova =
gsi_channel_info.xfer_ring_base_addr;
+ out_params->data_buff_base_len = d_port->out_request.buf_len *
+ d_port->out_request.num_bufs;
+ out_params->data_buff_base_addr =
+ out_params->data_buff_base_addr_iova =
+ d_port->out_request.dma;
out_params->xfer_scratch.last_trb_addr_iova =
gsi_channel_info.last_trb_addr;
out_params->xfer_scratch.const_buffer_size =