Home
last modified time | relevance | path

Searched refs:smmu (Results 1 – 25 of 42) sorted by relevance

12

/Linux-v5.4/drivers/iommu/
Darm-smmu.c101 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 …]
Dtegra-smmu.c50 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 …]
Darm-smmu-impl.c28 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 …]
Darm-smmu-v3.c634 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 …]
Darm-smmu.h315 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 …]
DMakefile16 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/
Dtegra210.c19 .smmu = {
33 .smmu = {
47 .smmu = {
61 .smmu = {
75 .smmu = {
89 .smmu = {
103 .smmu = {
117 .smmu = {
131 .smmu = {
145 .smmu = {
[all …]
Dtegra30.c22 .smmu = {
36 .smmu = {
50 .smmu = {
64 .smmu = {
78 .smmu = {
92 .smmu = {
106 .smmu = {
120 .smmu = {
134 .smmu = {
148 .smmu = {
[all …]
Dtegra114.c22 .smmu = {
36 .smmu = {
50 .smmu = {
64 .smmu = {
78 .smmu = {
92 .smmu = {
106 .smmu = {
120 .smmu = {
134 .smmu = {
148 .smmu = {
[all …]
Dtegra124.c42 .smmu = {
56 .smmu = {
70 .smmu = {
84 .smmu = {
98 .smmu = {
112 .smmu = {
126 .smmu = {
140 .smmu = {
154 .smmu = {
168 .smmu = {
[all …]
Dmc.c702 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/
Diort.c363 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/
Darm,komeda.txt15 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/
Darm,smmu.txt14 "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 …]
Dnvidia,tegra30-smmu.txt4 - compatible : "nvidia,tegra30-smmu"
13 smmu {
14 compatible = "nvidia,tegra30-smmu";
Darm,smmu-v3.txt12 * "arm,smmu-v3" for any SMMUv3 compliant
66 smmu@2b400000 {
67 compatible = "arm,smmu-v3";
/Linux-v5.4/include/soc/tegra/
Dmc.h43 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/
Dsocfpga_agilex.dtsi95 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/
Dsocfpga_stratix10.dtsi153 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/
Dfvp-base-revc.dts170 iommu-map = <0x0 &smmu 0x0 0x10000>;
175 smmu: smmu@2b400000 { label
176 compatible = "arm,smmu-v3";
Djuno-base.dtsi39 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/
Dhisilicon,hip07-sec.txt22 - 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/
Dfsl,qoriq-mc.txt28 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/
Damd-seattle-xgbe-b.dtsi88 xgmac0_smmu: smmu@e0600000 {
104 xgmac1_smmu: smmu@e0800000 {
/Linux-v5.4/arch/arm64/boot/dts/nvidia/
Dtegra186.dtsi63 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 …]

12