Loading drivers/platform/msm/ipa/ipa_clients/ipa_usb.c +3 −3 Original line number Diff line number Diff line Loading @@ -1061,8 +1061,8 @@ static bool ipa3_usb_check_chan_params(struct ipa_usb_xdci_chan_params *params) IPA_USB_DBG_LOW("xfer_ring_len = %d\n", params->xfer_ring_len); IPA_USB_DBG_LOW("xfer_ring_base_addr = %llx\n", params->xfer_ring_base_addr); IPA_USB_DBG_LOW("last_trb_addr = %x\n", params->xfer_scratch.last_trb_addr); IPA_USB_DBG_LOW("last_trb_addr_iova = %x\n", params->xfer_scratch.last_trb_addr_iova); IPA_USB_DBG_LOW("const_buffer_size = %d\n", params->xfer_scratch.const_buffer_size); IPA_USB_DBG_LOW("depcmd_low_addr = %x\n", Loading Loading @@ -1227,7 +1227,7 @@ static int ipa3_usb_request_xdci_channel( chan_params.chan_params.err_cb = ipa3_usb_gsi_chan_err_cb; chan_params.chan_params.chan_user_data = NULL; chan_params.chan_scratch.xdci.last_trb_addr = params->xfer_scratch.last_trb_addr; params->xfer_scratch.last_trb_addr_iova; /* xferrscidx will be updated later */ chan_params.chan_scratch.xdci.xferrscidx = 0; chan_params.chan_scratch.xdci.const_buffer_size = Loading drivers/usb/gadget/function/f_gsi.c +4 −4 Original line number Diff line number Diff line Loading @@ -263,7 +263,7 @@ static ssize_t usb_gsi_debugfs_read(struct file *file, ipa_chnl_params->xfer_scratch.depcmd_low_addr); len += scnprintf(buf + len, buf_len - len, "%25s %10x\n", "IN LastTRB Addr Off: ", ipa_chnl_params->xfer_scratch.last_trb_addr); ipa_chnl_params->xfer_scratch.last_trb_addr_iova); len += scnprintf(buf + len, buf_len - len, "%25s %10u\n", "IN Buffer Size: ", ipa_chnl_params->xfer_scratch.const_buffer_size); Loading Loading @@ -297,7 +297,7 @@ static ssize_t usb_gsi_debugfs_read(struct file *file, ipa_chnl_params->xfer_scratch.depcmd_low_addr); len += scnprintf(buf + len, buf_len - len, "%25s %10x\n", "OUT LastTRB Addr Off: ", ipa_chnl_params->xfer_scratch.last_trb_addr); ipa_chnl_params->xfer_scratch.last_trb_addr_iova); len += scnprintf(buf + len, buf_len - len, "%25s %10u\n", "OUT Buffer Size: ", ipa_chnl_params->xfer_scratch.const_buffer_size); Loading Loading @@ -453,7 +453,7 @@ static int ipa_connect_channels(struct gsi_data_port *d_port) in_params->dir = GSI_CHAN_DIR_FROM_GSI; 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 = in_params->xfer_scratch.last_trb_addr_iova = d_port->in_last_trb_addr = gsi_channel_info.last_trb_addr; in_params->xfer_scratch.const_buffer_size = gsi_channel_info.const_buffer_size; Loading Loading @@ -487,7 +487,7 @@ static int ipa_connect_channels(struct gsi_data_port *d_port) gsi_channel_info.xfer_ring_len; out_params->xfer_ring_base_addr = gsi_channel_info.xfer_ring_base_addr; out_params->xfer_scratch.last_trb_addr = out_params->xfer_scratch.last_trb_addr_iova = gsi_channel_info.last_trb_addr; out_params->xfer_scratch.const_buffer_size = gsi_channel_info.const_buffer_size; Loading include/linux/ipa_usb.h +11 −2 Original line number Diff line number Diff line Loading @@ -94,7 +94,7 @@ struct ipa_usb_xdci_connect_params { * ipa_usb_xdci_chan_scratch - xDCI protocol SW config area of * channel scratch * * @last_trb_addr: Address (LSB - based on alignment restrictions) of * @last_trb_addr_iova: Address (iova LSB - based on alignment restrictions) of * last TRB in queue. Used to identify roll over case * @const_buffer_size: TRB buffer size in KB (similar to IPA aggregation * configuration). Must be aligned to max USB Packet Size. Loading @@ -103,7 +103,7 @@ struct ipa_usb_xdci_connect_params { * @depcmd_hi_addr: Used to generate "Update Transfer" command. */ struct ipa_usb_xdci_chan_scratch { u16 last_trb_addr; u16 last_trb_addr_iova; u8 const_buffer_size; u32 depcmd_low_addr; u8 depcmd_hi_addr; Loading @@ -124,6 +124,11 @@ struct ipa_usb_xdci_chan_scratch { * @xfer_ring_base_addr: physical base address of transfer ring. Address must be * aligned to xfer_ring_len rounded to power of two * @xfer_scratch: parameters for xDCI channel scratch * @xfer_ring_base_addr_iova: IO virtual address mapped to xfer_ring_base_addr * @data_buff_base_len: length of data buffer allocated by USB driver * @data_buff_base_addr: physical base address for the data buffer (where TRBs * points) * @data_buff_base_addr_iova: IO virtual address mapped to data_buff_base_addr * */ struct ipa_usb_xdci_chan_params { Loading @@ -140,6 +145,10 @@ struct ipa_usb_xdci_chan_params { u16 xfer_ring_len; u64 xfer_ring_base_addr; struct ipa_usb_xdci_chan_scratch xfer_scratch; u64 xfer_ring_base_addr_iova; u32 data_buff_base_len; u64 data_buff_base_addr; u64 data_buff_base_addr_iova; }; /** Loading Loading
drivers/platform/msm/ipa/ipa_clients/ipa_usb.c +3 −3 Original line number Diff line number Diff line Loading @@ -1061,8 +1061,8 @@ static bool ipa3_usb_check_chan_params(struct ipa_usb_xdci_chan_params *params) IPA_USB_DBG_LOW("xfer_ring_len = %d\n", params->xfer_ring_len); IPA_USB_DBG_LOW("xfer_ring_base_addr = %llx\n", params->xfer_ring_base_addr); IPA_USB_DBG_LOW("last_trb_addr = %x\n", params->xfer_scratch.last_trb_addr); IPA_USB_DBG_LOW("last_trb_addr_iova = %x\n", params->xfer_scratch.last_trb_addr_iova); IPA_USB_DBG_LOW("const_buffer_size = %d\n", params->xfer_scratch.const_buffer_size); IPA_USB_DBG_LOW("depcmd_low_addr = %x\n", Loading Loading @@ -1227,7 +1227,7 @@ static int ipa3_usb_request_xdci_channel( chan_params.chan_params.err_cb = ipa3_usb_gsi_chan_err_cb; chan_params.chan_params.chan_user_data = NULL; chan_params.chan_scratch.xdci.last_trb_addr = params->xfer_scratch.last_trb_addr; params->xfer_scratch.last_trb_addr_iova; /* xferrscidx will be updated later */ chan_params.chan_scratch.xdci.xferrscidx = 0; chan_params.chan_scratch.xdci.const_buffer_size = Loading
drivers/usb/gadget/function/f_gsi.c +4 −4 Original line number Diff line number Diff line Loading @@ -263,7 +263,7 @@ static ssize_t usb_gsi_debugfs_read(struct file *file, ipa_chnl_params->xfer_scratch.depcmd_low_addr); len += scnprintf(buf + len, buf_len - len, "%25s %10x\n", "IN LastTRB Addr Off: ", ipa_chnl_params->xfer_scratch.last_trb_addr); ipa_chnl_params->xfer_scratch.last_trb_addr_iova); len += scnprintf(buf + len, buf_len - len, "%25s %10u\n", "IN Buffer Size: ", ipa_chnl_params->xfer_scratch.const_buffer_size); Loading Loading @@ -297,7 +297,7 @@ static ssize_t usb_gsi_debugfs_read(struct file *file, ipa_chnl_params->xfer_scratch.depcmd_low_addr); len += scnprintf(buf + len, buf_len - len, "%25s %10x\n", "OUT LastTRB Addr Off: ", ipa_chnl_params->xfer_scratch.last_trb_addr); ipa_chnl_params->xfer_scratch.last_trb_addr_iova); len += scnprintf(buf + len, buf_len - len, "%25s %10u\n", "OUT Buffer Size: ", ipa_chnl_params->xfer_scratch.const_buffer_size); Loading Loading @@ -453,7 +453,7 @@ static int ipa_connect_channels(struct gsi_data_port *d_port) in_params->dir = GSI_CHAN_DIR_FROM_GSI; 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 = in_params->xfer_scratch.last_trb_addr_iova = d_port->in_last_trb_addr = gsi_channel_info.last_trb_addr; in_params->xfer_scratch.const_buffer_size = gsi_channel_info.const_buffer_size; Loading Loading @@ -487,7 +487,7 @@ static int ipa_connect_channels(struct gsi_data_port *d_port) gsi_channel_info.xfer_ring_len; out_params->xfer_ring_base_addr = gsi_channel_info.xfer_ring_base_addr; out_params->xfer_scratch.last_trb_addr = out_params->xfer_scratch.last_trb_addr_iova = gsi_channel_info.last_trb_addr; out_params->xfer_scratch.const_buffer_size = gsi_channel_info.const_buffer_size; Loading
include/linux/ipa_usb.h +11 −2 Original line number Diff line number Diff line Loading @@ -94,7 +94,7 @@ struct ipa_usb_xdci_connect_params { * ipa_usb_xdci_chan_scratch - xDCI protocol SW config area of * channel scratch * * @last_trb_addr: Address (LSB - based on alignment restrictions) of * @last_trb_addr_iova: Address (iova LSB - based on alignment restrictions) of * last TRB in queue. Used to identify roll over case * @const_buffer_size: TRB buffer size in KB (similar to IPA aggregation * configuration). Must be aligned to max USB Packet Size. Loading @@ -103,7 +103,7 @@ struct ipa_usb_xdci_connect_params { * @depcmd_hi_addr: Used to generate "Update Transfer" command. */ struct ipa_usb_xdci_chan_scratch { u16 last_trb_addr; u16 last_trb_addr_iova; u8 const_buffer_size; u32 depcmd_low_addr; u8 depcmd_hi_addr; Loading @@ -124,6 +124,11 @@ struct ipa_usb_xdci_chan_scratch { * @xfer_ring_base_addr: physical base address of transfer ring. Address must be * aligned to xfer_ring_len rounded to power of two * @xfer_scratch: parameters for xDCI channel scratch * @xfer_ring_base_addr_iova: IO virtual address mapped to xfer_ring_base_addr * @data_buff_base_len: length of data buffer allocated by USB driver * @data_buff_base_addr: physical base address for the data buffer (where TRBs * points) * @data_buff_base_addr_iova: IO virtual address mapped to data_buff_base_addr * */ struct ipa_usb_xdci_chan_params { Loading @@ -140,6 +145,10 @@ struct ipa_usb_xdci_chan_params { u16 xfer_ring_len; u64 xfer_ring_base_addr; struct ipa_usb_xdci_chan_scratch xfer_scratch; u64 xfer_ring_base_addr_iova; u32 data_buff_base_len; u64 data_buff_base_addr; u64 data_buff_base_addr_iova; }; /** Loading