diff options
| author | Devdutt Patnaik <dpatnaik@codeaurora.org> | 2016-06-03 15:48:14 -0700 |
|---|---|---|
| committer | Skylar Chang <chiaweic@codeaurora.org> | 2016-07-26 17:27:43 -0700 |
| commit | 8b42db22598a3da960af4a36533ccc2ecf742340 (patch) | |
| tree | e7933e6c45d9dafefabc7532ee34926fce6f7358 | |
| parent | a5dd060414a6697135c0b22f5155e592cc96c455 (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.c | 14 |
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 = |
