/Linux-v5.4/drivers/iommu/ |
D | arm-smmu.c | 101 struct arm_smmu_device *smmu; member 106 #define fwspec_smmu(fw) (__fwspec_cfg(fw)->smmu) 114 static inline int arm_smmu_rpm_get(struct arm_smmu_device *smmu) in arm_smmu_rpm_get() argument 116 if (pm_runtime_enabled(smmu->dev)) in arm_smmu_rpm_get() 117 return pm_runtime_get_sync(smmu->dev); in arm_smmu_rpm_get() 122 static inline void arm_smmu_rpm_put(struct arm_smmu_device *smmu) in arm_smmu_rpm_put() argument 124 if (pm_runtime_enabled(smmu->dev)) in arm_smmu_rpm_put() 125 pm_runtime_put(smmu->dev); in arm_smmu_rpm_put() 172 struct arm_smmu_device **smmu) in arm_smmu_register_legacy_master() argument 215 *smmu = dev_get_drvdata(smmu_dev); in arm_smmu_register_legacy_master() [all …]
|
D | tegra-smmu.c | 50 struct tegra_smmu *smmu; member 65 static inline void smmu_writel(struct tegra_smmu *smmu, u32 value, in smmu_writel() argument 68 writel(value, smmu->regs + offset); in smmu_writel() 71 static inline u32 smmu_readl(struct tegra_smmu *smmu, unsigned long offset) in smmu_readl() argument 73 return readl(smmu->regs + offset); in smmu_readl() 82 #define SMMU_TLB_CONFIG_ACTIVE_LINES(smmu) \ argument 83 ((smmu)->soc->num_tlb_lines & (smmu)->tlb_mask) 156 static bool smmu_dma_addr_valid(struct tegra_smmu *smmu, dma_addr_t addr) in smmu_dma_addr_valid() argument 159 return (addr & smmu->pfn_mask) == addr; in smmu_dma_addr_valid() 167 static void smmu_flush_ptc_all(struct tegra_smmu *smmu) in smmu_flush_ptc_all() argument [all …]
|
D | arm-smmu-impl.c | 28 static u32 arm_smmu_read_ns(struct arm_smmu_device *smmu, int page, in arm_smmu_read_ns() argument 33 return readl_relaxed(arm_smmu_page(smmu, page) + offset); in arm_smmu_read_ns() 36 static void arm_smmu_write_ns(struct arm_smmu_device *smmu, int page, in arm_smmu_write_ns() argument 41 writel_relaxed(val, arm_smmu_page(smmu, page) + offset); in arm_smmu_write_ns() 52 struct arm_smmu_device smmu; member 56 static int cavium_cfg_probe(struct arm_smmu_device *smmu) in cavium_cfg_probe() argument 59 struct cavium_smmu *cs = container_of(smmu, struct cavium_smmu, smmu); in cavium_cfg_probe() 65 cs->id_base = atomic_fetch_add(smmu->num_context_banks, &context_count); in cavium_cfg_probe() 66 dev_notice(smmu->dev, "\tenabling workaround for Cavium erratum 27704\n"); in cavium_cfg_probe() 73 struct cavium_smmu *cs = container_of(smmu_domain->smmu, in cavium_init_context() [all …]
|
D | arm-smmu-v3.c | 634 struct arm_smmu_device *smmu; member 652 struct arm_smmu_device *smmu; member 683 struct arm_smmu_device *smmu) in arm_smmu_page1_fixup() argument 686 (smmu->options & ARM_SMMU_OPT_PAGE0_REGS_ONLY)) in arm_smmu_page1_fixup() 689 return smmu->base + offset; in arm_smmu_page1_fixup() 697 static void parse_driver_options(struct arm_smmu_device *smmu) in parse_driver_options() argument 702 if (of_property_read_bool(smmu->dev->of_node, in parse_driver_options() 704 smmu->options |= arm_smmu_options[i].opt; in parse_driver_options() 705 dev_notice(smmu->dev, "option %s\n", in parse_driver_options() 781 static void queue_poll_init(struct arm_smmu_device *smmu, in queue_poll_init() argument [all …]
|
D | arm-smmu.h | 315 struct arm_smmu_device *smmu; member 329 u32 (*read_reg)(struct arm_smmu_device *smmu, int page, int offset); 330 void (*write_reg)(struct arm_smmu_device *smmu, int page, int offset, 332 u64 (*read_reg64)(struct arm_smmu_device *smmu, int page, int offset); 333 void (*write_reg64)(struct arm_smmu_device *smmu, int page, int offset, 335 int (*cfg_probe)(struct arm_smmu_device *smmu); 336 int (*reset)(struct arm_smmu_device *smmu); 340 static inline void __iomem *arm_smmu_page(struct arm_smmu_device *smmu, int n) in arm_smmu_page() argument 342 return smmu->base + (n << smmu->pgshift); in arm_smmu_page() 345 static inline u32 arm_smmu_readl(struct arm_smmu_device *smmu, int page, int offset) in arm_smmu_readl() argument [all …]
|
D | Makefile | 16 obj-$(CONFIG_ARM_SMMU) += arm-smmu.o arm-smmu-impl.o 17 obj-$(CONFIG_ARM_SMMU_V3) += arm-smmu-v3.o 31 obj-$(CONFIG_TEGRA_IOMMU_SMMU) += tegra-smmu.o
|
/Linux-v5.4/drivers/memory/tegra/ |
D | tegra210.c | 19 .smmu = { 33 .smmu = { 47 .smmu = { 61 .smmu = { 75 .smmu = { 89 .smmu = { 103 .smmu = { 117 .smmu = { 131 .smmu = { 145 .smmu = { [all …]
|
D | tegra30.c | 22 .smmu = { 36 .smmu = { 50 .smmu = { 64 .smmu = { 78 .smmu = { 92 .smmu = { 106 .smmu = { 120 .smmu = { 134 .smmu = { 148 .smmu = { [all …]
|
D | tegra114.c | 22 .smmu = { 36 .smmu = { 50 .smmu = { 64 .smmu = { 78 .smmu = { 92 .smmu = { 106 .smmu = { 120 .smmu = { 134 .smmu = { 148 .smmu = { [all …]
|
D | tegra124.c | 42 .smmu = { 56 .smmu = { 70 .smmu = { 84 .smmu = { 98 .smmu = { 112 .smmu = { 126 .smmu = { 140 .smmu = { 154 .smmu = { 168 .smmu = { [all …]
|
D | mc.c | 702 if (IS_ENABLED(CONFIG_TEGRA_IOMMU_SMMU) && mc->soc->smmu) { in tegra_mc_probe() 703 mc->smmu = tegra_smmu_probe(&pdev->dev, mc->soc->smmu, mc); in tegra_mc_probe() 704 if (IS_ERR(mc->smmu)) { in tegra_mc_probe() 706 PTR_ERR(mc->smmu)); in tegra_mc_probe() 707 mc->smmu = NULL; in tegra_mc_probe() 711 if (IS_ENABLED(CONFIG_TEGRA_IOMMU_GART) && !mc->soc->smmu) { in tegra_mc_probe()
|
/Linux-v5.4/drivers/acpi/arm64/ |
D | iort.c | 363 struct acpi_iort_smmu_v3 *smmu; in iort_get_id_mapping_index() local 374 smmu = (struct acpi_iort_smmu_v3 *)node->node_data; in iort_get_id_mapping_index() 379 if (smmu->event_gsiv && smmu->pri_gsiv && smmu->gerr_gsiv in iort_get_id_mapping_index() 380 && smmu->sync_gsiv) in iort_get_id_mapping_index() 383 if (smmu->id_mapping_index >= node->mapping_count) { in iort_get_id_mapping_index() 389 return smmu->id_mapping_index; in iort_get_id_mapping_index() 757 struct acpi_iort_smmu_v3 *smmu; in iort_get_msi_resv_iommu() local 759 smmu = (struct acpi_iort_smmu_v3 *)iommu->node_data; in iort_get_msi_resv_iommu() 760 if (smmu->model == ACPI_IORT_SMMU_V3_HISILICON_HI161X) in iort_get_msi_resv_iommu() 1133 struct acpi_iort_smmu_v3 *smmu; in arm_smmu_v3_count_resources() local [all …]
|
/Linux-v5.4/Documentation/devicetree/bindings/display/ |
D | arm,komeda.txt | 15 devicetree/bindings/iommu/arm,smmu-v3.txt, 49 iommus = <&smmu 0>, <&smmu 1>, <&smmu 2>, <&smmu 3>, 50 <&smmu 4>, <&smmu 5>, <&smmu 6>, <&smmu 7>, 51 <&smmu 8>, <&smmu 9>;
|
/Linux-v5.4/Documentation/devicetree/bindings/iommu/ |
D | arm,smmu.txt | 14 "arm,smmu-v1" 15 "arm,smmu-v2" 19 "cavium,smmu-v2" 20 "qcom,smmu-v2" 26 along with "qcom,smmu-v2": 27 "qcom,msm8996-smmu-v2", "qcom,smmu-v2", 28 "qcom,sdm845-smmu-v2", "qcom,smmu-v2". 32 "qcom,sdm845-smmu-500", "arm,mmu-500" 67 - calxeda,smmu-secure-config-access : Enable proper handling of buggy 87 - for "qcom,smmu-v2": [all …]
|
D | nvidia,tegra30-smmu.txt | 4 - compatible : "nvidia,tegra30-smmu" 13 smmu { 14 compatible = "nvidia,tegra30-smmu";
|
D | arm,smmu-v3.txt | 12 * "arm,smmu-v3" for any SMMUv3 compliant 66 smmu@2b400000 { 67 compatible = "arm,smmu-v3";
|
/Linux-v5.4/include/soc/tegra/ |
D | mc.h | 43 struct tegra_smmu_enable smmu; member 84 void tegra_smmu_remove(struct tegra_smmu *smmu); 93 static inline void tegra_smmu_remove(struct tegra_smmu *smmu) in tegra_smmu_remove() argument 156 const struct tegra_smmu_soc *smmu; member 167 struct tegra_smmu *smmu; member
|
/Linux-v5.4/arch/arm64/boot/dts/intel/ |
D | socfpga_agilex.dtsi | 95 iommus = <&smmu 1>; 110 iommus = <&smmu 2>; 125 iommus = <&smmu 3>; 228 iommus = <&smmu 5>; 262 smmu: iommu@fa000000 { label 263 compatible = "arm,mmu-500", "arm,smmu-v2"; 379 iommus = <&smmu 6>; 391 iommus = <&smmu 7>;
|
/Linux-v5.4/arch/arm64/boot/dts/altera/ |
D | socfpga_stratix10.dtsi | 153 iommus = <&smmu 1>; 171 iommus = <&smmu 2>; 189 iommus = <&smmu 3>; 301 iommus = <&smmu 5>; 353 smmu: iommu@fa000000 { label 354 compatible = "arm,mmu-500", "arm,smmu-v2"; 485 iommus = <&smmu 6>; 498 iommus = <&smmu 7>;
|
/Linux-v5.4/arch/arm64/boot/dts/arm/ |
D | fvp-base-revc.dts | 170 iommu-map = <0x0 &smmu 0x0 0x10000>; 175 smmu: smmu@2b400000 { label 176 compatible = "arm,smmu-v3";
|
D | juno-base.dtsi | 39 compatible = "arm,mmu-401", "arm,smmu-v1"; 50 compatible = "arm,mmu-401", "arm,smmu-v1"; 610 compatible = "arm,mmu-401", "arm,smmu-v1"; 621 compatible = "arm,mmu-401", "arm,smmu-v1"; 630 compatible = "arm,mmu-401", "arm,smmu-v1"; 639 compatible = "arm,mmu-401", "arm,smmu-v1";
|
/Linux-v5.4/Documentation/devicetree/bindings/crypto/ |
D | hisilicon,hip07-sec.txt | 22 - iommus: The SEC units are behind smmu-v3 iommus. 23 Refer to iommu/arm,smmu-v3.txt for more information.
|
/Linux-v5.4/Documentation/devicetree/bindings/misc/ |
D | fsl,qoriq-mc.txt | 28 For arm-smmu binding, see: 29 Documentation/devicetree/bindings/iommu/arm,smmu.txt. 124 smmu: iommu@5000000 { 137 iommu-map = <23 &smmu 23 41>;
|
/Linux-v5.4/arch/arm64/boot/dts/amd/ |
D | amd-seattle-xgbe-b.dtsi | 88 xgmac0_smmu: smmu@e0600000 { 104 xgmac1_smmu: smmu@e0800000 {
|
/Linux-v5.4/arch/arm64/boot/dts/nvidia/ |
D | tegra186.dtsi | 63 iommus = <&smmu TEGRA186_SID_EQOS>; 316 iommus = <&smmu TEGRA186_SID_SDMMC1>; 342 iommus = <&smmu TEGRA186_SID_SDMMC2>; 363 iommus = <&smmu TEGRA186_SID_SDMMC3>; 389 iommus = <&smmu TEGRA186_SID_SDMMC4>; 417 iommus = <&smmu TEGRA186_SID_HDA>; 751 iommus = <&smmu TEGRA186_SID_AFI>; 752 iommu-map = <0x0 &smmu TEGRA186_SID_AFI 0x1000>; 797 smmu: iommu@12000000 { label 886 iommus = <&smmu TEGRA186_SID_HOST1X>; [all …]
|