Loading drivers/usb/dwc3/dwc3-msm.c +9 −0 Original line number Diff line number Diff line Loading @@ -1264,11 +1264,20 @@ static void gsi_store_ringbase_dbl_info(struct usb_ep *ep, lower_32_bits(dwc3_trb_dma_offset(dep, &dep->trb_pool[0])), upper_32_bits(dwc3_trb_dma_offset(dep, &dep->trb_pool[0]))); if (request->mapped_db_reg_phs_addr_lsb && dwc->sysdev != request->dev) { dma_unmap_resource(request->dev, request->mapped_db_reg_phs_addr_lsb, PAGE_SIZE, DMA_BIDIRECTIONAL, 0); request->mapped_db_reg_phs_addr_lsb = 0; } if (!request->mapped_db_reg_phs_addr_lsb) { request->mapped_db_reg_phs_addr_lsb = dma_map_resource(dwc->sysdev, (phys_addr_t)request->db_reg_phs_addr_lsb, PAGE_SIZE, DMA_BIDIRECTIONAL, 0); request->dev = dwc->sysdev; if (dma_mapping_error(dwc->sysdev, request->mapped_db_reg_phs_addr_lsb)) dev_err(mdwc->dev, "mapping error for db_reg_phs_addr_lsb\n"); Loading include/linux/usb/dwc3-msm.h +4 −0 Original line number Diff line number Diff line Loading @@ -68,6 +68,9 @@ enum gsi_ep_op { * @mapped_db_reg_phs_addr_lsb: doorbell LSB IOVA address mapped with IOMMU * @db_reg_phs_addr_msb: IPA channel doorbell register's physical address MSB * @ep_intr_num: Interrupter number for EP. * @sgt_trb_xfer_ring: USB TRB ring related sgtable entries * @sgt_data_buff: Data buffer related sgtable entries * @dev: pointer to the DMA-capable dwc device */ struct usb_gsi_request { void *buf_base_addr; Loading @@ -80,6 +83,7 @@ struct usb_gsi_request { u8 ep_intr_num; struct sg_table sgt_trb_xfer_ring; struct sg_table sgt_data_buff; struct device *dev; }; /* Loading Loading
drivers/usb/dwc3/dwc3-msm.c +9 −0 Original line number Diff line number Diff line Loading @@ -1264,11 +1264,20 @@ static void gsi_store_ringbase_dbl_info(struct usb_ep *ep, lower_32_bits(dwc3_trb_dma_offset(dep, &dep->trb_pool[0])), upper_32_bits(dwc3_trb_dma_offset(dep, &dep->trb_pool[0]))); if (request->mapped_db_reg_phs_addr_lsb && dwc->sysdev != request->dev) { dma_unmap_resource(request->dev, request->mapped_db_reg_phs_addr_lsb, PAGE_SIZE, DMA_BIDIRECTIONAL, 0); request->mapped_db_reg_phs_addr_lsb = 0; } if (!request->mapped_db_reg_phs_addr_lsb) { request->mapped_db_reg_phs_addr_lsb = dma_map_resource(dwc->sysdev, (phys_addr_t)request->db_reg_phs_addr_lsb, PAGE_SIZE, DMA_BIDIRECTIONAL, 0); request->dev = dwc->sysdev; if (dma_mapping_error(dwc->sysdev, request->mapped_db_reg_phs_addr_lsb)) dev_err(mdwc->dev, "mapping error for db_reg_phs_addr_lsb\n"); Loading
include/linux/usb/dwc3-msm.h +4 −0 Original line number Diff line number Diff line Loading @@ -68,6 +68,9 @@ enum gsi_ep_op { * @mapped_db_reg_phs_addr_lsb: doorbell LSB IOVA address mapped with IOMMU * @db_reg_phs_addr_msb: IPA channel doorbell register's physical address MSB * @ep_intr_num: Interrupter number for EP. * @sgt_trb_xfer_ring: USB TRB ring related sgtable entries * @sgt_data_buff: Data buffer related sgtable entries * @dev: pointer to the DMA-capable dwc device */ struct usb_gsi_request { void *buf_base_addr; Loading @@ -80,6 +83,7 @@ struct usb_gsi_request { u8 ep_intr_num; struct sg_table sgt_trb_xfer_ring; struct sg_table sgt_data_buff; struct device *dev; }; /* Loading