Loading Documentation/devicetree/bindings/usb/msm-ssusb.txt +1 −0 Original line number Diff line number Diff line Loading @@ -66,6 +66,7 @@ Optional properties : event buffers. 1 event buffer is needed per h/w accelerated endpoint. - qcom,pm-qos-latency: This represents max tolerable CPU latency in microsecs, which is used as a vote by driver to get max performance in perf mode. - qcom,smmu-s1-bypass: If present, configure SMMU to bypass stage 1 translation. Sub nodes: - Sub node for "DWC3- USB3 controller". Loading drivers/usb/dwc3/dwc3-msm.c +10 −1 Original line number Diff line number Diff line Loading @@ -2822,7 +2822,7 @@ static int dwc3_msm_extcon_register(struct dwc3_msm *mdwc) static int dwc3_msm_init_iommu(struct dwc3_msm *mdwc) { struct device_node *node = mdwc->dev->of_node; int atomic_ctx = 1; int atomic_ctx = 1, s1_bypass; int ret; if (!of_property_read_bool(node, "iommus")) Loading @@ -2846,6 +2846,15 @@ static int dwc3_msm_init_iommu(struct dwc3_msm *mdwc) goto release_mapping; } s1_bypass = of_property_read_bool(node, "qcom,smmu-s1-bypass"); ret = iommu_domain_set_attr(mdwc->iommu_map->domain, DOMAIN_ATTR_S1_BYPASS, &s1_bypass); if (ret) { dev_err(mdwc->dev, "IOMMU set s1 bypass (%d) failed (%d)\n", s1_bypass, ret); goto release_mapping; } ret = arm_iommu_attach_device(mdwc->dev, mdwc->iommu_map); if (ret) { dev_err(mdwc->dev, "IOMMU attach failed (%d)\n", ret); Loading Loading
Documentation/devicetree/bindings/usb/msm-ssusb.txt +1 −0 Original line number Diff line number Diff line Loading @@ -66,6 +66,7 @@ Optional properties : event buffers. 1 event buffer is needed per h/w accelerated endpoint. - qcom,pm-qos-latency: This represents max tolerable CPU latency in microsecs, which is used as a vote by driver to get max performance in perf mode. - qcom,smmu-s1-bypass: If present, configure SMMU to bypass stage 1 translation. Sub nodes: - Sub node for "DWC3- USB3 controller". Loading
drivers/usb/dwc3/dwc3-msm.c +10 −1 Original line number Diff line number Diff line Loading @@ -2822,7 +2822,7 @@ static int dwc3_msm_extcon_register(struct dwc3_msm *mdwc) static int dwc3_msm_init_iommu(struct dwc3_msm *mdwc) { struct device_node *node = mdwc->dev->of_node; int atomic_ctx = 1; int atomic_ctx = 1, s1_bypass; int ret; if (!of_property_read_bool(node, "iommus")) Loading @@ -2846,6 +2846,15 @@ static int dwc3_msm_init_iommu(struct dwc3_msm *mdwc) goto release_mapping; } s1_bypass = of_property_read_bool(node, "qcom,smmu-s1-bypass"); ret = iommu_domain_set_attr(mdwc->iommu_map->domain, DOMAIN_ATTR_S1_BYPASS, &s1_bypass); if (ret) { dev_err(mdwc->dev, "IOMMU set s1 bypass (%d) failed (%d)\n", s1_bypass, ret); goto release_mapping; } ret = arm_iommu_attach_device(mdwc->dev, mdwc->iommu_map); if (ret) { dev_err(mdwc->dev, "IOMMU attach failed (%d)\n", ret); Loading